diff --git a/DEPS b/DEPS index 6f9153e..dc3615d 100644 --- a/DEPS +++ b/DEPS
@@ -175,11 +175,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': '95fc5a32516866bd2d7aa8187995bcd542ab1687', + 'skia_revision': '6ec5688413840c42afaa72b3a38302e1716dce86', # 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': '36272def26c1eb84f890e9929b665b459b7373b2', + 'v8_revision': '5e04fbf91e5dad673d29a119904c1b068cdd7996', # 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. @@ -191,7 +191,7 @@ # 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': 'e322072ab4fb119ced903ae32ec8a19c67c16970', + 'swiftshader_revision': 'cafff78f665b8a591d1f7d2d2cb00b64c8c24312', # Three lines of non-changing comments so that # the commit queue can handle CLs rolling PDFium # and whatever else without interference from each other. @@ -246,7 +246,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': 'd3f547209d8b2966672d214cba74a9f35e3a5408', + 'devtools_frontend_revision': 'd25ae4048565a67dbc63bb91f6b00470f3039f58', # 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. @@ -302,7 +302,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': 'd5db214564bd781d5a6438a5fa48e39c9ba021b5', + 'dawn_revision': '0847cb4637366d15efdb09c57d9b53ea720587fb', # Three lines of non-changing comments so that # the commit queue can handle CLs rolling feed # and whatever else without interference from each other. @@ -877,7 +877,7 @@ }, 'src/third_party/depot_tools': - Var('chromium_git') + '/chromium/tools/depot_tools.git' + '@' + 'de6c4564661837f50ca5aaa55c18b45ce4a9d97b', + Var('chromium_git') + '/chromium/tools/depot_tools.git' + '@' + '17aaea21d40dc178638a5e295541fbd8757811c1', 'src/third_party/devtools-frontend/src': Var('chromium_git') + '/devtools/devtools-frontend' + '@' + Var('devtools_frontend_revision'), @@ -1523,7 +1523,7 @@ Var('chromium_git') + '/v8/v8.git' + '@' + Var('v8_revision'), 'src-internal': { - 'url': 'https://chrome-internal.googlesource.com/chrome/src-internal.git@7e1439b863bd5852331cf8691c1e3aced9993c09', + 'url': 'https://chrome-internal.googlesource.com/chrome/src-internal.git@6dca61aa30a9ffba2998e97031897d723bd28302', 'condition': 'checkout_src_internal', },
diff --git a/android_webview/common/aw_content_client.cc b/android_webview/common/aw_content_client.cc index 22262d8..42540f6 100644 --- a/android_webview/common/aw_content_client.cc +++ b/android_webview/common/aw_content_client.cc
@@ -52,11 +52,6 @@ } void AwContentClient::SetGpuInfo(const gpu::GPUInfo& gpu_info) { - gpu_fingerprint_ = gpu_info.gl_version + '|' + gpu_info.gl_vendor + '|' + - gpu_info.gl_renderer; - std::replace_if(gpu_fingerprint_.begin(), gpu_fingerprint_.end(), - [](char c) { return !::isprint(c); }, '_'); - gpu::SetKeysForCrashLogging(gpu_info); }
diff --git a/android_webview/common/aw_content_client.h b/android_webview/common/aw_content_client.h index cbb7dd2..52709ee 100644 --- a/android_webview/common/aw_content_client.h +++ b/android_webview/common/aw_content_client.h
@@ -29,11 +29,6 @@ void ExposeInterfacesToBrowser( scoped_refptr<base::SequencedTaskRunner> io_task_runner, mojo::BinderMap* binders) override; - - const std::string& gpu_fingerprint() const { return gpu_fingerprint_; } - - private: - std::string gpu_fingerprint_; }; } // namespace android_webview
diff --git a/android_webview/nonembedded/BUILD.gn b/android_webview/nonembedded/BUILD.gn index 210effc..4266ce4 100644 --- a/android_webview/nonembedded/BUILD.gn +++ b/android_webview/nonembedded/BUILD.gn
@@ -119,6 +119,9 @@ android_resources("devui_resources") { sources = [ "java/res_devui/drawable/blue_circle.xml", + "java/res_devui/drawable/ic_action_home.xml", + "java/res_devui/drawable/ic_alert_error.xml", + "java/res_devui/drawable/ic_flag.xml", "java/res_devui/layout/activity_main.xml", "java/res_devui/layout/crashes_list_item_body.xml", "java/res_devui/layout/crashes_list_item_header.xml", @@ -132,6 +135,7 @@ "java/res_devui/layout/two_line_sublist_item.xml", "java/res_devui/menu/crashes_options_menu.xml", "java/res_devui/menu/navigation_menu.xml", + "java/res_devui/values-night/colors.xml", "java/res_devui/values-night/styles.xml", "java/res_devui/values/colors.xml", "java/res_devui/values/strings.xml",
diff --git a/android_webview/nonembedded/java/res_devui/drawable/ic_action_home.xml b/android_webview/nonembedded/java/res_devui/drawable/ic_action_home.xml new file mode 100644 index 0000000..b6fe5ac --- /dev/null +++ b/android_webview/nonembedded/java/res_devui/drawable/ic_action_home.xml
@@ -0,0 +1,13 @@ +<?xml version="1.0" encoding="utf-8"?> +<vector xmlns:android="http://schemas.android.com/apk/res/android" + android:width="24dp" + android:height="24dp" + android:viewportWidth="24" + android:viewportHeight="24"> + + <path + android:fillColor="#000000" + android:pathData="M12 3L4 9v12h16V9l-8-6zm6 16h-3v-6H9v6H6v-9l6-4.5 6 4.5v9z" /> + <path + android:pathData="M0 0h24v24H0V0z" /> +</vector>
diff --git a/android_webview/nonembedded/java/res_devui/drawable/ic_alert_error.xml b/android_webview/nonembedded/java/res_devui/drawable/ic_alert_error.xml new file mode 100644 index 0000000..b926834 --- /dev/null +++ b/android_webview/nonembedded/java/res_devui/drawable/ic_alert_error.xml
@@ -0,0 +1,13 @@ +<?xml version="1.0" encoding="utf-8"?> +<vector xmlns:android="http://schemas.android.com/apk/res/android" + android:width="24dp" + android:height="24dp" + android:viewportWidth="24" + android:viewportHeight="24"> + + <path + android:fillColor="#000000" + android:pathData="M11 15h2v2h-2v-2zm0-8h2v6h-2V7zm0.99-5C6.47 2 2 6.48 2 12s4.47 10 9.99 10C17.52 22 22 17.52 22 12S17.52 2 11.99 2zM12 20c-4.42 0-8-3.58-8-8s3.58-8 8-8 8 3.58 8 8-3.58 8-8 8z" /> + <path + android:pathData="M0 0h24v24H0V0z" /> +</vector>
diff --git a/android_webview/nonembedded/java/res_devui/drawable/ic_flag.xml b/android_webview/nonembedded/java/res_devui/drawable/ic_flag.xml new file mode 100644 index 0000000..a680854 --- /dev/null +++ b/android_webview/nonembedded/java/res_devui/drawable/ic_flag.xml
@@ -0,0 +1,13 @@ +<?xml version="1.0" encoding="utf-8"?> +<vector xmlns:android="http://schemas.android.com/apk/res/android" + android:width="24dp" + android:height="24dp" + android:viewportWidth="24" + android:viewportHeight="24"> + + <path + android:fillColor="#000000" + android:pathData="M14 6l-1-2H5v17h2v-7h5l1 2h7V6h-6zm4 8h-4l-1-2H7V6h5l1 2h5v6z" /> + <path + android:pathData="M0 0h24v24H0V0z" /> +</vector>
diff --git a/android_webview/nonembedded/java/res_devui/layout/activity_main.xml b/android_webview/nonembedded/java/res_devui/layout/activity_main.xml index ce96947..cabed239 100644 --- a/android_webview/nonembedded/java/res_devui/layout/activity_main.xml +++ b/android_webview/nonembedded/java/res_devui/layout/activity_main.xml
@@ -5,23 +5,79 @@ LICENSE file. --> -<LinearLayout +<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" - android:orientation="vertical" + xmlns:app="http://schemas.android.com/apk/res-auto" android:layout_width="match_parent" android:layout_height="match_parent"> <include + android:layout_alignParentTop="true" layout="@layout/persistent_error_message" - android:id="@+id/webview_package_error"/> + android:id="@+id/webview_package_error" + android:layout_width="match_parent" + android:layout_height="wrap_content"/> <include + android:layout_below="@id/webview_package_error" layout="@layout/persistent_error_message" - android:id="@+id/crash_consent_error"/> + android:id="@+id/crash_consent_error" + android:layout_width="match_parent" + android:layout_height="wrap_content"/> <FrameLayout + android:layout_below="@id/crash_consent_error" + android:layout_above="@id/bottom_divider" android:id="@+id/content_fragment" android:layout_width="match_parent" android:layout_height="match_parent"/> -</LinearLayout> + <!-- horizontal divider --> + <View + android:id="@+id/bottom_divider" + android:layout_above="@id/nav_view" + android:layout_width="match_parent" + android:layout_height="1dp" + android:background="?android:attr/listDivider"/> + + <!-- bottom navigation bar --> + <LinearLayout + android:id="@+id/nav_view" + android:padding="10dp" + android:layout_width="match_parent" + android:layout_height="wrap_content" + android:orientation="horizontal" + android:layout_alignParentBottom="true" + android:background="?android:attr/windowBackground"> + <!--suppress HardcodedText --> + <TextView + android:id="@+id/navigation_home" + android:layout_width="0dp" + android:layout_height="match_parent" + android:drawableTop="@drawable/ic_action_home" + android:text="Home" + android:gravity="center_horizontal" + android:layout_weight="1"> + </TextView> + <!--suppress HardcodedText --> + <TextView + android:id="@+id/navigation_crash_ui" + android:layout_width="0dp" + android:layout_height="match_parent" + android:drawableTop="@drawable/ic_alert_error" + android:text="Crashes" + android:gravity="center_horizontal" + android:layout_weight="1"> + </TextView> + <!--suppress HardcodedText --> + <TextView + android:id="@+id/navigation_flags_ui" + android:layout_width="0dp" + android:layout_height="match_parent" + android:drawableTop="@drawable/ic_flag" + android:text="Flags" + android:gravity="center_horizontal" + android:layout_weight="1"> + </TextView> + </LinearLayout> +</RelativeLayout>
diff --git a/android_webview/nonembedded/java/res_devui/menu/navigation_menu.xml b/android_webview/nonembedded/java/res_devui/menu/navigation_menu.xml index 2fec961..167850bd 100644 --- a/android_webview/nonembedded/java/res_devui/menu/navigation_menu.xml +++ b/android_webview/nonembedded/java/res_devui/menu/navigation_menu.xml
@@ -9,21 +9,6 @@ <group android:id="@+id/nav_menu_group"> <!--suppress HardcodedText --> <item - android:id="@+id/nav_menu_main_ui" - android:title="Home" - android:showAsAction="never"/> - <!--suppress HardcodedText --> - <item - android:id="@+id/nav_menu_crash_ui" - android:title="WebView Crashes" - android:showAsAction="never"/> - <!--suppress HardcodedText --> - <item - android:id="@+id/nav_menu_flags_ui" - android:title="Experimental Flags" - android:showAsAction="never"/> - <!--suppress HardcodedText --> - <item android:id="@+id/nav_menu_switch_provider" android:title="Change WebView Provider" android:showAsAction="never"/>
diff --git a/android_webview/nonembedded/java/res_devui/values-night/colors.xml b/android_webview/nonembedded/java/res_devui/values-night/colors.xml new file mode 100644 index 0000000..053096f --- /dev/null +++ b/android_webview/nonembedded/java/res_devui/values-night/colors.xml
@@ -0,0 +1,10 @@ +<?xml version="1.0" encoding="utf-8"?> +<!-- + 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. +--> + +<resources> + <color name="navigation_selected">#FFFFFF</color> +</resources>
diff --git a/android_webview/nonembedded/java/res_devui/values/colors.xml b/android_webview/nonembedded/java/res_devui/values/colors.xml index bd82cfe..b0af5f0 100644 --- a/android_webview/nonembedded/java/res_devui/values/colors.xml +++ b/android_webview/nonembedded/java/res_devui/values/colors.xml
@@ -9,4 +9,6 @@ <color name="error_red">#C5221F</color> <color name="warning_yellow">#FFCC00</color> <color name="blue">#1967D2</color> + <color name="navigation_selected">#000000</color> + <color name="navigation_unselected">#888888</color> </resources>
diff --git a/android_webview/nonembedded/java/res_devui/values/styles.xml b/android_webview/nonembedded/java/res_devui/values/styles.xml index 51517fa44..e4ab980 100644 --- a/android_webview/nonembedded/java/res_devui/values/styles.xml +++ b/android_webview/nonembedded/java/res_devui/values/styles.xml
@@ -7,4 +7,10 @@ <resources> <style name="Theme.DevUi.DayNight" parent="@android:style/Theme.Material.Light.DarkActionBar" /> + <style name="SelectedNavigationButton"> + <item name="android:textColor">@color/navigation_selected</item> + </style> + <style name="UnselectedNavigationButton"> + <item name="android:textColor">@color/navigation_unselected</item> + </style> </resources> \ No newline at end of file
diff --git a/android_webview/nonembedded/java/src/org/chromium/android_webview/devui/MainActivity.java b/android_webview/nonembedded/java/src/org/chromium/android_webview/devui/MainActivity.java index 7e85dab2..8f5394b 100644 --- a/android_webview/nonembedded/java/src/org/chromium/android_webview/devui/MainActivity.java +++ b/android_webview/nonembedded/java/src/org/chromium/android_webview/devui/MainActivity.java
@@ -4,9 +4,15 @@ package org.chromium.android_webview.devui; import android.content.Intent; +import android.graphics.PorterDuff; +import android.graphics.PorterDuffColorFilter; +import android.graphics.drawable.Drawable; import android.os.Bundle; import android.view.Menu; import android.view.MenuItem; +import android.view.View; +import android.widget.LinearLayout; +import android.widget.TextView; import androidx.fragment.app.Fragment; import androidx.fragment.app.FragmentActivity; @@ -14,6 +20,10 @@ import androidx.fragment.app.FragmentTransaction; import org.chromium.android_webview.devui.util.NavigationMenuHelper; +import org.chromium.base.ApiCompatibilityUtils; + +import java.util.HashMap; +import java.util.Map; /** * Dev UI main activity. @@ -22,6 +32,7 @@ public class MainActivity extends FragmentActivity { private WebViewPackageError mDifferentPackageError; private boolean mSwitchFragmentOnResume; + final Map<Integer, Integer> mFragmentIdMap = new HashMap<>(); // Keep in sync with DeveloperUiService.java private static final String FRAGMENT_ID_INTENT_EXTRA = "fragment-id"; @@ -41,6 +52,71 @@ mDifferentPackageError = new WebViewPackageError(this); // show the dialog once when the activity is created. mDifferentPackageError.showDialogIfDifferent(); + + // Set up bottom navigation bar: + mFragmentIdMap.put(R.id.navigation_home, FRAGMENT_ID_HOME); + mFragmentIdMap.put(R.id.navigation_crash_ui, FRAGMENT_ID_CRASHES); + mFragmentIdMap.put(R.id.navigation_flags_ui, FRAGMENT_ID_FLAGS); + LinearLayout bottomNavBar = findViewById(R.id.nav_view); + View.OnClickListener listener = (View view) -> { + assert mFragmentIdMap.containsKey(view.getId()) : "Unexpected view ID: " + view.getId(); + int fragmentId = mFragmentIdMap.get(view.getId()); + switchFragment(fragmentId); + }; + final int childCount = bottomNavBar.getChildCount(); + for (int i = 0; i < childCount; ++i) { + View v = bottomNavBar.getChildAt(i); + v.setOnClickListener(listener); + } + } + + private void switchFragment(int chosenFragmentId) { + Fragment fragment = null; + switch (chosenFragmentId) { + default: + chosenFragmentId = FRAGMENT_ID_HOME; + // Fall through. + case FRAGMENT_ID_HOME: + fragment = new HomeFragment(); + break; + case FRAGMENT_ID_CRASHES: + fragment = new CrashesListFragment(); + break; + case FRAGMENT_ID_FLAGS: + fragment = new FlagsFragment(); + break; + } + assert fragment != null; + + // Switch fragments + FragmentManager fm = getSupportFragmentManager(); + FragmentTransaction transaction = fm.beginTransaction(); + transaction.replace(R.id.content_fragment, fragment); + transaction.commit(); + + // Update the bottom toolbar + LinearLayout bottomNavBar = findViewById(R.id.nav_view); + final int childCount = bottomNavBar.getChildCount(); + for (int i = 0; i < childCount; ++i) { + View view = bottomNavBar.getChildAt(i); + assert mFragmentIdMap.containsKey(view.getId()) : "Unexpected view ID: " + view.getId(); + int fragmentId = mFragmentIdMap.get(view.getId()); + assert view instanceof TextView : "Bottom bar must have TextViews as direct children"; + TextView textView = (TextView) view; + + boolean isSelectedFragment = chosenFragmentId == fragmentId; + ApiCompatibilityUtils.setTextAppearance(textView, + isSelectedFragment ? R.style.SelectedNavigationButton + : R.style.UnselectedNavigationButton); + int color = isSelectedFragment ? getResources().getColor(R.color.navigation_selected) + : getResources().getColor(R.color.navigation_unselected); + for (Drawable drawable : textView.getCompoundDrawables()) { + if (drawable != null) { + drawable.setColorFilter( + new PorterDuffColorFilter(color, PorterDuff.Mode.SRC_IN)); + } + } + } } @Override @@ -75,27 +151,7 @@ if (extras != null) { fragmentId = extras.getInt(FRAGMENT_ID_INTENT_EXTRA, fragmentId); } - - Fragment fragment = null; - switch (fragmentId) { - default: - // Fall through. - case FRAGMENT_ID_HOME: - fragment = new HomeFragment(); - break; - case FRAGMENT_ID_CRASHES: - fragment = new CrashesListFragment(); - break; - case FRAGMENT_ID_FLAGS: - fragment = new FlagsFragment(); - break; - } - assert fragment != null; - - FragmentManager fm = getSupportFragmentManager(); - FragmentTransaction transaction = fm.beginTransaction(); - transaction.replace(R.id.content_fragment, fragment); - transaction.commit(); + switchFragment(fragmentId); } @Override
diff --git a/android_webview/nonembedded/java/src/org/chromium/android_webview/devui/util/NavigationMenuHelper.java b/android_webview/nonembedded/java/src/org/chromium/android_webview/devui/util/NavigationMenuHelper.java index 4037789..296adf9 100644 --- a/android_webview/nonembedded/java/src/org/chromium/android_webview/devui/util/NavigationMenuHelper.java +++ b/android_webview/nonembedded/java/src/org/chromium/android_webview/devui/util/NavigationMenuHelper.java
@@ -3,44 +3,33 @@ // found in the LICENSE file. package org.chromium.android_webview.devui.util; +import android.app.Activity; import android.content.Intent; import android.os.Build; import android.provider.Settings; import android.view.Menu; import android.view.MenuItem; -import androidx.fragment.app.Fragment; import androidx.fragment.app.FragmentActivity; -import androidx.fragment.app.FragmentManager; -import androidx.fragment.app.FragmentTransaction; -import org.chromium.android_webview.devui.CrashesListFragment; -import org.chromium.android_webview.devui.FlagsFragment; -import org.chromium.android_webview.devui.HomeFragment; import org.chromium.android_webview.devui.R; /** - * Helper class for navigation menu between activities. - * - * TODO(crbug.com/1017532) should be replaced with a navigation drawer. + * Helper class for menu to access external tools. Built-in tools should be handled by Fragments in + * the MainActivity. */ public final class NavigationMenuHelper { /** * Inflate the navigation menu in the given {@code activity} options menu. * - * This should be called inside {@link android.app.Activity#onCreateOptionsMenu} or - * {@link Fragment#onCreateOptionsMenu}. + * This should be called inside {@link Activity#onCreateOptionsMenu} or + * {@link android.support.v4.app.Fragment#onCreateOptionsMenu}. */ - public static void inflate(FragmentActivity activity, Menu menu) { - activity.getMenuInflater().inflate(R.menu.navigation_menu, menu); - - // Switching WebView providers is possible only from API >= 24. + public static void inflate(Activity activity, Menu menu) { if (Build.VERSION.SDK_INT < Build.VERSION_CODES.N) { - MenuItem item = menu.findItem(R.id.nav_menu_switch_provider); - item.setVisible(false); - // No need to call Activity#invalidateOptionsMenu() since this method should be called - // inside Activity#onCreateOptionsMenu(). + return; } + activity.getMenuInflater().inflate(R.menu.navigation_menu, menu); } /** @@ -50,25 +39,12 @@ * @return {@code true} if the item selection event is consumed. */ public static boolean onOptionsItemSelected(FragmentActivity activity, MenuItem item) { - Fragment fragment = null; - if (item.getItemId() == R.id.nav_menu_crash_ui) { - fragment = new CrashesListFragment(); - } else if (item.getItemId() == R.id.nav_menu_flags_ui) { - fragment = new FlagsFragment(); - } else if (item.getItemId() == R.id.nav_menu_main_ui) { - fragment = new HomeFragment(); - } else if (item.getItemId() == R.id.nav_menu_switch_provider + if (item.getItemId() == R.id.nav_menu_switch_provider && Build.VERSION.SDK_INT >= Build.VERSION_CODES.N) { activity.startActivity(new Intent(Settings.ACTION_WEBVIEW_SETTINGS)); return true; } - if (fragment == null) return false; - - FragmentManager fm = activity.getSupportFragmentManager(); - FragmentTransaction transaction = fm.beginTransaction(); - transaction.replace(R.id.content_fragment, fragment); - transaction.commit(); - return true; + return false; } // Do not instantiate this class.
diff --git a/android_webview/test/embedded_test_server/aw_embedded_test_server.cc b/android_webview/test/embedded_test_server/aw_embedded_test_server.cc index a71bfe7..51f0e7c 100644 --- a/android_webview/test/embedded_test_server/aw_embedded_test_server.cc +++ b/android_webview/test/embedded_test_server/aw_embedded_test_server.cc
@@ -156,11 +156,16 @@ bool header_exist = false; if (query.find("header") != query.end()) { + // TODO(thakis): It looks like the break in the loop should be in the if. + // Check and fix. +#pragma GCC diagnostic push +#pragma GCC diagnostic ignored "-Wunreachable-code" for (const auto& header : query.at("header")) { if (request.headers.find(header) != request.headers.end()) header_exist = true; break; } +#pragma GCC diagnostic pop } std::string decoded_resource;
diff --git a/ash/shelf/contextual_tooltip.cc b/ash/shelf/contextual_tooltip.cc index 57694f6..87e886b 100644 --- a/ash/shelf/contextual_tooltip.cc +++ b/ash/shelf/contextual_tooltip.cc
@@ -47,8 +47,8 @@ std::string TooltipTypeToString(TooltipType type) { switch (type) { - case TooltipType::kDragHandle: - return "drag_handle"; + case TooltipType::kInAppToHome: + return "in_app_to_home"; case TooltipType::kBackGesture: return "back_gesture"; case TooltipType::kHomeToOverview: @@ -108,7 +108,7 @@ return false; } - if (type == TooltipType::kDragHandle && + if (type == TooltipType::kInAppToHome && g_drag_handle_nudge_disabled_for_hidden_shelf) { set_recheck_delay(base::TimeDelta()); return false; @@ -134,14 +134,14 @@ // interval. if (type == TooltipType::kBackGesture) { if (!g_drag_handle_nudge_disabled_for_hidden_shelf && - ShouldShowNudge(prefs, TooltipType::kDragHandle, nullptr)) { + ShouldShowNudge(prefs, TooltipType::kInAppToHome, nullptr)) { set_recheck_delay(kMinIntervalBetweenBackAndDragHandleNudge); return false; } // Verify that drag handle nudge has been shown at least a minute ago. const base::Time drag_handle_nudge_last_shown_time = - GetLastShownTime(prefs, TooltipType::kDragHandle); + GetLastShownTime(prefs, TooltipType::kInAppToHome); if (!drag_handle_nudge_last_shown_time.is_null()) { const base::TimeDelta time_since_drag_handle_nudge = GetTime() - drag_handle_nudge_last_shown_time; @@ -156,7 +156,7 @@ // Make sure that drag handle nudge is not shown within a minute of back // gesture nudge. - if (type == TooltipType::kDragHandle) { + if (type == TooltipType::kInAppToHome) { if (g_back_gesture_nudge_showing) { set_recheck_delay(kMinIntervalBetweenBackAndDragHandleNudge); return false;
diff --git a/ash/shelf/contextual_tooltip.h b/ash/shelf/contextual_tooltip.h index 4f29752..0b780da 100644 --- a/ash/shelf/contextual_tooltip.h +++ b/ash/shelf/contextual_tooltip.h
@@ -16,9 +16,9 @@ // Enumeration of all contextual tooltips. enum class TooltipType { - kDragHandle, kBackGesture, kHomeToOverview, + kInAppToHome, }; // Maximum number of times a user can be shown a contextual nudge if the user
diff --git a/ash/shelf/contextual_tooltip_unittest.cc b/ash/shelf/contextual_tooltip_unittest.cc index 11da8cb..334b169 100644 --- a/ash/shelf/contextual_tooltip_unittest.cc +++ b/ash/shelf/contextual_tooltip_unittest.cc
@@ -69,16 +69,16 @@ // Checks that nudges are not shown when the feature flag is disabled. TEST_P(ContextualTooltipDisabledTest, FeatureFlagDisabled) { EXPECT_FALSE(contextual_tooltip::ShouldShowNudge( - GetPrefService(), TooltipType::kDragHandle, nullptr)); + GetPrefService(), TooltipType::kInAppToHome, nullptr)); } TEST_P(ContextualTooltipTest, ShouldShowPersistentDragHandleNudge) { base::TimeDelta recheck_delay; EXPECT_TRUE(contextual_tooltip::ShouldShowNudge( - GetPrefService(), TooltipType::kDragHandle, &recheck_delay)); + GetPrefService(), TooltipType::kInAppToHome, &recheck_delay)); EXPECT_TRUE(recheck_delay.is_zero()); EXPECT_TRUE(contextual_tooltip::GetNudgeTimeout(GetPrefService(), - TooltipType::kDragHandle) + TooltipType::kInAppToHome) .is_zero()); } @@ -88,12 +88,12 @@ for (int shown_count = 1; shown_count < contextual_tooltip::kNotificationLimit; shown_count++) { contextual_tooltip::HandleNudgeShown(GetPrefService(), - TooltipType::kDragHandle); + TooltipType::kInAppToHome); clock()->Advance(contextual_tooltip::kMinInterval); EXPECT_TRUE(contextual_tooltip::ShouldShowNudge( - GetPrefService(), TooltipType::kDragHandle, nullptr)); + GetPrefService(), TooltipType::kInAppToHome, nullptr)); EXPECT_EQ(contextual_tooltip::GetNudgeTimeout(GetPrefService(), - TooltipType::kDragHandle), + TooltipType::kInAppToHome), contextual_tooltip::kNudgeShowDuration); } } @@ -102,32 +102,32 @@ // since the last time it was shown but not before the time interval has passed. TEST_P(ContextualTooltipTest, ShouldShowTimedDragHandleNudge) { contextual_tooltip::HandleNudgeShown(GetPrefService(), - TooltipType::kDragHandle); + TooltipType::kInAppToHome); base::TimeDelta recheck_delay; for (int shown_count = 1; shown_count < contextual_tooltip::kNotificationLimit; shown_count++) { EXPECT_FALSE(contextual_tooltip::ShouldShowNudge( - GetPrefService(), TooltipType::kDragHandle, &recheck_delay)); + GetPrefService(), TooltipType::kInAppToHome, &recheck_delay)); EXPECT_EQ(contextual_tooltip::kMinInterval, recheck_delay); clock()->Advance(contextual_tooltip::kMinInterval / 2); EXPECT_FALSE(contextual_tooltip::ShouldShowNudge( - GetPrefService(), TooltipType::kDragHandle, &recheck_delay)); + GetPrefService(), TooltipType::kInAppToHome, &recheck_delay)); EXPECT_EQ( contextual_tooltip::kMinInterval - contextual_tooltip::kMinInterval / 2, recheck_delay); clock()->Advance(contextual_tooltip::kMinInterval / 2); EXPECT_TRUE(contextual_tooltip::ShouldShowNudge( - GetPrefService(), TooltipType::kDragHandle, nullptr)); + GetPrefService(), TooltipType::kInAppToHome, nullptr)); contextual_tooltip::HandleNudgeShown(GetPrefService(), - TooltipType::kDragHandle); + TooltipType::kInAppToHome); } clock()->Advance(contextual_tooltip::kMinInterval); EXPECT_FALSE(contextual_tooltip::ShouldShowNudge( - GetPrefService(), TooltipType::kDragHandle, &recheck_delay)); + GetPrefService(), TooltipType::kInAppToHome, &recheck_delay)); EXPECT_TRUE(recheck_delay.is_zero()); EXPECT_EQ(contextual_tooltip::GetNudgeTimeout(GetPrefService(), - TooltipType::kDragHandle), + TooltipType::kInAppToHome), contextual_tooltip::kNudgeShowDuration); } @@ -135,16 +135,16 @@ // |kSuccessLimit|, the corresponding nudge should not be shown. TEST_P(ContextualTooltipTest, ShouldNotShowNudgeAfterSuccessLimit) { EXPECT_TRUE(contextual_tooltip::ShouldShowNudge( - GetPrefService(), TooltipType::kDragHandle, nullptr)); + GetPrefService(), TooltipType::kInAppToHome, nullptr)); for (int success_count = 0; success_count < contextual_tooltip::kSuccessLimit; success_count++) { contextual_tooltip::HandleGesturePerformed(GetPrefService(), - TooltipType::kDragHandle); + TooltipType::kInAppToHome); } base::TimeDelta recheck_delay; EXPECT_FALSE(contextual_tooltip::ShouldShowNudge( - GetPrefService(), TooltipType::kDragHandle, &recheck_delay)); + GetPrefService(), TooltipType::kInAppToHome, &recheck_delay)); EXPECT_TRUE(recheck_delay.is_zero()); } @@ -153,7 +153,7 @@ TEST_P(ContextualTooltipTest, DoNotShowBackGestureNudgeIfDragHandleNudgeIsExpected) { EXPECT_TRUE(contextual_tooltip::ShouldShowNudge( - GetPrefService(), TooltipType::kDragHandle, nullptr)); + GetPrefService(), TooltipType::kInAppToHome, nullptr)); // The drag handle nudge is expected to show, so back gesture nudge should not // be shown at the same time. @@ -166,7 +166,7 @@ // After the nudge is shown, back gesture should remain hidden until // sufficient amount of time passes. contextual_tooltip::HandleNudgeShown(GetPrefService(), - TooltipType::kDragHandle); + TooltipType::kInAppToHome); EXPECT_FALSE(contextual_tooltip::ShouldShowNudge( GetPrefService(), TooltipType::kBackGesture, &recheck_delay)); @@ -199,7 +199,7 @@ // handle would normally be available. TEST_P(ContextualTooltipTest, AllowBackGestureForHiddenShelf) { EXPECT_TRUE(contextual_tooltip::ShouldShowNudge( - GetPrefService(), TooltipType::kDragHandle, nullptr)); + GetPrefService(), TooltipType::kInAppToHome, nullptr)); // The drag handle nudge is expected to show, so back gesture nudge should not // be shown at the same time. @@ -210,14 +210,14 @@ // gesture nudge should be allowed. contextual_tooltip::SetDragHandleNudgeDisabledForHiddenShelf(true); EXPECT_FALSE(contextual_tooltip::ShouldShowNudge( - GetPrefService(), TooltipType::kDragHandle, nullptr)); + GetPrefService(), TooltipType::kInAppToHome, nullptr)); EXPECT_TRUE(contextual_tooltip::ShouldShowNudge( GetPrefService(), TooltipType::kBackGesture, nullptr)); // Disallow back gesture nudge if the shelf becomes visible. contextual_tooltip::SetDragHandleNudgeDisabledForHiddenShelf(false); EXPECT_TRUE(contextual_tooltip::ShouldShowNudge( - GetPrefService(), TooltipType::kDragHandle, nullptr)); + GetPrefService(), TooltipType::kInAppToHome, nullptr)); EXPECT_FALSE(contextual_tooltip::ShouldShowNudge( GetPrefService(), TooltipType::kBackGesture, nullptr)); } @@ -227,7 +227,7 @@ TEST_P(ContextualTooltipTest, DoNotShowDragHandleNudgeIfBackGestureNudgeIsShown) { EXPECT_TRUE(contextual_tooltip::ShouldShowNudge( - GetPrefService(), TooltipType::kDragHandle, nullptr)); + GetPrefService(), TooltipType::kInAppToHome, nullptr)); // Drag handle nudge not allowed if back gesture is showing. contextual_tooltip::SetDragHandleNudgeDisabledForHiddenShelf(true); @@ -236,7 +236,7 @@ base::TimeDelta recheck_delay; EXPECT_FALSE(contextual_tooltip::ShouldShowNudge( - GetPrefService(), TooltipType::kDragHandle, &recheck_delay)); + GetPrefService(), TooltipType::kInAppToHome, &recheck_delay)); EXPECT_EQ(contextual_tooltip::kMinIntervalBetweenBackAndDragHandleNudge, recheck_delay); @@ -248,7 +248,7 @@ recheck_delay = base::TimeDelta(); EXPECT_FALSE(contextual_tooltip::ShouldShowNudge( - GetPrefService(), TooltipType::kDragHandle, &recheck_delay)); + GetPrefService(), TooltipType::kInAppToHome, &recheck_delay)); EXPECT_EQ(contextual_tooltip::kMinIntervalBetweenBackAndDragHandleNudge, recheck_delay); @@ -256,11 +256,11 @@ clock()->Advance( contextual_tooltip::kMinIntervalBetweenBackAndDragHandleNudge / 2); EXPECT_FALSE(contextual_tooltip::ShouldShowNudge( - GetPrefService(), TooltipType::kDragHandle, &recheck_delay)); + GetPrefService(), TooltipType::kInAppToHome, &recheck_delay)); clock()->Advance(recheck_delay); EXPECT_TRUE(contextual_tooltip::ShouldShowNudge( - GetPrefService(), TooltipType::kDragHandle, nullptr)); + GetPrefService(), TooltipType::kInAppToHome, nullptr)); } } // namespace contextual_tooltip
diff --git a/ash/shelf/drag_handle.cc b/ash/shelf/drag_handle.cc index c52bcbe..5b3d125ef 100644 --- a/ash/shelf/drag_handle.cc +++ b/ash/shelf/drag_handle.cc
@@ -26,35 +26,35 @@ constexpr int kVerticalClickboxPadding = 15; // Drag handle translation distance for the first part of nudge animation. -constexpr int kDragHandleNudgeVerticalMarginRise = -4; +constexpr int kInAppToHomeNudgeVerticalMarginRise = -4; // Drag handle translation distance for the second part of nudge animation. -constexpr int kDragHandleVerticalMarginDrop = 10; +constexpr int kInAppToHomeVerticalMarginDrop = 10; // Drag handle contextual nudge text box translation distance for the nudge // animation at the end. -constexpr int kDragHandleNudgeVerticalMarginDrop = 8; +constexpr int kInAppToHomeNudgeVerticalMarginDrop = 8; // Animation time for each translation of drag handle to show contextual nudge. -constexpr base::TimeDelta kDragHandleAnimationTime = +constexpr base::TimeDelta kInAppToHomeAnimationTime = base::TimeDelta::FromMilliseconds(300); // Animation time to return drag handle to original position after hiding // contextual nudge. -constexpr base::TimeDelta kDragHandleHideAnimationDuration = +constexpr base::TimeDelta kInAppToHomeHideAnimationDuration = base::TimeDelta::FromMilliseconds(600); // Animation time to return drag handle to original position after the user taps // to hide the contextual nudge. -constexpr base::TimeDelta kDragHandleHideOnTapAnimationDuration = +constexpr base::TimeDelta kInAppToHomeHideOnTapAnimationDuration = base::TimeDelta::FromMilliseconds(100); // Delay between animating drag handle and tooltip opacity. -constexpr base::TimeDelta kDragHandleNudgeOpacityDelay = +constexpr base::TimeDelta kInAppToHomeNudgeOpacityDelay = base::TimeDelta::FromMilliseconds(500); // Fade in time for drag handle nudge tooltip. -constexpr base::TimeDelta kDragHandleNudgeOpacityAnimationDuration = +constexpr base::TimeDelta kInAppToHomeNudgeOpacityAnimationDuration = base::TimeDelta::FromMilliseconds(200); // Delay before animating the drag handle and showing the drag handle nudge. @@ -118,7 +118,7 @@ PrefService* pref = Shell::Get()->session_controller()->GetLastActiveUserPrefService(); base::TimeDelta nudge_duration = contextual_tooltip::GetNudgeTimeout( - pref, contextual_tooltip::TooltipType::kDragHandle); + pref, contextual_tooltip::TooltipType::kInAppToHome); AnimateDragHandleShow(); ShowDragHandleTooltip(); @@ -129,7 +129,7 @@ false /*hidden_by_tap*/)); } contextual_tooltip::HandleNudgeShown( - pref, contextual_tooltip::TooltipType::kDragHandle); + pref, contextual_tooltip::TooltipType::kInAppToHome); return true; } @@ -248,20 +248,20 @@ ui::LayerAnimator* transform_animator = drag_handle_nudge_->GetWidget()->GetLayer()->GetAnimator(); transform_animator->SchedulePauseForProperties( - kDragHandleAnimationTime, ui::LayerAnimationElement::TRANSFORM); + kInAppToHomeAnimationTime, ui::LayerAnimationElement::TRANSFORM); // Enqueue transform animation to start after pause. ui::ScopedLayerAnimationSettings transform_animation_settings( transform_animator); transform_animation_settings.SetTweenType(gfx::Tween::FAST_OUT_LINEAR_IN); transform_animation_settings.SetTransitionDuration( - kDragHandleAnimationTime); + kInAppToHomeAnimationTime); transform_animation_settings.SetPreemptionStrategy( ui::LayerAnimator::ENQUEUE_NEW_ANIMATION); // gfx::Transform translate; gfx::Transform translate; - translate.Translate(0, kDragHandleNudgeVerticalMarginDrop); + translate.Translate(0, kInAppToHomeNudgeVerticalMarginDrop); drag_handle_nudge_->GetWidget()->GetLayer()->SetTransform(translate); } @@ -271,7 +271,7 @@ ui::LayerAnimator* opacity_animator = drag_handle_nudge_->label()->layer()->GetAnimator(); opacity_animator->SchedulePauseForProperties( - kDragHandleNudgeOpacityDelay, ui::LayerAnimationElement::OPACITY); + kInAppToHomeNudgeOpacityDelay, ui::LayerAnimationElement::OPACITY); // Enqueue opacity animation to start after pause. ui::ScopedLayerAnimationSettings opacity_animation_settings( @@ -280,7 +280,7 @@ ui::LayerAnimator::ENQUEUE_NEW_ANIMATION); opacity_animation_settings.SetTweenType(gfx::Tween::LINEAR); opacity_animation_settings.SetTransitionDuration( - kDragHandleNudgeOpacityAnimationDuration); + kInAppToHomeNudgeOpacityAnimationDuration); drag_handle_nudge_->label()->layer()->SetOpacity(1.0f); } } @@ -288,8 +288,8 @@ void DragHandle::HideDragHandleNudgeHelper(bool hidden_by_tap) { ScheduleDragHandleTranslationAnimation( 0, - hidden_by_tap ? kDragHandleHideOnTapAnimationDuration - : kDragHandleHideAnimationDuration, + hidden_by_tap ? kInAppToHomeHideOnTapAnimationDuration + : kInAppToHomeHideAnimationDuration, hidden_by_tap ? gfx::Tween::FAST_OUT_LINEAR_IN : gfx::Tween::FAST_OUT_SLOW_IN, ui::LayerAnimator::IMMEDIATELY_ANIMATE_TO_NEW_TARGET); @@ -303,8 +303,8 @@ ui::LayerAnimator::IMMEDIATELY_ANIMATE_TO_NEW_TARGET); opacity_animation_settings.SetTweenType(gfx::Tween::LINEAR); opacity_animation_settings.SetTransitionDuration( - hidden_by_tap ? kDragHandleHideOnTapAnimationDuration - : kDragHandleNudgeOpacityAnimationDuration); + hidden_by_tap ? kInAppToHomeHideOnTapAnimationDuration + : kInAppToHomeNudgeOpacityAnimationDuration); // Register an animation observer to close the tooltip widget once the label // opacity is animated to 0 as the widget will no longer be needed after @@ -323,11 +323,11 @@ // animations while the second step uses |ENQUEUE_NEW_ANIMATION| so it runs // after the first animation. ScheduleDragHandleTranslationAnimation( - kDragHandleNudgeVerticalMarginRise, kDragHandleAnimationTime, + kInAppToHomeNudgeVerticalMarginRise, kInAppToHomeAnimationTime, gfx::Tween::FAST_OUT_SLOW_IN, ui::LayerAnimator::IMMEDIATELY_ANIMATE_TO_NEW_TARGET); ScheduleDragHandleTranslationAnimation( - kDragHandleVerticalMarginDrop, kDragHandleAnimationTime, + kInAppToHomeVerticalMarginDrop, kInAppToHomeAnimationTime, gfx::Tween::FAST_OUT_LINEAR_IN, ui::LayerAnimator::ENQUEUE_NEW_ANIMATION); }
diff --git a/ash/shelf/shelf_app_button.cc b/ash/shelf/shelf_app_button.cc index 0fb8be5f..3503eb1 100644 --- a/ash/shelf/shelf_app_button.cc +++ b/ash/shelf/shelf_app_button.cc
@@ -38,6 +38,7 @@ #include "ui/views/controls/highlight_path_generator.h" #include "ui/views/controls/image_view.h" #include "ui/views/painter.h" +#include "ui/views/style/platform_style.h" namespace { @@ -336,6 +337,14 @@ // Do not set a clip, allow the ink drop to burst out. views::InstallEmptyHighlightPathGenerator(this); + SetFocusBehavior(FocusBehavior::ALWAYS); + SetInstallFocusRingOnFocus(true); + focus_ring()->SetColor(ShelfConfig::Get()->shelf_focus_border_color()); + // The focus ring should have an inset of half the focus border thickness, so + // the parent view won't clip it. + focus_ring()->SetPathGenerator( + std::make_unique<views::RoundRectHighlightPathGenerator>( + gfx::Insets(views::PlatformStyle::kFocusHaloThickness / 2, 0), 0)); } ShelfAppButton::~ShelfAppButton() { @@ -699,6 +708,7 @@ indicator_->SetBoundsRect(indicator_bounds); UpdateState(); + focus_ring()->Layout(); } void ShelfAppButton::ChildPreferredSizeChanged(views::View* child) {
diff --git a/ash/shelf/shelf_layout_manager.cc b/ash/shelf/shelf_layout_manager.cc index c80d4e3a..f10a35f 100644 --- a/ash/shelf/shelf_layout_manager.cc +++ b/ash/shelf/shelf_layout_manager.cc
@@ -615,7 +615,7 @@ if (in_app_shelf && in_tablet_mode) { if (contextual_tooltip::ShouldShowNudge( Shell::Get()->session_controller()->GetLastActiveUserPrefService(), - contextual_tooltip::TooltipType::kDragHandle, nullptr)) { + contextual_tooltip::TooltipType::kInAppToHome, nullptr)) { shelf_widget_->ScheduleShowDragHandleNudge(); } else if (!shelf_widget_->GetDragHandle()->ShowingNudge()) { // If the drag handle is not yet shown, HideDragHandleNudge() should @@ -2344,7 +2344,7 @@ window_drag_result == ShelfWindowDragResult::kGoToHomeScreen) { contextual_tooltip::HandleGesturePerformed( Shell::Get()->session_controller()->GetActivePrefService(), - contextual_tooltip::TooltipType::kDragHandle); + contextual_tooltip::TooltipType::kInAppToHome); } base::Optional<InAppShelfGestures> gesture_to_record =
diff --git a/ash/strings/ash_strings_bn.xtb b/ash/strings/ash_strings_bn.xtb index 49f6659..4a6925f 100644 --- a/ash/strings/ash_strings_bn.xtb +++ b/ash/strings/ash_strings_bn.xtb
@@ -78,7 +78,7 @@ <translation id="1919743966458266018">কার্য পরিচালক খোলার শর্টকাটটি পরিবর্তিত হয়েছে। <ph name="OLD_SHORTCUT" /> এর পরিবর্তে দয়া করে <ph name="NEW_SHORTCUT" /> ব্যবহার করুন।</translation> <translation id="1923539912171292317">স্বয়ংক্রিয় ক্লিকগুলি</translation> <translation id="1928739107511554905">আপডেট পেতে, অ্যাটাচ করা কীবোর্ডের মাধ্যমে আপনার Chromebook রিস্টার্ট করার জন্য টাচস্ক্রিন ব্যবহার করুন।</translation> -<translation id="1951012854035635156">সহায়ক</translation> +<translation id="1951012854035635156">Assistant</translation> <translation id="1957803754585243749">০°</translation> <translation id="1957958912175573503">আপনার ভাষা সেট করুন</translation> <translation id="1962969542251276847">স্ক্রিন লক করুন</translation>
diff --git a/ash/strings/ash_strings_ca.xtb b/ash/strings/ash_strings_ca.xtb index 44e84d0..224e4ad 100644 --- a/ash/strings/ash_strings_ca.xtb +++ b/ash/strings/ash_strings_ca.xtb
@@ -488,7 +488,7 @@ <translation id="735745346212279324">VPN desconnectada</translation> <translation id="7377169924702866686">Bloq Maj està activat.</translation> <translation id="7378594059915113390">Controls multimèdia</translation> -<translation id="7398254312354928459">S'ha canviat la connexió de xarxa</translation> +<translation id="7398254312354928459">S'ha canviat la connexió a la xarxa</translation> <translation id="7405710164030118432">Introdueix el codi d'accés parental de Family Link per desbloquejar el dispositiu</translation> <translation id="742594950370306541">La càmera s'està utilitzant.</translation> <translation id="743058460480092004">La càmera i el micròfon s'estan utilitzant.</translation>
diff --git a/ash/strings/ash_strings_hi.xtb b/ash/strings/ash_strings_hi.xtb index f8c91b7f..8c65043 100644 --- a/ash/strings/ash_strings_hi.xtb +++ b/ash/strings/ash_strings_hi.xtb
@@ -78,7 +78,7 @@ <translation id="1919743966458266018">काम के प्रबंधक को खोलने का शॉर्टकट बदल गया है. कृपया <ph name="OLD_SHORTCUT" /> के बजाय <ph name="NEW_SHORTCUT" /> का उपयोग करें.</translation> <translation id="1923539912171292317">अपने-आप क्लिक</translation> <translation id="1928739107511554905">अपडेट पाने के लिए, अटैच किए गए कीबोर्ड से अपने Chromebook को रीस्टार्ट करने के लिए टचस्क्रीन का इस्तेमाल करें.</translation> -<translation id="1951012854035635156">सहायक</translation> +<translation id="1951012854035635156">Assistant</translation> <translation id="1957803754585243749">0°</translation> <translation id="1957958912175573503">अपनी भाषा सेट करें</translation> <translation id="1962969542251276847">लॉक स्क्रीन</translation> @@ -252,6 +252,7 @@ <translation id="4072264167173457037">मध्यम सिग्नल</translation> <translation id="4112140312785995938">पीछे जाएं</translation> <translation id="4129129681837227511">अपनी लॉक स्क्रीन पर सूचनाएं देखने की सेटिंग बदलने के लिए स्क्रीन अनलॉक करें</translation> +<translation id="4144413954005649103">दायां क्लिक करने या दबाकर रखने पर, Assistant आपको स्क्रीन पर चुनी गई सामग्री से जुड़ी जानकारी दिखाती है.</translation> <translation id="4146833061457621061">गाने चलाओ</translation> <translation id="4149156641122542261"><ph name="DEVICE_TYPE" /> को <ph name="DOMAIN" /> प्रबंधित करता है</translation> <translation id="4181841719683918333">भाषाएं</translation> @@ -399,6 +400,7 @@ <translation id="615957422585914272">ऑन-स्क्रीन कीबोर्ड दिखाएं</translation> <translation id="6164005077879661055">'निगरानी में रखे गए इस उपयोगकर्ता' को हटाने के बाद, निगरानी में रखे गए उपयोगकर्ता से जुड़ीं सभी फ़ाइलें और 'स्थानीय डेटा' हमेशा के लिए मिट जाएंगे. 'निगरानी में रखे गए इस उपयोगकर्ता' की देखी गईं वेबसाइटें और सेटिंग <ph name="MANAGEMENT_URL" /> पर प्रबंधक को अब भी दिखेंगी.</translation> <translation id="6165508094623778733">ज़्यादा जानें</translation> +<translation id="6236290670123303279">सेटिंग प्रबंधित करें</translation> <translation id="6237231532760393653">1X</translation> <translation id="6254629735336163724">क्षैतिज पर लॉक किया गया</translation> <translation id="6259254695169772643">चुनने के लिए अपने स्टाइलस का इस्तेमाल करें</translation> @@ -440,6 +442,7 @@ <translation id="6669268301501499730">चालू है</translation> <translation id="6670153871843998651">डेस्क 3</translation> <translation id="6691659475504239918">Search+Shift+H</translation> +<translation id="6692996468359469499">चुनी हुई सामग्री से जुड़ी जानकारी पाएं</translation> <translation id="6696025732084565524">आपके अलग किए जाने लायक कीबोर्ड में एक महत्वपूर्ण अपडेट ज़रूरी है</translation> <translation id="6700713906295497288">IME मेन्यू बटन</translation> <translation id="6713285437468012787">ब्लूटूथ डिवाइस "<ph name="DEVICE_NAME" />" यु्ग्मित हो गया है और अब वह सभी उपयोगकर्ताओं के लिए उपलब्ध है. आप सेटिंग का उपयोग करके इस युग्मन को निकाल सकते हैं.</translation>
diff --git a/ash/strings/ash_strings_kn.xtb b/ash/strings/ash_strings_kn.xtb index 6d831ab..0f7bdeb 100644 --- a/ash/strings/ash_strings_kn.xtb +++ b/ash/strings/ash_strings_kn.xtb
@@ -78,7 +78,7 @@ <translation id="1919743966458266018">ಕಾರ್ಯ ನಿರ್ವಾಹಕರನ್ನು ತೆರೆಯಲು ಶಾರ್ಟ್ಕಟ್ ಬದಲಾಗಿದೆ. ದಯವಿಟ್ಟು <ph name="OLD_SHORTCUT" /> ಬದಲಿಗೆ <ph name="NEW_SHORTCUT" /> ಬಳಸಿ.</translation> <translation id="1923539912171292317">ಸ್ವಯಂಚಾಲಿತ ಕ್ಲಿಕ್ಗಳು</translation> <translation id="1928739107511554905">ಅಪ್ಡೇಟ್ ಅನ್ನು ಪಡೆಯಲು, ಕೀಬೋರ್ಡ್ ಲಗತ್ತಿನೊಂದಿಗೆ ನಿಮ್ಮ Chromebook ಅನ್ನು ಮರುಪ್ರಾರಂಭಿಸಲು ಟಚ್ಸ್ಕ್ರೀನ್ ಅನ್ನು ಬಳಸಿ.</translation> -<translation id="1951012854035635156">ಸಹಾಯಕ</translation> +<translation id="1951012854035635156">Assistant</translation> <translation id="1957803754585243749">0°</translation> <translation id="1957958912175573503">ನಿಮ್ಮ ಭಾಷೆಯನ್ನು ಹೊಂದಿಸಿ</translation> <translation id="1962969542251276847">ಪರದೆಯನ್ನು ಲಾಕ್ ಮಾಡಿ</translation>
diff --git a/ash/strings/ash_strings_ml.xtb b/ash/strings/ash_strings_ml.xtb index a973916..f99844b 100644 --- a/ash/strings/ash_strings_ml.xtb +++ b/ash/strings/ash_strings_ml.xtb
@@ -78,7 +78,7 @@ <translation id="1919743966458266018">ടാസ്ക് മാനേജർ തുറക്കാനുള്ള കുറുക്കുവഴി മാറ്റി. <ph name="OLD_SHORTCUT" /> എന്നതിന് പകരം <ph name="NEW_SHORTCUT" /> ഉപയോഗിക്കുക.</translation> <translation id="1923539912171292317">യാന്ത്രിക ക്ലിക്കുകൾ</translation> <translation id="1928739107511554905">അപ്ഡേറ്റ് നേടാൻ, അറ്റാച്ച് ചെയ്ത കീബോർഡിനൊപ്പം Chromebook റീസ്റ്റാർട്ട് ചെയ്യാൻ ടച്ച്സ്ക്രീൻ ഉപയോഗിക്കുക.</translation> -<translation id="1951012854035635156">സഹായി</translation> +<translation id="1951012854035635156">Assistant</translation> <translation id="1957803754585243749">0°</translation> <translation id="1957958912175573503">നിങ്ങളുടെ ഭാഷ സജ്ജീകരിക്കുക</translation> <translation id="1962969542251276847">സ്ക്രീൻ ലോക്കുചെയ്യുക</translation>
diff --git a/ash/strings/ash_strings_mr.xtb b/ash/strings/ash_strings_mr.xtb index 771790de..600debab 100644 --- a/ash/strings/ash_strings_mr.xtb +++ b/ash/strings/ash_strings_mr.xtb
@@ -78,7 +78,7 @@ <translation id="1919743966458266018">टास्क मॅनेजर उघडण्याचा शॉर्टकट बदलला आहे. कृपया <ph name="OLD_SHORTCUT" /> ऐवजी <ph name="NEW_SHORTCUT" /> वापरा.</translation> <translation id="1923539912171292317">स्वयंचलित क्लिक</translation> <translation id="1928739107511554905">अपडेट करण्यासाठी, संलग्न केलेल्या कीबोर्डसह तुमचे Chromebook रीस्टार्ट करण्यासाठी टचस्क्रीन वापरा.</translation> -<translation id="1951012854035635156">साहाय्यक</translation> +<translation id="1951012854035635156">Assistant</translation> <translation id="1957803754585243749">0°</translation> <translation id="1957958912175573503">तुमची भाषा सेट करा</translation> <translation id="1962969542251276847">लॉक स्क्रीन</translation>
diff --git a/ash/strings/ash_strings_or.xtb b/ash/strings/ash_strings_or.xtb index 32dcf45c..38ea919 100644 --- a/ash/strings/ash_strings_or.xtb +++ b/ash/strings/ash_strings_or.xtb
@@ -78,7 +78,7 @@ <translation id="1919743966458266018">'ଟାସ୍କ୍ ମ୍ୟାନେଜର୍' ଖୋଲିବାକୁ ଥିବା ସର୍ଟ୍କଟ୍ଟି ବଦଳିଯାଇଛି। ଦୟାକରି <ph name="OLD_SHORTCUT" /> ପରିବର୍ତ୍ତେ <ph name="NEW_SHORTCUT" />ଟିକୁ ବ୍ୟବହାର କରନ୍ତୁ।</translation> <translation id="1923539912171292317">ସ୍ଵଚାଳିତ କ୍ଲିକ୍</translation> <translation id="1928739107511554905">ଅପ୍ଡେଟ୍ ପ୍ରାପ୍ତ କରିବା ପାଇଁ, କୀବୋର୍ଡ ସଂଲଗ୍ନ ଥିବା ଆପଣଙ୍କର Chromebook ରିଷ୍ଟାର୍ଟ କରିବାକୁ ଟଚ୍ସ୍କ୍ରିନ୍ର ବ୍ୟବହାର କରନ୍ତୁ।</translation> -<translation id="1951012854035635156">ସହାୟକ</translation> +<translation id="1951012854035635156">Assistant</translation> <translation id="1957803754585243749">0°</translation> <translation id="1957958912175573503">ଆପଣଙ୍କ ଭାଷା ସେଟ୍ କରନ୍ତୁ</translation> <translation id="1962969542251276847">ଲକ୍ ସ୍କ୍ରିନ୍</translation>
diff --git a/ash/strings/ash_strings_ta.xtb b/ash/strings/ash_strings_ta.xtb index b8e9b7a1..7c97282 100644 --- a/ash/strings/ash_strings_ta.xtb +++ b/ash/strings/ash_strings_ta.xtb
@@ -78,7 +78,7 @@ <translation id="1919743966458266018">செயல் நிர்வாகியைத் திறப்பதற்கான ஷார்ட்கட் மாற்றப்பட்டது. <ph name="OLD_SHORTCUT" /> க்குப் பதிலாக <ph name="NEW_SHORTCUT" /> ஐப் பயன்படுத்தவும்.</translation> <translation id="1923539912171292317">தன்னியக்க கிளிக்குகள்</translation> <translation id="1928739107511554905">புதுப்பிப்பைப் பெற, டச்ஸ்கிரீனைப் பயன்படுத்தி, விசைப்பலகை இணைக்கப்பட்ட உங்கள் Chromebookஐ மீண்டும் தொடங்கவும்.</translation> -<translation id="1951012854035635156">அசிஸ்டண்ட்</translation> +<translation id="1951012854035635156">Assistant</translation> <translation id="1957803754585243749">0°</translation> <translation id="1957958912175573503">எனது மொழியை அமை</translation> <translation id="1962969542251276847">லாக் ஸ்கிரீன்</translation>
diff --git a/ash/strings/ash_strings_te.xtb b/ash/strings/ash_strings_te.xtb index 6f689ee..15abdad 100644 --- a/ash/strings/ash_strings_te.xtb +++ b/ash/strings/ash_strings_te.xtb
@@ -78,7 +78,7 @@ <translation id="1919743966458266018">టాస్క్ మేనేజర్ను తెరిచే షార్ట్కట్ మార్చబడింది. దయచేసి <ph name="OLD_SHORTCUT" />కు బదులుగా <ph name="NEW_SHORTCUT" />ను ఉపయోగించండి.</translation> <translation id="1923539912171292317">స్వయంచాలక క్లిక్లు</translation> <translation id="1928739107511554905">అప్డేట్ను పొందడానికి, కీబోర్డ్ను అలానే జోడించి ఉంచి మీ Chromebookను పునఃప్రారంభించడం కోసం టచ్స్క్రీన్ను ఉపయోగించండి.</translation> -<translation id="1951012854035635156">సహాయకం</translation> +<translation id="1951012854035635156">Assistant</translation> <translation id="1957803754585243749">0°</translation> <translation id="1957958912175573503">మీ భాషని సెట్ చేయండి</translation> <translation id="1962969542251276847">స్క్రీన్ను లాక్ చేయి</translation>
diff --git a/ash/wm/gestures/back_gesture/back_gesture_contextual_nudge_controller_impl_unittest.cc b/ash/wm/gestures/back_gesture/back_gesture_contextual_nudge_controller_impl_unittest.cc index ba907cb..e5aa845 100644 --- a/ash/wm/gestures/back_gesture/back_gesture_contextual_nudge_controller_impl_unittest.cc +++ b/ash/wm/gestures/back_gesture/back_gesture_contextual_nudge_controller_impl_unittest.cc
@@ -59,9 +59,9 @@ contextual_tooltip::OverrideClockForTesting(&test_clock_); test_clock_.Advance(base::TimeDelta::FromSeconds(360)); contextual_tooltip::HandleNudgeShown( - user1_pref_service(), contextual_tooltip::TooltipType::kDragHandle); + user1_pref_service(), contextual_tooltip::TooltipType::kInAppToHome); contextual_tooltip::HandleNudgeShown( - user2_pref_service(), contextual_tooltip::TooltipType::kDragHandle); + user2_pref_service(), contextual_tooltip::TooltipType::kInAppToHome); test_clock_.Advance( contextual_tooltip::kMinIntervalBetweenBackAndDragHandleNudge * 2); @@ -240,7 +240,7 @@ tablet_mode_api.EnterTabletMode(); ASSERT_TRUE(contextual_tooltip::ShouldShowNudge( - user1_pref_service(), contextual_tooltip::TooltipType::kDragHandle, + user1_pref_service(), contextual_tooltip::TooltipType::kInAppToHome, nullptr)); std::unique_ptr<aura::Window> window = CreateTestWindow(); @@ -266,7 +266,7 @@ tablet_mode_api.EnterTabletMode(); ASSERT_TRUE(contextual_tooltip::ShouldShowNudge( - user1_pref_service(), contextual_tooltip::TooltipType::kDragHandle, + user1_pref_service(), contextual_tooltip::TooltipType::kInAppToHome, nullptr)); std::unique_ptr<aura::Window> window = CreateTestWindow(); @@ -276,7 +276,7 @@ nullptr)); contextual_tooltip::HandleNudgeShown( - user1_pref_service(), contextual_tooltip::TooltipType::kDragHandle); + user1_pref_service(), contextual_tooltip::TooltipType::kInAppToHome); clock()->Advance( contextual_tooltip::kMinIntervalBetweenBackAndDragHandleNudge); ASSERT_TRUE(nudge_controller()->auto_show_timer_for_testing()->IsRunning()); @@ -309,7 +309,7 @@ tablet_mode_api.EnterTabletMode(); clock()->Advance(contextual_tooltip::kMinInterval); contextual_tooltip::HandleNudgeShown( - user1_pref_service(), contextual_tooltip::TooltipType::kDragHandle); + user1_pref_service(), contextual_tooltip::TooltipType::kInAppToHome); clock()->Advance( contextual_tooltip::kMinIntervalBetweenBackAndDragHandleNudge);
diff --git a/ash/wm/overview/overview_item.cc b/ash/wm/overview/overview_item.cc index e64cbbc..2484990 100644 --- a/ash/wm/overview/overview_item.cc +++ b/ash/wm/overview/overview_item.cc
@@ -971,6 +971,12 @@ overview_session_->OnHighlightedItemClosed(this); } +void OverviewItem::OnWindowDidNotClose() { + // If the window failed to close reverse the opacity and transform animations. + AnimateOpacity(1.0, OVERVIEW_ANIMATION_CLOSE_OVERVIEW_ITEM); + overview_grid_->PositionWindows(/*animate=*/true); +} + void OverviewItem::ButtonPressed(views::Button* sender, const ui::Event& event) { DCHECK_EQ(sender, overview_item_view_->close_button());
diff --git a/ash/wm/overview/overview_item.h b/ash/wm/overview/overview_item.h index d1e2f32..092dc35 100644 --- a/ash/wm/overview/overview_item.h +++ b/ash/wm/overview/overview_item.h
@@ -201,6 +201,12 @@ void OnHighlightedViewActivated(); void OnHighlightedViewClosed(); + // Called when we try to close a window that is not closeable. The close + // animation happens before we try to call Widget::Close. This will get + // called after Widget::Close if the window was not closed, so we can reverse + // the close animation. + void OnWindowDidNotClose(); + // views::ButtonListener: void ButtonPressed(views::Button* sender, const ui::Event& event) override;
diff --git a/ash/wm/overview/scoped_overview_transform_window.cc b/ash/wm/overview/scoped_overview_transform_window.cc index fcce4da..7dee003 100644 --- a/ash/wm/overview/scoped_overview_transform_window.cc +++ b/ash/wm/overview/scoped_overview_transform_window.cc
@@ -454,10 +454,24 @@ event_targeting_blocker_map_.erase(transient_child); } +void ScopedOverviewTransformWindow::OnWindowDestroying(aura::Window* window) { + DCHECK_EQ(window, window_); + window->RemoveObserver(this); + window_has_closed_ = true; +} + void ScopedOverviewTransformWindow::CloseWidget() { aura::Window* parent_window = ::wm::GetTransientRoot(window_); - if (parent_window) - window_util::CloseWidgetForWindow(parent_window); + DCHECK(parent_window); + window_->AddObserver(this); + window_util::CloseWidgetForWindow(parent_window); + + if (window_has_closed_) + return; + + // Notify |overview_item_| the window failed to close. + window_->RemoveObserver(this); + overview_item_->OnWindowDidNotClose(); } // static
diff --git a/ash/wm/overview/scoped_overview_transform_window.h b/ash/wm/overview/scoped_overview_transform_window.h index 6a9baef..37d65b6 100644 --- a/ash/wm/overview/scoped_overview_transform_window.h +++ b/ash/wm/overview/scoped_overview_transform_window.h
@@ -15,6 +15,7 @@ #include "base/memory/weak_ptr.h" #include "base/optional.h" #include "ui/aura/client/transient_window_client_observer.h" +#include "ui/aura/window_observer.h" #include "ui/gfx/geometry/rect.h" #include "ui/gfx/geometry/rect_f.h" #include "ui/gfx/geometry/size.h" @@ -35,7 +36,8 @@ // fit in certain bounds. The window's state is restored when this object is // destroyed. class ASH_EXPORT ScopedOverviewTransformWindow - : public aura::client::TransientWindowClientObserver { + : public aura::client::TransientWindowClientObserver, + public aura::WindowObserver { public: // Overview windows have certain properties if their aspect ratio exceeds a // threshold. This enum keeps track of which category the window falls into, @@ -144,6 +146,9 @@ void OnTransientChildWindowRemoved(aura::Window* parent, aura::Window* transient_child) override; + // aura::WindowObserver: + void OnWindowDestroying(aura::Window* window) override; + aura::Window* window() const { return window_; } GridWindowFillMode type() const { return type_; } @@ -198,6 +203,10 @@ // splitview clipping overrides any top view inset clipping there may be. bool has_aspect_ratio_clipping_ = false; + // Flag which tracks if a call to CloseWidget() has actually closed |window_|. + // If true, notifies |overview_item_| to reverse some animations. + bool window_has_closed_ = false; + std::unique_ptr<ScopedOverviewHideWindows> hidden_transient_children_; base::WeakPtrFactory<ScopedOverviewTransformWindow> weak_ptr_factory_{this};
diff --git a/base/trace_event/memory_dump_manager.cc b/base/trace_event/memory_dump_manager.cc index a1ed2ab..0490e36 100644 --- a/base/trace_event/memory_dump_manager.cc +++ b/base/trace_event/memory_dump_manager.cc
@@ -268,6 +268,12 @@ return false; } +scoped_refptr<SequencedTaskRunner> +MemoryDumpManager::GetDumpThreadTaskRunner() { + base::AutoLock lock(lock_); + return GetOrCreateBgTaskRunnerLocked(); +} + scoped_refptr<base::SequencedTaskRunner> MemoryDumpManager::GetOrCreateBgTaskRunnerLocked() { lock_.AssertAcquired();
diff --git a/base/trace_event/memory_dump_manager.h b/base/trace_event/memory_dump_manager.h index 476d9cd..a01c5a1b 100644 --- a/base/trace_event/memory_dump_manager.h +++ b/base/trace_event/memory_dump_manager.h
@@ -143,6 +143,8 @@ dumper_registrations_ignored_for_testing_ = ignored; } + scoped_refptr<SequencedTaskRunner> GetDumpThreadTaskRunner(); + private: friend std::default_delete<MemoryDumpManager>; // For the testing instance. friend struct DefaultSingletonTraits<MemoryDumpManager>;
diff --git a/build/android/incremental_install/java/org/chromium/incrementalinstall/BootstrapApplication.java b/build/android/incremental_install/java/org/chromium/incrementalinstall/BootstrapApplication.java index 5b38242..f7003f2 100644 --- a/build/android/incremental_install/java/org/chromium/incrementalinstall/BootstrapApplication.java +++ b/build/android/incremental_install/java/org/chromium/incrementalinstall/BootstrapApplication.java
@@ -130,8 +130,9 @@ // Even when instrumentation is not enabled, ActivityThread uses a default // Instrumentation instance internally. We hook it here in order to hook into the // call to Instrumentation.onCreate(). - Reflect.setField(mActivityThread, "mInstrumentation", - new BootstrapInstrumentation(this)); + BootstrapInstrumentation bootstrapInstrumentation = new BootstrapInstrumentation(this); + populateInstrumenationFields(bootstrapInstrumentation); + Reflect.setField(mActivityThread, "mInstrumentation", bootstrapInstrumentation); // attachBaseContext() is called from ActivityThread#handleBindApplication() and // Application#mApplication is changed right after we return. Thus, we cannot swap @@ -188,14 +189,22 @@ Log.i(TAG, "Instantiating instrumentation " + realInstrumentationName); Instrumentation ret = (Instrumentation) Reflect.newInstance(Class.forName(realInstrumentationName)); + populateInstrumenationFields(ret); + return ret; + } + /** + * Sets important fields on a newly created Instrumentation object by copying them from the + * original Instrumentation instance. + */ + private void populateInstrumenationFields(Instrumentation target) + throws ReflectiveOperationException { // Initialize the fields that are set by Instrumentation.init(). String[] initFields = {"mAppContext", "mComponent", "mInstrContext", "mMessageQueue", "mThread", "mUiAutomationConnection", "mWatcher"}; for (String fieldName : initFields) { - Reflect.setField(ret, fieldName, Reflect.getField(mOrigInstrumentation, fieldName)); + Reflect.setField(target, fieldName, Reflect.getField(mOrigInstrumentation, fieldName)); } - return ret; } /**
diff --git a/build/config/android/internal_rules.gni b/build/config/android/internal_rules.gni index 582b7a1..40332f7 100644 --- a/build/config/android/internal_rules.gni +++ b/build/config/android/internal_rules.gni
@@ -3587,30 +3587,6 @@ _accumulated_public_deps += [ ":${target_name}__dex" ] } } - - if (!_is_java_binary) { - group(target_name) { - forward_variables_from(invoker, - [ - "assert_no_deps", - "data", - "data_deps", - "deps", - "visibility", - ]) - - # Export all of our steps as "public", so that all outputs can be used - # as inputs to other targets. - public_deps = _accumulated_public_deps - - if (defined(_analysis_public_deps)) { - if (!defined(data_deps)) { - data_deps = [] - } - data_deps += _analysis_public_deps - } - } - } } if (_is_java_binary) { @@ -3632,24 +3608,21 @@ _accumulated_public_deps += [ ":${target_name}__java_binary_script" ] } - if (_is_java_binary || - (_is_annotation_processor && !defined(_final_jar_path))) { - group(target_name) { - forward_variables_from(invoker, - [ - "assert_no_deps", - "data", - "deps", - "data_deps", - "visibility", - ]) - public_deps = _accumulated_public_deps - if (defined(_analysis_public_deps)) { - if (!defined(data_deps)) { - data_deps = [] - } - data_deps += _analysis_public_deps + group(target_name) { + forward_variables_from(invoker, + [ + "assert_no_deps", + "data", + "deps", + "data_deps", + "visibility", + ]) + public_deps = _accumulated_public_deps + if (defined(_analysis_public_deps)) { + if (!defined(data_deps)) { + data_deps = [] } + data_deps += _analysis_public_deps } } }
diff --git a/build/config/android/rules.gni b/build/config/android/rules.gni index 899444d3..49d6640 100644 --- a/build/config/android/rules.gni +++ b/build/config/android/rules.gni
@@ -3062,11 +3062,11 @@ _all_native_libs_deps = _native_libs_deps + _loadable_modules_deps + _secondary_abi_native_libs_deps if (_all_native_libs_deps != []) { - _native_libs_file_arg_dep = ":$_build_config_target" - _all_native_libs_deps += [ _native_libs_file_arg_dep ] + _native_libs_filearg_dep = ":$_build_config_target" + _all_native_libs_deps += [ _native_libs_filearg_dep ] if (!_is_bundle_module) { - _native_libs_file_arg = + _native_libs_filearg = "@FileArg($_rebased_build_config:native:libraries)" } } @@ -3184,7 +3184,7 @@ # All native libraries are side-loaded, so use a placeholder to force # the proper bitness for the app. _has_native_libs = - defined(invoker.native_libs_filearg) || _loadable_modules != [] + defined(_native_libs_filearg) || _loadable_modules != [] if (_has_native_libs && !defined(native_lib_placeholders)) { native_lib_placeholders = [ "libfix.crbug.384638.so" ] } @@ -3209,8 +3209,8 @@ packaged_resources_path = _arsc_resources_path } - if (defined(_native_libs_file_arg)) { - native_libs_filearg = _native_libs_file_arg + if (defined(_native_libs_filearg)) { + native_libs_filearg = _native_libs_filearg secondary_abi_native_libs_filearg = "@FileArg($_rebased_build_config:native:secondary_abi_libraries)" } output_apk_path = _final_apk_path @@ -3240,9 +3240,9 @@ if (_proguard_enabled) { args += [ "--show-proguard-warning" ] } - if (defined(_native_libs_file_arg)) { - args += [ "--native-libs=$_native_libs_file_arg" ] - deps += [ _native_libs_file_arg_dep ] + if (defined(_native_libs_filearg)) { + args += [ "--native-libs=$_native_libs_filearg" ] + deps += [ _native_libs_filearg_dep ] } if (_loadable_modules != []) { _rebased_loadable_modules =
diff --git a/build/config/compiler/BUILD.gn b/build/config/compiler/BUILD.gn index 36b5df6..4d36706 100644 --- a/build/config/compiler/BUILD.gn +++ b/build/config/compiler/BUILD.gn
@@ -1591,10 +1591,9 @@ # TODO(thakis): Enable this more often, https://crbug.com/346399 # use_libfuzzer: https://crbug.com/1063180 - # cros/arm has warnings in nacl code. if (!is_nacl && !use_libfuzzer && - (target_os == "chromeos" || target_os == "fuchsia" || - target_os == "linux")) { + (target_os == "android" || target_os == "chromeos" || + target_os == "fuchsia" || target_os == "linux")) { cflags += [ "-Wunreachable-code" ] }
diff --git a/build/fuchsia/test_runner.py b/build/fuchsia/test_runner.py index 492b05aa..18bc0fa6 100755 --- a/build/fuchsia/test_runner.py +++ b/build/fuchsia/test_runner.py
@@ -37,6 +37,14 @@ parser.add_argument('--test-launcher-retry-limit', help='Number of times that test suite will retry failing ' 'tests. This is multiplicative with --gtest_repeat.') + parser.add_argument( + '--test-launcher-shard-index', + type=int, + help='Index of this instance amongst swarming shards.') + parser.add_argument( + '--test-launcher-total-shards', + type=int, + help='Total number of swarming shards of this suite.') parser.add_argument('--gtest_break_on_failure', action='store_true', default=False, help='Should GTest break on failure; useful with ' @@ -112,6 +120,12 @@ if args.test_launcher_retry_limit: child_args.append( '--test-launcher-retry-limit=' + args.test_launcher_retry_limit) + if args.test_launcher_shard_index: + child_args.append( + '--test-launcher-shard-index=%d' % args.test_launcher_shard_index) + if args.test_launcher_total_shards: + child_args.append( + '--test-launcher-total-shards=%d' % args.test_launcher_total_shards) if args.gtest_break_on_failure: child_args.append('--gtest_break_on_failure') if args.test_launcher_summary_output:
diff --git a/chrome/android/chrome_java_sources.gni b/chrome/android/chrome_java_sources.gni index 500b084..a5417ad2 100644 --- a/chrome/android/chrome_java_sources.gni +++ b/chrome/android/chrome_java_sources.gni
@@ -466,6 +466,7 @@ "java/src/org/chromium/chrome/browser/customtabs/content/TabCreationMode.java", "java/src/org/chromium/chrome/browser/customtabs/content/TabObserverRegistrar.java", "java/src/org/chromium/chrome/browser/customtabs/dependency_injection/BaseCustomTabActivityComponent.java", + "java/src/org/chromium/chrome/browser/customtabs/dependency_injection/BaseCustomTabActivityModule.java", "java/src/org/chromium/chrome/browser/customtabs/dependency_injection/CustomTabActivityComponent.java", "java/src/org/chromium/chrome/browser/customtabs/dependency_injection/CustomTabActivityModule.java", "java/src/org/chromium/chrome/browser/customtabs/features/CustomTabNavigationBarController.java", @@ -1292,6 +1293,7 @@ "java/src/org/chromium/chrome/browser/payments/JourneyLogger.java", "java/src/org/chromium/chrome/browser/payments/PackageManagerDelegate.java", "java/src/org/chromium/chrome/browser/payments/PayerData.java", + "java/src/org/chromium/chrome/browser/payments/PaymentAddressTypeConverter.java", "java/src/org/chromium/chrome/browser/payments/PaymentApp.java", "java/src/org/chromium/chrome/browser/payments/PaymentAppFactoryDelegate.java", "java/src/org/chromium/chrome/browser/payments/PaymentAppFactoryInterface.java", @@ -1534,6 +1536,7 @@ "java/src/org/chromium/chrome/browser/suggestions/ThumbnailGradient.java", "java/src/org/chromium/chrome/browser/suggestions/mostvisited/MostVisitedSites.java", "java/src/org/chromium/chrome/browser/suggestions/mostvisited/MostVisitedSitesBridge.java", + "java/src/org/chromium/chrome/browser/suggestions/mostvisited/MostVisitedSitesUtils.java", "java/src/org/chromium/chrome/browser/suggestions/tile/SiteSection.java", "java/src/org/chromium/chrome/browser/suggestions/tile/SiteSectionViewHolder.java", "java/src/org/chromium/chrome/browser/suggestions/tile/SuggestionsTileView.java",
diff --git a/chrome/android/chrome_test_java_sources.gni b/chrome/android/chrome_test_java_sources.gni index 60f077d..694021b 100644 --- a/chrome/android/chrome_test_java_sources.gni +++ b/chrome/android/chrome_test_java_sources.gni
@@ -462,6 +462,7 @@ "javatests/src/org/chromium/chrome/browser/status_indicator/StatusIndicatorViewBinderTest.java", "javatests/src/org/chromium/chrome/browser/suggestions/ContentSuggestionsTest.java", "javatests/src/org/chromium/chrome/browser/suggestions/NavigationRecorderTest.java", + "javatests/src/org/chromium/chrome/browser/suggestions/mostvisited/MostVisitedSitesUtilsTest.java", "javatests/src/org/chromium/chrome/browser/suggestions/tile/TileGridLayoutTest.java", "javatests/src/org/chromium/chrome/browser/suggestions/tile/TileGroupTest.java", "javatests/src/org/chromium/chrome/browser/sync/AutofillTest.java",
diff --git a/chrome/android/features/autofill_assistant/javatests/src/org/chromium/chrome/browser/autofill_assistant/AutofillAssistantGenericUiTest.java b/chrome/android/features/autofill_assistant/javatests/src/org/chromium/chrome/browser/autofill_assistant/AutofillAssistantGenericUiTest.java index e20c8fda..3c2e6f8 100644 --- a/chrome/android/features/autofill_assistant/javatests/src/org/chromium/chrome/browser/autofill_assistant/AutofillAssistantGenericUiTest.java +++ b/chrome/android/features/autofill_assistant/javatests/src/org/chromium/chrome/browser/autofill_assistant/AutofillAssistantGenericUiTest.java
@@ -1528,16 +1528,6 @@ (InteractionProto) InteractionProto.newBuilder() .setTriggerEvent(EventProto.newBuilder().setOnValueChanged( OnModelValueChangedEventProto.newBuilder().setModelIdentifier( - "text_value"))) - .addCallbacks(CallbackProto.newBuilder().setSetText( - SetTextProto.newBuilder() - .setViewIdentifier("text_view") - .setModelIdentifier("text_value"))) - .build()); - interactions.add( - (InteractionProto) InteractionProto.newBuilder() - .setTriggerEvent(EventProto.newBuilder().setOnValueChanged( - OnModelValueChangedEventProto.newBuilder().setModelIdentifier( "chips"))) .addCallbacks(CallbackProto.newBuilder().setSetUserActions( SetUserActionsProto.newBuilder().setModelIdentifier("chips")))
diff --git a/chrome/android/features/start_surface/internal/javatests/src/org/chromium/chrome/features/start_surface/StartSurfaceLayoutTest.java b/chrome/android/features/start_surface/internal/javatests/src/org/chromium/chrome/features/start_surface/StartSurfaceLayoutTest.java index 3be91f3..4248f292 100644 --- a/chrome/android/features/start_surface/internal/javatests/src/org/chromium/chrome/features/start_surface/StartSurfaceLayoutTest.java +++ b/chrome/android/features/start_surface/internal/javatests/src/org/chromium/chrome/features/start_surface/StartSurfaceLayoutTest.java
@@ -830,6 +830,9 @@ TabSelectionEditorTestingRobot tabSelectionEditorTestingRobot = new TabSelectionEditorTestingRobot(); tabSelectionEditorTestingRobot.resultRobot.verifyTabSelectionEditorIsVisible(); + + Espresso.pressBack(); + tabSelectionEditorTestingRobot.resultRobot.verifyTabSelectionEditorIsHidden(); } @Test
diff --git a/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabGridDialogCoordinator.java b/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabGridDialogCoordinator.java index 564622e..0210ff8 100644 --- a/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabGridDialogCoordinator.java +++ b/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabGridDialogCoordinator.java
@@ -10,6 +10,7 @@ import androidx.annotation.NonNull; import androidx.annotation.Nullable; +import androidx.annotation.VisibleForTesting; import org.chromium.base.SysUtils; import org.chromium.base.metrics.RecordUserAction; @@ -144,4 +145,9 @@ RecordUserAction.record("TabGridDialog.Exit"); return true; } + + @VisibleForTesting + TabGridDialogParent getTabGridDialogParentForTesting() { + return mParentLayout; + } }
diff --git a/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabSwitcher.java b/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabSwitcher.java index 4715e85..90fa7203 100644 --- a/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabSwitcher.java +++ b/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabSwitcher.java
@@ -9,6 +9,7 @@ import android.graphics.Rect; import android.graphics.RectF; import android.os.SystemClock; +import android.view.View; import androidx.annotation.NonNull; import androidx.annotation.VisibleForTesting; @@ -216,6 +217,12 @@ */ @VisibleForTesting void setSourceRectCallbackForTesting(Callback<RectF> callback); + + /** + * @return The parent view of tab grid dialog. + */ + @VisibleForTesting + View getTabGridDialogParentViewForTesting(); } /**
diff --git a/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabSwitcherCoordinator.java b/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabSwitcherCoordinator.java index 216dde8..23c5e37 100644 --- a/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabSwitcherCoordinator.java +++ b/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabSwitcherCoordinator.java
@@ -331,6 +331,15 @@ TabGridDialogParent.setSourceRectCallbackForTesting(callback); } + @Override + @VisibleForTesting + public View getTabGridDialogParentViewForTesting() { + TabGridDialogParent dialogParent = + mTabGridDialogCoordinator.getTabGridDialogParentForTesting(); + assert dialogParent != null; + return dialogParent.getTabGridDialogParentViewForTesting(); + } + // ResetHandler implementation. @Override public boolean resetWithTabList(@Nullable TabList tabList, boolean quickMode, boolean mruMode) {
diff --git a/chrome/android/features/tab_ui/javatests/src/org/chromium/chrome/browser/tasks/tab_management/TabGridDialogTest.java b/chrome/android/features/tab_ui/javatests/src/org/chromium/chrome/browser/tasks/tab_management/TabGridDialogTest.java index c4be3cac..c4876e9 100644 --- a/chrome/android/features/tab_ui/javatests/src/org/chromium/chrome/browser/tasks/tab_management/TabGridDialogTest.java +++ b/chrome/android/features/tab_ui/javatests/src/org/chromium/chrome/browser/tasks/tab_management/TabGridDialogTest.java
@@ -31,6 +31,7 @@ import static org.chromium.chrome.browser.flags.ChromeFeatureList.TAB_GROUPS_ANDROID; import static org.chromium.chrome.browser.tasks.tab_management.TabUiTestHelper.clickFirstCardFromTabSwitcher; import static org.chromium.chrome.browser.tasks.tab_management.TabUiTestHelper.clickFirstTabInDialog; +import static org.chromium.chrome.browser.tasks.tab_management.TabUiTestHelper.clickNthTabInDialog; import static org.chromium.chrome.browser.tasks.tab_management.TabUiTestHelper.clickScrimToExitDialog; import static org.chromium.chrome.browser.tasks.tab_management.TabUiTestHelper.closeFirstTabInDialog; import static org.chromium.chrome.browser.tasks.tab_management.TabUiTestHelper.createTabs; @@ -38,7 +39,9 @@ import static org.chromium.chrome.browser.tasks.tab_management.TabUiTestHelper.getSwipeToDismissAction; import static org.chromium.chrome.browser.tasks.tab_management.TabUiTestHelper.isShowingPopupTabList; import static org.chromium.chrome.browser.tasks.tab_management.TabUiTestHelper.mergeAllNormalTabsToAGroup; +import static org.chromium.chrome.browser.tasks.tab_management.TabUiTestHelper.prepareTabsWithThumbnail; import static org.chromium.chrome.browser.tasks.tab_management.TabUiTestHelper.rotateDeviceToOrientation; +import static org.chromium.chrome.browser.tasks.tab_management.TabUiTestHelper.verifyAllTabsHaveThumbnail; import static org.chromium.chrome.browser.tasks.tab_management.TabUiTestHelper.verifyShowingPopupTabList; import static org.chromium.chrome.browser.tasks.tab_management.TabUiTestHelper.verifyTabStripFaviconCount; import static org.chromium.chrome.browser.tasks.tab_management.TabUiTestHelper.verifyTabSwitcherCardCount; @@ -69,6 +72,7 @@ import org.junit.runner.RunWith; import org.chromium.base.test.util.CommandLineFlags; +import org.chromium.base.test.util.Feature; import org.chromium.base.test.util.Restriction; import org.chromium.chrome.browser.ChromeActivity; import org.chromium.chrome.browser.ChromeTabbedActivity; @@ -80,6 +84,7 @@ import org.chromium.chrome.tab_ui.R; import org.chromium.chrome.test.ChromeJUnit4ClassRunner; import org.chromium.chrome.test.ChromeTabbedActivityTestRule; +import org.chromium.chrome.test.util.ChromeRenderTestRule; import org.chromium.chrome.test.util.browser.Features; import org.chromium.content_public.browser.test.util.CriteriaHelper; import org.chromium.content_public.browser.test.util.TestThreadUtils; @@ -99,6 +104,7 @@ private boolean mHasReceivedSourceRect; private TabSelectionEditorTestingRobot mSelectionEditorRobot = new TabSelectionEditorTestingRobot(); + private TabSwitcher.TabDialogDelegation mTabDialogDelegation; @Rule public ChromeTabbedActivityTestRule mActivityTestRule = new ChromeTabbedActivityTestRule(); @@ -107,6 +113,9 @@ public TestRule mProcessor = new Features.InstrumentationProcessor(); @Rule + public ChromeRenderTestRule mRenderTestRule = new ChromeRenderTestRule(); + + @Rule public IntentsTestRule<ChromeActivity> mShareActivityTestRule = new IntentsTestRule<>(ChromeActivity.class, false, false); @@ -116,6 +125,8 @@ mActivityTestRule.startMainActivityFromLauncher(); Layout layout = mActivityTestRule.getActivity().getLayoutManager().getOverviewLayout(); assertTrue(layout instanceof StartSurfaceLayout); + mTabDialogDelegation = + ((StartSurfaceLayout) layout).getStartSurfaceForTesting().getTabDialogDelegate(); CriteriaHelper.pollUiThread(mActivityTestRule.getActivity() .getTabModelSelector() .getTabModelFilterProvider() @@ -235,10 +246,7 @@ float expectedHeight = sourceRect.height() - 2 * tabGridCardPadding; // Setup the callback to verify the animation source Rect. - StartSurfaceLayout layout = (StartSurfaceLayout) cta.getLayoutManager().getOverviewLayout(); - TabSwitcher.TabDialogDelegation delegation = - layout.getStartSurfaceForTesting().getTabDialogDelegate(); - delegation.setSourceRectCallbackForTesting((result -> { + mTabDialogDelegation.setSourceRectCallbackForTesting((result -> { mHasReceivedSourceRect = true; assertTrue(expectedTop == result.top); assertTrue(expectedHeight == result.height()); @@ -528,6 +536,78 @@ verifyFirstCardTitle(CUSTOMIZED_TITLE2); } + @Test + @MediumTest + @Feature({"RenderTest"}) + public void testRenderDialog_3Tabs_Portrait() throws Exception { + final ChromeTabbedActivity cta = mActivityTestRule.getActivity(); + prepareTabsWithThumbnail(mActivityTestRule, 3, 0, "about:blank"); + enterTabSwitcher(cta); + verifyTabSwitcherCardCount(cta, 3); + verifyAllTabsHaveThumbnail(cta.getCurrentTabModel()); + + // Create a tab group. + mergeAllNormalTabsToAGroup(cta); + verifyTabSwitcherCardCount(cta, 1); + openDialogFromTabSwitcherAndVerify(cta, 3, + cta.getResources().getQuantityString( + R.plurals.bottom_tab_grid_title_placeholder, 3, 3)); + + View dialogView = mTabDialogDelegation.getTabGridDialogParentViewForTesting(); + mRenderTestRule.render(dialogView, "3_tabs_portrait"); + } + + @Test + @MediumTest + @Feature({"RenderTest"}) + public void testRenderDialog_3Tabs_Landscape() throws Exception { + final ChromeTabbedActivity cta = mActivityTestRule.getActivity(); + prepareTabsWithThumbnail(mActivityTestRule, 3, 0, "about:blank"); + enterTabSwitcher(cta); + verifyTabSwitcherCardCount(cta, 3); + verifyAllTabsHaveThumbnail(cta.getCurrentTabModel()); + + // Rotate to landscape mode and create a tab group. + rotateDeviceToOrientation(cta, Configuration.ORIENTATION_LANDSCAPE); + mergeAllNormalTabsToAGroup(cta); + verifyTabSwitcherCardCount(cta, 1); + openDialogFromTabSwitcherAndVerify(cta, 3, + cta.getResources().getQuantityString( + R.plurals.bottom_tab_grid_title_placeholder, 3, 3)); + + View dialogView = mTabDialogDelegation.getTabGridDialogParentViewForTesting(); + mRenderTestRule.render(dialogView, "3_tabs_landscape"); + } + + @Test + @MediumTest + @Feature({"RenderTest"}) + public void testRenderDialog_5Tabs_InitialScroll() throws Exception { + final ChromeTabbedActivity cta = mActivityTestRule.getActivity(); + prepareTabsWithThumbnail(mActivityTestRule, 5, 0, "about:blank"); + enterTabSwitcher(cta); + verifyTabSwitcherCardCount(cta, 5); + verifyAllTabsHaveThumbnail(cta.getCurrentTabModel()); + + // Create a tab group. + mergeAllNormalTabsToAGroup(cta); + verifyTabSwitcherCardCount(cta, 1); + openDialogFromTabSwitcherAndVerify(cta, 5, + cta.getResources().getQuantityString( + R.plurals.bottom_tab_grid_title_placeholder, 5, 5)); + + // Select the last tab and reopen the dialog. Verify that the dialog has scrolled to the + // correct position. + clickNthTabInDialog(cta, 4); + enterTabSwitcher(cta); + openDialogFromTabSwitcherAndVerify(cta, 5, + cta.getResources().getQuantityString( + R.plurals.bottom_tab_grid_title_placeholder, 5, 5)); + + View dialogView = mTabDialogDelegation.getTabGridDialogParentViewForTesting(); + mRenderTestRule.render(dialogView, "5_tabs_select_last"); + } + private void openDialogFromTabSwitcherAndVerify( ChromeTabbedActivity cta, int tabCount, String customizedTitle) { clickFirstCardFromTabSwitcher(cta);
diff --git a/chrome/android/feed/core/java/src/org/chromium/chrome/browser/feed/library/api/host/action/StreamActionApi.java b/chrome/android/feed/core/java/src/org/chromium/chrome/browser/feed/library/api/host/action/StreamActionApi.java index 4e73b6e..fb451dd 100644 --- a/chrome/android/feed/core/java/src/org/chromium/chrome/browser/feed/library/api/host/action/StreamActionApi.java +++ b/chrome/android/feed/core/java/src/org/chromium/chrome/browser/feed/library/api/host/action/StreamActionApi.java
@@ -73,6 +73,9 @@ */ void onElementClick(int elementType); + /* Reports a click action on given content ID with the given action payload. */ + void reportClickAction(String contentId, ActionPayload payload); + /** Whether or not show tooltip actions can be handled. */ boolean canShowTooltip();
diff --git a/chrome/android/feed/core/java/src/org/chromium/chrome/browser/feed/library/api/host/logging/Task.java b/chrome/android/feed/core/java/src/org/chromium/chrome/browser/feed/library/api/host/logging/Task.java index 6f788cc3..d7aa718 100644 --- a/chrome/android/feed/core/java/src/org/chromium/chrome/browser/feed/library/api/host/logging/Task.java +++ b/chrome/android/feed/core/java/src/org/chromium/chrome/browser/feed/library/api/host/logging/Task.java
@@ -21,6 +21,7 @@ Task.CLEAR_ALL_WITH_REFRESH, Task.CLEAR_PERSISTENT_STORE_TASK, Task.COMMIT_TASK, + Task.CREATE_AND_STORE, Task.CREATE_AND_UPLOAD, Task.DETACH_SESSION, Task.DISMISS_LOCAL, @@ -59,6 +60,7 @@ int CLEAR_PERSISTENT_STORE_TASK = 4; int COMMIT_TASK = 5; int CREATE_AND_UPLOAD = 6; + int CREATE_AND_STORE = 33; int DETACH_SESSION = 7; int DISMISS_LOCAL = 8; int DUMP_EPHEMERAL_ACTIONS = 9; @@ -86,5 +88,5 @@ int UPLOAD_ALL_ACTIONS_FOR_URL = 32; // The next value that should be used when adding additional values to the IntDef. - int NEXT_VALUE = 33; + int NEXT_VALUE = 34; }
diff --git a/chrome/android/feed/core/java/src/org/chromium/chrome/browser/feed/library/api/internal/actionmanager/ActionManager.java b/chrome/android/feed/core/java/src/org/chromium/chrome/browser/feed/library/api/internal/actionmanager/ActionManager.java index b249f96..e49dda8 100644 --- a/chrome/android/feed/core/java/src/org/chromium/chrome/browser/feed/library/api/internal/actionmanager/ActionManager.java +++ b/chrome/android/feed/core/java/src/org/chromium/chrome/browser/feed/library/api/internal/actionmanager/ActionManager.java
@@ -19,8 +19,7 @@ * data operations on the session. * * @param contentIds The content IDs for the feature being dismissed. These are recorded and - * sent - * to the server in subsequent requests. + * sent to the server in subsequent requests. * @param streamDataOperations Any stream data operations that should be applied to the session * (e.g. removing a cluster when the content is removed) * @param sessionId The current session id @@ -45,6 +44,11 @@ void createAndUploadAction(String contentId, ActionPayload payload); /** + * Issues a request to record a single action and store it for future upload. + */ + void createAndStoreAction(String contentId, ActionPayload payload); + + /** * Issues a request to record a set of action and update the url with consistency token with the * consumer being called on the main thread with the resulting url. */
diff --git a/chrome/android/feed/core/java/src/org/chromium/chrome/browser/feed/library/basicstream/internal/actions/StreamActionApiImpl.java b/chrome/android/feed/core/java/src/org/chromium/chrome/browser/feed/library/basicstream/internal/actions/StreamActionApiImpl.java index 5978761..74e81e9 100644 --- a/chrome/android/feed/core/java/src/org/chromium/chrome/browser/feed/library/basicstream/internal/actions/StreamActionApiImpl.java +++ b/chrome/android/feed/core/java/src/org/chromium/chrome/browser/feed/library/basicstream/internal/actions/StreamActionApiImpl.java
@@ -24,6 +24,7 @@ import org.chromium.chrome.browser.feed.library.basicstream.internal.pendingdismiss.ClusterPendingDismissHelper; import org.chromium.chrome.browser.feed.library.sharedstream.contextmenumanager.ContextMenuManager; import org.chromium.chrome.browser.feed.library.sharedstream.pendingdismiss.PendingDismissCallback; +import org.chromium.chrome.browser.flags.ChromeFeatureList; import org.chromium.components.feed.core.proto.libraries.api.internal.StreamDataProto.StreamDataOperation; import org.chromium.components.feed.core.proto.ui.action.FeedActionProto.FeedActionMetadata.ElementType; import org.chromium.components.feed.core.proto.ui.action.FeedActionProto.LabelledFeedActionData; @@ -322,4 +323,11 @@ } }); } + + @Override + public void reportClickAction(String contentId, ActionPayload payload) { + if (ChromeFeatureList.isEnabled(ChromeFeatureList.REPORT_FEED_USER_ACTIONS)) { + mActionManager.createAndStoreAction(contentId, payload); + } + } }
diff --git a/chrome/android/feed/core/java/src/org/chromium/chrome/browser/feed/library/feedactionmanager/FeedActionManagerImpl.java b/chrome/android/feed/core/java/src/org/chromium/chrome/browser/feed/library/feedactionmanager/FeedActionManagerImpl.java index 1c57db97..9db14c4 100644 --- a/chrome/android/feed/core/java/src/org/chromium/chrome/browser/feed/library/feedactionmanager/FeedActionManagerImpl.java +++ b/chrome/android/feed/core/java/src/org/chromium/chrome/browser/feed/library/feedactionmanager/FeedActionManagerImpl.java
@@ -91,6 +91,21 @@ } @Override + public void createAndStoreAction(String contentId, ActionPayload payload) { + mTaskQueue.execute(Task.CREATE_AND_STORE, TaskType.BACKGROUND, () -> { + long currentTime = TimeUnit.MILLISECONDS.toSeconds(mClock.currentTimeMillis()); + mStore.editUploadableActions() + .upsert(StreamUploadableAction.newBuilder() + .setFeatureContentId(contentId) + .setPayload(payload) + .setTimestampSeconds(currentTime) + .build(), + contentId) + .commit(); + }); + } + + @Override public void uploadAllActionsAndUpdateUrl( String url, String consistencyTokenQueryParamName, Consumer<String> consumer) { mTaskQueue.execute(Task.UPLOAD_ALL_ACTIONS_FOR_URL, TaskType.BACKGROUND, () -> {
diff --git a/chrome/android/feed/core/java/src/org/chromium/chrome/browser/feed/library/feedactionparser/FeedActionParser.java b/chrome/android/feed/core/java/src/org/chromium/chrome/browser/feed/library/feedactionparser/FeedActionParser.java index 544b7bcb..f1de2d21 100644 --- a/chrome/android/feed/core/java/src/org/chromium/chrome/browser/feed/library/feedactionparser/FeedActionParser.java +++ b/chrome/android/feed/core/java/src/org/chromium/chrome/browser/feed/library/feedactionparser/FeedActionParser.java
@@ -249,6 +249,13 @@ return; } + if (urlType != OPEN_URL_INCOGNITO && openUrlData.hasContentId() + && openUrlData.hasPayload()) { + streamActionApi.reportClickAction( + mProtocolAdapter.getStreamContentId(openUrlData.getContentId()), + openUrlData.getPayload()); + } + String url = openUrlData.getUrl(); switch (urlType) { case OPEN_URL:
diff --git a/chrome/android/feed/core/java/src/org/chromium/chrome/browser/feed/library/feedrequestmanager/FeedRequestManagerImpl.java b/chrome/android/feed/core/java/src/org/chromium/chrome/browser/feed/library/feedrequestmanager/FeedRequestManagerImpl.java index 44e7b2f..2b1a1ed 100644 --- a/chrome/android/feed/core/java/src/org/chromium/chrome/browser/feed/library/feedrequestmanager/FeedRequestManagerImpl.java +++ b/chrome/android/feed/core/java/src/org/chromium/chrome/browser/feed/library/feedrequestmanager/FeedRequestManagerImpl.java
@@ -40,6 +40,7 @@ import org.chromium.chrome.browser.feed.library.common.time.TimingUtils; import org.chromium.chrome.browser.feed.library.common.time.TimingUtils.ElapsedTimeTracker; import org.chromium.chrome.browser.feed.library.feedrequestmanager.internal.Utils; +import org.chromium.chrome.browser.flags.ChromeFeatureList; import org.chromium.components.feed.core.proto.libraries.api.internal.StreamDataProto.StreamToken; import org.chromium.components.feed.core.proto.wire.ActionTypeProto; import org.chromium.components.feed.core.proto.wire.CapabilityProto.Capability; @@ -366,6 +367,11 @@ feedRequestBuilder, ConfigKey.SNIPPETS_ENABLED, Capability.ARTICLE_SNIPPETS); addCapabilityIfConfigEnabled(feedRequestBuilder, ConfigKey.USE_SECONDARY_PAGE_REQUEST, Capability.USE_SECONDARY_PAGE_REQUEST); + + if (ChromeFeatureList.isEnabled(ChromeFeatureList.REPORT_FEED_USER_ACTIONS)) { + feedRequestBuilder.addClientCapability(Capability.CLICK_ACTION); + } + feedRequestBuilder.addClientCapability(Capability.BASE_UI); for (Capability capability : feedRequestBuilder.getClientCapabilityList()) {
diff --git a/chrome/android/feed/core/javatests/src/org/chromium/chrome/browser/feed/FeedNewTabPageTest.java b/chrome/android/feed/core/javatests/src/org/chromium/chrome/browser/feed/FeedNewTabPageTest.java index 0624e04..c7b750a 100644 --- a/chrome/android/feed/core/javatests/src/org/chromium/chrome/browser/feed/FeedNewTabPageTest.java +++ b/chrome/android/feed/core/javatests/src/org/chromium/chrome/browser/feed/FeedNewTabPageTest.java
@@ -293,6 +293,7 @@ @Test @MediumTest @Feature({"FeedNewTabPage"}) + @DisabledTest(message = "crbug.com/1064388") public void testFeedDisabledByPolicy() throws Exception { final boolean pref = TestThreadUtils.runOnUiThreadBlocking( ()
diff --git a/chrome/android/feed/core/javatests/src/org/chromium/chrome/browser/feed/library/basicstream/internal/actions/StreamActionApiImplTest.java b/chrome/android/feed/core/javatests/src/org/chromium/chrome/browser/feed/library/basicstream/internal/actions/StreamActionApiImplTest.java index 4b9774de..94dcb86 100644 --- a/chrome/android/feed/core/javatests/src/org/chromium/chrome/browser/feed/library/basicstream/internal/actions/StreamActionApiImplTest.java +++ b/chrome/android/feed/core/javatests/src/org/chromium/chrome/browser/feed/library/basicstream/internal/actions/StreamActionApiImplTest.java
@@ -7,6 +7,7 @@ import static com.google.common.truth.Truth.assertThat; import static org.mockito.ArgumentMatchers.any; +import static org.mockito.ArgumentMatchers.anyString; import static org.mockito.ArgumentMatchers.eq; import static org.mockito.Mockito.mock; import static org.mockito.Mockito.never; @@ -23,7 +24,9 @@ import com.google.common.collect.ImmutableList; import org.junit.Before; +import org.junit.Rule; import org.junit.Test; +import org.junit.rules.TestRule; import org.junit.runner.RunWith; import org.mockito.ArgumentCaptor; import org.mockito.Captor; @@ -50,6 +53,8 @@ import org.chromium.chrome.browser.feed.library.sharedstream.logging.StreamContentLoggingData; import org.chromium.chrome.browser.feed.library.sharedstream.pendingdismiss.PendingDismissCallback; import org.chromium.chrome.browser.feed.library.testing.sharedstream.contextmenumanager.FakeContextMenuManager; +import org.chromium.chrome.browser.flags.ChromeFeatureList; +import org.chromium.chrome.test.util.browser.Features; import org.chromium.components.feed.core.proto.libraries.api.internal.StreamDataProto.StreamDataOperation; import org.chromium.components.feed.core.proto.ui.action.FeedActionPayloadProto.FeedActionPayload; import org.chromium.components.feed.core.proto.ui.action.FeedActionProto.FeedAction; @@ -155,6 +160,9 @@ private StreamActionApiImpl mStreamActionApi; private View mView; + @Rule + public TestRule mFeaturesProcessorRule = new Features.JUnitProcessor(); + @Before public void setup() { initMocks(this); @@ -274,6 +282,23 @@ } @Test + @Features.EnableFeatures(ChromeFeatureList.REPORT_FEED_USER_ACTIONS) + public void testReportClickAction_withFeature() { + String contentId = "contentId"; + mStreamActionApi.reportClickAction(contentId, ACTION_PAYLOAD); + + verify(mActionManager).createAndStoreAction(contentId, ACTION_PAYLOAD); + } + + @Test + @Features.DisableFeatures(ChromeFeatureList.REPORT_FEED_USER_ACTIONS) + public void testNoReportClickAction_withoutFeature() { + mStreamActionApi.reportClickAction("contentId", ACTION_PAYLOAD); + + verify(mActionManager, never()).createAndStoreAction(anyString(), any(ActionPayload.class)); + } + + @Test public void testOnElementHide() { mStreamActionApi.onElementHide(ElementType.INTEREST_HEADER.getNumber());
diff --git a/chrome/android/feed/core/javatests/src/org/chromium/chrome/browser/feed/library/feedactionmanager/FeedActionManagerImplTest.java b/chrome/android/feed/core/javatests/src/org/chromium/chrome/browser/feed/library/feedactionmanager/FeedActionManagerImplTest.java index c56bbfb1..758d2760 100644 --- a/chrome/android/feed/core/javatests/src/org/chromium/chrome/browser/feed/library/feedactionmanager/FeedActionManagerImplTest.java +++ b/chrome/android/feed/core/javatests/src/org/chromium/chrome/browser/feed/library/feedactionmanager/FeedActionManagerImplTest.java
@@ -31,6 +31,7 @@ import org.chromium.chrome.browser.feed.library.api.internal.store.LocalActionMutation; import org.chromium.chrome.browser.feed.library.api.internal.store.LocalActionMutation.ActionType; import org.chromium.chrome.browser.feed.library.api.internal.store.Store; +import org.chromium.chrome.browser.feed.library.api.internal.store.UploadableActionMutation; import org.chromium.chrome.browser.feed.library.common.Result; import org.chromium.chrome.browser.feed.library.common.concurrent.testing.FakeMainThreadRunner; import org.chromium.chrome.browser.feed.library.common.concurrent.testing.FakeTaskQueue; @@ -70,6 +71,8 @@ @Mock private LocalActionMutation mLocalActionMutation; @Mock + private UploadableActionMutation mUploadableActionMutation; + @Mock private Consumer<Result<Model>> mModelConsumer; @Mock private FeedLoggingBridge mFeedLoggingBridge; @@ -85,6 +88,8 @@ private ArgumentCaptor<Consumer<Result<ConsistencyToken>>> mConsumerCaptor; @Captor private ArgumentCaptor<Set<StreamUploadableAction>> mActionCaptor; + @Captor + private ArgumentCaptor<StreamUploadableAction> mUploadableActionCaptor; private ActionManager mActionManager; @@ -197,6 +202,21 @@ } @Test + public void triggerCreateAndStoreAction() throws Exception { + setupCreateAndStoreMocks(); + ActionPayload payload = ActionPayload.getDefaultInstance(); + mFakeClock.set(DEFAULT_TIME); + mActionManager.createAndStoreAction(CONTENT_ID_STRING, payload); + verify(mUploadableActionMutation) + .upsert(mUploadableActionCaptor.capture(), mContentIdStringCaptor.capture()); + StreamUploadableAction action = mUploadableActionCaptor.getValue(); + assertThat(action.getFeatureContentId()).isEqualTo(CONTENT_ID_STRING); + assertThat(action.getTimestampSeconds()).isEqualTo(DEFAULT_TIME_SECONDS); + assertThat(action.getPayload()).isEqualTo(payload); + assertThat(mContentIdStringCaptor.getValue()).isEqualTo(CONTENT_ID_STRING); + } + + @Test public void triggerUploadAllActions() throws Exception { String url = "url"; String param = "param"; @@ -227,6 +247,12 @@ when(mStore.editLocalActions()).thenReturn(mLocalActionMutation); } + private void setupCreateAndStoreMocks() { + when(mUploadableActionMutation.upsert(any(StreamUploadableAction.class), anyString())) + .thenReturn(mUploadableActionMutation); + when(mStore.editUploadableActions()).thenReturn(mUploadableActionMutation); + } + private FakeTaskQueue getTaskQueue() { FakeTaskQueue fakeTaskQueue = new FakeTaskQueue(mFakeClock, mFakeThreadUtils); fakeTaskQueue.initialize(() -> {});
diff --git a/chrome/android/feed/core/javatests/src/org/chromium/chrome/browser/feed/library/feedactionparser/FeedActionParserTest.java b/chrome/android/feed/core/javatests/src/org/chromium/chrome/browser/feed/library/feedactionparser/FeedActionParserTest.java index feba60d..8c9f8c9 100644 --- a/chrome/android/feed/core/javatests/src/org/chromium/chrome/browser/feed/library/feedactionparser/FeedActionParserTest.java +++ b/chrome/android/feed/core/javatests/src/org/chromium/chrome/browser/feed/library/feedactionparser/FeedActionParserTest.java
@@ -77,6 +77,10 @@ // clang-format off + private static final ContentId CONTENT_ID = ContentId.newBuilder().setId(123).build(); + + private static final String CONTENT_ID_STRING = "contentId"; + private static final FeedActionPayload OPEN_URL_FEED_ACTION = FeedActionPayload.newBuilder() .setExtension(FeedAction.feedActionExtension, @@ -88,6 +92,7 @@ OpenUrlData.newBuilder().setUrl(URL))) .build()) .build(); + private static final FeedActionPayload OPEN_URL_WITH_PARAM_FEED_ACTION = FeedActionPayload.newBuilder() .setExtension(FeedAction.feedActionExtension, @@ -102,6 +107,22 @@ PARAM))) .build()) .build(); + + private static final FeedActionPayload OPEN_URL_WITH_CLICK_PAYLOAD_FEED_ACTION = + FeedActionPayload.newBuilder() + .setExtension(FeedAction.feedActionExtension, + FeedAction.newBuilder() + .setMetadata( + FeedActionMetadata.newBuilder() + .setType(Type.OPEN_URL) + .setOpenUrlData( + OpenUrlData.newBuilder() + .setUrl(URL) + .setContentId(CONTENT_ID) + .setPayload(ActionPayload.getDefaultInstance()))) + .build()) + .build(); + private static final FeedActionPayload CONTEXT_MENU_FEED_ACTION = FeedActionPayload.newBuilder() .setExtension(FeedAction.feedActionExtension, @@ -156,6 +177,22 @@ OpenUrlData.newBuilder().setUrl(URL))) .build()) .build(); + + private static final FeedActionPayload OPEN_URL_INCOGNITO_WITH_CLICK_PAYLOAD_FEED_ACTION = + FeedActionPayload.newBuilder() + .setExtension(FeedAction.feedActionExtension, + FeedAction.newBuilder() + .setMetadata( + FeedActionMetadata.newBuilder() + .setType(Type.OPEN_URL_INCOGNITO) + .setOpenUrlData( + OpenUrlData.newBuilder() + .setUrl(URL) + .setContentId(CONTENT_ID) + .setPayload(ActionPayload.getDefaultInstance()))) + .build()) + .build(); + private static final FeedActionPayload OPEN_URL_INCOGNITO_WITH_PARAM_FEED_ACTION = FeedActionPayload.newBuilder() .setExtension(FeedAction.feedActionExtension, @@ -171,6 +208,8 @@ .build()) .build(); + + private static final FeedActionPayload OPEN_URL_NEW_TAB_FEED_ACTION = FeedActionPayload.newBuilder() .setExtension(FeedAction.feedActionExtension, @@ -254,6 +293,14 @@ .build()) .build(); + private static final Action OPEN_URL_WITH_CLICK_PAYLOAD_ACTION = + Action.newBuilder() + .setExtension(PietFeedActionPayload.pietFeedActionPayloadExtension, + PietFeedActionPayload.newBuilder() + .setFeedActionPayload(OPEN_URL_WITH_CLICK_PAYLOAD_FEED_ACTION) + .build()) + .build(); + private static final Action OPEN_INCOGNITO_ACTION = Action.newBuilder() .setExtension(PietFeedActionPayload.pietFeedActionPayloadExtension, @@ -261,6 +308,15 @@ .setFeedActionPayload(OPEN_URL_INCOGNITO_FEED_ACTION) .build()) .build(); + + private static final Action OPEN_INCOGNITO_WITH_CLICK_PAYLOAD_ACTION = + Action.newBuilder() + .setExtension(PietFeedActionPayload.pietFeedActionPayloadExtension, + PietFeedActionPayload.newBuilder() + .setFeedActionPayload(OPEN_URL_INCOGNITO_WITH_CLICK_PAYLOAD_FEED_ACTION) + .build()) + .build(); + private static final Action OPEN_INCOGNITO_WITH_PARAM_ACTION = Action.newBuilder() .setExtension(PietFeedActionPayload.pietFeedActionPayloadExtension, @@ -323,10 +379,6 @@ .build()) .build(); - private static final ContentId DISMISS_CONTENT_ID = ContentId.newBuilder().setId(123).build(); - - private static final String DISMISS_CONTENT_ID_STRING = "dismissContentId"; - private static final UndoAction UNDO_ACTION = UndoAction.newBuilder().setConfirmationLabel("confirmation").build(); @@ -343,7 +395,7 @@ DataOperation .getDefaultInstance()) .setContentId( - DISMISS_CONTENT_ID) + CONTENT_ID) .setUndoAction(UNDO_ACTION))) .build()) .build(); @@ -460,8 +512,7 @@ @Before public void setup() { initMocks(this); - when(mProtocolAdapter.getStreamContentId(DISMISS_CONTENT_ID)) - .thenReturn(DISMISS_CONTENT_ID_STRING); + when(mProtocolAdapter.getStreamContentId(CONTENT_ID)).thenReturn(CONTENT_ID_STRING); mFeedActionParser = new FeedActionParser(mProtocolAdapter, new PietFeedActionPayloadRetriever(), () -> CONTENT_METADATA, mBasicLoggingApi); } @@ -537,6 +588,18 @@ } @Test + public void testParseAction_incognitoNoClickAction() { + when(mStreamActionApi.canOpenUrlInIncognitoMode()).thenReturn(true); + mFeedActionParser.parseAction(OPEN_INCOGNITO_ACTION, mStreamActionApi, + /* view= */ null, LogData.getDefaultInstance(), ActionSource.CLICK); + + verify(mStreamActionApi, never()).reportClickAction(anyString(), any(ActionPayload.class)); + + verify(mStreamActionApi).openUrlInIncognitoMode(URL); + verify(mStreamActionApi).onClientAction(ActionType.OPEN_URL_INCOGNITO); + } + + @Test public void testParseAction_newTab() { when(mStreamActionApi.canOpenUrlInNewTab()).thenReturn(true); mFeedActionParser.parseAction(OPEN_NEW_TAB_ACTION, mStreamActionApi, @@ -557,6 +620,19 @@ } @Test + public void testParseAction_withClickAction() { + when(mStreamActionApi.canOpenUrl()).thenReturn(true); + mFeedActionParser.parseAction(OPEN_URL_WITH_CLICK_PAYLOAD_ACTION, mStreamActionApi, + /* view= */ null, LogData.getDefaultInstance(), ActionSource.CLICK); + + verify(mStreamActionApi) + .reportClickAction(CONTENT_ID_STRING, ActionPayload.getDefaultInstance()); + + verify(mStreamActionApi).openUrl(URL); + verify(mStreamActionApi).onClientAction(ActionType.OPEN_URL); + } + + @Test public void testParseAction_contextMenu() { Context context = Robolectric.buildActivity(Activity.class).get(); View view = new View(context); @@ -751,7 +827,7 @@ DISMISS_LOCAL_FEED_ACTION, mStreamActionApi, /* view= */ null, ActionSource.CLICK); verify(mStreamActionApi) - .dismiss(DISMISS_CONTENT_ID_STRING, mStreamDataOperations, UNDO_ACTION, + .dismiss(CONTENT_ID_STRING, mStreamDataOperations, UNDO_ACTION, ActionPayload.getDefaultInstance()); }
diff --git a/chrome/android/feed/core/javatests/src/org/chromium/chrome/browser/feed/library/feedrequestmanager/FeedRequestManagerImplTest.java b/chrome/android/feed/core/javatests/src/org/chromium/chrome/browser/feed/library/feedrequestmanager/FeedRequestManagerImplTest.java index acf758c..f272034 100644 --- a/chrome/android/feed/core/javatests/src/org/chromium/chrome/browser/feed/library/feedrequestmanager/FeedRequestManagerImplTest.java +++ b/chrome/android/feed/core/javatests/src/org/chromium/chrome/browser/feed/library/feedrequestmanager/FeedRequestManagerImplTest.java
@@ -22,7 +22,9 @@ import com.google.protobuf.ExtensionRegistryLite; import org.junit.Before; +import org.junit.Rule; import org.junit.Test; +import org.junit.rules.TestRule; import org.junit.runner.RunWith; import org.mockito.Mock; import org.robolectric.Robolectric; @@ -54,6 +56,8 @@ import org.chromium.chrome.browser.feed.library.testing.host.stream.FakeTooltipSupportedApi; import org.chromium.chrome.browser.feed.library.testing.network.FakeNetworkClient; import org.chromium.chrome.browser.feed.library.testing.protocoladapter.FakeProtocolAdapter; +import org.chromium.chrome.browser.flags.ChromeFeatureList; +import org.chromium.chrome.test.util.browser.Features; import org.chromium.components.feed.core.proto.libraries.api.internal.StreamDataProto.StreamToken; import org.chromium.components.feed.core.proto.wire.ActionTypeProto.ActionType; import org.chromium.components.feed.core.proto.wire.CapabilityProto.Capability; @@ -91,6 +95,7 @@ /** Test of the {@link FeedRequestManagerImpl} class. */ @RunWith(LocalRobolectricTestRunner.class) @Config(manifest = Config.NONE) +@Features.DisableFeatures(ChromeFeatureList.REPORT_FEED_USER_ACTIONS) public class FeedRequestManagerImplTest { private static final int NOT_FOUND = 404; private static final String TABLE = "table"; @@ -125,6 +130,9 @@ private Result<Model> mConsumedResult = Result.failure(); private HttpResponse mFailingResponse; + @Rule + public TestRule mFeaturesProcessorRule = new Features.JUnitProcessor(); + @Before public void setUp() throws Exception { initMocks(this); @@ -238,6 +246,12 @@ } @Test + @Features.EnableFeatures(ChromeFeatureList.REPORT_FEED_USER_ACTIONS) + public void testTriggerRefresh_enableFeedActions() throws Exception { + testCapabilityAdded(Capability.CLICK_ACTION); + } + + @Test public void testActionData_simpleDismiss() throws Exception { mFakeActionReader.addDismissActionsWithSemanticProperties( buildDismissAction(ID, CONTENT_DOMAIN, TABLE, null)); @@ -874,6 +888,16 @@ private void testCapabilityAdded(String configKey, Capability capability) throws Exception { Configuration configuration = new Configuration.Builder().put(configKey, true).build(); + testCapabilityAddedWithConfig(configuration, capability); + } + + private void testCapabilityAdded(Capability capability) throws Exception { + Configuration configuration = new Configuration.Builder().build(); + testCapabilityAddedWithConfig(configuration, capability); + } + + private void testCapabilityAddedWithConfig(Configuration configuration, Capability capability) + throws Exception { mRequestManager = new FeedRequestManagerImpl(configuration, mFakeNetworkClient, mFakeProtocolAdapter, new FeedExtensionRegistry(ArrayList::new), mScheduler, mFakeTaskQueue, mTimingUtils, mFakeThreadUtils, mFakeActionReader, mContext,
diff --git a/chrome/android/feed/core/javatests/src/org/chromium/chrome/browser/feed/library/mocknetworkclient/MockServerNetworkClientTest.java b/chrome/android/feed/core/javatests/src/org/chromium/chrome/browser/feed/library/mocknetworkclient/MockServerNetworkClientTest.java index 2f1d1ae..efbabdc 100644 --- a/chrome/android/feed/core/javatests/src/org/chromium/chrome/browser/feed/library/mocknetworkclient/MockServerNetworkClientTest.java +++ b/chrome/android/feed/core/javatests/src/org/chromium/chrome/browser/feed/library/mocknetworkclient/MockServerNetworkClientTest.java
@@ -19,7 +19,9 @@ import com.google.protobuf.CodedInputStream; import org.junit.Before; +import org.junit.Rule; import org.junit.Test; +import org.junit.rules.TestRule; import org.junit.runner.RunWith; import org.mockito.ArgumentCaptor; import org.mockito.Captor; @@ -49,6 +51,8 @@ import org.chromium.chrome.browser.feed.library.feedrequestmanager.FeedRequestManagerImpl; import org.chromium.chrome.browser.feed.library.testing.conformance.network.NetworkClientConformanceTest; import org.chromium.chrome.browser.feed.library.testing.host.logging.FakeBasicLoggingApi; +import org.chromium.chrome.browser.flags.ChromeFeatureList; +import org.chromium.chrome.test.util.browser.Features; import org.chromium.components.feed.core.proto.libraries.api.internal.StreamDataProto.StreamToken; import org.chromium.components.feed.core.proto.wire.ConsistencyTokenProto.ConsistencyToken; import org.chromium.components.feed.core.proto.wire.ResponseProto.Response; @@ -64,6 +68,7 @@ /** Tests of the {@link MockServerNetworkClient} class. */ @RunWith(LocalRobolectricTestRunner.class) @Config(manifest = Config.NONE) +@Features.DisableFeatures(ChromeFeatureList.REPORT_FEED_USER_ACTIONS) public class MockServerNetworkClientTest extends NetworkClientConformanceTest { private final Configuration mConfiguration = new Configuration.Builder().build(); private final FakeClock mFakeClock = new FakeClock(); @@ -87,6 +92,9 @@ private FakeBasicLoggingApi mBasicLoggingApi; private MainThreadRunner mMainThreadRunner; + @Rule + public TestRule mFeaturesProcessorRule = new Features.JUnitProcessor(); + @Override protected Uri getValidUri(@HttpMethod String method) { // The URI does not matter - mockNetworkClient will default to an empty response
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/customtabs/CustomTabActivity.java b/chrome/android/java/src/org/chromium/chrome/browser/customtabs/CustomTabActivity.java index 0eb28b1..6fca974 100644 --- a/chrome/android/java/src/org/chromium/chrome/browser/customtabs/CustomTabActivity.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/customtabs/CustomTabActivity.java
@@ -39,6 +39,7 @@ import org.chromium.chrome.browser.customtabs.content.CustomTabActivityTabProvider; import org.chromium.chrome.browser.customtabs.content.CustomTabIntentHandler; import org.chromium.chrome.browser.customtabs.content.CustomTabIntentHandler.IntentIgnoringCriterion; +import org.chromium.chrome.browser.customtabs.dependency_injection.BaseCustomTabActivityModule; import org.chromium.chrome.browser.customtabs.dependency_injection.CustomTabActivityComponent; import org.chromium.chrome.browser.customtabs.dependency_injection.CustomTabActivityModule; import org.chromium.chrome.browser.customtabs.features.CustomTabNavigationBarController; @@ -360,11 +361,13 @@ IntentIgnoringCriterion intentIgnoringCriterion = (intent) -> mIntentHandler.shouldIgnoreIntent(intent); + BaseCustomTabActivityModule baseCustomTabsModule = + new BaseCustomTabActivityModule(mIntentDataProvider); CustomTabActivityModule customTabsModule = new CustomTabActivityModule(mIntentDataProvider, mNightModeStateController, intentIgnoringCriterion, getStartupTabPreloader()); CustomTabActivityComponent component = ChromeApplication.getComponent().createCustomTabActivityComponent( - commonsModule, customTabsModule); + commonsModule, baseCustomTabsModule, customTabsModule); onComponentCreated(component);
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/customtabs/dependency_injection/BaseCustomTabActivityModule.java b/chrome/android/java/src/org/chromium/chrome/browser/customtabs/dependency_injection/BaseCustomTabActivityModule.java new file mode 100644 index 0000000..3b38a57 --- /dev/null +++ b/chrome/android/java/src/org/chromium/chrome/browser/customtabs/dependency_injection/BaseCustomTabActivityModule.java
@@ -0,0 +1,44 @@ +// Copyright 2018 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.customtabs.dependency_injection; + +import org.chromium.chrome.browser.browserservices.BrowserServicesIntentDataProvider; +import org.chromium.chrome.browser.browserservices.trustedwebactivityui.controller.TwaVerifier; +import org.chromium.chrome.browser.browserservices.trustedwebactivityui.controller.Verifier; +import org.chromium.chrome.browser.webapps.AddToHomescreenVerifier; +import org.chromium.chrome.browser.webapps.WebApkVerifier; + +import dagger.Lazy; +import dagger.Module; +import dagger.Provides; + +/** + * Module for bindings shared between custom tabs and webapps. + */ +@Module +public class BaseCustomTabActivityModule { + private final BrowserServicesIntentDataProvider mIntentDataProvider; + + public BaseCustomTabActivityModule(BrowserServicesIntentDataProvider intentDataProvider) { + mIntentDataProvider = intentDataProvider; + } + + @Provides + public BrowserServicesIntentDataProvider providesBrowserServicesIntentDataProvider() { + return mIntentDataProvider; + } + + @Provides + public Verifier provideVerifier(Lazy<WebApkVerifier> webApkVerifier, + Lazy<AddToHomescreenVerifier> addToHomescreenVerifier, Lazy<TwaVerifier> twaVerifier) { + if (mIntentDataProvider.isWebApkActivity()) { + return webApkVerifier.get(); + } + if (mIntentDataProvider.isWebappOrWebApkActivity()) { + return addToHomescreenVerifier.get(); + } + return twaVerifier.get(); + } +}
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/customtabs/dependency_injection/CustomTabActivityComponent.java b/chrome/android/java/src/org/chromium/chrome/browser/customtabs/dependency_injection/CustomTabActivityComponent.java index 044554d5..cbeb183 100644 --- a/chrome/android/java/src/org/chromium/chrome/browser/customtabs/dependency_injection/CustomTabActivityComponent.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/customtabs/dependency_injection/CustomTabActivityComponent.java
@@ -25,7 +25,8 @@ * Activity-scoped component associated with * {@link org.chromium.chrome.browser.customtabs.CustomTabActivity}. */ -@Subcomponent(modules = {ChromeActivityCommonsModule.class, CustomTabActivityModule.class}) +@Subcomponent(modules = {ChromeActivityCommonsModule.class, BaseCustomTabActivityModule.class, + CustomTabActivityModule.class}) @ActivityScope public interface CustomTabActivityComponent extends BaseCustomTabActivityComponent { TrustedWebActivityCoordinator resolveTrustedWebActivityCoordinator();
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/customtabs/dependency_injection/CustomTabActivityModule.java b/chrome/android/java/src/org/chromium/chrome/browser/customtabs/dependency_injection/CustomTabActivityModule.java index 16c790d..263c6537 100644 --- a/chrome/android/java/src/org/chromium/chrome/browser/customtabs/dependency_injection/CustomTabActivityModule.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/customtabs/dependency_injection/CustomTabActivityModule.java
@@ -8,8 +8,6 @@ import org.chromium.chrome.browser.browserservices.BrowserServicesIntentDataProvider; import org.chromium.chrome.browser.browserservices.ClientAppDataRegister; import org.chromium.chrome.browser.browserservices.trustedwebactivityui.TwaIntentHandlingStrategy; -import org.chromium.chrome.browser.browserservices.trustedwebactivityui.controller.TwaVerifier; -import org.chromium.chrome.browser.browserservices.trustedwebactivityui.controller.Verifier; import org.chromium.chrome.browser.customtabs.CustomTabNightModeStateController; import org.chromium.chrome.browser.customtabs.content.CustomTabActivityTabController; import org.chromium.chrome.browser.customtabs.content.CustomTabIntentHandler.IntentIgnoringCriterion; @@ -44,11 +42,6 @@ } @Provides - public BrowserServicesIntentDataProvider providesBrowserServicesIntentDataProvider() { - return mIntentDataProvider; - } - - @Provides public BrowserServicesActivityTabController provideTabController( CustomTabActivityTabController customTabActivityTabController) { return customTabActivityTabController; @@ -72,12 +65,6 @@ } @Provides - public Verifier provideVerifierDelegate(Lazy<TwaVerifier> twaVerifierDelegate) { - // TODO(peconn): Add handing of WebAPK/A2HS delegate. - return twaVerifierDelegate.get(); - } - - @Provides public IntentIgnoringCriterion provideIntentIgnoringCriterion() { return mIntentIgnoringCriterion; }
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/dependency_injection/ChromeAppComponent.java b/chrome/android/java/src/org/chromium/chrome/browser/dependency_injection/ChromeAppComponent.java index 23ee9a2f..bfe86542 100644 --- a/chrome/android/java/src/org/chromium/chrome/browser/dependency_injection/ChromeAppComponent.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/dependency_injection/ChromeAppComponent.java
@@ -12,6 +12,7 @@ import org.chromium.chrome.browser.browserservices.permissiondelegation.TrustedWebActivityPermissionManager; import org.chromium.chrome.browser.customtabs.CustomTabsClientFileProcessor; import org.chromium.chrome.browser.customtabs.CustomTabsConnection; +import org.chromium.chrome.browser.customtabs.dependency_injection.BaseCustomTabActivityModule; import org.chromium.chrome.browser.customtabs.dependency_injection.CustomTabActivityComponent; import org.chromium.chrome.browser.customtabs.dependency_injection.CustomTabActivityModule; import org.chromium.chrome.browser.externalauth.ExternalAuthUtils; @@ -32,9 +33,11 @@ ChromeActivityComponent createChromeActivityComponent(ChromeActivityCommonsModule module); CustomTabActivityComponent createCustomTabActivityComponent(ChromeActivityCommonsModule module, + BaseCustomTabActivityModule baseCustomTabActivityModule, CustomTabActivityModule customTabActivityModule); - WebappActivityComponent createWebappActivityComponent( - ChromeActivityCommonsModule module, WebappActivityModule webappActivityModule); + WebappActivityComponent createWebappActivityComponent(ChromeActivityCommonsModule module, + BaseCustomTabActivityModule baseCustomTabActivityModule, + WebappActivityModule webappActivityModule); CustomTabsConnection resolveCustomTabsConnection(); SharedPreferencesManager resolveSharedPreferencesManager();
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/language/settings/LanguageListPreference.java b/chrome/android/java/src/org/chromium/chrome/browser/language/settings/LanguageListPreference.java index 73221fb..90d93c40 100644 --- a/chrome/android/java/src/org/chromium/chrome/browser/language/settings/LanguageListPreference.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/language/settings/LanguageListPreference.java
@@ -178,4 +178,11 @@ void registerActivityLauncher(AddLanguageFragment.Launcher launcher) { mLauncher = launcher; } + + /** + * Notify LanguageListAdapter of pref changes to update list items. + */ + void notifyPrefChanged() { + mAdapter.onDataUpdated(); + } }
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/language/settings/LanguageSettings.java b/chrome/android/java/src/org/chromium/chrome/browser/language/settings/LanguageSettings.java index 574b0a7..0d5917f 100644 --- a/chrome/android/java/src/org/chromium/chrome/browser/language/settings/LanguageSettings.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/language/settings/LanguageSettings.java
@@ -51,6 +51,7 @@ public boolean onPreferenceChange(Preference preference, Object newValue) { boolean enabled = (boolean) newValue; PrefServiceBridge.getInstance().setBoolean(Pref.OFFER_TRANSLATE_ENABLED, enabled); + mLanguageListPref.notifyPrefChanged(); LanguagesManager.recordAction(enabled ? LanguagesManager.LanguageSettingsActionType .ENABLE_TRANSLATE_GLOBALLY : LanguagesManager.LanguageSettingsActionType
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/payments/AndroidPaymentApp.java b/chrome/android/java/src/org/chromium/chrome/browser/payments/AndroidPaymentApp.java index dc2b14d..0c69b4f 100644 --- a/chrome/android/java/src/org/chromium/chrome/browser/payments/AndroidPaymentApp.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/payments/AndroidPaymentApp.java
@@ -18,6 +18,7 @@ import org.chromium.chrome.R; import org.chromium.chrome.browser.ChromeActivity; import org.chromium.components.payments.ErrorStrings; +import org.chromium.components.payments.PayerData; import org.chromium.components.payments.intent.IsReadyToPayServiceHelper; import org.chromium.components.payments.intent.WebPaymentIntentHelper; import org.chromium.components.url_formatter.SchemeDisplay;
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/payments/AutofillPaymentInstrument.java b/chrome/android/java/src/org/chromium/chrome/browser/payments/AutofillPaymentInstrument.java index 6512dfc..6c254341 100644 --- a/chrome/android/java/src/org/chromium/chrome/browser/payments/AutofillPaymentInstrument.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/payments/AutofillPaymentInstrument.java
@@ -21,6 +21,7 @@ import org.chromium.chrome.browser.autofill.PersonalDataManager.NormalizedAddressRequestDelegate; import org.chromium.chrome.browser.flags.ChromeFeatureList; import org.chromium.components.payments.ErrorStrings; +import org.chromium.components.payments.PayerData; import org.chromium.content_public.browser.WebContents; import org.chromium.payments.mojom.PaymentDetailsModifier; import org.chromium.payments.mojom.PaymentItem;
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/payments/PayerData.java b/chrome/android/java/src/org/chromium/chrome/browser/payments/PayerData.java index 1230415..7584d29 100644 --- a/chrome/android/java/src/org/chromium/chrome/browser/payments/PayerData.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/payments/PayerData.java
@@ -4,32 +4,7 @@ package org.chromium.chrome.browser.payments; -import org.chromium.payments.mojom.PaymentAddress; - /** - * A class used to bundle the payer data received from payment handlers. + * A stub class to be removed once clank dependencies are resolved. */ -public class PayerData { - public final String payerName; - public final String payerPhone; - public final String payerEmail; - public final PaymentAddress shippingAddress; - public final String selectedShippingOptionId; - - public PayerData(String payerName, String payerPhone, String payerEmail, - PaymentAddress shippingAddress, String selectedShippingOptionId) { - this.payerName = payerName; - this.payerPhone = payerPhone; - this.payerEmail = payerEmail; - this.shippingAddress = shippingAddress; - this.selectedShippingOptionId = selectedShippingOptionId; - } - - public PayerData() { - payerName = null; - payerPhone = null; - payerEmail = null; - shippingAddress = null; - selectedShippingOptionId = null; - } -} +public class PayerData {}
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/payments/PaymentAddressTypeConverter.java b/chrome/android/java/src/org/chromium/chrome/browser/payments/PaymentAddressTypeConverter.java new file mode 100644 index 0000000..941275d1 --- /dev/null +++ b/chrome/android/java/src/org/chromium/chrome/browser/payments/PaymentAddressTypeConverter.java
@@ -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. + +package org.chromium.chrome.browser.payments; + +import androidx.annotation.Nullable; + +import org.chromium.components.payments.Address; +import org.chromium.payments.mojom.PaymentAddress; + +/** + * A Utility class that converts org.chromium.components.payments.Address type to + * org.chromium.payments.mojom.PaymentAddress and vice versa. + */ +public final class PaymentAddressTypeConverter { + /** + * @param address The org.chromium.payments.mojom.PaymentAddress to be converted. + * @return The converted address with type org.chromium.components.payments.Address. + */ + @Nullable + public static Address convertPaymentAddressFromMojo(PaymentAddress address) { + if (address == null) return null; + return new Address(address.country, address.addressLine, address.region, address.city, + address.dependentLocality, address.postalCode, address.sortingCode, + address.organization, address.recipient, address.phone); + } + + /** + * @param address The org.chromium.components.payments.Address address to be converted. + * @return The converted address with type org.chromium.payments.mojom.PaymentAddress. + */ + @Nullable + public static PaymentAddress convertAddressToMojoPaymentAddress(Address address) { + if (address == null) return null; + PaymentAddress result = new PaymentAddress(); + result.country = address.country; + result.addressLine = address.addressLine; + result.region = address.region; + result.city = address.city; + result.dependentLocality = address.dependentLocality; + result.postalCode = address.postalCode; + result.sortingCode = address.sortingCode; + result.organization = address.organization; + result.recipient = address.recipient; + result.phone = address.phone; + return result; + } +}
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/payments/PaymentApp.java b/chrome/android/java/src/org/chromium/chrome/browser/payments/PaymentApp.java index a409122..a644bc89 100644 --- a/chrome/android/java/src/org/chromium/chrome/browser/payments/PaymentApp.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/payments/PaymentApp.java
@@ -10,6 +10,7 @@ import org.chromium.base.task.PostTask; import org.chromium.chrome.browser.autofill.prefeditor.EditableOption; +import org.chromium.components.payments.PayerData; import org.chromium.content_public.browser.UiThreadTaskTraits; import org.chromium.payments.mojom.PaymentAddress; import org.chromium.payments.mojom.PaymentDetailsModifier; @@ -98,6 +99,16 @@ String methodName, String stringifiedDetails, PayerData payerData); /** + * Stub method to get removed after resolving clank dependencies. + * + * @param methodName Method name. For example, "visa". + * @param stringifiedDetails JSON-serialized object. For example, {"card": "123"}. + * @param payerData Payer's shipping address and contact information. + */ + void onInstrumentDetailsReady(String methodName, String stringifiedDetails, + org.chromium.chrome.browser.payments.PayerData payerData); + + /** * Called if unable to retrieve payment details. * @param errorMessage Developer-facing error message to be used when rejecting the promise * returned from PaymentRequest.show().
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/payments/PaymentRequestImpl.java b/chrome/android/java/src/org/chromium/chrome/browser/payments/PaymentRequestImpl.java index eef675e9..b9f5b54 100644 --- a/chrome/android/java/src/org/chromium/chrome/browser/payments/PaymentRequestImpl.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/payments/PaymentRequestImpl.java
@@ -61,6 +61,7 @@ import org.chromium.components.payments.ErrorStrings; import org.chromium.components.payments.MethodStrings; import org.chromium.components.payments.OriginSecurityChecker; +import org.chromium.components.payments.PayerData; import org.chromium.components.payments.PaymentDetailsConverter; import org.chromium.components.payments.PaymentHandlerHost; import org.chromium.components.payments.PaymentHandlerHost.PaymentHandlerHostDelegate; @@ -2864,6 +2865,11 @@ mPaymentResponseHelper.onPaymentDetailsReceived(methodName, stringifiedDetails, payerData); } + /** Stub method to get removed after resolving clank dependencies. */ + @Override + public void onInstrumentDetailsReady(String methodName, String stringifiedDetails, + org.chromium.chrome.browser.payments.PayerData payerData) {} + @Override public void onPaymentResponseReady(PaymentResponse response) { if (mSkipToGPayHelper != null && !mSkipToGPayHelper.patchPaymentResponse(response)) {
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/payments/PaymentResponseHelper.java b/chrome/android/java/src/org/chromium/chrome/browser/payments/PaymentResponseHelper.java index 489c454..f583296 100644 --- a/chrome/android/java/src/org/chromium/chrome/browser/payments/PaymentResponseHelper.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/payments/PaymentResponseHelper.java
@@ -9,6 +9,7 @@ import org.chromium.chrome.browser.autofill.PersonalDataManager.NormalizedAddressRequestDelegate; import org.chromium.chrome.browser.autofill.PhoneNumberUtil; import org.chromium.chrome.browser.autofill.prefeditor.EditableOption; +import org.chromium.components.payments.PayerData; import org.chromium.payments.mojom.PayerDetail; import org.chromium.payments.mojom.PaymentOptions; import org.chromium.payments.mojom.PaymentResponse; @@ -150,7 +151,9 @@ // Set up the shipping section of the response when it comes from payment app. if (mPaymentOptions.requestShipping && mSelectedPaymentApp.handlesShippingAddress()) { - mPaymentResponse.shippingAddress = mPayerDataFromPaymentApp.shippingAddress; + mPaymentResponse.shippingAddress = + PaymentAddressTypeConverter.convertAddressToMojoPaymentAddress( + mPayerDataFromPaymentApp.shippingAddress); mPaymentResponse.shippingOption = mPayerDataFromPaymentApp.selectedShippingOptionId; }
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/payments/ServiceWorkerPaymentAppBridge.java b/chrome/android/java/src/org/chromium/chrome/browser/payments/ServiceWorkerPaymentAppBridge.java index 423413f..229e09e8 100644 --- a/chrome/android/java/src/org/chromium/chrome/browser/payments/ServiceWorkerPaymentAppBridge.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/payments/ServiceWorkerPaymentAppBridge.java
@@ -24,6 +24,7 @@ import org.chromium.chrome.browser.tab.EmptyTabObserver; import org.chromium.chrome.browser.tab.Tab; import org.chromium.components.payments.MethodStrings; +import org.chromium.components.payments.PayerData; import org.chromium.components.payments.PaymentHandlerHost; import org.chromium.content_public.browser.NavigationHandle; import org.chromium.content_public.browser.RenderFrameHost; @@ -605,7 +606,9 @@ @CalledByNative private static Object createPayerData(String payerName, String payerPhone, String payerEmail, Object shippingAddress, String selectedShippingOptionId) { - return new PayerData(payerName, payerPhone, payerEmail, (PaymentAddress) shippingAddress, + return new PayerData(payerName, payerPhone, payerEmail, + PaymentAddressTypeConverter.convertPaymentAddressFromMojo( + (PaymentAddress) shippingAddress), selectedShippingOptionId); }
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/suggestions/mostvisited/MostVisitedSitesUtils.java b/chrome/android/java/src/org/chromium/chrome/browser/suggestions/mostvisited/MostVisitedSitesUtils.java new file mode 100644 index 0000000..1bc4ad9 --- /dev/null +++ b/chrome/android/java/src/org/chromium/chrome/browser/suggestions/mostvisited/MostVisitedSitesUtils.java
@@ -0,0 +1,206 @@ +// 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.suggestions.mostvisited; + +import android.content.Context; + +import androidx.core.util.AtomicFile; + +import org.chromium.base.ContextUtils; +import org.chromium.base.Log; +import org.chromium.base.StreamUtil; +import org.chromium.base.StrictModeContext; +import org.chromium.base.task.AsyncTask; +import org.chromium.chrome.browser.suggestions.SiteSuggestion; + +import java.io.ByteArrayInputStream; +import java.io.ByteArrayOutputStream; +import java.io.DataInputStream; +import java.io.DataOutputStream; +import java.io.File; +import java.io.FileInputStream; +import java.io.FileOutputStream; +import java.io.IOException; +import java.util.ArrayList; +import java.util.Date; +import java.util.List; + +/** + * This class provides methods to write/read most visited sites related info to devices. + */ +public class MostVisitedSitesUtils { + private static final String TAG = "TopSites"; + /** Prevents two state directories from getting created simultaneously. */ + private static final Object DIR_CREATION_LOCK = new Object(); + + /** Prevents two MostVisitedSitesUtils from saving the same file simultaneously. */ + private static final Object SAVE_LIST_LOCK = new Object(); + + private static File sStateDirectory; + private static String sStateDirName = "top_sites"; + private static String sStateFileName = "top_sites"; + + /** + * Asynchronously serialize the suggestion lists and save it into the disk. + * @param topSitesInfo Suggestion lists. + * @param callback Callback function after saving file. + */ + public static void saveSuggestionListsToFile( + List<SiteSuggestion> topSitesInfo, Runnable callback) { + new AsyncTask<Void>() { + @Override + protected Void doInBackground() { + try { + byte[] listData = serializeTopSitesData(topSitesInfo); + saveSuggestionListsToFile( + getOrCreateTopSitesStateDirectory(), sStateFileName, listData); + } catch (IOException e) { + Log.e(TAG, "Fail to save file."); + } + return null; + } + + @Override + protected void onPostExecute(Void aVoid) { + if (callback != null) { + callback.run(); + } + } + }.executeOnExecutor(AsyncTask.THREAD_POOL_EXECUTOR); + } + + /** + * Restore the suggestion lists from the disk and deserialize them. + * @return Suggestion lists + * IOException: If there is any problem when restoring file or deserialize data, throw an + * exception, then the UI thread will know there is no cache file and show something else. + */ + public static List<SiteSuggestion> restoreFileToSuggestionLists() throws IOException { + try (StrictModeContext ignored = StrictModeContext.allowDiskReads()) { + List<SiteSuggestion> suggestions; + byte[] listData = restoreFileToSuggestionLists( + getOrCreateTopSitesStateDirectory(), sStateFileName); + suggestions = deserializeTopSitesData(listData); + + return suggestions; + } + } + + private static byte[] serializeTopSitesData(List<SiteSuggestion> topSitesInfo) + throws IOException { + int topSitesCount = topSitesInfo.size(); + + ByteArrayOutputStream output = new ByteArrayOutputStream(); + DataOutputStream stream = new DataOutputStream(output); + + // Save the count of the list of top sites to restore. + stream.writeInt(topSitesCount); + + Log.d(TAG, "Serializing top sites lists; count: " + topSitesCount); + + // Save top sites. + for (int i = 0; i < topSitesCount; i++) { + stream.writeUTF(topSitesInfo.get(i).title); + stream.writeUTF(topSitesInfo.get(i).url); + stream.writeUTF(topSitesInfo.get(i).whitelistIconPath); + stream.writeInt(topSitesInfo.get(i).titleSource); + stream.writeInt(topSitesInfo.get(i).source); + stream.writeInt(topSitesInfo.get(i).sectionType); + stream.writeLong(topSitesInfo.get(i).dataGenerationTime.getTime()); + } + stream.close(); + Log.d(TAG, "Serializing top sites lists finished"); + return output.toByteArray(); + } + + private static List<SiteSuggestion> deserializeTopSitesData(byte[] listData) + throws IOException { + if (listData == null || listData.length == 0) { + return null; + } + + DataInputStream stream = new DataInputStream(new ByteArrayInputStream(listData)); + + Log.d(TAG, "Deserializing top sites lists"); + + Date dataGenerationTime; + + // Get how many top sites there are. + final int count = stream.readInt(); + + // Restore top sites. + List<SiteSuggestion> suggestions = new ArrayList<>(); + for (int i = 0; i < count; i++) { + String title = stream.readUTF(); + String url = stream.readUTF(); + String whitelistIconPath = stream.readUTF(); + int titleSource = stream.readInt(); + int source = stream.readInt(); + int sectionType = stream.readInt(); + dataGenerationTime = new Date(stream.readLong()); + suggestions.add(new SiteSuggestion(title, url, whitelistIconPath, titleSource, source, + sectionType, dataGenerationTime)); + } + Log.d(TAG, "Deserializing top sites lists finished"); + return suggestions; + } + + /** + * Atomically writes the given serialized data out to disk. + * @param stateDirectory Directory to save top sites data into. + * @param stateFileName File name to save top sites data into. + * @param listData Top sites data in the form of a serialized byte array. + */ + private static void saveSuggestionListsToFile( + File stateDirectory, String stateFileName, byte[] listData) { + synchronized (SAVE_LIST_LOCK) { + File metadataFile = new File(stateDirectory, stateFileName); + AtomicFile file = new AtomicFile(metadataFile); + FileOutputStream stream = null; + try { + stream = file.startWrite(); + stream.write(listData, 0, listData.length); + file.finishWrite(stream); + Log.i(TAG, + "Finished saving top sites list to file:" + metadataFile.getAbsolutePath()); + } catch (IOException e) { + if (stream != null) file.failWrite(stream); + Log.e(TAG, "Fail to write file: " + metadataFile.getAbsolutePath()); + } + } + } + + /** + * Restore serialized data from disk. + * @param stateDirectory Directory to save top sites data into. + * @param stateFileName File name to save top sites data into. + * @return Top sites data in the form of a serialized byte array. + */ + private static byte[] restoreFileToSuggestionLists(File stateDirectory, String stateFileName) + throws IOException { + FileInputStream stream; + byte[] data; + + File stateFile = new File(stateDirectory, stateFileName); + stream = new FileInputStream(stateFile); + data = new byte[(int) stateFile.length()]; + stream.read(data); + Log.i(TAG, "Finished fetching top sites list."); + + StreamUtil.closeQuietly(stream); + + return data; + } + + protected static File getOrCreateTopSitesStateDirectory() { + synchronized (DIR_CREATION_LOCK) { + if (sStateDirectory == null) { + sStateDirectory = ContextUtils.getApplicationContext().getDir( + sStateDirName, Context.MODE_PRIVATE); + } + } + return sStateDirectory; + } +}
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/toolbar/top/ToolbarPhone.java b/chrome/android/java/src/org/chromium/chrome/browser/toolbar/top/ToolbarPhone.java index 7ae3dad4..d0e3124 100644 --- a/chrome/android/java/src/org/chromium/chrome/browser/toolbar/top/ToolbarPhone.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/toolbar/top/ToolbarPhone.java
@@ -2614,11 +2614,18 @@ @Override void hideOptionalButton() { - if (mOptionalButton == null || mOptionalButton.getVisibility() == View.GONE) { + // mLayoutLocationBarWithoutExtraButton implies that the hide animation is currently + // running. + if (mOptionalButton == null || mOptionalButton.getVisibility() == View.GONE + || mLayoutLocationBarWithoutExtraButton) { return; } - if (mTabSwitcherState == STATIC_TAB && !mUrlFocusChangeInProgress && !urlHasFocus()) { + boolean transitioningAwayFromLocationBarInNTP = mVisibleNewTabPage != null + && mVisibleNewTabPage.isLocationBarShownInNTP() && !isLocationBarShownInNTP(); + + if (mTabSwitcherState == STATIC_TAB && !mUrlFocusChangeInProgress && !urlHasFocus() + && !transitioningAwayFromLocationBarInNTP) { runHideOptionalButtonsAnimators(); } else { mOptionalButton.setVisibility(View.GONE); @@ -2708,7 +2715,6 @@ if (mOptionalButtonAnimationRunning) mOptionalButtonAnimator.end(); List<Animator> animators = new ArrayList<>(); - mLocBarWidthChangePercent = 0.f; Animator widthChangeAnimator = ObjectAnimator.ofFloat(this, mLocBarWidthChangePercentProperty, 1.f);
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/webapps/WebappActivity.java b/chrome/android/java/src/org/chromium/chrome/browser/webapps/WebappActivity.java index 4e6ff8d..e02ac6a 100644 --- a/chrome/android/java/src/org/chromium/chrome/browser/webapps/WebappActivity.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/webapps/WebappActivity.java
@@ -36,6 +36,7 @@ import org.chromium.chrome.browser.customtabs.CustomTabDelegateFactory; import org.chromium.chrome.browser.customtabs.content.TabObserverRegistrar; import org.chromium.chrome.browser.customtabs.content.TabObserverRegistrar.CustomTabTabObserver; +import org.chromium.chrome.browser.customtabs.dependency_injection.BaseCustomTabActivityModule; import org.chromium.chrome.browser.customtabs.features.ImmersiveModeController; import org.chromium.chrome.browser.dependency_injection.ChromeActivityCommonsModule; import org.chromium.chrome.browser.document.ChromeLauncherActivity; @@ -327,10 +328,12 @@ @Override protected WebappActivityComponent createComponent(ChromeActivityCommonsModule commonsModule) { mIntentDataProvider = mWebappInfo.getProvider(); - WebappActivityModule webappModule = new WebappActivityModule(mIntentDataProvider); + BaseCustomTabActivityModule baseCustomTabModule = + new BaseCustomTabActivityModule(mIntentDataProvider); + WebappActivityModule webappModule = new WebappActivityModule(); WebappActivityComponent component = ChromeApplication.getComponent().createWebappActivityComponent( - commonsModule, webappModule); + commonsModule, baseCustomTabModule, webappModule); onComponentCreated(component); mTabController = component.resolveTabController();
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/webapps/dependency_injection/WebappActivityComponent.java b/chrome/android/java/src/org/chromium/chrome/browser/webapps/dependency_injection/WebappActivityComponent.java index c5823fa8..61cbbbc 100644 --- a/chrome/android/java/src/org/chromium/chrome/browser/webapps/dependency_injection/WebappActivityComponent.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/webapps/dependency_injection/WebappActivityComponent.java
@@ -5,11 +5,10 @@ package org.chromium.chrome.browser.webapps.dependency_injection; import org.chromium.chrome.browser.customtabs.dependency_injection.BaseCustomTabActivityComponent; +import org.chromium.chrome.browser.customtabs.dependency_injection.BaseCustomTabActivityModule; import org.chromium.chrome.browser.dependency_injection.ActivityScope; import org.chromium.chrome.browser.dependency_injection.ChromeActivityCommonsModule; -import org.chromium.chrome.browser.webapps.AddToHomescreenVerifier; import org.chromium.chrome.browser.webapps.WebApkUpdateManager; -import org.chromium.chrome.browser.webapps.WebApkVerifier; import org.chromium.chrome.browser.webapps.WebappActivityTabController; import dagger.Subcomponent; @@ -18,11 +17,10 @@ * Activity-scoped component associated with * {@link org.chromium.chrome.browser.webapps.WebappActivity}. */ -@Subcomponent(modules = {ChromeActivityCommonsModule.class, WebappActivityModule.class}) +@Subcomponent(modules = {ChromeActivityCommonsModule.class, BaseCustomTabActivityModule.class, + WebappActivityModule.class}) @ActivityScope public interface WebappActivityComponent extends BaseCustomTabActivityComponent { - AddToHomescreenVerifier resolveAddToHomescreenVerifier(); WebappActivityTabController resolveTabController(); - WebApkVerifier resolveWebApkVerifier(); WebApkUpdateManager resolveWebApkUpdateManager(); }
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/webapps/dependency_injection/WebappActivityModule.java b/chrome/android/java/src/org/chromium/chrome/browser/webapps/dependency_injection/WebappActivityModule.java index 07894f4a..c6655fc 100644 --- a/chrome/android/java/src/org/chromium/chrome/browser/webapps/dependency_injection/WebappActivityModule.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/webapps/dependency_injection/WebappActivityModule.java
@@ -7,15 +7,10 @@ import androidx.annotation.Nullable; import org.chromium.chrome.browser.browserservices.BrowserServicesActivityTabController; -import org.chromium.chrome.browser.browserservices.BrowserServicesIntentDataProvider; -import org.chromium.chrome.browser.browserservices.trustedwebactivityui.controller.Verifier; import org.chromium.chrome.browser.customtabs.CustomTabUmaRecorder; import org.chromium.chrome.browser.init.StartupTabPreloader; -import org.chromium.chrome.browser.webapps.AddToHomescreenVerifier; -import org.chromium.chrome.browser.webapps.WebApkVerifier; import org.chromium.chrome.browser.webapps.WebappActivityTabController; -import dagger.Lazy; import dagger.Module; import dagger.Provides; @@ -24,30 +19,12 @@ */ @Module public final class WebappActivityModule { - private final BrowserServicesIntentDataProvider mIntentDataProvider; - - public WebappActivityModule(BrowserServicesIntentDataProvider intentDataProvider) { - mIntentDataProvider = intentDataProvider; - } - - @Provides - public BrowserServicesIntentDataProvider provideIntentDataProvider() { - return mIntentDataProvider; - } - @Provides public BrowserServicesActivityTabController provideTabController( WebappActivityTabController webappTabController) { return webappTabController; } - @Provides - public Verifier provideVerifier(Lazy<AddToHomescreenVerifier> addToHomescreenVerifier, - Lazy<WebApkVerifier> webApkVerifier) { - return mIntentDataProvider.isWebApkActivity() ? webApkVerifier.get() - : addToHomescreenVerifier.get(); - } - @Nullable @Provides // TODO(crbug.com/1021201): Add bit to all metrics to record whether they are recorded from a
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/webauth/Fido2ApiHandler.java b/chrome/android/java/src/org/chromium/chrome/browser/webauth/Fido2ApiHandler.java index 3df174f..a9cb47f0 100644 --- a/chrome/android/java/src/org/chromium/chrome/browser/webauth/Fido2ApiHandler.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/webauth/Fido2ApiHandler.java
@@ -20,7 +20,7 @@ public class Fido2ApiHandler { private static Fido2ApiHandler sInstance; private static final String GMSCORE_PACKAGE_NAME = "com.google.android.gms"; - public static final int GMSCORE_MIN_VERSION = 201106000; + public static final int GMSCORE_MIN_VERSION = 16890000; @VisibleForTesting static void overrideInstanceForTesting(Fido2ApiHandler instance) {
diff --git a/chrome/android/javatests/src/org/chromium/chrome/browser/omnibox/OmniboxTest.java b/chrome/android/javatests/src/org/chromium/chrome/browser/omnibox/OmniboxTest.java index 3660abfb..a51a1dd 100644 --- a/chrome/android/javatests/src/org/chromium/chrome/browser/omnibox/OmniboxTest.java +++ b/chrome/android/javatests/src/org/chromium/chrome/browser/omnibox/OmniboxTest.java
@@ -14,14 +14,10 @@ import android.support.test.filters.SmallTest; import android.text.Selection; import android.view.KeyEvent; -import android.view.View; import android.view.WindowManager; import android.widget.ImageButton; -import android.widget.ListView; import android.widget.TextView; -import androidx.core.view.ViewCompat; - import org.junit.Assert; import org.junit.Before; import org.junit.Rule; @@ -34,7 +30,6 @@ import org.chromium.base.test.util.CallbackHelper; import org.chromium.base.test.util.CommandLineFlags; import org.chromium.base.test.util.DisableIf; -import org.chromium.base.test.util.DisabledTest; import org.chromium.base.test.util.EnormousTest; import org.chromium.base.test.util.Feature; import org.chromium.base.test.util.RetryOnFailure; @@ -71,7 +66,6 @@ import java.util.HashMap; import java.util.List; -import java.util.Locale; import java.util.Map; import java.util.concurrent.Callable; import java.util.concurrent.ExecutionException; @@ -610,84 +604,6 @@ } } - @Test - @MediumTest - @Feature({"Omnibox"}) - @RetryOnFailure - @DisabledTest // https://crbug.com/950556 - public void testSuggestionDirectionSwitching() { - final TextView urlBarView = - (TextView) mActivityTestRule.getActivity().findViewById(R.id.url_bar); - TestThreadUtils.runOnUiThreadBlocking(() -> { - urlBarView.requestFocus(); - urlBarView.setText(""); - }); - - final LocationBarLayout locationBar = - ((LocationBarLayout) mActivityTestRule.getActivity().findViewById( - R.id.location_bar)); - - Map<String, List<SuggestionsResult>> suggestionsMap = buildSuggestionMap( - new TestSuggestionResultsBuilder() - .setTextShownFor("ل") - .addSuggestions(new SuggestionsResultBuilder() - .addGeneratedSuggestion(OmniboxSuggestionType.SEARCH_HISTORY, - "للك", null) - .addGeneratedSuggestion(OmniboxSuggestionType.SEARCH_HISTORY, - "www.test.com", null) - .addGeneratedSuggestion(OmniboxSuggestionType.SEARCH_HISTORY, - "للكتا", null)), - new TestSuggestionResultsBuilder() - .setTextShownFor("للك") - .addSuggestions(new SuggestionsResultBuilder() - .addGeneratedSuggestion(OmniboxSuggestionType.SEARCH_HISTORY, - "للكتاب", null)), - new TestSuggestionResultsBuilder() - .setTextShownFor("f") - .addSuggestions(new SuggestionsResultBuilder() - .addGeneratedSuggestion(OmniboxSuggestionType.SEARCH_HISTORY, - "f", null) - .addGeneratedSuggestion(OmniboxSuggestionType.SEARCH_HISTORY, - "fa", null) - .addGeneratedSuggestion(OmniboxSuggestionType.SEARCH_HISTORY, - "fac", null))); - final TestAutocompleteController controller = new TestAutocompleteController(locationBar, - AutocompleteCoordinatorTestUtils.getSuggestionsReceivedListenerForTest( - locationBar.getAutocompleteCoordinator()), - suggestionsMap); - - TestThreadUtils.runOnUiThreadBlocking(() -> { - AutocompleteCoordinatorTestUtils.setAutocompleteController( - locationBar.getAutocompleteCoordinator(), controller); - }); - - TestThreadUtils.runOnUiThreadBlocking(() -> { urlBarView.setText("ل"); }); - verifyOmniboxSuggestionAlignment(locationBar, 3, View.LAYOUT_DIRECTION_RTL); - - TestThreadUtils.runOnUiThreadBlocking(() -> { urlBarView.setText("للك"); }); - verifyOmniboxSuggestionAlignment(locationBar, 1, View.LAYOUT_DIRECTION_RTL); - - TestThreadUtils.runOnUiThreadBlocking(() -> { urlBarView.setText("f"); }); - verifyOmniboxSuggestionAlignment(locationBar, 3, View.LAYOUT_DIRECTION_LTR); - } - - private void verifyOmniboxSuggestionAlignment(final LocationBarLayout locationBar, - final int expectedSuggestionCount, final int expectedLayoutDirection) { - OmniboxTestUtils.waitForOmniboxSuggestions(locationBar, expectedSuggestionCount); - TestThreadUtils.runOnUiThreadBlocking(() -> { - ListView suggestionsList = AutocompleteCoordinatorTestUtils.getSuggestionList( - locationBar.getAutocompleteCoordinator()); - Assert.assertEquals(expectedSuggestionCount, suggestionsList.getChildCount()); - for (int i = 0; i < suggestionsList.getChildCount(); i++) { - View suggestionView = suggestionsList.getChildAt(i); - Assert.assertEquals( - String.format(Locale.getDefault(), - "Incorrect layout direction of suggestion at index %d", i), - expectedLayoutDirection, ViewCompat.getLayoutDirection(suggestionView)); - } - }); - } - @Before public void setUp() throws InterruptedException { if (mActivityTestRule.getName().equals("testsplitPathFromUrlDisplayText")
diff --git a/chrome/android/javatests/src/org/chromium/chrome/browser/omnibox/UrlBarTest.java b/chrome/android/javatests/src/org/chromium/chrome/browser/omnibox/UrlBarTest.java index 65e5ef2..a467775 100644 --- a/chrome/android/javatests/src/org/chromium/chrome/browser/omnibox/UrlBarTest.java +++ b/chrome/android/javatests/src/org/chromium/chrome/browser/omnibox/UrlBarTest.java
@@ -15,6 +15,7 @@ import android.text.Selection; import android.text.TextUtils; import android.view.KeyEvent; +import android.view.View; import android.view.ViewGroup; import android.view.inputmethod.BaseInputConnection; import android.view.inputmethod.InputMethodManager; @@ -220,6 +221,27 @@ }); } + private void setTextAndVerifyTextDirection(String text, int expectedDirection) + throws TimeoutException { + CallbackHelper directionCallback = new CallbackHelper(); + TestThreadUtils.runOnUiThreadBlocking(() -> { + mUrlBar.setUrlDirectionListener((direction) -> { + if (direction == expectedDirection) directionCallback.notifyCalled(); + }); + }); + setTextAndVerifyNoAutocomplete(text); + directionCallback.waitForFirst( + "Direction never reached expected direction: " + expectedDirection); + assertUrlDirection(expectedDirection); + TestThreadUtils.runOnUiThreadBlocking(() -> mUrlBar.setUrlDirectionListener(null)); + } + + private void assertUrlDirection(int expectedDirection) { + int actualDirection = + TestThreadUtils.runOnUiThreadBlockingNoException(() -> mUrlBar.getUrlDirection()); + Assert.assertEquals(expectedDirection, actualDirection); + } + @Test @SmallTest @Feature({"Omnibox"}) @@ -904,4 +926,18 @@ setAutocomplete("test", "ing is awesome"); assertAutocompleteSelectionRange(4, 18); } + + @Test + @SmallTest + @Feature({"Omnibox"}) + @RetryOnFailure + public void testUrlDirection() throws TimeoutException { + toggleFocusAndIgnoreImeOperations(mUrlBar, true); + assertUrlDirection(View.LAYOUT_DIRECTION_LOCALE); + setTextAndVerifyTextDirection("ل", View.LAYOUT_DIRECTION_RTL); + setTextAndVerifyTextDirection("a", View.LAYOUT_DIRECTION_LTR); + setTextAndVerifyTextDirection("للك", View.LAYOUT_DIRECTION_RTL); + setTextAndVerifyTextDirection("f", View.LAYOUT_DIRECTION_LTR); + setTextAndVerifyTextDirection("", View.LAYOUT_DIRECTION_LOCALE); + } }
diff --git a/chrome/android/javatests/src/org/chromium/chrome/browser/payments/PaymentRequestTestRule.java b/chrome/android/javatests/src/org/chromium/chrome/browser/payments/PaymentRequestTestRule.java index b7157296..b655067 100644 --- a/chrome/android/javatests/src/org/chromium/chrome/browser/payments/PaymentRequestTestRule.java +++ b/chrome/android/javatests/src/org/chromium/chrome/browser/payments/PaymentRequestTestRule.java
@@ -37,6 +37,7 @@ import org.chromium.chrome.browser.payments.ui.PaymentRequestUI; import org.chromium.chrome.browser.payments.ui.PaymentRequestUI.PaymentRequestObserverForTest; import org.chromium.chrome.test.ChromeTabbedActivityTestRule; +import org.chromium.components.payments.PayerData; import org.chromium.content_public.browser.UiThreadTaskTraits; import org.chromium.content_public.browser.WebContents; import org.chromium.content_public.browser.test.util.Criteria;
diff --git a/chrome/android/javatests/src/org/chromium/chrome/browser/settings/language/LanguageSettingsTest.java b/chrome/android/javatests/src/org/chromium/chrome/browser/settings/language/LanguageSettingsTest.java index 048764d3..22997171 100644 --- a/chrome/android/javatests/src/org/chromium/chrome/browser/settings/language/LanguageSettingsTest.java +++ b/chrome/android/javatests/src/org/chromium/chrome/browser/settings/language/LanguageSettingsTest.java
@@ -6,6 +6,7 @@ import static android.support.test.espresso.Espresso.onView; import static android.support.test.espresso.action.ViewActions.click; +import static android.support.test.espresso.assertion.ViewAssertions.doesNotExist; import static android.support.test.espresso.assertion.ViewAssertions.matches; import static android.support.test.espresso.matcher.ViewMatchers.hasSibling; import static android.support.test.espresso.matcher.ViewMatchers.isDisplayed; @@ -19,6 +20,7 @@ import android.view.View; import android.widget.ImageView; +import androidx.appcompat.widget.SwitchCompat; import androidx.recyclerview.widget.RecyclerView; import androidx.test.filters.SmallTest; @@ -34,11 +36,14 @@ import org.chromium.chrome.browser.language.settings.LanguageItem; import org.chromium.chrome.browser.language.settings.LanguageListBaseAdapter; import org.chromium.chrome.browser.language.settings.LanguageSettings; +import org.chromium.chrome.browser.preferences.Pref; +import org.chromium.chrome.browser.preferences.PrefServiceBridge; import org.chromium.chrome.browser.settings.SettingsActivity; import org.chromium.chrome.browser.settings.SettingsActivityTest; import org.chromium.chrome.browser.translate.TranslateBridge; import org.chromium.chrome.test.ChromeJUnit4ClassRunner; import org.chromium.chrome.test.util.browser.RecyclerViewTestUtils; +import org.chromium.components.browser_ui.widget.listmenu.ListMenuButton; import org.chromium.content_public.browser.test.util.TestThreadUtils; import org.chromium.ui.test.util.UiRestriction; @@ -168,4 +173,51 @@ () -> { newLangView.findViewById(R.id.more).performClick(); }); onView(withText(R.string.remove)).perform(click()); } + + @Test + @SmallTest + public void testEnabledAndDisableOfferToTranslate() { + RecyclerView acceptLanguageList = mActivity.findViewById(R.id.language_list); + View langView = acceptLanguageList.findViewHolderForAdapterPosition(0).itemView; + ListMenuButton moreButton = langView.findViewById(R.id.more); + SwitchCompat pref = mActivity.findViewById(R.id.switchWidget); + + // Restore this after test. + boolean enabledInDefault = pref.isChecked(); + TestThreadUtils.runOnUiThreadBlocking(() -> { + boolean enabled = + PrefServiceBridge.getInstance().getBoolean(Pref.OFFER_TRANSLATE_ENABLED); + Assert.assertEquals( + "The state of switch widget is different from local preference of 'offer to translate'.", + enabledInDefault, enabled); + }); + + // Verify that "offer to translate" is hidden or visible. + TestThreadUtils.runOnUiThreadBlocking((Runnable) moreButton::performClick); + onView(withText(R.string.languages_item_option_offer_to_translate)) + .check(enabledInDefault ? matches(isDisplayed()) : doesNotExist()); + + // Dismiss the popup window. + TestThreadUtils.runOnUiThreadBlocking(moreButton::dismiss); + + // Toggle the switch. + onView(withId(R.id.switchWidget)).perform(click()); + TestThreadUtils.runOnUiThreadBlocking(() -> { + Assert.assertEquals( + "Preference of 'offer to translate' should be toggled when switch widget is clicked.", + !enabledInDefault, + PrefServiceBridge.getInstance().getBoolean(Pref.OFFER_TRANSLATE_ENABLED)); + }); + + TestThreadUtils.runOnUiThreadBlocking((Runnable) moreButton::performClick); + + onView(withText(R.string.languages_item_option_offer_to_translate)) + .check(!enabledInDefault ? matches(isDisplayed()) : doesNotExist()); + + // Reset state. + TestThreadUtils.runOnUiThreadBlocking(() -> { + PrefServiceBridge.getInstance().setBoolean( + Pref.OFFER_TRANSLATE_ENABLED, enabledInDefault); + }); + } }
diff --git a/chrome/android/javatests/src/org/chromium/chrome/browser/suggestions/mostvisited/MostVisitedSitesUtilsTest.java b/chrome/android/javatests/src/org/chromium/chrome/browser/suggestions/mostvisited/MostVisitedSitesUtilsTest.java new file mode 100644 index 0000000..0e2581cd --- /dev/null +++ b/chrome/android/javatests/src/org/chromium/chrome/browser/suggestions/mostvisited/MostVisitedSitesUtilsTest.java
@@ -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. + +package org.chromium.chrome.browser.suggestions.mostvisited; + +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertTrue; + +import androidx.test.filters.SmallTest; + +import org.junit.Before; +import org.junit.Rule; +import org.junit.Test; +import org.junit.runner.RunWith; + +import org.chromium.base.test.util.CommandLineFlags; +import org.chromium.chrome.browser.flags.ChromeSwitches; +import org.chromium.chrome.browser.suggestions.SiteSuggestion; +import org.chromium.chrome.browser.suggestions.tile.TileSectionType; +import org.chromium.chrome.browser.suggestions.tile.TileSource; +import org.chromium.chrome.browser.suggestions.tile.TileTitleSource; +import org.chromium.chrome.test.ChromeJUnit4ClassRunner; +import org.chromium.chrome.test.ChromeTabbedActivityTestRule; + +import java.io.File; +import java.io.IOException; +import java.util.ArrayList; +import java.util.Date; +import java.util.List; + +/** + * Instrumentation tests for {@link MostVisitedSitesUtils}. + */ +@RunWith(ChromeJUnit4ClassRunner.class) +@CommandLineFlags.Add({ChromeSwitches.DISABLE_FIRST_RUN_EXPERIENCE}) +public class MostVisitedSitesUtilsTest { + @Rule + public ChromeTabbedActivityTestRule mTestSetupRule = new ChromeTabbedActivityTestRule(); + + private List<SiteSuggestion> mExpectedSiteSuggestions; + + @Before + public void setUp() { + mTestSetupRule.startMainActivityOnBlankPage(); + } + + @Test + @SmallTest + public void testSaveRestoreConsistency() { + mExpectedSiteSuggestions = createFakeSiteSuggestions(); + + // Get old file and ensure to delete it. + File oldFile = MostVisitedSitesUtils.getOrCreateTopSitesStateDirectory(); + assertTrue(oldFile.delete() && !oldFile.exists()); + + // Save suggestion lists to file. + MostVisitedSitesUtils.saveSuggestionListsToFile(mExpectedSiteSuggestions, () -> { + // Restore list from file after saving finished. + List<SiteSuggestion> sitesAfterRestore = null; + + try { + sitesAfterRestore = MostVisitedSitesUtils.restoreFileToSuggestionLists(); + } catch (IOException e) { + e.printStackTrace(); + } + + // Ensure that the new list equals to old list. + assertEquals(mExpectedSiteSuggestions, sitesAfterRestore); + }); + } + + @Test(expected = IOException.class) + @SmallTest + public void testRestoreException() throws IOException { + // Get old file and ensure to delete it. + File oldFile = MostVisitedSitesUtils.getOrCreateTopSitesStateDirectory(); + assertTrue(oldFile.delete() || !oldFile.exists()); + + // Call restore function and ensure it throws an IOException. + MostVisitedSitesUtils.restoreFileToSuggestionLists(); + } + + private static List<SiteSuggestion> createFakeSiteSuggestions() { + List<SiteSuggestion> siteSuggestions = new ArrayList<>(); + siteSuggestions.add(new SiteSuggestion("0 TOP_SITES", "https://www.foo.com", "", + TileTitleSource.TITLE_TAG, TileSource.TOP_SITES, TileSectionType.PERSONALIZED, + new Date())); + siteSuggestions.add(new SiteSuggestion("1 WHITELIST", "https://www.bar.com", "", + TileTitleSource.UNKNOWN, TileSource.WHITELIST, TileSectionType.PERSONALIZED, + new Date())); + return siteSuggestions; + } +} \ No newline at end of file
diff --git a/chrome/android/javatests/src/org/chromium/chrome/browser/suggestions/mostvisited/OWNERS b/chrome/android/javatests/src/org/chromium/chrome/browser/suggestions/mostvisited/OWNERS new file mode 100644 index 0000000..7885852 --- /dev/null +++ b/chrome/android/javatests/src/org/chromium/chrome/browser/suggestions/mostvisited/OWNERS
@@ -0,0 +1 @@ +file://chrome/android/java/src/org/chromium/chrome/browser/suggestions/mostvisited/OWNERS
diff --git a/chrome/android/junit/src/org/chromium/chrome/browser/omnibox/suggestions/AutocompleteMediatorUnitTest.java b/chrome/android/junit/src/org/chromium/chrome/browser/omnibox/suggestions/AutocompleteMediatorUnitTest.java index f757d8a..1d68855 100644 --- a/chrome/android/junit/src/org/chromium/chrome/browser/omnibox/suggestions/AutocompleteMediatorUnitTest.java +++ b/chrome/android/junit/src/org/chromium/chrome/browser/omnibox/suggestions/AutocompleteMediatorUnitTest.java
@@ -15,6 +15,7 @@ import static org.mockito.Mockito.when; import android.app.Activity; +import android.view.View; import org.junit.Assert; import org.junit.Before; @@ -74,7 +75,6 @@ private AutocompleteMediator mMediator; private List<OmniboxSuggestion> mSuggestionsList; private ModelList mSuggestionModels; - private PropertyModel mSuggestionModel; @Before public void setUp() { @@ -83,8 +83,6 @@ mActivity = Robolectric.buildActivity(Activity.class).setup().get(); mSuggestionModels = new ModelList(); mListModel = new PropertyModel(SuggestionListProperties.ALL_KEYS); - mSuggestionModel = new PropertyModel(SuggestionCommonProperties.ALL_KEYS); - mListModel.set(SuggestionListProperties.SUGGESTION_MODELS, mSuggestionModels); mMediator = new AutocompleteMediator(mActivity, mAutocompleteDelegate, mTextStateProvider, @@ -95,7 +93,8 @@ AutocompleteMediator.SuggestionVisibilityState.ALLOWED); when(mMockProcessor.doesProcessSuggestion(any())).thenReturn(true); - when(mMockProcessor.createModelForSuggestion(any())).thenReturn(mSuggestionModel); + when(mMockProcessor.createModelForSuggestion(any())) + .thenAnswer((mock) -> new PropertyModel(SuggestionCommonProperties.ALL_KEYS)); when(mMockProcessor.getMinimumSuggestionViewHeight()).thenReturn(SUGGESTION_MIN_HEIGHT); mSuggestionsList = buildDummySuggestionsList(10, "Suggestion"); @@ -436,4 +435,45 @@ mMediator.onSuggestionsReceived(mSuggestionsList, "inline_autocomplete2"); verifyNoMoreInteractions(mAutocompleteDelegate); } + + @Test + @Features.DisableFeatures({ChromeFeatureList.OMNIBOX_ADAPTIVE_SUGGESTIONS_COUNT, + ChromeFeatureList.OMNIBOX_DEFERRED_KEYBOARD_POPUP}) + public void setLayoutDirection_beforeInitialization() { + mMediator.setLayoutDirection(View.LAYOUT_DIRECTION_RTL); + mMediator.setNewSuggestions(mSuggestionsList); + mMediator.updateSuggestionsList(Integer.MAX_VALUE); + Assert.assertEquals(mSuggestionsList.size(), mSuggestionModels.size()); + for (int i = 0; i < mSuggestionModels.size(); i++) { + Assert.assertEquals(i + "th model does not have the expected layout direction.", + View.LAYOUT_DIRECTION_RTL, + mSuggestionModels.get(i).model.get( + SuggestionCommonProperties.LAYOUT_DIRECTION)); + } + } + + @Test + @Features.DisableFeatures({ChromeFeatureList.OMNIBOX_ADAPTIVE_SUGGESTIONS_COUNT, + ChromeFeatureList.OMNIBOX_DEFERRED_KEYBOARD_POPUP}) + public void setLayoutDirection_afterInitialization() { + mMediator.setNewSuggestions(mSuggestionsList); + mMediator.updateSuggestionsList(Integer.MAX_VALUE); + Assert.assertEquals(mSuggestionsList.size(), mSuggestionModels.size()); + + mMediator.setLayoutDirection(View.LAYOUT_DIRECTION_RTL); + for (int i = 0; i < mSuggestionModels.size(); i++) { + Assert.assertEquals(i + "th model does not have the expected layout direction.", + View.LAYOUT_DIRECTION_RTL, + mSuggestionModels.get(i).model.get( + SuggestionCommonProperties.LAYOUT_DIRECTION)); + } + + mMediator.setLayoutDirection(View.LAYOUT_DIRECTION_LTR); + for (int i = 0; i < mSuggestionModels.size(); i++) { + Assert.assertEquals(i + "th model does not have the expected layout direction.", + View.LAYOUT_DIRECTION_LTR, + mSuggestionModels.get(i).model.get( + SuggestionCommonProperties.LAYOUT_DIRECTION)); + } + } }
diff --git a/chrome/app/resources/chromium_strings_hi.xtb b/chrome/app/resources/chromium_strings_hi.xtb index a01f8d46..60b0ff53 100644 --- a/chrome/app/resources/chromium_strings_hi.xtb +++ b/chrome/app/resources/chromium_strings_hi.xtb
@@ -16,7 +16,7 @@ <translation id="1779356040007214683">Chromium को ज़्यादा सुरक्षित बनाने के लिए, हमने ऐसे कुछ एक्सटेंशन अक्षम कर दिए हैं जो <ph name="IDS_EXTENSION_WEB_STORE_TITLE" /> में सूचीबद्ध नहीं हैं और आपकी जानकारी के बिना जोड़े गए हो सकते हैं.</translation> <translation id="1808667845054772817">क्रोमियम को फिर से इंस्टॉल करें</translation> <translation id="1881322772814446296">आप प्रबंधित खाते से साइन इन कर रहे हैं और उसके एडमिन को अपनी क्रोमियम प्रोफ़ाइल पर नियंत्रण दे रहे हैं. आपका क्रोमियम डेटा, जैसे आपके ऐप्लिकेशन, बुकमार्क, इतिहास, पासवर्ड, और दूसरे सेटिंग स्थायी रूप से <ph name="USER_NAME" /> से जुड़ जाएंगे. आप Google खाता डैशबोर्ड के ज़रिए इस डेटा को मिटा सकेंगे, लेकिन दूसरे किसी खाते से इस डेटा को जोड़ नहीं सकेंगे. आप अपने मौजूदा क्रोमियम डेटा को अलग रखने के लिए वैकल्पिक रूप से एक नई प्रोफ़ाइल बना सकते हैं. <ph name="LEARN_MORE" /></translation> -<translation id="1911747963917069754">'क्रोमियम' आपके सभी पासवर्ड की जांच नहीं कर सकता. 24 घंटे बाद कोशिश करें.</translation> +<translation id="1911747963917069754">क्रोमियम आपके सभी पासवर्ड की जांच नहीं कर सकता. 24 घंटे बाद कोशिश करें.</translation> <translation id="1911763535808217981">इसे बंद करके, आप क्रोमियम में साइन इन किए बिना Gmail जैसी Google साइटों में साइन इन कर सकते हैं</translation> <translation id="1929939181775079593">क्रोमियम अनुत्तरदायी है. अभी रीलॉन्च करें?</translation> <translation id="1966382378801805537">क्रोमियम, डिफ़ॉल्ट ब्राउज़र को तय या सेट नहीं कर सकता</translation> @@ -44,7 +44,7 @@ <translation id="2910007522516064972">&क्रोमियम के बारे में</translation> <translation id="2977470724722393594">क्रोमियम अप टू डेट है</translation> <translation id="2983934633046890458">क्रोमियम, पासवर्ड में बदलाव करने की कोशिश कर रहा है.</translation> -<translation id="3032706164202344641">'क्रोमियम' आपके पासवर्ड की जांच नहीं कर सकता. बाद में कोशिश करें.</translation> +<translation id="3032706164202344641">क्रोमियम आपके पासवर्ड की जांच नहीं कर सकता. बाद में कोशिश करें.</translation> <translation id="3032787606318309379">क्रोमियम में जोड़ रहा है...</translation> <translation id="3068515742935458733">Google को क्रैश रिपोर्ट और <ph name="UMA_LINK" /> भेजकर क्रोमियम को बेहतर बनाने में मदद करें</translation> <translation id="3103660991484857065">इंस्टॉलर संगह को असंकुचित करने में विफल हुआ. कृपया क्रोमियम फिर से डाउनलोड करें.</translation> @@ -85,7 +85,7 @@ <translation id="4407044323746248786">फिर भी क्रोमियम से बाहर निकलें?</translation> <translation id="4415566066719264597">क्रोमियम को बैकग्राउंड में चलने दें</translation> <translation id="4423735387467980091">क्रोमियम को पसंद के मुताबिक बनाएं और नियंत्रित करें</translation> -<translation id="4544142686420020088">किसी गड़बड़ी की वजह से 'क्रोमियम' अपडेट नहीं हुआ. <ph name="BEGIN_LINK" />'क्रोमियम' को अपडेट करने से जुड़ी समस्याएं और नहीं हो पाने वाले अपडेट ठीक करें.<ph name="END_LINK" /></translation> +<translation id="4544142686420020088">किसी गड़बड़ी की वजह से क्रोमियम अपडेट नहीं हुआ. <ph name="BEGIN_LINK" />क्रोमियम को अपडेट करने से जुड़ी समस्याएं और नहीं हो पाने वाले अपडेट ठीक करें.<ph name="END_LINK" /></translation> <translation id="4567424176335768812">आपने <ph name="USER_EMAIL_ADDRESS" /> के रूप में साइन इन किया हुआ है. अब आप अपने सभी साइन इन किए हुए डिवाइस पर अपने बुकमार्क, इतिहास, और दूसरी सेटिंग को एक्सेस कर सकते हैं.</translation> <translation id="459535195905078186">क्रोमियम ऐप्स</translation> <translation id="4677944499843243528">ऐसा लगता है कि प्रोफ़ाइल का उपयोग अन्य क्रोमियम प्रोसेस (<ph name="PROCESS_ID" />) द्वारा किसी अन्य कंप्यूटर (<ph name="HOST_NAME" />) पर किया जा रहा है. क्रोमियम ने प्रोफ़ाइल को लॉक कर दिया है ताकि वह दूषित न हो. अगर आप पक्का हैं कि कोई अन्य प्रोसेस इस प्रोफ़ाइल का उपयोग नहीं कर रही हैं, तो आप प्रोफ़ाइल को अनलॉक कर सकते हैं और क्रोमियम को फिर से लॉन्च कर सकते हैं.</translation> @@ -160,7 +160,7 @@ <translation id="6893813176749746474">क्रोमियम को अपडेट किया गया है लेकिन आपने इसे कम से कम 30 दिनों से उपयोग नहीं किया है.</translation> <translation id="6964305034639999644">क्रोमियम गु&प्त विंडो में लिंक खोलें</translation> <translation id="6990124437352146030">क्रोमियम को इस साइट के लिए आपका माइक्रोफ़ोन एक्सेस करने की अनुमति चाहिए</translation> -<translation id="701244094609242530">'क्रोमियम' आपके एक्सटेंशन की जांच नहीं कर सकता. बाद में कोशिश करें.</translation> +<translation id="701244094609242530">क्रोमियम आपके एक्सटेंशन की जांच नहीं कर सकता. बाद में कोशिश करें.</translation> <translation id="705851970750939768">क्रोमियम अपडेट करें</translation> <translation id="7066436765290594559">क्रोमियम OS आपका डेटा सिंक नहीं कर सका. कृपया अपना सिंक 'पासफ़्रेज़' अपडेट करें.</translation> <translation id="7067091210845072982">अगर किसी इमेज के बारे में मददगार जानकारी मौजूद नहीं है, तो 'क्रोमियम' उसके बारे में जानकारी देने की कोशिश करेगा. जानकारी तैयार करने के लिए, इमेज Google को भेजी जाती हैं.</translation> @@ -203,7 +203,7 @@ <translation id="8013436988911883588">क्रोमियम को ऐक्सेस मिलने के बाद, वेबसाइटें आपसे ऐक्सेस मांग सकेंगी.</translation> <translation id="81770708095080097">यह फ़ाइल खतरनाक है, इसलिए क्रोमियम ने इसे रोक दिया है.</translation> <translation id="8248265253516264921">अगर किसी इमेज के बारे में मददगार जानकारी मौजूद नहीं है, तो 'क्रोमियम' उसके बारे में जानकारी देने की कोशिश करेगा. जानकारी तैयार करने के लिए, इमेज Google को भेजी जाती हैं. आप किसी भी समय सेटिंग में जाकर इसे बंद कर सकते हैं.</translation> -<translation id="8266560134891435528">'क्रोमियम' आपके पासवर्ड की जांच नहीं कर सकता, क्योंकि आपने साइन इन नहीं किया है</translation> +<translation id="8266560134891435528">क्रोमियम आपके पासवर्ड की जांच नहीं कर सकता, क्योंकि आपने साइन इन नहीं किया है</translation> <translation id="8276522524898344151">क्रोमियम, पासवर्ड कॉपी करने की कोशिश कर रहा है.</translation> <translation id="8290862415967981663">यह फ़ाइल खतरनाक हो सकती है, इसलिए क्रोमियम ने इसे ब्लॉक कर दिया है.</translation> <translation id="8330519371938183845">Chrome को अपने सभी डिवाइस पर सिंक करने और मनमुताबिक बनाने के लिए साइन इन करें</translation>
diff --git a/chrome/app/resources/generated_resources_af.xtb b/chrome/app/resources/generated_resources_af.xtb index 05749c1..c95ab4d4 100644 --- a/chrome/app/resources/generated_resources_af.xtb +++ b/chrome/app/resources/generated_resources_af.xtb
@@ -1120,7 +1120,6 @@ <translation id="247949520305900375">Deel oudio</translation> <translation id="2480868415629598489">Verander data wat jy kopieer en plak</translation> <translation id="2482878487686419369">Kennisgewings</translation> -<translation id="2483610039979585156"><ph name="ORIGIN" /> sal <ph name="FILENAME" /> kan wysig totdat jy alle <ph name="ORIGIN" />-oortjies toemaak</translation> <translation id="2484959914739448251"><ph name="BEGIN_LINK" />Voer jou wagfrase in<ph name="END_LINK" /> om jou blaaierdata van al jou gesinkroniseerde toestelle en jou Google-rekening af uit te vee.</translation> <translation id="2485005079599453134">Wagwoord is op hierdie toestel gestoor</translation> <translation id="2485422356828889247">Deïnstalleer</translation> @@ -1704,6 +1703,7 @@ <translation id="3264544094376351444">Sans-serif lettertipe</translation> <translation id="3264582393905923483">Konteks</translation> <translation id="3265459715026181080">Maak venster toe</translation> +<translation id="3266274118485960573">Veiligheidskontrole vind tans plaas</translation> <translation id="3267726687589094446">Hou aan om outomatiese aflaaie van veelvuldige lêers toe te laat</translation> <translation id="3268451620468152448">Maak oortjies oop</translation> <translation id="3269069891205016797">Jou inligting sal van die toestel af verwyder word wanneer jy afmeld.</translation> @@ -1725,7 +1725,6 @@ <translation id="3282568296779691940">Meld by Chrome aan</translation> <translation id="3285322247471302225">Nuwe oortjie</translation> <translation id="328571385944182268">Stoor jou wagwoorde?</translation> -<translation id="328785681103589998"><ph name="ORIGIN" /> sal <ph name="FILENAME" /> kan bekyk totdat jy alle <ph name="ORIGIN" />-oortjies toemaak</translation> <translation id="3288047731229977326">Uitbreidings wat in ontwikkelaarmodus laat loop word, kan jou rekenaar beskadig. As jy nie 'n ontwikkelaar is nie, moet jy hierdie uitbreidings wat in ontwikkelaarmodus laat loop word, deaktiveer om veilig te bly.</translation> <translation id="3289856944988573801">Gebruik asseblief Ethernet of Wi-Fi om te kyk of daar opdaterings is.</translation> <translation id="3290356915286466215">Onbeveilig</translation> @@ -1810,6 +1809,7 @@ <translation id="3412265149091626468">Spring na keuse</translation> <translation id="3413122095806433232">CA-uitreikers: <ph name="LOCATION" /></translation> <translation id="3414952576877147120">Grootte:</translation> +<translation id="3416468988018290825">Wys altyd volle URL'e</translation> <translation id="3420501302812554910">Interne sekuriteitsleutel moet teruggestel word</translation> <translation id="3421387094817716717">Elliptiesekurwe- publieke sleutel</translation> <translation id="3422291238483866753">Vra wanneer 'n werf 'n 3D-kaart van jou omgewing wil skep of kameraposisie wil naspoor (aanbeveel)</translation> @@ -2414,6 +2414,7 @@ <translation id="4144218403971135344">Kry video van beter gehalte en bespaar batterylewe. Video sal net op jou Cast-geaktiveerde skerm speel.</translation> <translation id="4146026355784316281">Altyd oop met die stelselkyker</translation> <translation id="4146785383423576110">Stel terug en maak skoon</translation> +<translation id="4147897805161313378">Google Foto's</translation> <translation id="4147911968024186208">Herprobeer asseblief. Kontak jou steundiensverteenwoordiger as jy weer hierdie fout sien.</translation> <translation id="4150201353443180367">Vertoon</translation> <translation id="4152670763139331043">{NUM_TABS,plural, =1{1 oortjie}other{# oortjies}}</translation> @@ -2733,6 +2734,7 @@ <translation id="4633757335284074492">Rugsteun in Google Drive. Laai data maklik terug of wissel enige tyd jou toestel. Hierdie rugsteun sluit programdata in. Rugsteune word na Google toe opgelaai en met jou kind se Google-rekeningwagwoord geënkripteer.</translation> <translation id="4634771451598206121">Meld weer aan …</translation> <translation id="4635398712689569051"><ph name="PAGE_NAME" /> is nie vir gasgebruikers beskikbaar nie.</translation> +<translation id="4636930964841734540">Inligting</translation> <translation id="4637083375689622795">Nog handelinge, <ph name="EMAIL" /></translation> <translation id="4638930039313743000">Aktiveer ADB-ontfouting.</translation> <translation id="4641539339823703554">Chrome kon nie die stelsel se tyd stel nie. Gaan asseblief die tyd hieronder na en stel dit reg indien nodig.</translation> @@ -2812,7 +2814,6 @@ <translation id="4750394297954878236">Voorstelle</translation> <translation id="475088594373173692">Eerste gebruiker</translation> <translation id="4751476147751820511">Beweging- of ligsensors</translation> -<translation id="4756269098451810636">Prente gedeel vanaf <ph name="DEVICE_NAME" /></translation> <translation id="4756378406049221019">Stop/Herlaai</translation> <translation id="4756388243121344051">Geskiedenis</translation> <translation id="4759238208242260848">Aflaaie</translation> @@ -3760,7 +3761,6 @@ <translation id="6040852767465482106">Anonieme identiteit</translation> <translation id="6041046205544295907"><ph name="BEGIN_PARAGRAPH1" />Google se liggingdiens gebruik bronne soos Wi-Fi, selnetwerke en sensors om jou toestel se ligging te help beraam.<ph name="END_PARAGRAPH1" /> <ph name="BEGIN_PARAGRAPH2" />Jy kan ligging afskakel deur die hoofligginginstelling op jou toestel af te skakel. Jy kan ook die gebruik van Wi-Fi, selnetwerke en sensors vir ligging in ligginginstellings afskakel.<ph name="END_PARAGRAPH2" /></translation> -<translation id="6041150002191391409"><ph name="ORIGIN" /> sal lêers in <ph name="FOLDERNAME" /> kan bekyk totdat jy alle <ph name="ORIGIN" />-oortjies toemaak</translation> <translation id="6041155700700864984">Verlaat volskerm</translation> <translation id="604124094241169006">Outomaties</translation> <translation id="6042308850641462728">Meer</translation> @@ -4156,7 +4156,6 @@ <translation id="6561726789132298588">voer in</translation> <translation id="656293578423618167">Die lêerpad of -naam is te lank. Stoor asseblief met 'n korter naam of na 'n ander ligging.</translation> <translation id="6563469144985748109">Jou bestuurder het dit nog nie goedgekeur nie</translation> -<translation id="6567688344210276845">Kon nie ikoon '<ph name="ICON" />' vir bladsyhandeling laai nie.</translation> <translation id="6569934958368283244">Ander mense</translation> <translation id="657402800789773160">Herlaai hierdie bladsy</translation> <translation id="6577284282025554716">Aflaai is gekanselleer: <ph name="FILE_NAME" /></translation> @@ -4168,6 +4167,7 @@ <translation id="6586451623538375658">Ruil primêre muisknoppie</translation> <translation id="6586604979641883411">Minstens <ph name="REQUIRED_SPACE" /> se beskikbare skyfspasie word vereis om Linux op te gradeer. Stel asseblief 'n bietjie spasie op jou toestel beskikbaar en probeer weer.</translation> <translation id="6588043302623806746">Gebruik beveiligde DNS</translation> +<translation id="659005207229852190">Veiligheidskontrole is voltooi.</translation> <translation id="6590458744723262880">Hernoem vouer</translation> <translation id="6592267180249644460">WebRTC-loglêer vasgevang <ph name="WEBRTC_LOG_CAPTURE_TIME" /></translation> <translation id="6592808042417736307">Jou vingerafdruk is vasgevang</translation> @@ -4221,7 +4221,6 @@ <translation id="6659594942844771486">Oortjie</translation> <translation id="6664237456442406323">Ongelukkig is jou rekenaar opgestel met 'n misvormde hardeware-ID. Dit verhinder die Chrome-bedryfstelsel om met die nuutste sekuriteitsoplossings op te dateer en jou rekenaar <ph name="BEGIN_BOLD" />kan dalk blootgestel word aan kwaadwillige aanvalle<ph name="END_BOLD" />.</translation> <translation id="6664774537677393800">Iets het verkeerd geloop met die oopmaak van jou profiel. Meld asseblief af en meld dan weer aan.</translation> -<translation id="6667776121818773738">Prent gedeel van ander toestel af</translation> <translation id="6673391612973410118"><ph name="PRINTER_MAKE_OR_MODEL" /> (USB)</translation> <translation id="667517062706956822">Wil jy hê dat Google hierdie bladsy uit <ph name="SOURCE_LANGUAGE" /> in <ph name="TARGET_LANGUAGE" /> moet vertaal?</translation> <translation id="6675665718701918026">Wystoestel is gekoppel</translation> @@ -4842,7 +4841,6 @@ <translation id="7497981768003291373">Jy het geen onlangs vasgevangde WebRTC-teksloglêers nie.</translation> <translation id="7502658306369382406">IPv6-adres</translation> <translation id="7503191893372251637">Netscape-sertifikaattipe</translation> -<translation id="7503821294401948377">Kon nie ikoon '<ph name="ICON" />' vir blaaierhandeling laai nie.</translation> <translation id="7503985202154027481">'n Rekord van jou besoek aan hierdie werf sal op jou sekuriteitsleutel gehou word.</translation> <translation id="7504293978434250212">Jou organisasie kan lêers van tot 50 MB skandeer. Probeer om 'n kleiner lêer op te laai.</translation> <translation id="750509436279396091">Maak aflaaivouer oop</translation> @@ -5429,6 +5427,7 @@ <translation id="8249672078237421304">Bied aan om bladsye wat nie in die taal is wat jy lees nie, te vertaal</translation> <translation id="8251441930213048644">Herlaai nou</translation> <translation id="8251578425305135684">Kleinkiekie verwyder.</translation> +<translation id="825238165904109940">Wys altyd volle URL'e</translation> <translation id="8252569384384439529">Laai tans op …</translation> <translation id="8253198102038551905">Klik '+' om netwerkeienskappe te kry</translation> <translation id="8254954272268479918">Maak Linux (Beta) toe</translation> @@ -5644,7 +5643,6 @@ <translation id="8546930481464505581">Pasmaak raakbalk</translation> <translation id="8547013269961688403">Aktiveer volskermvergrootglas</translation> <translation id="85486688517848470">Hou die soeksleutel in om die gedrag van die boonste ry sleutels oor te skakel</translation> -<translation id="8550165047974571882"><ph name="ORIGIN" /> sal lêers in <ph name="FOLDERNAME" /> kan wysig totdat jy alle <ph name="ORIGIN" />-oortjies toemaak</translation> <translation id="8551388862522347954">Lisensies</translation> <translation id="8553342806078037065">Bestuur ander mense</translation> <translation id="8554899698005018844">Geen taal nie</translation>
diff --git a/chrome/app/resources/generated_resources_am.xtb b/chrome/app/resources/generated_resources_am.xtb index 0d81362..0236471 100644 --- a/chrome/app/resources/generated_resources_am.xtb +++ b/chrome/app/resources/generated_resources_am.xtb
@@ -1119,7 +1119,6 @@ <translation id="247949520305900375">ኦዲዮ አጋራ</translation> <translation id="2480868415629598489">እርስዎ የሚቀዱትን እና የሚለጥፉትን ውሂብ መቀየር</translation> <translation id="2482878487686419369">ማስታወቂያዎች</translation> -<translation id="2483610039979585156">ሁሉንም የ<ph name="ORIGIN" /> ትሮች እስኪዘጉ ድረስ <ph name="ORIGIN" /> <ph name="FILENAME" />ን ማርትዕ ይችላል</translation> <translation id="2484959914739448251">ከሁሉም የእርስዎ የተመሳሰሉ መሣሪያዎች እና የእርስዎ የGoogle መለያ ላይ የአሰሳ ውሂብን ለማጽዳት፣ <ph name="BEGIN_LINK" />የእርስዎን የይለፍ ሐረግ ያስገቡ<ph name="END_LINK" />።</translation> <translation id="2485005079599453134">የይለፍ ቃል በዚህ መሣሪያ ላይ ተቀምጧል</translation> <translation id="2485422356828889247">አራግፍ</translation> @@ -1724,7 +1723,6 @@ <translation id="3282568296779691940">Chrome ውስጥ ይግቡ</translation> <translation id="3285322247471302225">አዲስ &ትር</translation> <translation id="328571385944182268">የእርስዎን የይለፍ ቃላት ይቀመጡ?</translation> -<translation id="328785681103589998">ሁሉንም የ<ph name="ORIGIN" /> ትሮች እስኪዘጉ ድረስ <ph name="ORIGIN" /> <ph name="FILENAME" />ን መመልከት ይችላል</translation> <translation id="3288047731229977326">በገንቢ ሁኔታ የሚሄዱ ጥያዎች የእርስዎን ኮምፒውተር ሊጎዱ ይችላሉ። እርስዎ ገንቢ ካልሆኑ ደህንነትዎን ለማረገገጥ በገንቢ ሁኔታ የሚሄዱ ቅጥያዎችን ማሰናከል አለብዎ።</translation> <translation id="3289856944988573801">ዝማኔዎች ካሉ ለማየት እባክዎ Ethernet ወይም Wi-Fi ይጠቀሙ።</translation> <translation id="3290356915286466215">ደህንነቱ ያልተጠበቀ</translation> @@ -2411,6 +2409,7 @@ <translation id="4144218403971135344">የተሻለ ጥራት ያለውን ቪዲዮ ያግኙ እና የባትሪ ዕድሜ ይቆጥቡ። ቪዲዮ በእርስዎ የCast-የነቃ ማያ ገጽ ላይ ብቻ ይጫወታል።</translation> <translation id="4146026355784316281">ሁልጊዜ ከሥርዓት ተመልካች ጋር ክፈት</translation> <translation id="4146785383423576110">ዳግም አዘጋጅ እና አጽዳ</translation> +<translation id="4147897805161313378">Google ፎቶዎች</translation> <translation id="4147911968024186208">እባክዎ እንደገና ይሞክሩ። ይህን ስህተት በድጋሚ ከተመለከቱ እባክዎ የድጋፍ ተወካይዎን ያነጋግሩ።</translation> <translation id="4150201353443180367">ማሳያ</translation> <translation id="4152670763139331043">{NUM_TABS,plural, =1{1 ትር}one{# ትሮች}other{# ትሮች}}</translation> @@ -2730,6 +2729,7 @@ <translation id="4633757335284074492">ምትኬ ወደ Google Drive ያስቀምጡ። በማንኛውም ጊዜ ውሂብ በቀላሉ ወደነበሩበት ይመልሱ ወይም መሣሪያን ይቀይሩ። ይህ ምትኬ የመተግበሪያ ውሂብን ያካትታል። ምትኬዎች ወደ Google ተሰቅለዋል እና የልጅዎን የGoogle መለያ የይለፍ ቃል በመጠቀም ተመስጥረዋል።</translation> <translation id="4634771451598206121">እንደገና ይግቡ...</translation> <translation id="4635398712689569051"><ph name="PAGE_NAME" /> ለእንግዳ ተጠቃሚዎች አይገኝም።</translation> +<translation id="4636930964841734540">መረጃ</translation> <translation id="4637083375689622795">ተጨማሪ እርምጃዎች፣ <ph name="EMAIL" /></translation> <translation id="4638930039313743000">የADB ስህተትን ማረሚያ አንቃ</translation> <translation id="4641539339823703554">Chrome የስርዓት ጊዜ ማዘጋጀት አልቻለም። እባክዎ ከዚህ በታች ያለውን ጊዜ ይፈትሹና አስፈላጊ ከሆነ ያስተካክሉ።</translation> @@ -2809,7 +2809,6 @@ <translation id="4750394297954878236">የአስተያየት ጥቆማዎች</translation> <translation id="475088594373173692">የመጀመሪያ ተጠቃሚ</translation> <translation id="4751476147751820511">የእንቅስቃሴ ወይም የብርሃን ዳሳሾች</translation> -<translation id="4756269098451810636">ከ<ph name="DEVICE_NAME" /> የተጋራ ምስል</translation> <translation id="4756378406049221019">አስቁም/ዳግም ጫን</translation> <translation id="4756388243121344051">&ታሪክ</translation> <translation id="4759238208242260848">የወረዱ</translation> @@ -3756,7 +3755,6 @@ <translation id="6040852767465482106">ስም-አልባ መታወቂያ</translation> <translation id="6041046205544295907"><ph name="BEGIN_PARAGRAPH1" />የGoogle አካባቢ አገልግሎት የዚህ መሣሪያ አካባቢ እንዲገምት ለማገዝ እንደ Wi-Fi፣ የተንቀሳቃሽ ስልክ አውታረ መረቦች እና ዳሳሾች ያሉ ምንጮችን ይጠቀማል።<ph name="END_PARAGRAPH1" /> <ph name="BEGIN_PARAGRAPH2" />በዚህ መሣሪያ ላይ ዋናውን የአካባቢ ቅንብርን በማጥፋት አካባቢን ማጥፋት ይችላሉ። እንዲሁም በአካባቢ ቅንብሮች ውስጥ Wi-Fiን፣ የተንቀሳቃሽ ስልክ አውታረ መረቦችን እና ዳሳሾችን መጠቀም ለአካባቢ ማጥፋት ይችላሉ።<ph name="END_PARAGRAPH2" /></translation> -<translation id="6041150002191391409">እርስዎ ሁሉንም የ<ph name="ORIGIN" /> ትሮች እስኪዘጉ ድረስ <ph name="ORIGIN" /> በ<ph name="FOLDERNAME" /> ውስጥ ፋይሎችን ማየት ይችላል</translation> <translation id="6041155700700864984">ከሙሉ ማያ ገጽ ውጣ</translation> <translation id="604124094241169006">ራስ-ሰር</translation> <translation id="6042308850641462728">ተጨማሪ</translation> @@ -4152,7 +4150,6 @@ <translation id="6561726789132298588">ያስገቡ</translation> <translation id="656293578423618167">የፋይል ዱካው ወይም ስሙ በጣም ረጅም ነው። እባክዎ ባጠረ ስም ወይም ሌላ ቦታ ላይ ያስቀምጡ።</translation> <translation id="6563469144985748109">የእርስዎ አስተዳዳሪ ገና አላጸደቁትም</translation> -<translation id="6567688344210276845">አዶ «<ph name="ICON" />» ለገጽ እርምጃ መጫን አልተቻለም።</translation> <translation id="6569934958368283244">ሌሎች ሰዎች</translation> <translation id="657402800789773160">ይህን ገጽ &ዳግም ጫን</translation> <translation id="6577284282025554716">ማውረድ ተሰርዟል፦ <ph name="FILE_NAME" /></translation> @@ -4217,7 +4214,6 @@ <translation id="6659594942844771486">ትር</translation> <translation id="6664237456442406323">የአጋጣሚ ነገር ሆኖ ኮምፒውተርዎ በተበላሸ የሃርድዌር መታወቂያ ነው የተዋቀረው። ይሄ Chrome ስርዓተ ክወና በቅርብ ጊዜዎቹ የደህንነት ጥገናዎች እንዳይዘመን ያግደዋል፣ እና የእርስዎ ኮምፒውተር <ph name="BEGIN_BOLD" />ለተንኮል-አዘል ጥቃቶች የተጋለጠ ሊሆን ይችላል<ph name="END_BOLD" />።</translation> <translation id="6664774537677393800">የእርስዎን መገለጫ በመክፈት ላይ የሆነ ችግር ተፈጥሯል። እባክዎ ዘግተው ይውጡና እንደገና ተመልሰው ይግቡ።</translation> -<translation id="6667776121818773738">ከሌላ መሣሪያ የተጋራ ምስል</translation> <translation id="6673391612973410118"><ph name="PRINTER_MAKE_OR_MODEL" /> (ዩኤስቢ)</translation> <translation id="667517062706956822">Google ይህን ገጽ ከ<ph name="SOURCE_LANGUAGE" /> ወደ <ph name="TARGET_LANGUAGE" /> እንዲተረጉመው ይፈልጋሉ?</translation> <translation id="6675665718701918026">መጠቆሚያ መሣሪያ ተገናኝቷል</translation> @@ -4838,7 +4834,6 @@ <translation id="7497981768003291373">ምንም በቅርብ ጊዜ የተቀረጹ WebRTC የጽሑፍ ምዝግብ ማስታወሻዎች የለዎትም።</translation> <translation id="7502658306369382406">የIPv6 አድራሻ</translation> <translation id="7503191893372251637">የNetscape ሰርቲፊኬት አይነት</translation> -<translation id="7503821294401948377">አዶ «<ph name="ICON" />»ን ለአሳሽ እርምጃ መጫን አልተቻለም።</translation> <translation id="7503985202154027481">ወደዚህ ጣቢያ ያደረጉት የጉብኝትዎ መዝገብ በደህንነት ቁልፍዎ ላይ ይቀመጣል።</translation> <translation id="7504293978434250212">የእርስዎ ድርጅት እስከ 50 ሜባ የሆኑ ፋይሎችን መቃኘት ይችላል። ያነሰ ፋይል ለመስቀል ይሞክሩ።</translation> <translation id="750509436279396091">የውርዶች አቃፊን ከፍት</translation> @@ -5645,7 +5640,6 @@ <translation id="8546930481464505581">ተነኪ አሞሌን አብጅ</translation> <translation id="8547013269961688403">የሙሉ ገጽ እይታ ማጉያን ያንቁ</translation> <translation id="85486688517848470">የላይኛው ረድፍ ቁልፎች ባህሪን ለመቀየር የፍለጋ ቁልፉን ይያዙ</translation> -<translation id="8550165047974571882">ሁሉንም የ<ph name="ORIGIN" /> ትሮች እስኪዘጉ ድረስ <ph name="ORIGIN" /> በ<ph name="FOLDERNAME" /> ውስጥ ያሉ ሁሉንም ፋይሎች ማርትዕ ይችላል</translation> <translation id="8551388862522347954">ፍቃዶች</translation> <translation id="8553342806078037065">ሌሎች ሰዎችን አቀናብር</translation> <translation id="8554899698005018844">ምንም ቋንቋ</translation>
diff --git a/chrome/app/resources/generated_resources_ar.xtb b/chrome/app/resources/generated_resources_ar.xtb index 17e85b89..0dafce7 100644 --- a/chrome/app/resources/generated_resources_ar.xtb +++ b/chrome/app/resources/generated_resources_ar.xtb
@@ -1120,7 +1120,6 @@ <translation id="247949520305900375">مشاركة الصوت</translation> <translation id="2480868415629598489">تعديل البيانات التي يتم نسخها ولصقها</translation> <translation id="2482878487686419369">الإشعارات</translation> -<translation id="2483610039979585156">سيتمكّن <ph name="ORIGIN" /> من تعديل <ph name="FILENAME" /> حتى يتم إغلاق جميع علامات تبويب <ph name="ORIGIN" />.</translation> <translation id="2484959914739448251">لمحو بيانات التصفُّح من جميع أجهزتك التي تمت مزامنتها ومن حسابك على Google، يُرجى <ph name="BEGIN_LINK" />إدخال عبارة المرور<ph name="END_LINK" />.</translation> <translation id="2485005079599453134">تم حفظ كلمة المرور على هذا الجهاز.</translation> <translation id="2485422356828889247">إزالة التثبيت</translation> @@ -1725,7 +1724,6 @@ <translation id="3282568296779691940">تسجيل الدخول إلى Chrome</translation> <translation id="3285322247471302225">&علامة تبويب جديدة</translation> <translation id="328571385944182268">هل تريد حفظ كلمات المرور؟</translation> -<translation id="328785681103589998">سيتمكّن <ph name="ORIGIN" /> من قراءة <ph name="FILENAME" /> حتى يتم إغلاق جميع علامات تبويب <ph name="ORIGIN" />.</translation> <translation id="3288047731229977326">يمكن أن تؤدي الإضافات التي تعمل في وضع مطور البرامج إلى إلحاق الضرر بجهاز الكمبيوتر. إذا لم تكن مطور برامج، فيجب إيقاف هذه الإضافات التي تعمل في وضع مطور البرامج للبقاء في أمان.</translation> <translation id="3289856944988573801">للتحقق من وجود تحديثات، يُرجى استخدام شبكة Ethernet أو Wi-Fi.</translation> <translation id="3290356915286466215">غير مؤمّن</translation> @@ -2411,6 +2409,7 @@ <translation id="4144218403971135344">يمكنك الحصول على فيديو بجودة أفضل والحفاظ على عمر البطارية. ولن يتم تشغيل الفيديو إلا على شاشة تعمل بتكنولوجيا Google Cast.</translation> <translation id="4146026355784316281">افتح دائمًا باستخدام عرض النظام</translation> <translation id="4146785383423576110">إعادة الضبط وإزالة البرامج الضارة</translation> +<translation id="4147897805161313378">صور Google</translation> <translation id="4147911968024186208">يُرجى إعادة المحاولة. وإذا ظهر هذا الخطأ مرة أخرى، يُرجى التواصل مع ممثِّل الدعم.</translation> <translation id="4150201353443180367">عرض</translation> <translation id="4152670763139331043">{NUM_TABS,plural, =1{علامة تبويب واحدة}zero{# من علامات التبويب}two{علامتا تبويب (#)}few{# علامات تبويب}many{# علامة تبويب}other{# من علامات التبويب}}</translation> @@ -2730,6 +2729,7 @@ <translation id="4633757335284074492">يمكنك الاحتفاظ بنسخة احتياطية في Google Drive. ويمكنك استعادة البيانات أو تبديل الجهاز بسهولة وفي أي وقت. تتضمّن هذه النسخة الاحتياطية بيانات التطبيق. ويتم تحميل النسخ الاحتياطية إلى Google وترميزها باستخدام كلمة مرور حسابك الفرعي على Google.</translation> <translation id="4634771451598206121">تسجيل الدخول مرة أخرى...</translation> <translation id="4635398712689569051"><ph name="PAGE_NAME" /> غير متاحة للمستخدمين الضيوف.</translation> +<translation id="4636930964841734540">معلومات</translation> <translation id="4637083375689622795">مزيد من الإجراءات، <ph name="EMAIL" /></translation> <translation id="4638930039313743000">تفعيل خيار "تصحيح الأخطاء عبر ADB"</translation> <translation id="4641539339823703554">تعذر على Chrome تعيين وقت النظام. يُرجى التحقق من الوقت أدناه وإعادة ضبطه إذا لزم الأمر.</translation> @@ -2809,7 +2809,6 @@ <translation id="4750394297954878236">الاقتراحات</translation> <translation id="475088594373173692">المستخدم الأول</translation> <translation id="4751476147751820511">أجهزة استشعار الإضاءة أو الحركة</translation> -<translation id="4756269098451810636">تمت مشاركة صورة من <ph name="DEVICE_NAME" /></translation> <translation id="4756378406049221019">إيقاف/تحديث</translation> <translation id="4756388243121344051">ال&سجل</translation> <translation id="4759238208242260848">الملفات التي تم تنزيلها</translation> @@ -3532,7 +3531,7 @@ <translation id="5734362860645681824">الاتصالات</translation> <translation id="5734697361979786483">إضافة خادم مشاركة الملفات</translation> <translation id="5736796278325406685">يُرجى إدخال اسم مستخدم صالح</translation> -<translation id="5739017626473506901">سجِّل الدخول لمساعدة <ph name="USER_NAME" /> على إضافة حساب مدرسة.</translation> +<translation id="5739017626473506901">سجِّل الدخول لمساعدة <ph name="USER_NAME" /> على إضافة حساب للمؤسسة التعليمية.</translation> <translation id="5739235828260127894">في انتظار التحقُّق من صحة الاتصال. <ph name="LINK_BEGIN" />مزيد من المعلومات<ph name="LINK_END" /></translation> <translation id="5739458112391494395">كبير جدًا</translation> <translation id="574209121243317957">درجة الصوت</translation> @@ -3757,7 +3756,6 @@ <translation id="6040852767465482106">هوية مجهولة</translation> <translation id="6041046205544295907"><ph name="BEGIN_PARAGRAPH1" />تستخدم خدمة الموقع الجغرافي من Google مصادر مثل شبكات Wi‑Fi وشبكات الجوّال وأجهزة الاستشعار للمساعدة في تقدير الموقع الجغرافي لجهازك.<ph name="END_PARAGRAPH1" /> <ph name="BEGIN_PARAGRAPH2" />يمكنك إيقاف خدمة "الموقع الجغرافي" من خلال إيقاف إعداد "الموقع الجغرافي" الرئيسي على جهازك. وبإمكانك أيضًا إيقاف استخدام شبكات Wi-Fi وشبكات الجوّال وأجهزة الاستشعار للموقع الجغرافي من إعدادات الموقع الجغرافي.<ph name="END_PARAGRAPH2" /></translation> -<translation id="6041150002191391409">سيتمكّن <ph name="ORIGIN" /> من عرض الملفات في <ph name="FOLDERNAME" /> حتى يتم إغلاق جميع علامات تبويب <ph name="ORIGIN" />.</translation> <translation id="6041155700700864984">الخروج من عرض ملء الشاشة</translation> <translation id="604124094241169006">تلقائي</translation> <translation id="6042308850641462728">المزيد</translation> @@ -4154,7 +4152,6 @@ <translation id="6561726789132298588">إدخال</translation> <translation id="656293578423618167">اسم الملف أو مساره طويل جدًا. يُرجى الحفظ باستخدام اسم أقصر أو في مكان آخر.</translation> <translation id="6563469144985748109">لم يوافق عليه مديرك حتى الآن</translation> -<translation id="6567688344210276845">تعذر تحميل الرمز '<ph name="ICON" />' لإجراء المتصفح.</translation> <translation id="6569934958368283244">مستخدمون آخرون</translation> <translation id="657402800789773160">إ&عادة تحميل هذه الصفحة</translation> <translation id="6577284282025554716">تم إلغاء التنزيل: <ph name="FILE_NAME" /></translation> @@ -4219,7 +4216,6 @@ <translation id="6659594942844771486">علامة تبويب</translation> <translation id="6664237456442406323">للأسف، تمت تهيئة جهاز الكمبيوتر باستخدام معرف جهاز غير صحيح. وهذا يمنع تحديث نظام التشغيل Chrome بأحدث إصلاحات الأمان، وقد يكون جهاز الكمبيوتر <ph name="BEGIN_BOLD" />عرضة للهجمات الضارة<ph name="END_BOLD" />.</translation> <translation id="6664774537677393800">حدث خطأ ما أثناء فتح ملفك الشخصي. يُرجى الخروج ثم إعادة تسجيل الدخول.</translation> -<translation id="6667776121818773738">تمت مشاركة صورة من جهاز آخر</translation> <translation id="6673391612973410118"><ph name="PRINTER_MAKE_OR_MODEL" /> (USB)</translation> <translation id="667517062706956822">هل تريد أن يترجم Google هذه الصفحة من <ph name="SOURCE_LANGUAGE" /> إلى <ph name="TARGET_LANGUAGE" />؟</translation> <translation id="6675665718701918026">الإشارة إلى الأجهزة المتصلة</translation> @@ -4840,7 +4836,6 @@ <translation id="7497981768003291373">ليست لديك أي سجلَّات نصية WebRTC تم التقاطها مؤخرًا.</translation> <translation id="7502658306369382406">عنوان IPv6</translation> <translation id="7503191893372251637">نوع شهادات Netscape</translation> -<translation id="7503821294401948377">تعذر تحميل رمز '<ph name="ICON" />' لإجراء المتصفح.</translation> <translation id="7503985202154027481">سيتم حفظ سجلّ زيارتك لهذا الموقع في مفتاح الأمان.</translation> <translation id="7504293978434250212">يمكن لمؤسستك فحص ملفات بحجم أقصى يبلغ 50 ميغابايت. حاوِل تحميل ملف أصغر حجمًا.</translation> <translation id="750509436279396091">فتح مجلد "المحتوى الذي تم تنزيله"</translation> @@ -5643,7 +5638,6 @@ <translation id="8546930481464505581">تخصيص شريط اللمس</translation> <translation id="8547013269961688403">تفعيل المكبّر بملء الشاشة</translation> <translation id="85486688517848470">اضغط على مفتاح البحث باستمرار لتبديل سلوك مفاتيح الصف العلوي</translation> -<translation id="8550165047974571882">سيتمكّن <ph name="ORIGIN" /> من تعديل الملفات في <ph name="FOLDERNAME" /> حتى يتم إغلاق جميع علامات تبويب <ph name="ORIGIN" />.</translation> <translation id="8551388862522347954">التراخيص</translation> <translation id="8553342806078037065">إدارة الأشخاص الآخرين</translation> <translation id="8554899698005018844">بدون لغة</translation>
diff --git a/chrome/app/resources/generated_resources_as.xtb b/chrome/app/resources/generated_resources_as.xtb index 968fd38..c669e1193 100644 --- a/chrome/app/resources/generated_resources_as.xtb +++ b/chrome/app/resources/generated_resources_as.xtb
@@ -844,7 +844,7 @@ <translation id="2135787500304447609">&ৰখোৱাৰ পৰা আৰম্ভ কৰক</translation> <translation id="2136372518715274136">নতুন পাছৱৰ্ড দিয়ক</translation> <translation id="2136476978468204130">আপুনি দিয়া পাছফ্রেজটো ভুল</translation> -<translation id="2137122615728646911">{COUNT,plural, =0{কুকীসমূহ অৱৰোধ কৰা হৈছে।}=1{কুকীসমূহ অৱৰোধ কৰা হৈছে, ১ টা ব্যতিক্ৰম}one{কুকীসমূহ অৱৰোধ কৰা হৈছে, {COUNT} টা ব্যতিক্ৰম}other{কুকীসমূহ অৱৰোধ কৰা হৈছে, {COUNT} টা ব্যতিক্ৰম}}</translation> +<translation id="2137122615728646911">{COUNT,plural, =0{কুকিসমূহ অৱৰোধ কৰা হৈছে।}=1{কুকিসমূহ অৱৰোধ কৰা হৈছে, ১ টা ব্যতিক্ৰম}one{কুকিসমূহ অৱৰোধ কৰা হৈছে, {COUNT} টা ব্যতিক্ৰম}other{কুকিসমূহ অৱৰোধ কৰা হৈছে, {COUNT} টা ব্যতিক্ৰম}}</translation> <translation id="2138398485845393913">"<ph name="DEVICE_NAME" />"ৰ সৈতে সংযোগ কৰাৰ প্ৰক্ৰিয়া এতিয়াও চলি আছে</translation> <translation id="2139545522194199494"><ph name="NETWORK_COUNT" />টা নেটৱৰ্কৰ <ph name="NETWORK_INDEX" />, <ph name="NETWORK_NAME" />, ছিগনেলৰ ক্ষমতা <ph name="SIGNAL_STRENGTH" />%, আপোনাৰ প্ৰশাসকে পৰিচালনা কৰে, সংযোগ কৰক</translation> <translation id="2139919072249842737">ছেট আপ বুটাম</translation> @@ -1117,7 +1117,6 @@ <translation id="247949520305900375">অডিঅ’ শ্বেয়াৰ কৰক</translation> <translation id="2480868415629598489">আপুনি প্ৰতিলিপি আৰু পে’ষ্ট কৰা ডেটা সংশোধন কৰক</translation> <translation id="2482878487686419369">জাননী</translation> -<translation id="2483610039979585156">আপুনি সকলো <ph name="ORIGIN" /> টেব বন্ধ নকৰা পর্যন্ত <ph name="ORIGIN" />এ <ph name="FILENAME" /> সম্পাদনা কৰিব পাৰিব</translation> <translation id="2484959914739448251">আপুনি ছিংক কৰি ৰখা সকলো ডিভাইচ আৰু আপোনাৰ Google একাউণ্টৰ পৰা ব্ৰাউজ কৰা ডেটা মচিবলৈ <ph name="BEGIN_LINK" />আপোনাৰ পাছফ্ৰেজ দিয়ক<ph name="END_LINK" />।</translation> <translation id="2485005079599453134">এই ডিভাইচটোত পাছৱৰ্ড ছেভ কৰা হৈছে</translation> <translation id="2485422356828889247">আনইনষ্টল কৰক</translation> @@ -1722,7 +1721,6 @@ <translation id="3282568296779691940">Chromeত ছাইন-ইন কৰক</translation> <translation id="3285322247471302225">নতুন &টেব</translation> <translation id="328571385944182268">আপোনাৰ পাছৱৰ্ডসমূহ ছেভ কৰিবনে?</translation> -<translation id="328785681103589998">আপুনি সকলো <ph name="ORIGIN" /> টেব বন্ধ নকৰা পর্যন্ত <ph name="ORIGIN" />এ <ph name="FILENAME" /> চাব পাৰিব</translation> <translation id="3288047731229977326">বিকাশকর্তাৰ ম’ড চলি থকা এক্সটেনশ্বনসমূহে আপোনাৰ কম্পিউটাৰৰ ক্ষতি কৰিব পাৰে। যদি আপুনি কোনো বিকাশকর্তা নহয় তেন্তে আপুনি সুৰক্ষিত হৈ থাকিবলৈ বিকাশকর্তাৰ ম’ডত থকা এক্সটেনশ্বনসমূহ অক্ষম কৰা উচিত।</translation> <translation id="3289856944988573801">আপডে‘ট আছে নেকি চাবলৈ ইথাৰনেট বা ৱাই-ফাই ব্যৱহাৰ কৰক।</translation> <translation id="3290356915286466215">অসুৰক্ষিত</translation> @@ -2408,6 +2406,7 @@ <translation id="4144218403971135344">উন্নত মানৰ ভিডিঅ’ পাওক আৰু বেটাৰীৰ খৰচ ৰাহি কৰক। আপোনাৰ কাষ্ট কৰিব পৰা সুবিধাটো সক্ষম কৰি থোৱা স্ক্ৰীণতহে ভিডিঅ’ প্লে’ হ’ব।</translation> <translation id="4146026355784316281">সদায় ছিষ্টেম ভিউৱাৰৰ জৰিয়তে খোলক</translation> <translation id="4146785383423576110">ৰিছেট কৰক আৰু ক্ষতিকাৰক ছফ্টৱেৰ মচক</translation> +<translation id="4147897805161313378">Google Photos</translation> <translation id="4147911968024186208">অনুগ্ৰহ কৰি আকৌ চেষ্টা কৰক। যদি আপুনি এই আসোঁৱাহসমূহ দুনাই দেখে তেন্তে আপোনাৰ সহায়ক প্ৰতিনিধিজনৰ সৈতে যোগাযোগ কৰক।</translation> <translation id="4150201353443180367">ডিছপ্লে’</translation> <translation id="4152670763139331043">{NUM_TABS,plural, =1{১টা টেব}one{#টা টেব}other{#টা টেব}}</translation> @@ -2629,7 +2628,7 @@ <translation id="450099669180426158">ভাৱবোধক চিহ্নৰ আইকন</translation> <translation id="4501530680793980440">আঁতৰোৱাটো নিশ্চিত কৰক</translation> <translation id="4502423230170890588">এই ডিভাইচটোৰ পৰা আঁতৰাওক</translation> -<translation id="4504374760782163539">{COUNT,plural, =0{কুকীসমূহৰ অনুমতি দিয়া হৈছে}=1{কুকীসমূহৰ অনুমতি দিয়া হৈছে, ১ টা ব্যতিক্ৰম}one{কুকীসমূহৰ অনুমতি দিয়া হৈছে, {COUNT} টা ব্যতিক্ৰম}other{কুকীসমূহৰ অনুমতি দিয়া হৈছে, {COUNT} টা ব্যতিক্ৰম}}</translation> +<translation id="4504374760782163539">{COUNT,plural, =0{কুকিসমূহৰ অনুমতি দিয়া হৈছে}=1{কুকিসমূহৰ অনুমতি দিয়া হৈছে, ১ টা ব্যতিক্ৰম}one{কুকিসমূহৰ অনুমতি দিয়া হৈছে, {COUNT} টা ব্যতিক্ৰম}other{কুকিসমূহৰ অনুমতি দিয়া হৈছে, {COUNT} টা ব্যতিক্ৰম}}</translation> <translation id="4504940961672722399">এই আইকনটোত ক্লিক কৰি বা <ph name="EXTENSION_SHORTCUT" />ত টিপি এই এক্সটেনশ্বনটো ব্যৱহাৰ কৰক।</translation> <translation id="4508051413094283164">সকলো ইনক'গনিট' ৱিণ্ড'ত খোলক</translation> <translation id="4508265954913339219">সক্ৰিয় কৰিব পৰা নগ'ল</translation> @@ -2726,6 +2725,7 @@ <translation id="4633757335284074492">Google Driveত বেক আপ লওক। ডেটা সহজে পুনঃস্থাপন কৰক অথবা যিকোনো সময়তে ডিভাইচ সলনি কৰক। এই বেকআপত এপ্ ডেটা আছে। বেকআপসমূহ Googleত আপল’ড কৰা হয় আৰু আপোনাৰ Google একাউণ্টৰ পাছৱৰ্ড ব্যৱহাৰ কৰি এনক্ৰিপ্ট কৰা হয়।</translation> <translation id="4634771451598206121">আকৌ ছাইন ইন কৰক…</translation> <translation id="4635398712689569051">অতিথি ব্যৱহাৰকাৰীৰ বাবে <ph name="PAGE_NAME" /> উপলব্ধ নহয়।</translation> +<translation id="4636930964841734540">তথ্য</translation> <translation id="4637083375689622795">অধিক কার্য, <ph name="EMAIL" /></translation> <translation id="4638930039313743000">ADB ডিবাগিং সক্ষম কৰক</translation> <translation id="4641539339823703554">Chromeএ ছিষ্টেমৰ সময় ছেট কৰিব নোৱাৰিলে। অনুগ্ৰহ কৰি তলৰ সময়টো পৰীক্ষা কৰক আৰু যদি ভুল আছে শুধৰাওক।</translation> @@ -2805,7 +2805,6 @@ <translation id="4750394297954878236">পৰামৰ্শ</translation> <translation id="475088594373173692">প্ৰথম ব্যৱহাৰকাৰী</translation> <translation id="4751476147751820511">গতি বা পোহৰ ধৰা পেলাব পৰা ছেন্সৰ</translation> -<translation id="4756269098451810636"><ph name="DEVICE_NAME" />ৰ পৰা শ্বেয়াৰ কৰা প্ৰতিচ্ছবি</translation> <translation id="4756378406049221019">বন্ধ কৰক/পুনৰ ল'ড কৰক</translation> <translation id="4756388243121344051">&ইতিহাস</translation> <translation id="4759238208242260848">ডাউনল'ডসমূহ</translation> @@ -3750,7 +3749,6 @@ <translation id="6040852767465482106">অজ্ঞাত পৰিচয়</translation> <translation id="6041046205544295907"><ph name="BEGIN_PARAGRAPH1" />Googleৰ অৱস্থান সেৱাই আপোনাৰ ডিভাইচৰ অৱস্থান নিৰ্ণয় কৰাত সহায় কৰিবলৈ ৱাই-ফাই আৰু ম’বাইল নেটৱৰ্কৰ দৰে উৎসবোৰ ব্যৱহাৰ কৰে৷<ph name="END_PARAGRAPH1" /> <ph name="BEGIN_PARAGRAPH2" />আপুনি আপোনাৰ ডিভাইচৰ মুখ্য অৱস্থান সেৱাৰ ছেটিং অফ কৰি অৱস্থান সেৱা অফ কৰিব পাৰে৷ ইয়াৰ উপৰি, আপুনি অৱস্থান আৰু ৱাই-ফাই আৰু ব্লুটুথ স্কেনিঙৰ বাবে ৱাই-ফাই আৰু ম’বাইল নেটৱৰ্কৰ ব্যৱহাৰ কৰা কাৰ্য অৱস্থান ছেটিংসমূহলৈ গৈ অফ কৰিব পাৰে।<ph name="END_PARAGRAPH2" /></translation> -<translation id="6041150002191391409">আপুনি সকলো <ph name="ORIGIN" /> টেব বন্ধ নকৰা পৰ্যন্ত <ph name="ORIGIN" />এ <ph name="FOLDERNAME" />ত থকা ফাইলসমূহ চাব পাৰিব</translation> <translation id="6041155700700864984">পূৰ্ণ স্ক্ৰীণৰ পৰা বাহিৰ হওক</translation> <translation id="604124094241169006">স্বয়ংক্ৰিয়</translation> <translation id="6042308850641462728">অধিক</translation> @@ -4144,7 +4142,6 @@ <translation id="6561726789132298588">দিয়ক</translation> <translation id="656293578423618167">ফাইল পাথ বা নামটো অতি দীঘল। অনুগ্ৰহ কৰি এটা চুটি নামৰ সৈতে বা অন্য ঠাইত ছেভ কৰক।</translation> <translation id="6563469144985748109">আপোনাৰ পৰিচালকে এই পর্যন্ত এইটো অনুমোদন জনোৱা নাই</translation> -<translation id="6567688344210276845">পৃষ্ঠাৰ কার্যৰ বাবে আইকন '<ph name="ICON" />' ল'ড কৰিব পৰা নগ'ল</translation> <translation id="6569934958368283244">অন্য লোক</translation> <translation id="657402800789773160">এই পৃষ্ঠাটো &পুনৰ ল'ড কৰক</translation> <translation id="6577284282025554716">ডাউনল’ড বাতিল কৰা হৈছে: <ph name="FILE_NAME" /></translation> @@ -4209,7 +4206,6 @@ <translation id="6659594942844771486">টেব</translation> <translation id="6664237456442406323">দুৰ্ভাগ্যবশতঃ, আপোনাৰ কম্পিউটাৰটো এটা ভুল হাৰ্ডৱেৰ আইডিৰ সৈতে কনফিগাৰ কৰা আছে। ই শেহতীয়া সুৰক্ষা সমাধানসমূহৰ সৈতে আপডে’ট কৰাত Chrome OSক বাধা দিয়ে আৰু আপোনাৰ কম্পিউটাৰটো <ph name="BEGIN_BOLD" />ক্ষতিকাৰক আক্ৰমণৰ বলি হোৱাৰ সম্ভাৱনা থাকিব পাৰে<ph name="END_BOLD" />।</translation> <translation id="6664774537677393800">আপোনাৰ প্ৰ’ফাইলটো খুলি থাকোঁতে কিবা ভুল হ’ল। অনুগ্ৰহ কৰি ছাইন আউট কৰি পুনৰ ছাইন ইন কৰক।</translation> -<translation id="6667776121818773738">অন্য ডিভাইচৰ পৰা শ্বেয়াৰ কৰা প্ৰতিচ্ছবি</translation> <translation id="6673391612973410118"><ph name="PRINTER_MAKE_OR_MODEL" /> (ইউএছবি)</translation> <translation id="667517062706956822">আপুনি Googleএ এই পৃষ্ঠাটো <ph name="SOURCE_LANGUAGE" />ৰ পৰা <ph name="TARGET_LANGUAGE" />লৈ অনুবাদ কৰাটো বিচাৰেনে?</translation> <translation id="6675665718701918026">নির্দেশ কৰা ডিভাইচ সংযোগ কৰা হৈছে</translation> @@ -4819,7 +4815,7 @@ <translation id="7489761397368794366">আপোনাৰ ডিভাইচৰ পৰা কল কৰক</translation> <translation id="749028671485790643">প্ৰ'ফাইল <ph name="VALUE" /></translation> <translation id="7490813197707563893">MAC ঠিকনা</translation> -<translation id="7491963308094506985">{NUM_COOKIES,plural, =1{১ টা কুকী}one{{NUM_COOKIES} টা কুকী}other{{NUM_COOKIES} টা কুকী}}</translation> +<translation id="7491963308094506985">{NUM_COOKIES,plural, =1{১ টা কুকি}one{{NUM_COOKIES} টা কুকি}other{{NUM_COOKIES} টা কুকি}}</translation> <translation id="7493386493263658176"><ph name="EXTENSION_NAME" /> এক্সটেনশ্বনে পাছৱৰ্ড আৰু ক্ৰেডিট কাৰ্ডৰ নম্বৰৰ দৰে ব্যক্তিগত ডেটাক সামৰি আপুনি টাইপ কৰা সকলো পাঠ সংগ্ৰহ কৰিব পাৰে৷ আপুনি এই এক্সটেনশ্বন ব্যৱহাৰ কৰিব বিচাৰেনে?</translation> <translation id="7494694779888133066"><ph name="WIDTH" /> x <ph name="HEIGHT" /></translation> <translation id="7495778526395737099">আপোনাৰ পুৰণা পাছৱৰ্ড পাহৰিলে নেকি?</translation> @@ -4828,7 +4824,6 @@ <translation id="7497981768003291373">আপোনাৰ শেহতীয়াকৈ কেপশ্বাৰ কৰা কোনো WebRTC পাঠ লগ নাই।</translation> <translation id="7502658306369382406">IPv6 ঠিকনা</translation> <translation id="7503191893372251637">Netscapeৰ প্ৰমাণপত্ৰৰ প্ৰকাৰ</translation> -<translation id="7503821294401948377">ব্ৰাউজাৰৰ কার্যকলাপৰ বাবে আইকন ’<ph name="ICON" />’ ল’ড কৰিব পৰা নগ’ল।</translation> <translation id="7503985202154027481">আপুনি এই ছাইটলৈ যোৱাৰ এটা ৰেকৰ্ড আপোনাৰ সুৰক্ষা চাবিত ৰখা হ’ব।</translation> <translation id="7504293978434250212">আপোনাৰ প্ৰতিষ্ঠানে ৫০ এমবি পৰ্যন্ত ফাইল স্কেন কৰিব পাৰে। এটা সৰু ফাইল আপল’ড কৰি চাওক।</translation> <translation id="750509436279396091">ডাউনল’ড ফ’ল্ডাৰ খোলক</translation> @@ -5627,7 +5622,6 @@ <translation id="8546930481464505581">স্পর্শ বাৰ কাষ্টমাইজ কৰক</translation> <translation id="8547013269961688403">সম্পূৰ্ণস্ক্ৰীণৰ বিৱৰ্ধক সক্ষম কৰক</translation> <translation id="85486688517848470">শীর্ষ শাৰীৰ কীসমূহৰ আচৰণ পৰিৱর্তন কৰিবলৈ সন্ধানৰ কীটো ধৰি থাকক</translation> -<translation id="8550165047974571882">আপুনি সকলো <ph name="ORIGIN" /> টেব বন্ধ নকৰা পৰ্যন্ত <ph name="ORIGIN" />এ <ph name="FOLDERNAME" />ত থকা ফাইলসমূহ সম্পাদনা কৰিব পাৰিব</translation> <translation id="8551388862522347954">অনুজ্ঞাপত্ৰসমূহ</translation> <translation id="8553342806078037065">অন্য লোকসকলক পৰিচালনা কৰক</translation> <translation id="8554899698005018844">কোনো ভাষা নাই</translation>
diff --git a/chrome/app/resources/generated_resources_az.xtb b/chrome/app/resources/generated_resources_az.xtb index 9ca66901..ff6979f 100644 --- a/chrome/app/resources/generated_resources_az.xtb +++ b/chrome/app/resources/generated_resources_az.xtb
@@ -1115,7 +1115,6 @@ <translation id="247949520305900375">Audionu paylaşın</translation> <translation id="2480868415629598489">Kopyaladığınız və yerləşdirdiyiniz datanı dəyişdirin</translation> <translation id="2482878487686419369">Bildirişlər</translation> -<translation id="2483610039979585156">Bütün <ph name="ORIGIN" /> tabellərini bağlayanadək <ph name="ORIGIN" /> <ph name="FILENAME" /> faylını redaktə edə biləcək</translation> <translation id="2484959914739448251">Axtarış tarixçəsini bütün sinxronizasiya olunmuş cihazlardan və Google Hesabınızdan silmək üçün <ph name="BEGIN_LINK" />parol ifadəsini daxil edin<ph name="END_LINK" />.</translation> <translation id="2485005079599453134">Parol bu cihazda saxlanılıb</translation> <translation id="2485422356828889247">Sistemdən silin</translation> @@ -1720,7 +1719,6 @@ <translation id="3282568296779691940">Chrome'a daxil olun</translation> <translation id="3285322247471302225">Yeni Tab</translation> <translation id="328571385944182268">Parollar yadda saxlanılsın?</translation> -<translation id="328785681103589998">Bütün <ph name="ORIGIN" /> tablarını bağlayanadək <ph name="ORIGIN" /> <ph name="FILENAME" /> faylına baxa biləcək</translation> <translation id="3288047731229977326">Developer rejimində işləyən artırmalar kompüterinizə zərər verə bilər. Developer deyilsinizsə, güvənli qalmaq üçün bu artırmaların developer rejimində işləməsinə icazə verməməlisiniz.</translation> <translation id="3289856944988573801">Güncəlləşmələri yoxlamaq üçün Ethernet və ya Wi-Fi istifadə edin.</translation> <translation id="3290356915286466215">Güvənsiz</translation> @@ -2407,6 +2405,7 @@ <translation id="4144218403971135344">Daha yaxşı video keyfiyyəti əldə edin və batareyaya qənaət edin. Video yalnız Yayımın aktiv edildiyi ekranda oxudulacaq.</translation> <translation id="4146026355784316281">Həmişə sistem izləyicisini açın</translation> <translation id="4146785383423576110">Sıfırlayın və təmizləyin</translation> +<translation id="4147897805161313378">Google Foto</translation> <translation id="4147911968024186208">Yenidən cəhd edin. Xəta hələ də qalarsa, yardım xidməti ilə əlaqə saxlayın.</translation> <translation id="4150201353443180367">Ekran</translation> <translation id="4152670763139331043">{NUM_TABS,plural, =1{1 panel}other{# panel}}</translation> @@ -2726,6 +2725,7 @@ <translation id="4633757335284074492">Google Diskə yedəkləyin. İstənilən vaxt datanı asanlıqla bərpa edin və ya cihazı dəyişin. Bu yedəkləməyə tətbiq datası daxildir. Yedəkləmələr Google'a yüklənir və uşağınızın Google Hesabı parolundan istifadə etməklə şifrlənir.</translation> <translation id="4634771451598206121">Yenidən daxil olun</translation> <translation id="4635398712689569051"><ph name="PAGE_NAME" /> Qonaq istifadəçilər üçün əlçatan deyil.</translation> +<translation id="4636930964841734540">İnfo</translation> <translation id="4637083375689622795">Daha çox əməliyyat, <ph name="EMAIL" /></translation> <translation id="4638930039313743000">ADB sazlamasını aktiv edin</translation> <translation id="4641539339823703554">Chrome sistem vaxtını ayarlaya bilmədi. Aşağıda vaxtı yoxlayın və gərək olduğu halda düzəldin.</translation> @@ -2805,7 +2805,6 @@ <translation id="4750394297954878236">Təkliflər</translation> <translation id="475088594373173692">İlk istifadəçi</translation> <translation id="4751476147751820511">Hərəkət və ışıq sensorları</translation> -<translation id="4756269098451810636">Şəkil <ph name="DEVICE_NAME" /> cihazından paylaşılıb</translation> <translation id="4756378406049221019">Dayandırın/Yenidən yükləyin</translation> <translation id="4756388243121344051">&Tarixçə</translation> <translation id="4759238208242260848">Endirmələr</translation> @@ -3750,7 +3749,6 @@ <translation id="6040852767465482106">Anonim Kimlik</translation> <translation id="6041046205544295907"><ph name="BEGIN_PARAGRAPH1" />Google'un məkan xidməti cihazın məkanını tapmaq üçün Wi-Fi və mobil şəbəkələr və sensorlardan istifadə edir.<ph name="END_PARAGRAPH1" /> <ph name="BEGIN_PARAGRAPH2" />Cihazda əsas Məkan ayarını deaktiv etməklə Məkanı deaktiv edə bilərsiniz. Həmçinin, məkanın Wi-Fi və mobil şəbəkələr və sensorlardan istifadəsini məkan ayarlarından deaktiv edə bilərsiniz.<ph name="END_PARAGRAPH2" /></translation> -<translation id="6041150002191391409">Bütün <ph name="ORIGIN" /> tabellərini bağlayanadək <ph name="ORIGIN" /> <ph name="FOLDERNAME" /> qovluğundakı fayllara baxa biləcək.</translation> <translation id="6041155700700864984">"Tam ekran" rejimindən çıxın</translation> <translation id="604124094241169006">Avtomatik</translation> <translation id="6042308850641462728">Daha çox</translation> @@ -4146,7 +4144,6 @@ <translation id="6561726789132298588">girin</translation> <translation id="656293578423618167">Fayl yolu və ya adı çox uzundur. Qısa ad ilə və ya başqa yerə saxlayın.</translation> <translation id="6563469144985748109">Meneceriniz hələ ki təsdiq etməyib</translation> -<translation id="6567688344210276845">Səhifə əməliyyatı üçün '<ph name="ICON" />' ikonası yüklənə bilmədi.</translation> <translation id="6569934958368283244">Digər şəxslər</translation> <translation id="657402800789773160">Bu Səhifəni Yenidən yükləyin</translation> <translation id="6577284282025554716">Endirmə ləğv edildi: <ph name="FILE_NAME" /></translation> @@ -4211,7 +4208,6 @@ <translation id="6659594942844771486">Panel</translation> <translation id="6664237456442406323">Kompüteriniz düzgün olmayan avadanlıq ID-si ilə sazlanıb. Bu, Chrome əməliyyat sistemini ən son güvənlik bərpaları etməyə mane ola və kompüteriniz <ph name="BEGIN_BOLD" />hücumlara məruz qala bilər<ph name="END_BOLD" />.</translation> <translation id="6664774537677393800">Profilinizi açarkən xəta baş verdi. Hesabdan çıxın və yenidən daxil olun.</translation> -<translation id="6667776121818773738">Şəkil başqa cihazdan paylaşılıb</translation> <translation id="6673391612973410118"><ph name="PRINTER_MAKE_OR_MODEL" /> (USB)</translation> <translation id="667517062706956822">Google'un bu səhifəni <ph name="SOURCE_LANGUAGE" /> dilindən <ph name="TARGET_LANGUAGE" /> dilinə tərcümə etməyini istəyirsiniz?</translation> <translation id="6675665718701918026">Cihazın qoşulu olduğu göstərilir</translation> @@ -4832,7 +4828,6 @@ <translation id="7497981768003291373">Son vaxtlar WebRTC mətn girişləri çəkməmisiniz.</translation> <translation id="7502658306369382406">IPv6 ünvanı</translation> <translation id="7503191893372251637">Netscape Sertifikat növü</translation> -<translation id="7503821294401948377">Brauzer əməliyyatı üçün <ph name="ICON" /> ikonası yüklənə bilmədi.</translation> <translation id="7503985202154027481">Sayta girişiniz güvənlik açarında qeyd ediləcək.</translation> <translation id="7504293978434250212">Təşkilatınız 50 MB-a qədər faylları skanlaya bilir. Daha kiçik fayl yükləyin.</translation> <translation id="750509436279396091">Endirilənlər qovluğunu açın</translation> @@ -5633,7 +5628,6 @@ <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="8550165047974571882">Bütün <ph name="ORIGIN" /> tabellərini bağlayanadək <ph name="ORIGIN" /> <ph name="FOLDERNAME" /> qovluğundakı faylları redaktə edə biləcək</translation> <translation id="8551388862522347954">Lisenziyalar</translation> <translation id="8553342806078037065">Digər insanları idarə edin</translation> <translation id="8554899698005018844">Dil yoxdur</translation>
diff --git a/chrome/app/resources/generated_resources_be.xtb b/chrome/app/resources/generated_resources_be.xtb index e7ef95ecd..2ca4ca7 100644 --- a/chrome/app/resources/generated_resources_be.xtb +++ b/chrome/app/resources/generated_resources_be.xtb
@@ -1120,7 +1120,6 @@ <translation id="247949520305900375">Абагульваць аўдыя</translation> <translation id="2480868415629598489">Змена даных, якія вы капіруеце і ўстаўляеце</translation> <translation id="2482878487686419369">Апавяшчэнні</translation> -<translation id="2483610039979585156"><ph name="ORIGIN" /> зможа змяняць файл <ph name="FILENAME" />, пакуль вы не закрыеце ўсе ўкладкі сайта <ph name="ORIGIN" /></translation> <translation id="2484959914739448251">Каб ачысціць даныя прагляду з усіх сінхранізаваных прылад і Уліковага запісу Google, <ph name="BEGIN_LINK" />увядзіце фразу-пароль<ph name="END_LINK" />.</translation> <translation id="2485005079599453134">Пароль захаваны на гэтай прыладзе</translation> <translation id="2485422356828889247">Выдаліць</translation> @@ -1317,7 +1316,7 @@ <translation id="2725200716980197196">Падключэнне да сеткі адноўлена</translation> <translation id="2727633948226935816">Больш не напамінаць</translation> <translation id="2727712005121231835">Фактычны памер</translation> -<translation id="2729314457178420145">Таксама выдаліць гісторыю праглядаў сайта (<ph name="URL" />). (Гэта можа прывесці да выхаду з уліковага запісу на дамене Google.com.) <ph name="LEARN_MORE" /></translation> +<translation id="2729314457178420145">Таксама выдаліць гісторыю праглядаў сайта (<ph name="URL" />), што можа прывесці да выхаду з уліковага запісу на дамене Google.com. <ph name="LEARN_MORE" /></translation> <translation id="2730029791981212295">Ідзе рэзервовае капіраванне файлаў і праграм Linux</translation> <translation id="273093730430620027">Гэта старонка выкарыстоўвае камеру.</translation> <translation id="2731392572903530958">Паў&торна адкрыць закрытае акно</translation> @@ -1725,7 +1724,6 @@ <translation id="3282568296779691940">Увайсці ў Chrome</translation> <translation id="3285322247471302225">Новая &ўкладка</translation> <translation id="328571385944182268">Захоўваць паролі?</translation> -<translation id="328785681103589998"><ph name="ORIGIN" /> зможа праглядаць файл <ph name="FILENAME" />, пакуль вы не закрыеце ўсе ўкладкі сайта <ph name="ORIGIN" /></translation> <translation id="3288047731229977326">Пашырэнні, якія працуюць у рэжыме распрацоўшчыка, могуць пашкодзіць камп'ютар. Калі вы не распрацоўшчык, вам у мэтах бяспекі трэба забараніць гэтым пашырэнням працаваць у рэжыме распрацоўшчыка.</translation> <translation id="3289856944988573801">Каб праверыць наяўнасць абнаўленняў, падключыцеся да сеткі Ethernet або Wi-Fi.</translation> <translation id="3290356915286466215">Не абаронена</translation> @@ -2414,6 +2412,7 @@ <translation id="4144218403971135344">Гэта функцыя дазваляе павысіць якасць відэа і падоўжыць тэрмін службы акумулятара. Відэа будуць прайгравацца толькі на экранах з падтрымкай Cast.</translation> <translation id="4146026355784316281">Заўсёды адкрываць з дапамогай сістэмнага сродку прагляду</translation> <translation id="4146785383423576110">Скід налад і выдаленне шкоднага ПЗ</translation> +<translation id="4147897805161313378">Google Фота</translation> <translation id="4147911968024186208">Паўтарыце спробу. Калі вы бачыце гэту памылку паўторна, звярніцеся да прадстаўніка службы падтрымкі.</translation> <translation id="4150201353443180367">Дысплэй</translation> <translation id="4152670763139331043">{NUM_TABS,plural, =1{1 укладка}one{# укладка}few{# укладкі}many{# укладак}other{# укладкі}}</translation> @@ -2733,6 +2732,7 @@ <translation id="4633757335284074492">Рэзервовае капіраванне на Google Дыск. Лёгка аднаўляйце даныя і пераносьце іх на іншыя прылады. У рэзервовую копію ўваходзяць даныя праграм. Рэзервовыя копіі запампоўваюцца ў Google і шыфруюцца пад паролем ад Уліковага запісу Google дзіцяці.</translation> <translation id="4634771451598206121">Увайсці яшчэ раз...</translation> <translation id="4635398712689569051">Старонка <ph name="PAGE_NAME" /> недаступная для гасцявых карыстальнікаў.</translation> +<translation id="4636930964841734540">Інфармацыя</translation> <translation id="4637083375689622795">Іншыя дзеянні, <ph name="EMAIL" /></translation> <translation id="4638930039313743000">Уключыць адладку ADB</translation> <translation id="4641539339823703554">Браўзеру Chrome не ўдалося задаць сістэмны час. Праверце ўказаны ніжэй час і пры неабходнасці выправіце яго.</translation> @@ -2812,7 +2812,6 @@ <translation id="4750394297954878236">Прапановы</translation> <translation id="475088594373173692">Першы карыстальнік</translation> <translation id="4751476147751820511">Датчыкі руху або святла</translation> -<translation id="4756269098451810636">Выява абагулена з прылады "<ph name="DEVICE_NAME" />"</translation> <translation id="4756378406049221019">Спыніць/Перазагрузіць</translation> <translation id="4756388243121344051">&Гісторыя</translation> <translation id="4759238208242260848">Спампоўкі</translation> @@ -3759,7 +3758,6 @@ <translation id="6040852767465482106">Ананімны ідэнтыфікатар</translation> <translation id="6041046205544295907"><ph name="BEGIN_PARAGRAPH1" />Служба геалакацыі Google выкарыстоўвае такія крыніцы як Wi-Fi, мабільныя сеткі і датчыкі ў якасці дапаможных для вызначэння месцазнаходжання вашай прылады.<ph name="END_PARAGRAPH1" /> <ph name="BEGIN_PARAGRAPH2" />Каб выключыць гэту службу, выключыце галоўную наладу вызначэння месцазнаходжання на прыладзе. Таксама можна выключыць выкарыстанне Wi-Fi, мабільных сетак і датчыкаў для вызначэння месцазнаходжання ў адпаведных наладах.<ph name="END_PARAGRAPH2" /></translation> -<translation id="6041150002191391409"><ph name="ORIGIN" /> зможа праглядаць файлы ў папцы <ph name="FOLDERNAME" />, пакуль вы не закрыеце ўсе ўкладкі сайта <ph name="ORIGIN" /></translation> <translation id="6041155700700864984">Выключыць поўнаэкранны рэжым</translation> <translation id="604124094241169006">Аўтаматычна</translation> <translation id="6042308850641462728">Яшчэ</translation> @@ -4155,7 +4153,6 @@ <translation id="6561726789132298588">Enter</translation> <translation id="656293578423618167">Шлях да файла або яго назва занадта доўгія. Зрабіце назву карацейшай або ўкажыце іншае месцазнаходжанне.</translation> <translation id="6563469144985748109">Ваш менеджар пакуль што не ўхваліў гэты сайт</translation> -<translation id="6567688344210276845">Не ўдалося загрузіць значок "<ph name="ICON" />" для дзеяння са старонкай.</translation> <translation id="6569934958368283244">Іншыя людзі</translation> <translation id="657402800789773160">&Перазагрузіць старонку</translation> <translation id="6577284282025554716">Спампоўванне скасавана: <ph name="FILE_NAME" /></translation> @@ -4220,7 +4217,6 @@ <translation id="6659594942844771486">Укладка</translation> <translation id="6664237456442406323">Ваш камп'ютар сканфігураваны з няправільным ідэнтыфікатарам апаратнага забеспячэння. Гэта не дае ўсталяваць апошнія выпраўленні сістэмы бяспекі для Chrome OS. Ваш камп'ютар <ph name="BEGIN_BOLD" />можа быць прыступным для атак зламыснікаў<ph name="END_BOLD" />.</translation> <translation id="6664774537677393800">Нешта пайшло не так падчас адкрыцця вашага профілю. Выйдзіце і зноў увайдзіце ва ўліковы запіс.</translation> -<translation id="6667776121818773738">Выява абагулена з іншай прылады</translation> <translation id="6673391612973410118"><ph name="PRINTER_MAKE_OR_MODEL" /> (USB)</translation> <translation id="667517062706956822">Дазволіць Google перакласці гэту старонку з <ph name="SOURCE_LANGUAGE" /> на <ph name="TARGET_LANGUAGE" />?</translation> <translation id="6675665718701918026">Падключана ўказальная прылада</translation> @@ -4841,7 +4837,6 @@ <translation id="7497981768003291373">У вас няма апошніх тэкставых журналаў WebRTC.</translation> <translation id="7502658306369382406">Адрас IPv6</translation> <translation id="7503191893372251637">Тып сертыфіката Netscape</translation> -<translation id="7503821294401948377">Не ўдалося загрузіць значок "<ph name="ICON" />" для дзеяння ў браўзеры.</translation> <translation id="7503985202154027481">На ключы бяспекі будзе пакінуты запіс пра наведванне вамі гэтага вэб-сайта.</translation> <translation id="7504293978434250212">Ваша арганізацыя можа правяраць файлы памерам да 50 МБ. Запампуйце файл меншага памеру.</translation> <translation id="750509436279396091">Адкрыць папку спамповак</translation> @@ -5643,7 +5638,6 @@ <translation id="8546930481464505581">Наладзіць сэнсарную палоску</translation> <translation id="8547013269961688403">Уключыць лупу для поўнаэкраннага рэжыму</translation> <translation id="85486688517848470">Утрымлівайце клавішу пошуку, каб змяніць значэнні клавіш верхняга рада</translation> -<translation id="8550165047974571882"><ph name="ORIGIN" /> зможа змяняць файлы ў папцы <ph name="FOLDERNAME" />, пакуль вы не закрыеце ўсе ўкладкі сайта <ph name="ORIGIN" /></translation> <translation id="8551388862522347954">Ліцэнзіі</translation> <translation id="8553342806078037065">Іншыя карыстальнікі</translation> <translation id="8554899698005018844">Мова не выбрана</translation> @@ -5857,7 +5851,7 @@ <translation id="8808686172382650546">Кот</translation> <translation id="8808744862003883508">На гэтай старонцы можна бачыць усе ўсталяваныя ў Chrome пашырэнні.</translation> <translation id="8809147117840417135">Светла-бірузовы</translation> -<translation id="8812593354822910461">Таксама выдаліць гісторыю праглядаў сайта (<ph name="URL" />). (Гэта прывядзе да выхаду з уліковага запісу на дамене <ph name="DOMAIN" />.) <ph name="LEARN_MORE" /></translation> +<translation id="8812593354822910461">Таксама выдаліць гісторыю праглядаў сайта (<ph name="URL" />), што можа прывесці да выхаду з уліковага запісу на дамене <ph name="DOMAIN" />. <ph name="LEARN_MORE" /></translation> <translation id="8813698869395535039">Не ўдаецца ўвайсці ва ўліковы запіс <ph name="USERNAME" /></translation> <translation id="8813811964357448561">аркуш паперы</translation> <translation id="8813872945700551674">Для ўхвалення пашырэння "<ph name="EXTENSION_NAME" />" звярніцеся да бацькоў.</translation>
diff --git a/chrome/app/resources/generated_resources_bg.xtb b/chrome/app/resources/generated_resources_bg.xtb index 9250216..1ca996d 100644 --- a/chrome/app/resources/generated_resources_bg.xtb +++ b/chrome/app/resources/generated_resources_bg.xtb
@@ -1117,7 +1117,6 @@ <translation id="247949520305900375">Споделяне на звука</translation> <translation id="2480868415629598489">Промяна на данните, които копирате и поставяте</translation> <translation id="2482878487686419369">Известия</translation> -<translation id="2483610039979585156"><ph name="ORIGIN" /> ще може да редактира „<ph name="FILENAME" />“, докато не затворите всички раздели с(ъс) <ph name="ORIGIN" /></translation> <translation id="2484959914739448251">За да изчистите данните за сърфирането от всичките си синхронизирани устройства и от профила си в Google, <ph name="BEGIN_LINK" />въведете пропуска си<ph name="END_LINK" />.</translation> <translation id="2485005079599453134">Паролата е запазена на това устройство</translation> <translation id="2485422356828889247">Деинсталиране</translation> @@ -1722,7 +1721,6 @@ <translation id="3282568296779691940">Вход в Chrome</translation> <translation id="3285322247471302225">Нов &раздел</translation> <translation id="328571385944182268">Да се запазят ли паролите ви?</translation> -<translation id="328785681103589998"><ph name="ORIGIN" /> ще може да преглежда <ph name="FILENAME" />, докато не затворите всички раздели с(ъс) <ph name="ORIGIN" /></translation> <translation id="3288047731229977326">Разширенията, които се изпълняват в режим за програмисти, могат да навредят на компютъра ви. Ако не сте програмист, за по-голяма безопасност трябва да деактивирате изпълнението им в този режим.</translation> <translation id="3289856944988573801">За да проверите за актуализации, моля, използвайте Ethernet или Wi-Fi.</translation> <translation id="3290356915286466215">незащитена</translation> @@ -2413,6 +2411,7 @@ <translation id="4144218403971135344">Гледайте видео с по-добро качество и удължете живота на батерията. Видеото ще се възпроизвежда само на екрана ви, поддържащ Cast.</translation> <translation id="4146026355784316281">Отваряне винаги със системния визуализатор</translation> <translation id="4146785383423576110">Нулиране на настройките и почистване</translation> +<translation id="4147897805161313378">Google Снимки</translation> <translation id="4147911968024186208">Моля, опитайте пак. Ако отново видите тази грешка, свържете се с представител на екипа за поддръжка.</translation> <translation id="4150201353443180367">Екран</translation> <translation id="4152670763139331043">{NUM_TABS,plural, =1{1 раздел}other{# раздела}}</translation> @@ -2732,6 +2731,7 @@ <translation id="4633757335284074492">Създаване на резервно копие в Google Диск. По всяко време можете лесно да възстановите данните на устройството или да го замените с друго. Резервното копие включва данните на приложенията. Резервните копия се качват в Google и се шифроват посредством паролата за профила на детето ви в Google.</translation> <translation id="4634771451598206121">Влизане отново...</translation> <translation id="4635398712689569051">Страницата „<ph name="PAGE_NAME" />“ не е достъпна за гости.</translation> +<translation id="4636930964841734540">Информация</translation> <translation id="4637083375689622795">Още действия, <ph name="EMAIL" /></translation> <translation id="4638930039313743000">Активиране на отстраняването на грешки през ADB</translation> <translation id="4641539339823703554">Chrome не успя да зададе системния час. Моля, проверете го по-долу и го коригирайте при нужда.</translation> @@ -2811,7 +2811,6 @@ <translation id="4750394297954878236">Предложения</translation> <translation id="475088594373173692">Първи потребител</translation> <translation id="4751476147751820511">Сензори за движение или светлина</translation> -<translation id="4756269098451810636">Изображение, споделено от <ph name="DEVICE_NAME" /></translation> <translation id="4756378406049221019">Спиране/презареждане</translation> <translation id="4756388243121344051">&История</translation> <translation id="4759238208242260848">Изтегляния</translation> @@ -3759,7 +3758,6 @@ <translation id="6040852767465482106">Анонимна самоличност</translation> <translation id="6041046205544295907"><ph name="BEGIN_PARAGRAPH1" />Услугата на Google за местоположение използва източници като Wi‑Fi, мобилни мрежи и сензори, за да определя къде се намира устройството ви.<ph name="END_PARAGRAPH1" /> <ph name="BEGIN_PARAGRAPH2" />Можете да изключите местоположението, като деактивирате главната настройка за него на устройството си. Също така от настройките за местоположението имате възможност да изключите използването на Wi-Fi, мобилни мрежи и сензори за определянето му.<ph name="END_PARAGRAPH2" /></translation> -<translation id="6041150002191391409"><ph name="ORIGIN" /> ще може да преглежда файловете в(ъв) „<ph name="FOLDERNAME" />“, докато не затворите всички раздели с(ъс) <ph name="ORIGIN" /></translation> <translation id="6041155700700864984">Изход от цял екран</translation> <translation id="604124094241169006">Автоматично</translation> <translation id="6042308850641462728">Още</translation> @@ -4155,7 +4153,6 @@ <translation id="6561726789132298588">enter</translation> <translation id="656293578423618167">Пътят или името на файла са твърде дълги. Моля, запазете файла с по-кратко име или на друго място.</translation> <translation id="6563469144985748109">Мениджърът ви все още не е одобрил заявката</translation> -<translation id="6567688344210276845">Не можа да се зареди иконата „<ph name="ICON" />“ за действието на страницата.</translation> <translation id="6569934958368283244">Други хора</translation> <translation id="657402800789773160">&Презареждане на тази страница</translation> <translation id="6577284282025554716">Изтеглянето е анулирано: <ph name="FILE_NAME" /></translation> @@ -4220,7 +4217,6 @@ <translation id="6659594942844771486">Раздел</translation> <translation id="6664237456442406323">За съжаление компютърът ви е конфигуриран с неправилно образуван идентификационен номер на хардуера. Това не позволява на Chrome OS да се актуализира с най-новите корекции за сигурност и машината ви <ph name="BEGIN_BOLD" />може да е уязвима към злонамерени атаки<ph name="END_BOLD" />.</translation> <translation id="6664774537677393800">Нещо се обърка при отварянето на потребителския ви профил. Моля, излезте от профила си и влезте отново.</translation> -<translation id="6667776121818773738">Изображение, споделено от друго устройство</translation> <translation id="6673391612973410118"><ph name="PRINTER_MAKE_OR_MODEL" /> (USB)</translation> <translation id="667517062706956822">Искате ли Google да преведе тази страница от <ph name="SOURCE_LANGUAGE" /> на <ph name="TARGET_LANGUAGE" />?</translation> <translation id="6675665718701918026">Свързано е посочващо устройство</translation> @@ -4841,7 +4837,6 @@ <translation id="7497981768003291373">Нямате наскоро записани регистрационни файлове за предаване на текст с WebRTC.</translation> <translation id="7502658306369382406">IPv6 адрес</translation> <translation id="7503191893372251637">Тип на сертификата на Netscape</translation> -<translation id="7503821294401948377">Не можа да се зареди иконата „<ph name="ICON" />“ за действието на браузъра.</translation> <translation id="7503985202154027481">В ключа ви за сигурност ще се съхрани запис за посещението ви на този сайт.</translation> <translation id="7504293978434250212">В организацията ви могат да се сканират файлове до 50 МБ. Опитайте да качите по-малък файл.</translation> <translation id="750509436279396091">Отваряне на папката за изтегляния</translation> @@ -5644,7 +5639,6 @@ <translation id="8546930481464505581">Персонализиране на лентата за докосване</translation> <translation id="8547013269961688403">Активиране на лупата за увеличаване на целия екран</translation> <translation id="85486688517848470">Задръжте клавиша „търсене“, за да промените поведението на клавишите от най-горния ред</translation> -<translation id="8550165047974571882"><ph name="ORIGIN" /> ще може да редактира файловете в(ъв) „<ph name="FOLDERNAME" />“, докато не затворите всички раздели с(ъс) <ph name="ORIGIN" /></translation> <translation id="8551388862522347954">Лицензи</translation> <translation id="8553342806078037065">Управление на другите хора</translation> <translation id="8554899698005018844">Без език</translation>
diff --git a/chrome/app/resources/generated_resources_bn.xtb b/chrome/app/resources/generated_resources_bn.xtb index 3c977b4..8840edb 100644 --- a/chrome/app/resources/generated_resources_bn.xtb +++ b/chrome/app/resources/generated_resources_bn.xtb
@@ -461,7 +461,7 @@ <translation id="1616206807336925449">এই এক্সটেনশনটির কোনও বিশেষ অনুমতির প্রয়োজন নেই।</translation> <translation id="1616298854599875024">এটি একটি শেয়ার করা মডিউল না হওয়ার কারণে <ph name="IMPORT_NAME" /> এক্সটেনশন ইমপোর্ট করা যাচ্ছে না</translation> <translation id="1618268899808219593">সহায়তা কেন্দ্র</translation> -<translation id="1620307519959413822">ভুল পাসওয়ার্ড। আবার চেষ্টা করুন বা এটি রিসেট করতে 'পাসওয়ার্ড ভুলে গেছি' লিঙ্কে ক্লিক করুন।</translation> +<translation id="1620307519959413822">ভুল পাসওয়ার্ড। আবার চেষ্টা করুন বা এটি রিসেট করতে 'পাসওয়ার্ড ভুলে গেছি' বিকল্পে ক্লিক করুন।</translation> <translation id="1620510694547887537">ক্যামেরা</translation> <translation id="1623132449929929218">ছবিটি বর্তমানে পাওয়া যাচ্ছে না। ওয়ালপেপারের কালেকশনগুলি দেখতে ইন্টারনেটে কানেক্ট করুন।</translation> <translation id="1627276047960621195">ফাইল বর্ণনাকারী</translation> @@ -721,7 +721,7 @@ <translation id="1944528062465413897">ব্লুটুথের সাথে পেয়ার করার জন্য কোড:</translation> <translation id="1944921356641260203">আপডেট পাওয়া গেছে</translation> <translation id="1946577776959096882">অ্যাকাউন্ট দেখুন</translation> -<translation id="1951012854035635156">সহায়ক</translation> +<translation id="1951012854035635156">Assistant</translation> <translation id="1954813140452229842">মাউন্টিং শেয়ারে সমস্যা। অনুগ্রহ করে আপনার ক্রেডেনশিয়াল যাচাই করে আবার চেষ্টা করুন।</translation> <translation id="1956050014111002555">ফাইলটিতে একাধিক শংসাপত্র রয়েছে, এর মধ্যে কোনওটিই আমদানি করা হয়নি:</translation> <translation id="1956390763342388273">এটি ''<ph name="FOLDER_PATH" />'' থেকে সমস্ত ফাইল আপলোড করবে। আপনি এই সাইটটি বিশ্বাস করে থাকলে তবেই এটি করুন।</translation> @@ -1119,7 +1119,6 @@ <translation id="247949520305900375">অডিও ভাগ করুন</translation> <translation id="2480868415629598489">আপনি যে ডেটা কপি করে আটকান তা সংশোধন করুন</translation> <translation id="2482878487686419369">বিজ্ঞপ্তিগুলি</translation> -<translation id="2483610039979585156"><ph name="ORIGIN" /> <ph name="FILENAME" /> ফাইলটি এডিট করতে পারবে যতক্ষণ না আপনি <ph name="ORIGIN" />-এর সব ট্যাব বন্ধ করে দিচ্ছেন</translation> <translation id="2484959914739448251">আপনার সিঙ্ক করা সমস্ত ডিভাইস এবং Google অ্যাকাউন্ট থেকে ব্রাউজিং ডেটা খালি করার জন্য <ph name="BEGIN_LINK" />আপনার পাসফ্রেজ লিখুন<ph name="END_LINK" />।</translation> <translation id="2485005079599453134">এই ডিভাইসে পাসওয়ার্ড সেভ করা হয়েছে</translation> <translation id="2485422356828889247">আনইনস্টল</translation> @@ -1724,7 +1723,6 @@ <translation id="3282568296779691940">Chrome-এ সাইন-ইন করুন</translation> <translation id="3285322247471302225">নতুন &ট্যাব</translation> <translation id="328571385944182268">আপনার পাসওয়ার্ড সেভ করবেন?</translation> -<translation id="328785681103589998"><ph name="ORIGIN" /> <ph name="FILENAME" /> দেখতে পারবে, যতক্ষণ না আপনি <ph name="ORIGIN" />-এর সব ট্যাব বন্ধ করে দিচ্ছেন</translation> <translation id="3288047731229977326">ডেভেলপার মোডে চলমান এক্সটেনশনগুলি আপনার কম্পিউটারের ক্ষতি করতে পারে৷ যদি আপনি একজন ডেভেলপার না হন, তবে সুরক্ষিত থাকার জন্য আপনার এই এক্সটেনশনগুলিকে ডেভেলপার মোডে চালানো বন্ধ করা উচিৎ৷</translation> <translation id="3289856944988573801">আপডেটগুলি পরীক্ষা করার জন্য, অনুগ্রহ করে Ethernet বা ওয়াই-ফাই ব্যবহার করুন৷</translation> <translation id="3290356915286466215">সুরক্ষিত নেই</translation> @@ -2412,6 +2410,7 @@ <translation id="4144218403971135344">আরও উন্নত মানের ভিডিও পান এবং ব্যাটারি সাশ্রয় করুন। শুধুমাত্র আপনার Cast চালু আছে এমন স্ক্রিনে ভিডিও চলবে</translation> <translation id="4146026355784316281">সর্বদা সিস্টেম নিরীক্ষকের সাথে খুলুন</translation> <translation id="4146785383423576110">রিসেট এবং সাফ করুন</translation> +<translation id="4147897805161313378">Google ফটো</translation> <translation id="4147911968024186208">আবার চেষ্টা করুন। সমস্যাটি আবার হলে, কাস্টমার সাপোর্টের সাথে যোগাযোগ করুন।</translation> <translation id="4150201353443180367">প্রদর্শন</translation> <translation id="4152670763139331043">{NUM_TABS,plural, =1{১টি ট্যাব}one{#টি ট্যাব}other{#টি ট্যাব}}</translation> @@ -2731,6 +2730,7 @@ <translation id="4633757335284074492">Google Drive-এ ব্যাক-আপ নিন। যেকোনও সময় সহজেই ডেটা রিস্টোর করুন অথবা অন্য ডিভাইস ব্যবহার করুন। এই ব্যাক-আপের মধ্যে অ্যাপের ডেটাও থাকে। ব্যাক-আপ ডেটা Google-এ আপলোড করা হবে এবং আপনার সন্তানের Google অ্যাকাউন্টের পাসওয়ার্ড ব্যবহার করে সেগুলিকে এনক্রিপ্ট করা হবে।</translation> <translation id="4634771451598206121">আবার সাইন-ইন করুন...</translation> <translation id="4635398712689569051">অতিথি ব্যবহারকারীদের জন্য <ph name="PAGE_NAME" /> উপলভ্য নয়।</translation> +<translation id="4636930964841734540">তথ্য</translation> <translation id="4637083375689622795">আরও বিকল্প, <ph name="EMAIL" /></translation> <translation id="4638930039313743000">ADB ডিবাগিং চালু করতে চান</translation> <translation id="4641539339823703554">Chrome সিস্টেমের সময় সেট করতে পারেনি। অনুগ্রহ করে নিচে সময় চেক করুন এবং প্রয়োজনে এটি সংশোধন করুন।</translation> @@ -2810,7 +2810,6 @@ <translation id="4750394297954878236">প্রস্তাবনা</translation> <translation id="475088594373173692">প্রথম ব্যবহারকারী</translation> <translation id="4751476147751820511">মোশন বা হালকা সেন্সর</translation> -<translation id="4756269098451810636"><ph name="DEVICE_NAME" /> থেকে ছবি শেয়ার করা হয়েছে</translation> <translation id="4756378406049221019">বন্ধ করুন/রিলোড করুন</translation> <translation id="4756388243121344051">&ইতিহাস</translation> <translation id="4759238208242260848">ডাউনলোডগুলি</translation> @@ -3758,7 +3757,6 @@ <translation id="6040852767465482106">নামহীন পরিচয়</translation> <translation id="6041046205544295907"><ph name="BEGIN_PARAGRAPH1" />Google লোকেশন পরিষেবা এই ডিভাইসের লোকেশন অনুমান করার জন্য ওয়াই-ফাই, মোবাইল নেটওয়ার্ক এবং সেন্সরের মতো সোর্স ব্যবহার করে।<ph name="END_PARAGRAPH1" /> <ph name="BEGIN_PARAGRAPH2" />এই ডিভাইসে মূল লোকেশন সেটিং বন্ধ করে আপনি লোকেশন শনাক্ত করার সুবিধাটি বন্ধ করতে পারেন। এছাড়াও আপনি লোকেশন সেটিংস থেকে লোকেশনের জন্য ওয়াই-ফাই, মোবাইল নেটওয়ার্ক এবং সেন্সরের ব্যবহার বন্ধ করতে পারবেন।<ph name="END_PARAGRAPH2" /></translation> -<translation id="6041150002191391409"><ph name="ORIGIN" /> <ph name="FOLDERNAME" /> ফোল্ডারের ফাইলগুলি দেখতে পারবে যতক্ষণ না আপনি <ph name="ORIGIN" />-এর সব ট্যাব বন্ধ করে দিচ্ছেন</translation> <translation id="6041155700700864984">সম্পূর্ণ স্ক্রিন থেকে বেরিয়ে আসুন</translation> <translation id="604124094241169006">স্বয়ংক্রিয়</translation> <translation id="6042308850641462728">আরও</translation> @@ -4155,7 +4153,6 @@ <translation id="6561726789132298588">লিখুন</translation> <translation id="656293578423618167">ফাইল পাথ অথবা নাম অত্যন্ত বড়৷ অনুগ্রহ করে একটি সংক্ষিপ্ত নামে বা অন্য কোনো স্থানে সেভণ করুন৷</translation> <translation id="6563469144985748109">আপনার পরিচালক এখনও এটি অনুমোদন করেন নি</translation> -<translation id="6567688344210276845">পৃষ্ঠা অ্যাকশনর জন্য '<ph name="ICON" />' আইকন লোড করা যায়নি৷</translation> <translation id="6569934958368283244">অন্যান্য লোকজন</translation> <translation id="657402800789773160">&Reload This Page</translation> <translation id="6577284282025554716">ডাউনলোড বাতিল হয়েছে: <ph name="FILE_NAME" /></translation> @@ -4220,7 +4217,6 @@ <translation id="6659594942844771486">ট্যাব</translation> <translation id="6664237456442406323">দুর্ভাগ্যবশত, আপনার কম্পিউটার একটি ত্রুটিপূর্ণ হার্ডওয়্যার ID এর মাধ্যমে কনফিগার করা হয়েছে৷ এটি Chrome OS কে সাম্প্রতিক সুরক্ষা সমাধানে আপডেট করা থেকে বিরত করেছে এবং আপনার কম্পিউটার <ph name="BEGIN_BOLD" />অনিষ্টকারী আক্রমণগুলির ফলে অরক্ষিত হতে পারে<ph name="END_BOLD" />৷</translation> <translation id="6664774537677393800">আপনার প্রোফাইল খোলার সময় কোনো সমস্যা হয়েছে। অনুগ্রহ সাইন-আউট করে আবার সাইন-ইন করুন।</translation> -<translation id="6667776121818773738">অন্য ডিভাইস থেকে ছবি শেয়ার করা হয়েছে</translation> <translation id="6673391612973410118"><ph name="PRINTER_MAKE_OR_MODEL" /> (USB)</translation> <translation id="667517062706956822">আপনি কি চান যে Google এই পৃষ্ঠাটি <ph name="SOURCE_LANGUAGE" /> থেকে <ph name="TARGET_LANGUAGE" /> এ অনুবাদ করুক?</translation> <translation id="6675665718701918026">পয়েন্টিং ডিভাইস সংযুক্ত হয়েছে</translation> @@ -4841,7 +4837,6 @@ <translation id="7497981768003291373">আপনার সাম্প্রতিক কোনও ক্যাপচার করা WebRTC টেক্সট লগ নেই।</translation> <translation id="7502658306369382406">IPv6 ঠিকানা</translation> <translation id="7503191893372251637">Netscape সার্টিফিকেটের প্রকার</translation> -<translation id="7503821294401948377">ব্রাউজার অ্যাকশনর জন্য '<ph name="ICON" />' আইকন লোড করা যায়নি৷</translation> <translation id="7503985202154027481">আপনার এই সাইটে যাওয়ার রেকর্ড নিরাপত্তা কীয়ে সেভ করা থাকবে।</translation> <translation id="7504293978434250212">আপনার সংস্থা ৫০ এমবি পর্যন্ত ফাইল স্ক্যান করতে পারে। এর চেয়ে ছোট ফাইল আপলোড করার চেষ্টা করুন।</translation> <translation id="750509436279396091">ডাউনলোড ফোল্ডার খুলুন</translation> @@ -5642,7 +5637,6 @@ <translation id="8546930481464505581">টাচ বার কাস্টমাইজ করুন</translation> <translation id="8547013269961688403">ফুলস্ক্রিন ম্যাগনিফায়ার চালু করুন</translation> <translation id="85486688517848470">সবথেকে উপরের-সারির বোতামগুলির আচরণ পরিবর্তন করতে সার্চ বোতাম ধরে থাকুন</translation> -<translation id="8550165047974571882"><ph name="ORIGIN" /> <ph name="FOLDERNAME" /> ফোল্ডারের ফাইলগুলি এডিট করতে পারবে যতক্ষণ না আপনি <ph name="ORIGIN" />-এর সব ট্যাব বন্ধ করে দিচ্ছেন</translation> <translation id="8551388862522347954">লাইসেন্সগুলি</translation> <translation id="8553342806078037065">অন্যান্য ব্যক্তিদের পরিচালনা করুন</translation> <translation id="8554899698005018844">কোনও ভাষা নেই</translation>
diff --git a/chrome/app/resources/generated_resources_bs.xtb b/chrome/app/resources/generated_resources_bs.xtb index e21b493..bfd952aa9 100644 --- a/chrome/app/resources/generated_resources_bs.xtb +++ b/chrome/app/resources/generated_resources_bs.xtb
@@ -1120,7 +1120,6 @@ <translation id="247949520305900375">Dijeli zvuk</translation> <translation id="2480868415629598489">Mijenjanje podataka koje kopirate i zalijepite</translation> <translation id="2482878487686419369">Obavještenja</translation> -<translation id="2483610039979585156">Web lokacija <ph name="ORIGIN" /> će moći uređivati fajlove <ph name="FILENAME" /> sve dok ne zatvorite sve kartice web lokacije <ph name="ORIGIN" /></translation> <translation id="2484959914739448251">Da biste izbrisali podatke o pregledavanju sa svih svojih sinkroniziranih uređaja i svojeg Google računa, <ph name="BEGIN_LINK" />unesite svoju šifru<ph name="END_LINK" />.</translation> <translation id="2485005079599453134">Lozinka je sačuvana na ovom uređaju</translation> <translation id="2485422356828889247">Deinstaliraj</translation> @@ -1704,6 +1703,7 @@ <translation id="3264544094376351444">Sans-serif font</translation> <translation id="3264582393905923483">Kontekst</translation> <translation id="3265459715026181080">Zatvori prozor</translation> +<translation id="3266274118485960573">Sigurnosna provjera je u toku.</translation> <translation id="3267726687589094446">Nastavi dozvoljavanje automatskih preuzimanja višestrukih fajlova</translation> <translation id="3268451620468152448">Otvorene kartice</translation> <translation id="3269069891205016797">Kada se odjavite, vaše informacije će se ukloniti s uređaja.</translation> @@ -1725,7 +1725,6 @@ <translation id="3282568296779691940">Prijava na Chrome</translation> <translation id="3285322247471302225">Nova kartica</translation> <translation id="328571385944182268">Sačuvati vaše lozinke?</translation> -<translation id="328785681103589998"><ph name="ORIGIN" /> će moći pregledati fajl <ph name="FILENAME" /> dok ne zatvorite sve <ph name="ORIGIN" /> kartice</translation> <translation id="3288047731229977326">Ekstenzije u načinu rada za programere mogu nanijeti štetu vašem računaru. Ako niste programer, radi sigurnosti onemogućite rad ovih ekstenzija u načinu rada za programere.</translation> <translation id="3289856944988573801">Da provjerite ima li ažuriranja, koristite Ethernet ili WiFi.</translation> <translation id="3290356915286466215">Nezaštićeno</translation> @@ -1810,6 +1809,7 @@ <translation id="3412265149091626468">Pređi na Odabir</translation> <translation id="3413122095806433232">Izdavači CA potvrda: <ph name="LOCATION" /></translation> <translation id="3414952576877147120">Veličina:</translation> +<translation id="3416468988018290825">Uvijek prikaži pune URL-ove</translation> <translation id="3420501302812554910">Interni sigurnosni ključ je potrebno vratiti na zadano</translation> <translation id="3421387094817716717">Javni ključ s eliptičnom krivuljom</translation> <translation id="3422291238483866753">Traži odobrenje kada web lokacija želi kreirati 3D mapu okruženja i pratiti položaj kamere (preporučeno)</translation> @@ -2414,6 +2414,7 @@ <translation id="4144218403971135344">Preuzmite videozapise bolje kvalitete i sačuvajte vijek trajanja baterije. Videozapis će se reproducirati samo na ekranu na kojem je omogućeno emitiranje.</translation> <translation id="4146026355784316281">Uvijek otvori u prikazivaču sistema</translation> <translation id="4146785383423576110">Vrati aplikaciju na zadano i počisti</translation> +<translation id="4147897805161313378">Google fotografije</translation> <translation id="4147911968024186208">Pokušajte ponovo. Ako ponovo vidite ovu grešku, obratite se predstavniku za podršku.</translation> <translation id="4150201353443180367">Ekran</translation> <translation id="4152670763139331043">{NUM_TABS,plural, =1{1 kartica}one{# kartica}few{# kartice}other{# kartica}}</translation> @@ -2733,6 +2734,7 @@ <translation id="4633757335284074492">Izradite sigurnosne kopije na Google disku. Jednostavno u svakom trenutku vratite podatke ili promijenite uređaj. Ova sigurnosna kopija obuhvata podatke aplikacija. Sigurnosne kopije se otpremaju na Google i šifriraju pomoću lozinke Google računa vašeg djeteta.</translation> <translation id="4634771451598206121">Prijavite se ponovo...</translation> <translation id="4635398712689569051"><ph name="PAGE_NAME" /> nije dostupan gostima.</translation> +<translation id="4636930964841734540">Informacije</translation> <translation id="4637083375689622795">Više radnji, <ph name="EMAIL" /></translation> <translation id="4638930039313743000">Omogući otklanjanje grešaka putem ADB-a</translation> <translation id="4641539339823703554">Chrome nije postavio vrijeme sistema. Provjerite vrijeme ispod i ispravite ga ako je potrebno.</translation> @@ -2812,7 +2814,6 @@ <translation id="4750394297954878236">Prijedlozi</translation> <translation id="475088594373173692">Prvi korisnik</translation> <translation id="4751476147751820511">Senzori pokreta ili svjetla</translation> -<translation id="4756269098451810636">Slika dijeljena s uređaja <ph name="DEVICE_NAME" /></translation> <translation id="4756378406049221019">Zaustavi/učitaj ponovo</translation> <translation id="4756388243121344051">&Historija</translation> <translation id="4759238208242260848">Preuzimanja</translation> @@ -3759,7 +3760,6 @@ <translation id="6040852767465482106">Anonimni identitet</translation> <translation id="6041046205544295907"><ph name="BEGIN_PARAGRAPH1" />Googleova usluga lokacije koristi izvore kao što su WiFi, mobilne mreže i senzori za lakšu procjenu lokacije vašeg uređaja.<ph name="END_PARAGRAPH1" /> <ph name="BEGIN_PARAGRAPH2" />Lokaciju možete isključiti ako isključite glavnu postavku lokacije na uređaju. U postavkama lokacije možete isključiti i korištenje WiFi, mobilnih mreža i senzora za lokaciju.<ph name="END_PARAGRAPH2" /></translation> -<translation id="6041150002191391409">Web lokacija <ph name="ORIGIN" /> će moći pregledati fajlove u folderu <ph name="FOLDERNAME" /> sve dok ne zatvorite sve kartice web lokacije <ph name="ORIGIN" /></translation> <translation id="6041155700700864984">Isključi prikaz preko cijelog ekrana</translation> <translation id="604124094241169006">Automatski</translation> <translation id="6042308850641462728">Više</translation> @@ -4155,7 +4155,6 @@ <translation id="6561726789132298588">enter</translation> <translation id="656293578423618167">Putanja ili naziv fajla su predugi. Sačuvajte fajl s kraćim nazivom ili na drugoj lokaciji.</translation> <translation id="6563469144985748109">Voditelj je još nije odobrio</translation> -<translation id="6567688344210276845">Nije uspjelo učitavanje ikone '<ph name="ICON" />' za radnju na stranici.</translation> <translation id="6569934958368283244">Druge osobe</translation> <translation id="657402800789773160">&Ponovo učitaj ovu stranicu</translation> <translation id="6577284282025554716">Otkazano je preuzimanje fajla: <ph name="FILE_NAME" /></translation> @@ -4167,6 +4166,7 @@ <translation id="6586451623538375658">Zamijeni primarno dugme miša</translation> <translation id="6586604979641883411">Za nadogradnju Linuxa je potrebno najmanje <ph name="REQUIRED_SPACE" /> slobodnog prostora. Oslobodite prostor za pohranu na svom uređaju i pokušajte ponovo.</translation> <translation id="6588043302623806746">Koristite siguran DNS</translation> +<translation id="659005207229852190">Sigurnosna provjera je završena.</translation> <translation id="6590458744723262880">Promijenite naziv foldera</translation> <translation id="6592267180249644460">WebRTC zapisnik snimljen u <ph name="WEBRTC_LOG_CAPTURE_TIME" /></translation> <translation id="6592808042417736307">Otisak vašeg prsta je snimljen</translation> @@ -4220,7 +4220,6 @@ <translation id="6659594942844771486">Kartica</translation> <translation id="6664237456442406323">Nažalost, vaš računar je konfiguriran s neispravnim ID-om hardvera. Ovim se sprečava da se Chrome OS ažurira najnovijim sigurnosnim ispravkama i vaš računar <ph name="BEGIN_BOLD" />može biti izložen zlonamjernim napadima<ph name="END_BOLD" />.</translation> <translation id="6664774537677393800">Došlo je do problema prilikom otvaranja vašeg profila. Odjavite se pa se ponovo prijavite.</translation> -<translation id="6667776121818773738">Slika dijeljena s drugog uređaja</translation> <translation id="6673391612973410118"><ph name="PRINTER_MAKE_OR_MODEL" /> (USB)</translation> <translation id="667517062706956822">Želite li da Google prevede ovu stranicu (<ph name="SOURCE_LANGUAGE" /> – <ph name="TARGET_LANGUAGE" />)?</translation> <translation id="6675665718701918026">Uređaj za pokazivanje je povezan</translation> @@ -4841,7 +4840,6 @@ <translation id="7497981768003291373">Nemate nedavno snimljenih tekstualnih zapisnika WebRTC.</translation> <translation id="7502658306369382406">IPv6 adresa</translation> <translation id="7503191893372251637">Vrsta potvrde Netscapea</translation> -<translation id="7503821294401948377">Nije učitana ikona "<ph name="ICON" />" za radnju u pregledniku.</translation> <translation id="7503985202154027481">Evidencija o vašoj posjeti ovoj web lokaciji čuvat će se na vašem sigurnosnom ključu.</translation> <translation id="7504293978434250212">Vaša organizacija može skenirati fajlove veličine do 50 MB. Pokušajte otpremiti manji fajl.</translation> <translation id="750509436279396091">Otvori folder Preuzimanja</translation> @@ -5429,6 +5427,7 @@ <translation id="8249672078237421304">Nudi prijevod stranica koje nisu na jeziku kojeg razumijete</translation> <translation id="8251441930213048644">Osvježi sada</translation> <translation id="8251578425305135684">Sličica je uklonjena.</translation> +<translation id="825238165904109940">Uvijek prikaži pune URL-ove</translation> <translation id="8252569384384439529">Otpremanje...</translation> <translation id="8253198102038551905">Klliknite na "+" da dođete do karakteristika mreže</translation> <translation id="8254954272268479918">Isključi Linux (beta)</translation> @@ -5644,7 +5643,6 @@ <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="8550165047974571882">Web lokacija <ph name="ORIGIN" /> će moći uređivati fajlove u folderu <ph name="FOLDERNAME" /> sve dok ne zatvorite sve kartice web lokacije <ph name="ORIGIN" /></translation> <translation id="8551388862522347954">Licence</translation> <translation id="8553342806078037065">Upravljaj drugim osobama</translation> <translation id="8554899698005018844">Nema jezika</translation>
diff --git a/chrome/app/resources/generated_resources_ca.xtb b/chrome/app/resources/generated_resources_ca.xtb index 8a91e5c6..1c6596b 100644 --- a/chrome/app/resources/generated_resources_ca.xtb +++ b/chrome/app/resources/generated_resources_ca.xtb
@@ -581,7 +581,7 @@ <translation id="176587472219019965">&Finestra nova</translation> <translation id="1766575458646819543">S'ha sortit de la pantalla completa</translation> <translation id="1766957085594317166">Desa les contrasenyes de manera segura al teu Compte de Google i no caldrà que les tornis a escriure mai més</translation> -<translation id="1768278914020124551">S'ha produït un problema en contactar amb el servidor d'inici de sessió. Comprova la teva connexió de xarxa i el nom de domini, i torna-ho a provar.</translation> +<translation id="1768278914020124551">S'ha produït un problema en contactar amb el servidor d'inici de sessió. Comprova la connexió a la xarxa i el nom de domini, i torna-ho a provar.</translation> <translation id="1769104665586091481">Obre l'enllaç en una &finestra nova</translation> <translation id="1773212559869067373">S'ha rebutjat el certificat d'autenticació de manera local</translation> <translation id="177336675152937177">Dades d'aplicacions allotjades</translation> @@ -680,7 +680,7 @@ <translation id="1887850431809612466">Revisió de maquinari</translation> <translation id="1890674179660343635"><span>Identificador: </span><ph name="EXTENSION_ID" /></translation> <translation id="189210018541388520">Obre en pantalla completa</translation> -<translation id="1892341345406963517">Hola, <ph name="PARENT_NAME" /></translation> +<translation id="1892341345406963517">Hola, <ph name="PARENT_NAME" />,</translation> <translation id="189358972401248634">Altres idiomes</translation> <translation id="1895252664692693738">Temps restant: <ph name="TIME_LEFT" /></translation> <translation id="1895658205118569222">Aturada</translation> @@ -1072,7 +1072,7 @@ <translation id="2423578206845792524">De&sa la imatge com a...</translation> <translation id="2428510569851653187">Descriu què feies quan la pestanya s'ha bloquejat</translation> <translation id="2428939361789119025">Desactiva la Wi‑Fi</translation> -<translation id="2431027948063157455">L'Assistent de Google no s'ha pogut carregar. Comprova la connexió a Internet i tornar-ho a provar.</translation> +<translation id="2431027948063157455">L'Assistent de Google no s'ha pogut carregar. Comprova la connexió a la xarxa i tornar-ho a provar.</translation> <translation id="2432753757290432042">Cal actualitzar Linux (versió beta)</translation> <translation id="2433452467737464329">Afegiu un paràmetre de consulta a l'URL per actualitzar la pàgina automàticament: chrome://network/?refresh=<seg.></translation> <translation id="2433490881840073798"><ph name="RECENT_PERMISSIONS_CHANGE_SENTENCE_START" /> i <ph name="RECENT_PERMISSIONS_CHANGE" /></translation> @@ -1119,7 +1119,6 @@ <translation id="247949520305900375">Comparteix l'àudio</translation> <translation id="2480868415629598489">Modificar les dades que copies i enganxes</translation> <translation id="2482878487686419369">Notificacions</translation> -<translation id="2483610039979585156"><ph name="ORIGIN" /> podrà editar <ph name="FILENAME" /> mentre no tanquis totes les pestanyes de: <ph name="ORIGIN" /></translation> <translation id="2484959914739448251">Per esborrar les dades de navegació de tots els dispositius sincronitzats i del Compte de Google, <ph name="BEGIN_LINK" />introdueix la frase de contrasenya<ph name="END_LINK" />.</translation> <translation id="2485005079599453134">La contrasenya s'ha desat al dispositiu</translation> <translation id="2485422356828889247">Desinstal·la</translation> @@ -1701,6 +1700,7 @@ <translation id="3264544094376351444">Tipus de lletra Sans-serif</translation> <translation id="3264582393905923483">Context</translation> <translation id="3265459715026181080">Tanca la finestra</translation> +<translation id="3266274118485960573">S'està executant una comprovació de seguretat.</translation> <translation id="3267726687589094446">Continua permetent la baixada automàtica de diversos fitxers</translation> <translation id="3268451620468152448">Pestanyes obertes</translation> <translation id="3269069891205016797">Quan tanquis la sessió, la teva informació se suprimirà del dispositiu.</translation> @@ -1722,7 +1722,6 @@ <translation id="3282568296779691940">Inicia la sessió a Chrome</translation> <translation id="3285322247471302225">Pes&tanya nova</translation> <translation id="328571385944182268">Vols desar les contrasenyes?</translation> -<translation id="328785681103589998"><ph name="ORIGIN" /> podrà veure <ph name="FILENAME" /> mentre no tanquis totes les pestanyes de: <ph name="ORIGIN" /></translation> <translation id="3288047731229977326">Les extensions que funcionen amb el mode de desenvolupador poden malmetre el vostre ordinador. Si no sou desenvolupador, hauríeu de desactivar aquestes extensions per continuar protegit.</translation> <translation id="3289856944988573801">Per comprovar si hi ha actualitzacions, feu servir Ethernet o Wi-Fi.</translation> <translation id="3290356915286466215">No protegida</translation> @@ -1807,6 +1806,7 @@ <translation id="3412265149091626468">Ves directament a la selecció</translation> <translation id="3413122095806433232">Emissors de CA: <ph name="LOCATION" /></translation> <translation id="3414952576877147120">Mida:</translation> +<translation id="3416468988018290825">Mostra sempre els URL complets</translation> <translation id="3420501302812554910">Cal restablir la clau de seguretat interna</translation> <translation id="3421387094817716717">Clau pública de la corba el·líptica</translation> <translation id="3422291238483866753">Pregunta'm quan un lloc web vulgui crear un mapa en 3D del meu entorn o fer un seguiment de la posició de la càmera (opció recomanada)</translation> @@ -2411,6 +2411,7 @@ <translation id="4144218403971135344">Obtén una millor qualitat de vídeo i estalvia bateria. El vídeo només es reproduirà a la pantalla compatible amb Cast.</translation> <translation id="4146026355784316281">Obrir sempre amb el visualitzador del sistema</translation> <translation id="4146785383423576110">Restableix i neteja</translation> +<translation id="4147897805161313378">Google Fotos</translation> <translation id="4147911968024186208">Torna-ho a provar. Si tornes a veure aquest error, contacta amb el representant del servei d'assistència.</translation> <translation id="4150201353443180367">Pantalla</translation> <translation id="4152670763139331043">{NUM_TABS,plural, =1{1 pestanya}other{# pestanyes}}</translation> @@ -2461,7 +2462,7 @@ <translation id="424726838611654458">Obre sempre a Adobe Reader</translation> <translation id="4247901771970415646">No es pot sincronitzar amb <ph name="USERNAME" /></translation> <translation id="4248098802131000011">Protegeix les contrasenyes contra les violacions de les dades i contra altres problemes de seguretat</translation> -<translation id="4249248555939881673">S'està esperant la connexió de xarxa...</translation> +<translation id="4249248555939881673">S'està esperant la connexió a la xarxa...</translation> <translation id="4249373718504745892">S'ha bloquejat l'accés d'aquesta pàgina a la càmera i al micròfon</translation> <translation id="424963718355121712">Les aplicacions s'han de distribuir des de l'amfitrió que afecten</translation> <translation id="4250229828105606438">Captura de pantalla</translation> @@ -2730,6 +2731,7 @@ <translation id="4633757335284074492">Crea còpies de seguretat a Google Drive. Canvia de dispositiu o restaura'n les dades fàcilment en qualsevol moment. Aquesta còpia de seguretat inclou dades d'aplicacions. Les còpies de seguretat es pengen a Google i s'encripten amb la contrasenya del Compte de Google del teu fill.</translation> <translation id="4634771451598206121">Torna a iniciar la sessió...</translation> <translation id="4635398712689569051">La pàgina <ph name="PAGE_NAME" /> no està disponible per als usuaris convidats.</translation> +<translation id="4636930964841734540">Informació</translation> <translation id="4637083375689622795">Més accions, <ph name="EMAIL" /></translation> <translation id="4638930039313743000">Activa la depuració d'ADB</translation> <translation id="4641539339823703554">Chrome no ha pogut establir l'hora del sistema. Comproveu-la més avall i corregiu-la si cal.</translation> @@ -2809,7 +2811,6 @@ <translation id="4750394297954878236">Suggeriments</translation> <translation id="475088594373173692">Primer usuari</translation> <translation id="4751476147751820511">Sensors de moviment o de llum</translation> -<translation id="4756269098451810636">Imatge compartida des del dispositiu <ph name="DEVICE_NAME" /></translation> <translation id="4756378406049221019">Atura/Torna a carregar</translation> <translation id="4756388243121344051">&Historial</translation> <translation id="4759238208242260848">Baixades</translation> @@ -3758,7 +3759,6 @@ <translation id="6040852767465482106">Identitat anònima</translation> <translation id="6041046205544295907"><ph name="BEGIN_PARAGRAPH1" />El servei d'ubicació de Google utilitza fonts com ara sensors, xarxes mòbils i Wi-Fi per calcular la ubicació del dispositiu.<ph name="END_PARAGRAPH1" /> <ph name="BEGIN_PARAGRAPH2" />Pots desactivar la ubicació desactivant l'opció Ubicació principal del dispositiu. També pots desactivar l'ús de sensors, xarxes mòbils i Wi-Fi per calcular la ubicació a la configuració d'ubicació.<ph name="END_PARAGRAPH2" /></translation> -<translation id="6041150002191391409"><ph name="ORIGIN" /> podrà veure els fitxers que conté la carpeta <ph name="FOLDERNAME" /> mentre no tanquis totes les pestanyes de: <ph name="ORIGIN" /></translation> <translation id="6041155700700864984">Surt de la pantalla completa</translation> <translation id="604124094241169006">Automàtic</translation> <translation id="6042308850641462728">Més</translation> @@ -3986,7 +3986,7 @@ <translation id="6327785803543103246">Detecció automàtica de servidors intermediaris web</translation> <translation id="6333064448949140209">El fitxer s'enviarà a Google per depurar-lo</translation> <translation id="6339668969738228384">Crea un perfil nou per a <ph name="USER_EMAIL_ADDRESS" /></translation> -<translation id="6340017061976355871">No s'ha pogut connectar amb el servidor. Comprova la connexió de xarxa i torna-ho a provar. Si el problema continua, reinicia Chromebook.</translation> +<translation id="6340017061976355871">No s'ha pogut connectar amb el servidor. Comprova la connexió a la xarxa i torna-ho a provar. Si el problema continua, reinicia Chromebook.</translation> <translation id="6340071272923955280">Protocol d'impressió per Internet (IPPS)</translation> <translation id="6340526405444716530">Personalització</translation> <translation id="6341850831632289108">Detecteu la vostra ubicació física</translation> @@ -4154,7 +4154,6 @@ <translation id="6561726789132298588">retorn</translation> <translation id="656293578423618167">El camí o el nom del fitxer és massa llarg. Deseu-ho amb un nom més curt o en una altra ubicació.</translation> <translation id="6563469144985748109">El teu gestor encara no ho ha aprovat</translation> -<translation id="6567688344210276845">No s'ha pogut carregar la icona "<ph name="ICON" />" per a l'acció de la pàgina.</translation> <translation id="6569934958368283244">Altres persones</translation> <translation id="657402800789773160">&Torna a carregar aquesta pàgina</translation> <translation id="6577284282025554716">Baixada cancel·lada: <ph name="FILE_NAME" /></translation> @@ -4166,6 +4165,7 @@ <translation id="6586451623538375658">Canvia el botó principal del ratolí</translation> <translation id="6586604979641883411">Cal tenir <ph name="REQUIRED_SPACE" /> d'espai lliure al disc per actualitzar Linux. Allibera espai al dispositiu i torna-ho a provar.</translation> <translation id="6588043302623806746">Fes servir DNS segur</translation> +<translation id="659005207229852190">La comprovació de seguretat ha finalitzat.</translation> <translation id="6590458744723262880">Canvia el nom de la carpeta</translation> <translation id="6592267180249644460">Data i hora del registre de WebRTC capturat: <ph name="WEBRTC_LOG_CAPTURE_TIME" /></translation> <translation id="6592808042417736307">S'ha capturat la teva empremta digital</translation> @@ -4188,7 +4188,7 @@ <translation id="6619801788773578757">Afegeix l'aplicació de quiosc</translation> <translation id="6619990499523117484">Confirma el teu PIN</translation> <translation id="662080504995468778">No surtis</translation> -<translation id="6621715389962683284">No es pot establir cap connexió de xarxa.</translation> +<translation id="6621715389962683284">No es pot establir cap connexió a la xarxa.</translation> <translation id="6622980291894852883">Continua bloquejant les imatges</translation> <translation id="6624687053722465643">Pastisset</translation> <translation id="6628328486509726751">Data i hora de la pujada: <ph name="WEBRTC_LOG_UPLOAD_TIME" /></translation> @@ -4219,7 +4219,6 @@ <translation id="6659594942844771486">Pestanya</translation> <translation id="6664237456442406323">L'ordinador està configurat amb un ID de maquinari amb un format incorrecte. Això impedeix a Chrome OS actualitzar-se amb les darreres correccions de seguretat i <ph name="BEGIN_BOLD" />pot ser que l'ordinador sigui vulnerable a atacs maliciosos<ph name="END_BOLD" />.</translation> <translation id="6664774537677393800">S'ha produït un error en obrir el teu perfil. Tanca la sessió i torna-la a iniciar.</translation> -<translation id="6667776121818773738">Imatge compartida des d'un altre dispositiu</translation> <translation id="6673391612973410118"><ph name="PRINTER_MAKE_OR_MODEL" /> (USB)</translation> <translation id="667517062706956822">Voleu que Google tradueixi a <ph name="TARGET_LANGUAGE" /> aquesta pàgina escrita en <ph name="SOURCE_LANGUAGE" />?</translation> <translation id="6675665718701918026">S'ha connectat un dispositiu per apuntar</translation> @@ -4392,7 +4391,7 @@ <translation id="6904655473976120856">Prem el botó Aplicació per sortir</translation> <translation id="6910211073230771657">Suprimit</translation> <translation id="691024665142758461">Baixa diversos fitxers</translation> -<translation id="6911324888870229398">S'ha perdut la connexió de xarxa. Comprova la connexió o prova una altra xarxa Wi-Fi.</translation> +<translation id="6911324888870229398">S'ha perdut la connexió a la xarxa. Comprova la connexió o prova una altra xarxa Wi-Fi.</translation> <translation id="6911734910326569517">Ús de la memòria</translation> <translation id="6914783257214138813">Tothom que pugui veure el fitxer exportat podrà veure també les teves contrasenyes.</translation> <translation id="6915804003454593391">Usuari:</translation> @@ -4840,7 +4839,6 @@ <translation id="7497981768003291373">No s'ha capturat cap registre de text de WebRTC recentment.</translation> <translation id="7502658306369382406">Adreça IPv6</translation> <translation id="7503191893372251637">Tipus de certificat de Netscape</translation> -<translation id="7503821294401948377">No s'ha pogut carregar la icona "<ph name="ICON" />" per a l'acció del navegador.</translation> <translation id="7503985202154027481">La clau de seguretat conservarà un registre de la teva visita en aquest lloc web.</translation> <translation id="7504293978434250212">La teva organització pot analitzar fitxers de 50 MB com a màxim. Prova de penjar un fitxer més petit.</translation> <translation id="750509436279396091">Obre la carpeta de baixades</translation> @@ -5427,6 +5425,7 @@ <translation id="8249672078237421304">Proposa'm de traduir les pàgines escrites en un idioma que no entenc</translation> <translation id="8251441930213048644">Actualitza ara</translation> <translation id="8251578425305135684">S'ha eliminat la miniatura.</translation> +<translation id="825238165904109940">Mostra sempre els URL complets</translation> <translation id="8252569384384439529">S'està penjant...</translation> <translation id="8253198102038551905">Feu clic a "+" per consultar les propietats de la xarxa</translation> <translation id="8254954272268479918">Tanca Linux (versió beta)</translation> @@ -5481,7 +5480,7 @@ <translation id="8314381333424235892">Falta una extensió o està desinstal·lada</translation> <translation id="831440797644402910">No es pot obrir aquesta carpeta</translation> <translation id="8316618172731049784">Envia a <ph name="DEVICE_NAME" /></translation> -<translation id="8317671367883557781">Afegeix una connexió de xarxa</translation> +<translation id="8317671367883557781">Afegeix una connexió a la xarxa</translation> <translation id="8319414634934645341">Ús ampliat de claus</translation> <translation id="8320459152843401447">La pantalla completa</translation> <translation id="8322814362483282060">Aquesta pàgina no té permís per accedir al micròfon.</translation> @@ -5643,7 +5642,6 @@ <translation id="8546930481464505581">Personalitza la barra tàctil</translation> <translation id="8547013269961688403">Activa la lupa de pantalla completa</translation> <translation id="85486688517848470">Mantén premuda la tecla de cerca per canviar el comportament de les tecles de la fila superior</translation> -<translation id="8550165047974571882"><ph name="ORIGIN" /> podrà editar els fitxers que conté la carpeta <ph name="FOLDERNAME" /> mentre no tanquis totes les pestanyes de: <ph name="ORIGIN" /></translation> <translation id="8551388862522347954">Llicències</translation> <translation id="8553342806078037065">Gestiona altres usuaris</translation> <translation id="8554899698005018844">Cap idioma</translation> @@ -6122,7 +6120,7 @@ <translation id="91568222606626347">Crea una drecera...</translation> <translation id="9157096865782046368">0,8 segons</translation> <translation id="9157697743260533322">No s'han pogut configurar les actualitzacions automàtiques per a tots els usuaris (error de llançament preliminar: <ph name="ERROR_NUMBER" />)</translation> -<translation id="9158715103698450907">S'ha produït un problema de comunicació de xarxa durant l'autenticació. Comproveu la connexió de xarxa i torneu-ho a provar.</translation> +<translation id="9158715103698450907">S'ha produït un problema de comunicació de xarxa durant l'autenticació. Comproveu la connexió a la xarxa i torneu-ho a provar.</translation> <translation id="916607977885256133">Pantalla en pantalla</translation> <translation id="9168436347345867845">Fes-ho més tard</translation> <translation id="9169496697824289689">Mostra les tecles de drecera</translation>
diff --git a/chrome/app/resources/generated_resources_cs.xtb b/chrome/app/resources/generated_resources_cs.xtb index e3c8f273..c22681e 100644 --- a/chrome/app/resources/generated_resources_cs.xtb +++ b/chrome/app/resources/generated_resources_cs.xtb
@@ -680,7 +680,7 @@ <translation id="1887850431809612466">Revize hardwaru</translation> <translation id="1890674179660343635"><span>ID: </span><ph name="EXTENSION_ID" /></translation> <translation id="189210018541388520">Otevřít v režimu celé obrazovky</translation> -<translation id="1892341345406963517">Ahoj, <ph name="PARENT_NAME" /></translation> +<translation id="1892341345406963517">Dobrý den, <ph name="PARENT_NAME" /></translation> <translation id="189358972401248634">Ostatní jazyky</translation> <translation id="1895252664692693738">Zbývá: <ph name="TIME_LEFT" /></translation> <translation id="1895658205118569222">Vypnout počítač</translation> @@ -1119,7 +1119,6 @@ <translation id="247949520305900375">Sdílet zvuk</translation> <translation id="2480868415629598489">Upravovat data, která kopírujete a vkládáte</translation> <translation id="2482878487686419369">Oznámení</translation> -<translation id="2483610039979585156">Dokud nezavřete všechny karty webu <ph name="ORIGIN" />, bude web <ph name="ORIGIN" /> moci upravovat soubor <ph name="FILENAME" /></translation> <translation id="2484959914739448251">Chcete-li vymazat údaje o prohlížení ze všech synchronizovaných zařízení i z účtu Google, <ph name="BEGIN_LINK" />zadejte heslovou frázi<ph name="END_LINK" />.</translation> <translation id="2485005079599453134">Heslo bylo uloženo na tomto zařízení</translation> <translation id="2485422356828889247">Odinstalovat</translation> @@ -1724,7 +1723,6 @@ <translation id="3282568296779691940">Přihlásit se do Chromu</translation> <translation id="3285322247471302225">Nová kar&ta</translation> <translation id="328571385944182268">Ukládat hesla?</translation> -<translation id="328785681103589998">Dokud nezavřete všechny karty webu <ph name="ORIGIN" />, bude web <ph name="ORIGIN" /> moci zobrazovat soubor <ph name="FILENAME" /></translation> <translation id="3288047731229977326">Rozšíření spuštěná v režimu pro vývojáře mohou poškodit počítač. Pokud nejste vývojář, měli byste s ohledem na svou bezpečnost rozšíření spuštěná v tomto režimu deaktivovat.</translation> <translation id="3289856944988573801">Chcete-li zkontrolovat dostupnost aktualizací, použijte síť Ethernet nebo Wi-Fi.</translation> <translation id="3290356915286466215">Nezabezpečeno</translation> @@ -2412,6 +2410,7 @@ <translation id="4144218403971135344">Získejte kvalitnější video a prodlužte životnost baterie. Video se bude přehrávat jen na obrazovce, která podporuje technologii Cast.</translation> <translation id="4146026355784316281">Vždy otevřít pomocí systémového prohlížeče</translation> <translation id="4146785383423576110">Resetovat a vyčistit</translation> +<translation id="4147897805161313378">Fotky Google</translation> <translation id="4147911968024186208">Zkuste to znovu. Pokud se opět zobrazí tato chyba, kontaktujte zástupce podpory.</translation> <translation id="4150201353443180367">Displej</translation> <translation id="4152670763139331043">{NUM_TABS,plural, =1{1 karta}few{# karty}many{# karty}other{# karet}}</translation> @@ -2731,6 +2730,7 @@ <translation id="4633757335284074492">Zálohování na Disk Google. Snadno obnovte data nebo kdykoliv přejděte na jiné zařízení. Tato záloha obsahuje data aplikací. Zálohy se nahrávají do Googlu a šifrují pomocí hesla účtu Google dítěte.</translation> <translation id="4634771451598206121">Znovu přihlásit...</translation> <translation id="4635398712689569051">Stránka <ph name="PAGE_NAME" /> hostům není k dispozici.</translation> +<translation id="4636930964841734540">Informace</translation> <translation id="4637083375689622795">Další akce, <ph name="EMAIL" /></translation> <translation id="4638930039313743000">Zapnout ladění ADB</translation> <translation id="4641539339823703554">Chromu se nepodařilo nastavit systémový čas. Zkontrolujte čas níže a v případě potřeby jej opravte.</translation> @@ -2810,7 +2810,6 @@ <translation id="4750394297954878236">Návrhy</translation> <translation id="475088594373173692">První uživatel</translation> <translation id="4751476147751820511">Senzory pohybu nebo světla</translation> -<translation id="4756269098451810636">Obrázek sdílený ze zařízení <ph name="DEVICE_NAME" /></translation> <translation id="4756378406049221019">Zastavit / načíst znovu</translation> <translation id="4756388243121344051">Historie</translation> <translation id="4759238208242260848">Stažené soubory</translation> @@ -3532,7 +3531,7 @@ <translation id="5734362860645681824">Komunikační příslušenství</translation> <translation id="5734697361979786483">Přidat sdílené úložiště</translation> <translation id="5736796278325406685">Zadejte prosím platné uživatelské jméno</translation> -<translation id="5739017626473506901">Chcete-li uživateli <ph name="USER_NAME" /> pomoci přidat školní účet, přihlaste se</translation> +<translation id="5739017626473506901"><ph name="USER_NAME" /> potřebuje pomoc s přidáním školního účtu, přihlaste se prosím</translation> <translation id="5739235828260127894">Čeká na ověření. <ph name="LINK_BEGIN" />Další informace<ph name="LINK_END" /></translation> <translation id="5739458112391494395">Velmi velké</translation> <translation id="574209121243317957">Výška</translation> @@ -3757,7 +3756,6 @@ <translation id="6040852767465482106">Anonymní identita</translation> <translation id="6041046205544295907"><ph name="BEGIN_PARAGRAPH1" />Služby určování polohy Google používají zdroje, jako jsou sítě Wi-Fi, mobilní sítě a senzory, pomocí kterých se snaží odhadnout polohu vašeho zařízení.<ph name="END_PARAGRAPH1" /> <ph name="BEGIN_PARAGRAPH2" />Určování polohy můžete vypnout tím, že v zařízení deaktivujete hlavní nastavení polohy. V nastavení polohy můžete také vypnout používání sítí Wi-Fi, mobilních sítí a senzorů k určování polohy.<ph name="END_PARAGRAPH2" /></translation> -<translation id="6041150002191391409">Dokud nezavřete všechny karty webu <ph name="ORIGIN" />, bude web <ph name="ORIGIN" /> moci číst soubory ve složce <ph name="FOLDERNAME" /></translation> <translation id="6041155700700864984">Ukončit režim celé obrazovky</translation> <translation id="604124094241169006">Automaticky</translation> <translation id="6042308850641462728">Více</translation> @@ -4153,7 +4151,6 @@ <translation id="6561726789132298588">enter</translation> <translation id="656293578423618167">Cesta nebo název souboru jsou příliš dlouhé. Použijte kratší název nebo vyberte jiné umístění.</translation> <translation id="6563469144985748109">Správce vám přístup na web dosud neschválil.</translation> -<translation id="6567688344210276845">Nelze načíst ikonu „<ph name="ICON" />“ pro akci stránky.</translation> <translation id="6569934958368283244">Jiní lidé</translation> <translation id="657402800789773160">&Načíst tuto stránku znovu</translation> <translation id="6577284282025554716">Stahování zrušeno: <ph name="FILE_NAME" /></translation> @@ -4218,7 +4215,6 @@ <translation id="6659594942844771486">Karta</translation> <translation id="6664237456442406323">Váš počítač je bohužel nakonfigurován pomocí chybného čísla hardwaru. Systému Chrome OS to zabraňuje získat aktualizace s nejnovějšími bezpečnostními opravami, a počítač tak <ph name="BEGIN_BOLD" />může být zranitelnější vůči škodlivým úrokům<ph name="END_BOLD" />.</translation> <translation id="6664774537677393800">Při otevírání vašeho profilu se něco pokazilo. Odhlaste se a poté se znovu přihlaste.</translation> -<translation id="6667776121818773738">Obrázek sdílený z jiného zařízení</translation> <translation id="6673391612973410118"><ph name="PRINTER_MAKE_OR_MODEL" /> (USB)</translation> <translation id="667517062706956822">Chcete, aby Google tuto stránku přeložil z jazyka <ph name="SOURCE_LANGUAGE" /> do jazyka <ph name="TARGET_LANGUAGE" />?</translation> <translation id="6675665718701918026">Je připojeno polohovací zařízení</translation> @@ -4839,7 +4835,6 @@ <translation id="7497981768003291373">Nemáte žádné nedávno zaznamenané textové protokoly WebRTC.</translation> <translation id="7502658306369382406">Adresa IPv6</translation> <translation id="7503191893372251637">Certifikát typu Netscape</translation> -<translation id="7503821294401948377">Nelze načíst ikonu „<ph name="ICON" />“ pro akci prohlížeče.</translation> <translation id="7503985202154027481">Na bezpečnostním klíči zůstane záznam o návštěvě tohoto webu.</translation> <translation id="7504293978434250212">Vaše organizace může kontrolovat soubory maximálně do 50 MB. Zkuste nahrát menší soubor.</translation> <translation id="750509436279396091">Otevřít složku stažených souborů</translation> @@ -5641,7 +5636,6 @@ <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="8550165047974571882">Dokud nezavřete všechny karty webu <ph name="ORIGIN" />, bude web <ph name="ORIGIN" /> moci upravovat soubory ve složce <ph name="FOLDERNAME" /></translation> <translation id="8551388862522347954">Licence</translation> <translation id="8553342806078037065">Spravovat ostatní uživatele</translation> <translation id="8554899698005018844">Žádný jazyk</translation>
diff --git a/chrome/app/resources/generated_resources_da.xtb b/chrome/app/resources/generated_resources_da.xtb index 8922bc4..6f3b5bd 100644 --- a/chrome/app/resources/generated_resources_da.xtb +++ b/chrome/app/resources/generated_resources_da.xtb
@@ -1120,7 +1120,6 @@ <translation id="247949520305900375">Del lyd</translation> <translation id="2480868415629598489">Redigere data, du kopierer og indsætter</translation> <translation id="2482878487686419369">Notifikationer</translation> -<translation id="2483610039979585156"><ph name="ORIGIN" /> kan redigere <ph name="FILENAME" />, indtil du lukker alle faner fra <ph name="ORIGIN" /></translation> <translation id="2484959914739448251"><ph name="BEGIN_LINK" />Angiv din adgangssætning<ph name="END_LINK" /> for at rydde browserdata fra alle dine synkroniserede enheder og din Google-konto.</translation> <translation id="2485005079599453134">Adgangskoden er gemt på denne enhed</translation> <translation id="2485422356828889247">Afinstaller</translation> @@ -1725,7 +1724,6 @@ <translation id="3282568296779691940">Log ind i Chrome</translation> <translation id="3285322247471302225">Ny &fane</translation> <translation id="328571385944182268">Vil du gemme dine adgangskoder?</translation> -<translation id="328785681103589998"><ph name="ORIGIN" /> kan se <ph name="FILENAME" />, indtil du lukker alle faner fra <ph name="ORIGIN" /></translation> <translation id="3288047731229977326">Udvidelser, der kører i udviklertilstand, kan skade din computer. Hvis du ikke er udvikler, skal du deaktivere udvidelserne, der kører i udviklertilstand, af hensyn til sikkerheden.</translation> <translation id="3289856944988573801">Du kan søge efter opdateringer via Ethernet eller Wi-Fi.</translation> <translation id="3290356915286466215">Ikke beskyttet</translation> @@ -2414,6 +2412,7 @@ <translation id="4144218403971135344">Se video i bedre kvalitet, og forlæng batteritiden. Der afspilles kun video på din Cast-kompatible skærm.</translation> <translation id="4146026355784316281">Åbn altid med systemets visningsprogram</translation> <translation id="4146785383423576110">Nulstil og ryd op</translation> +<translation id="4147897805161313378">Google Fotos</translation> <translation id="4147911968024186208">Prøv igen. Hvis du ser denne fejl igen, skal du kontakte din supportrepræsentant.</translation> <translation id="4150201353443180367">Skærm</translation> <translation id="4152670763139331043">{NUM_TABS,plural, =1{1 fane}one{# faner}other{# faner}}</translation> @@ -2733,6 +2732,7 @@ <translation id="4633757335284074492">Sikkerhedskopiér i Google Drev. Gendan nemt data, eller skift enhed når som helst. Denne backup omfatter appdata. Backups uploades til Google og krypteres ved hjælp af adgangskoden til dit barns Google-konto.</translation> <translation id="4634771451598206121">Log ind igen...</translation> <translation id="4635398712689569051"><ph name="PAGE_NAME" /> er ikke tilgængelig for gæstebrugere</translation> +<translation id="4636930964841734540">Oplysninger</translation> <translation id="4637083375689622795">Flere handlinger, <ph name="EMAIL" /></translation> <translation id="4638930039313743000">Aktivér ADB-fejlretning</translation> <translation id="4641539339823703554">Chrome kunne ikke indstille systemklokkeslættet. Kontrollér klokkeslættet nedenfor, og korriger det, hvis det er nødvendigt.</translation> @@ -2812,7 +2812,6 @@ <translation id="4750394297954878236">Forslag</translation> <translation id="475088594373173692">Første bruger</translation> <translation id="4751476147751820511">Bevægelses- eller lyssensorer</translation> -<translation id="4756269098451810636">Der blev delt et billede fra <ph name="DEVICE_NAME" /></translation> <translation id="4756378406049221019">Stop/genindlæs</translation> <translation id="4756388243121344051">&Historik</translation> <translation id="4759238208242260848">Downloads</translation> @@ -3759,7 +3758,6 @@ <translation id="6040852767465482106">Anonym identitet</translation> <translation id="6041046205544295907"><ph name="BEGIN_PARAGRAPH1" />Googles placeringstjeneste anvender kilder som f.eks. Wi‑Fi, mobilnetværk og sensorer til at fastslå enhedens placering.<ph name="END_PARAGRAPH1" /> <ph name="BEGIN_PARAGRAPH2" />Du kan slå Placering fra ved at deaktivere den overordnede placeringsindstilling på enheden. Du kan også deaktivere brugen af Wi-Fi, mobilnetværk og sensorer ifm. placering i placeringsindstillingerne.<ph name="END_PARAGRAPH2" /></translation> -<translation id="6041150002191391409"><ph name="ORIGIN" /> kan se filer i <ph name="FOLDERNAME" />, indtil du lukker alle faner fra <ph name="ORIGIN" /></translation> <translation id="6041155700700864984">Luk fuld skærm</translation> <translation id="604124094241169006">Automatisk</translation> <translation id="6042308850641462728">Mere</translation> @@ -4156,7 +4154,6 @@ <translation id="6561726789132298588">enter</translation> <translation id="656293578423618167">Filstien eller -navnet er for langt. Gem med et kortere navn eller på en anden placering.</translation> <translation id="6563469144985748109">Din administrator har ikke godkendt det endnu</translation> -<translation id="6567688344210276845">Ikonet '<ph name="ICON" />' for sidehandling kunne ikke indlæses.</translation> <translation id="6569934958368283244">Andre personer</translation> <translation id="657402800789773160">&Genindlæs denne side</translation> <translation id="6577284282025554716">Downloaden blev annulleret: <ph name="FILE_NAME" /></translation> @@ -4221,7 +4218,6 @@ <translation id="6659594942844771486">Fane</translation> <translation id="6664237456442406323">Din computer er desværre konfigureret med et hardware-id i forkert format. Dette forhindrer Chrome OS i at opdatere med de nyeste sikkerhedsrettelser, og din computer <ph name="BEGIN_BOLD" />kan være sårbar over for ondartede angreb<ph name="END_BOLD" />.</translation> <translation id="6664774537677393800">Noget gik galt ved åbningen af din profil. Nogle funktioner er muligvis ikke tilgængelige.</translation> -<translation id="6667776121818773738">Der blev delt et billede fra en anden enhed</translation> <translation id="6673391612973410118"><ph name="PRINTER_MAKE_OR_MODEL" /> (USB)</translation> <translation id="667517062706956822">Skal Google oversætte denne side fra <ph name="SOURCE_LANGUAGE" /> til <ph name="TARGET_LANGUAGE" />?</translation> <translation id="6675665718701918026">Pegeredskabet er tilsluttet</translation> @@ -4842,7 +4838,6 @@ <translation id="7497981768003291373">Du har ingen nyligt registrerede WebRTC-tekstlogfiler.</translation> <translation id="7502658306369382406">IPv6-adresse</translation> <translation id="7503191893372251637">Netscape-certifikatstype</translation> -<translation id="7503821294401948377">Ikonet '<ph name="ICON" />' for browserhandling kunne ikke indlæses.</translation> <translation id="7503985202154027481">En registrering af dit besøg på dette website gemmes på din sikkerhedsnøgle.</translation> <translation id="7504293978434250212">Din organisation kan scanne filer på op til 50 MB. Prøv at uploade en mindre fil.</translation> <translation id="750509436279396091">Åbn mappen med downloads</translation> @@ -5644,7 +5639,6 @@ <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="8550165047974571882"><ph name="ORIGIN" /> kan redigere filer i <ph name="FOLDERNAME" />, indtil du lukker alle faner fra <ph name="ORIGIN" /></translation> <translation id="8551388862522347954">Licenser</translation> <translation id="8553342806078037065">Administrer andre personer</translation> <translation id="8554899698005018844">Intet sprog</translation>
diff --git a/chrome/app/resources/generated_resources_de.xtb b/chrome/app/resources/generated_resources_de.xtb index 1ca1adfc..2c30403 100644 --- a/chrome/app/resources/generated_resources_de.xtb +++ b/chrome/app/resources/generated_resources_de.xtb
@@ -1116,7 +1116,6 @@ <translation id="247949520305900375">Audio freigeben</translation> <translation id="2480868415629598489">Daten ändern, die Sie kopieren und einfügen</translation> <translation id="2482878487686419369">Benachrichtigungen</translation> -<translation id="2483610039979585156"><ph name="ORIGIN" /> kann dann <ph name="FILENAME" /> ändern, solange Tabs von <ph name="ORIGIN" /> geöffnet sind</translation> <translation id="2484959914739448251">Wenn Sie Browserdaten von all Ihren synchronisierten Geräten und aus Ihrem Google-Konto löschen möchten, <ph name="BEGIN_LINK" />geben Sie Ihre Passphrase ein<ph name="END_LINK" />.</translation> <translation id="2485005079599453134">Passwort wurde auf diesem Gerät gespeichert</translation> <translation id="2485422356828889247">Deinstallieren</translation> @@ -1721,7 +1720,6 @@ <translation id="3282568296779691940">In Chrome anmelden</translation> <translation id="3285322247471302225">Neuer &Tab</translation> <translation id="328571385944182268">Passwörter speichern?</translation> -<translation id="328785681103589998"><ph name="ORIGIN" /> kann dann <ph name="FILENAME" /> lesen, solange Tabs von <ph name="ORIGIN" /> geöffnet sind</translation> <translation id="3288047731229977326">Erweiterungen im Entwicklermodus können auf Ihrem Computer Schaden anrichten. Wenn Sie kein Entwickler sind, sollten Sie diese Erweiterungen im Entwicklermodus deaktivieren, um sicher zu sein.</translation> <translation id="3289856944988573801">Verwenden Sie Ethernet oder WLAN zur Suche nach Updates.</translation> <translation id="3290356915286466215">Ungesichert</translation> @@ -2410,6 +2408,7 @@ <translation id="4144218403971135344">Bessere Videoqualität und längere Akkulaufzeit. Videos werden nur auf Ihrem für Google Cast optimierten Gerät abgespielt.</translation> <translation id="4146026355784316281">Immer mit System Viewer öffnen</translation> <translation id="4146785383423576110">Zurücksetzen und bereinigen</translation> +<translation id="4147897805161313378">Google Fotos</translation> <translation id="4147911968024186208">Bitte versuchen Sie es noch einmal. Wenn dieser Fehler wieder auftritt, wenden Sie sich an Ihren Support-Mitarbeiter.</translation> <translation id="4150201353443180367">Display</translation> <translation id="4152670763139331043">{NUM_TABS,plural, =1{1 Tab}other{# Tabs}}</translation> @@ -2729,6 +2728,7 @@ <translation id="4633757335284074492">In Google Drive sichern. Sie können Daten jederzeit wiederherstellen – auch auf einem anderen Gerät. In dieser Sicherung sind auch App-Daten enthalten. Sicherungen werden an Google gesendet und mit dem Passwort des Google-Kontos Ihres Kindes verschlüsselt.</translation> <translation id="4634771451598206121">Erneut anmelden...</translation> <translation id="4635398712689569051"><ph name="PAGE_NAME" /> ist für Gastnutzer nicht verfügbar.</translation> +<translation id="4636930964841734540">Info</translation> <translation id="4637083375689622795">Weitere Aktionen, <ph name="EMAIL" /></translation> <translation id="4638930039313743000">ADB-Fehlerbehebung aktivieren</translation> <translation id="4641539339823703554">Die Systemzeit konnte nicht eingestellt werden. Bitte überprüfen Sie die unten angegebene Uhrzeit und korrigieren Sie sie gegebenenfalls.</translation> @@ -2808,7 +2808,6 @@ <translation id="4750394297954878236">Vorschläge</translation> <translation id="475088594373173692">Erster Nutzer</translation> <translation id="4751476147751820511">Bewegungs- oder Lichtsensoren</translation> -<translation id="4756269098451810636">Bild geteilt von <ph name="DEVICE_NAME" /></translation> <translation id="4756378406049221019">Stopp/Neu laden</translation> <translation id="4756388243121344051">&Verlauf</translation> <translation id="4759238208242260848">Downloads</translation> @@ -3755,7 +3754,6 @@ <translation id="6040852767465482106">Anonyme Identität</translation> <translation id="6041046205544295907"><ph name="BEGIN_PARAGRAPH1" />Der Standortdienst von Google nutzt Quellen wie WLANs, Mobilfunknetze und Sensoren, um den ungefähren Standort Ihres Geräts zu ermitteln.<ph name="END_PARAGRAPH1" /> <ph name="BEGIN_PARAGRAPH2" />Sie können den Standortdienst deaktivieren, indem Sie die Haupteinstellung für den Standort auf Ihrem Gerät ausschalten. In den Standorteinstellungen können Sie auch die Nutzung von WLANs, Mobilfunknetzen und Sensoren für die Standortbestimmung deaktivieren.<ph name="END_PARAGRAPH2" /></translation> -<translation id="6041150002191391409"><ph name="ORIGIN" /> kann dann Dateien im Ordner "<ph name="FOLDERNAME" />" lesen, solange Tabs von <ph name="ORIGIN" /> geöffnet sind</translation> <translation id="6041155700700864984">Vollbildmodus beenden</translation> <translation id="604124094241169006">Automatisch</translation> <translation id="6042308850641462728">Mehr</translation> @@ -4151,7 +4149,6 @@ <translation id="6561726789132298588">Eingabe</translation> <translation id="656293578423618167">Der Dateipfad oder Dateiname ist zu lang. Verwenden Sie bitte einen kürzeren Namen oder einen anderen Speicherort.</translation> <translation id="6563469144985748109">Der Administrator hat die Berechtigung noch nicht erteilt</translation> -<translation id="6567688344210276845">Symbol "<ph name="ICON" />" konnte nicht für die Seitenaktion geladen werden.</translation> <translation id="6569934958368283244">Andere Personen</translation> <translation id="657402800789773160">&Diese Seite neu laden</translation> <translation id="6577284282025554716">Download abgebrochen: <ph name="FILE_NAME" /></translation> @@ -4216,7 +4213,6 @@ <translation id="6659594942844771486">Tab</translation> <translation id="6664237456442406323">Ihr Computer wurde mit einer ungültigen Hardware-ID konfiguriert. Daher kann Chrome OS keine aktuellen Sicherheitsupdates installieren und Ihr Computer ist <ph name="BEGIN_BOLD" />möglicherweise anfällig für schädliche Angriffe<ph name="END_BOLD" />.</translation> <translation id="6664774537677393800">Beim Öffnen Ihres Profils ist ein Fehler aufgetreten. Melden Sie sich bitte ab und dann wieder an.</translation> -<translation id="6667776121818773738">Bild wurde von einem anderen Gerät geteilt</translation> <translation id="6673391612973410118"><ph name="PRINTER_MAKE_OR_MODEL" /> (USB)</translation> <translation id="667517062706956822">Soll Google diese Seite von <ph name="SOURCE_LANGUAGE" /> in <ph name="TARGET_LANGUAGE" /> übersetzen?</translation> <translation id="6675665718701918026">Zeigegerät verbunden</translation> @@ -4837,7 +4833,6 @@ <translation id="7497981768003291373">Es sind keine kürzlich erfassten WebRTC-Textprotokolle vorhanden.</translation> <translation id="7502658306369382406">IPv6-Adresse</translation> <translation id="7503191893372251637">Netscape-Zertifikatstyp</translation> -<translation id="7503821294401948377">Symbol "<ph name="ICON" />" konnte nicht für Browseraktion geladen werden.</translation> <translation id="7503985202154027481">Auf Ihrem Sicherheitsschlüssel wird zum Besuch dieser Website ein Datensatz angelegt.</translation> <translation id="7504293978434250212">Ihr Unternehmen kann Dateien mit einer Größe von bis zu 50 MB scannen. Versuchen Sie, eine kleinere Datei hochzuladen.</translation> <translation id="750509436279396091">Downloadordner öffnen</translation> @@ -5639,7 +5634,6 @@ <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="8550165047974571882"><ph name="ORIGIN" /> kann dann Dateien im Ordner "<ph name="FOLDERNAME" />" ändern, solange Tabs von <ph name="ORIGIN" /> geöffnet sind</translation> <translation id="8551388862522347954">Lizenzen</translation> <translation id="8553342806078037065">Andere Nutzer verwalten</translation> <translation id="8554899698005018844">Keine Sprache</translation>
diff --git a/chrome/app/resources/generated_resources_el.xtb b/chrome/app/resources/generated_resources_el.xtb index 5886115..eeaa694 100644 --- a/chrome/app/resources/generated_resources_el.xtb +++ b/chrome/app/resources/generated_resources_el.xtb
@@ -1120,7 +1120,6 @@ <translation id="247949520305900375">Κοινοποίηση ήχου</translation> <translation id="2480868415629598489">Τροποποίηση των δεδομένων που αντιγράφετε και επικολλάτε</translation> <translation id="2482878487686419369">Ειδοποιήσεις</translation> -<translation id="2483610039979585156">Το <ph name="ORIGIN" /> θα μπορεί να επεξεργάζεται το <ph name="FILENAME" /> έως ότου κλείσετε όλες τις καρτέλες <ph name="ORIGIN" />.</translation> <translation id="2484959914739448251">Για να διαγράψετε τα δεδομένα περιήγησης από όλες τις συγχρονισμένες συσκευές σας και τον Λογαριασμό σας Google, <ph name="BEGIN_LINK" />εισαγάγετε τη φράση πρόσβασής σας<ph name="END_LINK" />.</translation> <translation id="2485005079599453134">Ο κωδικός πρόσβασης αποθηκεύτηκε σε αυτήν τη συσκευή</translation> <translation id="2485422356828889247">Απεγκατάσταση</translation> @@ -1704,6 +1703,7 @@ <translation id="3264544094376351444">Γραμματοσειρά Sans-serif</translation> <translation id="3264582393905923483">Περιβάλλον</translation> <translation id="3265459715026181080">Κλείσιμο παραθύρου</translation> +<translation id="3266274118485960573">Εκτελείται έλεγχος ασφαλείας.</translation> <translation id="3267726687589094446">Να συνεχίσει να επιτρέπεται η αυτόματη λήψη πολλών αρχείων</translation> <translation id="3268451620468152448">Ανοικτές καρτέλες</translation> <translation id="3269069891205016797">Οι πληροφορίες σας θα καταργηθούν από τη συσκευή μόλις αποσυνδεθείτε.</translation> @@ -1725,7 +1725,6 @@ <translation id="3282568296779691940">Σύνδεση στο Chrome</translation> <translation id="3285322247471302225">Νέα &Καρτέλα</translation> <translation id="328571385944182268">Αποθήκευση των κωδικών πρόσβασής σας;</translation> -<translation id="328785681103589998">Το <ph name="ORIGIN" /> θα μπορεί να προβάλλει το αρχείο <ph name="FILENAME" /> έως ότου κλείσετε όλες τις καρτέλες <ph name="ORIGIN" />.</translation> <translation id="3288047731229977326">Οι επεκτάσεις που εκτελούνται σε λειτουργία προγραμματιστή μπορούν να βλάψουν τον υπολογιστή σας. Εάν δεν είστε προγραμματιστής, θα πρέπει να απενεργοποιήσετε αυτές τις επεκτάσεις που εκτελούνται σε λειτουργία προγραμματιστή για να διατηρήσετε την ασφάλειά σας.</translation> <translation id="3289856944988573801">Για να ελέγξετε για ενημερώσεις, χρησιμοποιήστε δίκτυο Ethernet ή Wi-Fi.</translation> <translation id="3290356915286466215">Μη ασφαλές</translation> @@ -1810,6 +1809,7 @@ <translation id="3412265149091626468">Μετάβαση στην Επιλογή</translation> <translation id="3413122095806433232">Εκδότες CA: <ph name="LOCATION" /></translation> <translation id="3414952576877147120">Μέγεθος:</translation> +<translation id="3416468988018290825">Να εμφανίζονται πάντα ολόκληρα URL</translation> <translation id="3420501302812554910">Το εσωτερικό κλειδί ασφαλείας απαιτεί επαναφορά</translation> <translation id="3421387094817716717">Δημόσιο κλειδί ελλειπτικής καμπύλης</translation> <translation id="3422291238483866753">Να γίνεται ερώτηση όταν ένας ιστότοπος θέλει να δημιουργήσει τρισδιάστατο χάρτη του περιβάλλοντα χώρου σας και να παρακολουθεί τη θέση της κάμερας (συνιστάται)</translation> @@ -2414,6 +2414,7 @@ <translation id="4144218403971135344">Απολαύστε βίντεο καλύτερης ποιότητας και εξοικονομήστε μπαταρία. Το βίντεο θα αναπαράγεται μόνο στην οθόνη σας με δυνατότητα Cast.</translation> <translation id="4146026355784316281">Άνοιγμα πάντα με πρόγραμμα προβολής συστήματος</translation> <translation id="4146785383423576110">Επαναφορά και διαγραφή επιβλαβούς λογισμικού</translation> +<translation id="4147897805161313378">Φωτογραφίες Google</translation> <translation id="4147911968024186208">Δοκιμάστε ξανά. Εάν εμφανιστεί ξανά αυτό το σφάλμα, επικοινωνήστε με τον αντιπρόσωπο υποστήριξης.</translation> <translation id="4150201353443180367">Οθόνη</translation> <translation id="4152670763139331043">{NUM_TABS,plural, =1{1 καρτέλα}other{# καρτέλες}}</translation> @@ -2733,6 +2734,7 @@ <translation id="4633757335284074492">Δημιουργία αντιγράφων ασφαλείας στο Google Drive. Επαναφέρετε τα δεδομένα ή αλλάξτε συσκευή ανά πάσα στιγμή με ευκολία. Αυτό το αντίγραφο ασφαλείας περιλαμβάνει δεδομένα εφαρμογών. Τα δεδομένα μεταφορτώνονται στην Google και κρυπτογραφούνται χρησιμοποιώντας τον κωδικό πρόσβασης του Λογαριασμού Google του παιδιού σας.</translation> <translation id="4634771451598206121">Συνδεθείτε ξανά...</translation> <translation id="4635398712689569051">Η σελίδα <ph name="PAGE_NAME" /> δεν είναι διαθέσιμη σε επισκέπτες.</translation> +<translation id="4636930964841734540">Πληροφορίες</translation> <translation id="4637083375689622795">Περισσότερες ενέργειες, <ph name="EMAIL" /></translation> <translation id="4638930039313743000">Ενεργοποίηση του εντοπισμού και της διόρθωσης σφαλμάτων ADB</translation> <translation id="4641539339823703554">Δεν ήταν δυνατός ο ορισμός της ώρας συστήματος από το Chrome. Ελέγξτε την ώρα που εμφανίζεται παρακάτω και διορθώστε την εάν είναι απαραίτητο.</translation> @@ -2812,7 +2814,6 @@ <translation id="4750394297954878236">Προτάσεις</translation> <translation id="475088594373173692">Πρώτος χρήστης</translation> <translation id="4751476147751820511">Αισθητήρες κίνησης ή φωτός</translation> -<translation id="4756269098451810636">Κοινόχρηστη εικόνα από τη συσκευή <ph name="DEVICE_NAME" /></translation> <translation id="4756378406049221019">Διακοπή/Επανάληψη φόρτωσης</translation> <translation id="4756388243121344051">&Ιστορικό</translation> <translation id="4759238208242260848">Λήψεις</translation> @@ -3760,7 +3761,6 @@ <translation id="6040852767465482106">Ανώνυμη ταυτότητα</translation> <translation id="6041046205544295907"><ph name="BEGIN_PARAGRAPH1" />Η υπηρεσία τοποθεσίας της Google χρησιμοποιεί πηγές όπως δίκτυα Wi‑Fi και κινητής τηλεφωνίας καθώς και αισθητήρες, για τον υπολογισμό της τοποθεσίας της συσκευής σας.<ph name="END_PARAGRAPH1" /> <ph name="BEGIN_PARAGRAPH2" />Μπορείτε να απενεργοποιήσετε την Τοποθεσία απενεργοποιώντας τη βασική ρύθμιση "Τοποθεσία" στη συσκευή σας. Μπορείτε επίσης να απενεργοποιήσετε τη χρήση δικτύων Wi-Fi και κινητής τηλεφωνίας και των αισθητήρων για την τοποθεσία στις ρυθμίσεις τοποθεσίας.<ph name="END_PARAGRAPH2" /></translation> -<translation id="6041150002191391409">Το <ph name="ORIGIN" /> θα μπορεί να προβάλλει αρχεία στον φάκελο <ph name="FOLDERNAME" /> έως ότου κλείσετε όλες τις καρτέλες <ph name="ORIGIN" />.</translation> <translation id="6041155700700864984">Έξοδος από πλήρη οθόνη</translation> <translation id="604124094241169006">Αυτόματη</translation> <translation id="6042308850641462728">Περισσότερα</translation> @@ -4156,7 +4156,6 @@ <translation id="6561726789132298588">enter</translation> <translation id="656293578423618167">Η διαδρομή ή το όνομα είναι πάρα πολύ μεγάλο. Αποθηκεύστε το με μικρότερο όνομα ή σε κάποια άλλη τοποθεσία.</translation> <translation id="6563469144985748109">Ο διαχειριστής σας δεν τον έχει εγκρίνει ακόμα</translation> -<translation id="6567688344210276845">Δεν ήταν δυνατή η φόρτωση του εικονιδίου "<ph name="ICON" />" για ενέργεια σελίδας.</translation> <translation id="6569934958368283244">Άλλα άτομα</translation> <translation id="657402800789773160">&Επαναφόρτωση αυτής της σελίδας</translation> <translation id="6577284282025554716">Η λήψη ακυρώθηκε: <ph name="FILE_NAME" /></translation> @@ -4168,6 +4167,7 @@ <translation id="6586451623538375658">Εναλλαγή κύριου κουμπιού ποντικιού</translation> <translation id="6586604979641883411">Απαιτούνται τουλάχιστον <ph name="REQUIRED_SPACE" /> ελεύθερου αποθηκευτικού χώρου για την αναβάθμιση των Linux. Ελευθερώστε χώρο στη συσκευή σας και δοκιμάστε ξανά.</translation> <translation id="6588043302623806746">Χρήση ασφαλούς DNS</translation> +<translation id="659005207229852190">Ο έλεγχος ασφαλείας ολοκληρώθηκε.</translation> <translation id="6590458744723262880">Μετονομασία φακέλου</translation> <translation id="6592267180249644460">Έγινε λήψη αρχείου καταγραφής WebRTC <ph name="WEBRTC_LOG_CAPTURE_TIME" /></translation> <translation id="6592808042417736307">Το δακτυλικό σας αποτύπωμα καταγράφηκε.</translation> @@ -4221,7 +4221,6 @@ <translation id="6659594942844771486">Καρτέλα</translation> <translation id="6664237456442406323">Δυστυχώς, ο υπολογιστής σας έχει διαμορφωθεί με ένα εσφαλμένο αναγνωριστικό υλικού. Αυτό παρεμποδίζει την ενημέρωση του Chrome OS με τις πιο πρόσφατες επιδιορθώσεις ασφαλείας και ο υπολογιστής σας <ph name="BEGIN_BOLD" />ενδέχεται να είναι ευάλωτος σε κακόβουλες επιθέσεις<ph name="END_BOLD" />.</translation> <translation id="6664774537677393800">Παρουσιάστηκε ένα πρόβλημα κατά το άνοιγμα του προφίλ σας. Αποσυνδεθείτε και συνδεθείτε ξανά.</translation> -<translation id="6667776121818773738">Κοινόχρηστη εικόνα από άλλη συσκευή</translation> <translation id="6673391612973410118"><ph name="PRINTER_MAKE_OR_MODEL" /> (USB)</translation> <translation id="667517062706956822">Θέλετε να μεταφράσει το Google αυτήν τη σελίδα από <ph name="SOURCE_LANGUAGE" /> σε <ph name="TARGET_LANGUAGE" />;</translation> <translation id="6675665718701918026">Η συσκευή κατάδειξης είναι συνδεδεμένη</translation> @@ -4842,7 +4841,6 @@ <translation id="7497981768003291373">Δεν υπάρχουν αρχεία καταγραφής κειμένου WebRTC τα οποία λήφθηκαν πρόσφατα.</translation> <translation id="7502658306369382406">Διεύθυνση IPv6</translation> <translation id="7503191893372251637">Τύπος πιστοποιητικού Netscape</translation> -<translation id="7503821294401948377">Δεν ήταν δυνατή η φόρτωση του εικονιδίου "<ph name="ICON" />" για ενέργεια προγράμματος περιήγησης.</translation> <translation id="7503985202154027481">Μια καταγραφή της επίσκεψής σας σε αυτόν τον ιστότοπο θα διατηρηθεί στο κλειδί ασφαλείας.</translation> <translation id="7504293978434250212">Ο οργανισμός σας μπορεί να σαρώσει αρχεία έως και 50 MB. Δοκιμάστε να ανεβάσετε ένα μικρότερο αρχείο.</translation> <translation id="750509436279396091">Άνοιγμα φακέλου λήψεων</translation> @@ -5430,6 +5428,7 @@ <translation id="8249672078237421304">Να προτείνεται να μεταφράζονται οι σελίδες που δεν εμφανίζονται στη γλώσσα ανάγνωσής σας</translation> <translation id="8251441930213048644">Ανανέωση τώρα</translation> <translation id="8251578425305135684">Η μικρογραφία καταργήθηκε.</translation> +<translation id="825238165904109940">Να εμφανίζονται πάντα ολόκληρα URL</translation> <translation id="8252569384384439529">Μεταφόρτωση…</translation> <translation id="8253198102038551905">Κάντε κλικ στο "+" για να δείτε τις ιδιότητες δικτύου</translation> <translation id="8254954272268479918">Τερματισμός Linux (beta)</translation> @@ -5645,7 +5644,6 @@ <translation id="8546930481464505581">Προσαρμογή της γραμμής αφής</translation> <translation id="8547013269961688403">Ενεργοποίηση μεγεθυντικού φακού πλήρους οθόνης</translation> <translation id="85486688517848470">Πατήστε παρατεταμένα το πλήκτρο αναζήτησης για να αλλάξετε τη συμπεριφορά των πλήκτρων της επάνω σειράς</translation> -<translation id="8550165047974571882">Το <ph name="ORIGIN" /> θα μπορεί να επεξεργάζεται αρχεία στον φάκελο <ph name="FOLDERNAME" /> έως ότου κλείσετε όλες τις καρτέλες <ph name="ORIGIN" />.</translation> <translation id="8551388862522347954">Άδειες</translation> <translation id="8553342806078037065">Διαχείριση άλλων ατόμων</translation> <translation id="8554899698005018844">Καμία γλώσσα</translation>
diff --git a/chrome/app/resources/generated_resources_en-GB.xtb b/chrome/app/resources/generated_resources_en-GB.xtb index 4011825..0eb5ccc 100644 --- a/chrome/app/resources/generated_resources_en-GB.xtb +++ b/chrome/app/resources/generated_resources_en-GB.xtb
@@ -1120,7 +1120,6 @@ <translation id="247949520305900375">Share audio</translation> <translation id="2480868415629598489">Modify data that you copy and paste</translation> <translation id="2482878487686419369">Notifications</translation> -<translation id="2483610039979585156"><ph name="ORIGIN" /> will be able to edit <ph name="FILENAME" /> until you close all <ph name="ORIGIN" /> tabs</translation> <translation id="2484959914739448251">To clear browsing data from all of your synced devices and your Google Account, <ph name="BEGIN_LINK" />enter your passphrase<ph name="END_LINK" />.</translation> <translation id="2485005079599453134">Password saved on this device</translation> <translation id="2485422356828889247">Uninstall</translation> @@ -1704,6 +1703,7 @@ <translation id="3264544094376351444">Sans-serif font</translation> <translation id="3264582393905923483">Context</translation> <translation id="3265459715026181080">Close Window</translation> +<translation id="3266274118485960573">Safety check is running.</translation> <translation id="3267726687589094446">Continue allowing automatic downloads of multiple files</translation> <translation id="3268451620468152448">Open Tabs</translation> <translation id="3269069891205016797">Your information will be removed from the device when you sign out.</translation> @@ -1725,7 +1725,6 @@ <translation id="3282568296779691940">Sign in to Chrome</translation> <translation id="3285322247471302225">New &Tab</translation> <translation id="328571385944182268">Save your passwords?</translation> -<translation id="328785681103589998"><ph name="ORIGIN" /> will be able to view <ph name="FILENAME" /> until you close all <ph name="ORIGIN" /> tabs</translation> <translation id="3288047731229977326">Extensions running in developer mode can harm your computer. If you're not a developer, you should disable these extensions running in developer mode to stay safe.</translation> <translation id="3289856944988573801">To check for updates, please use Ethernet or Wi-Fi.</translation> <translation id="3290356915286466215">Unsecured</translation> @@ -1810,6 +1809,7 @@ <translation id="3412265149091626468">Jump to Selection</translation> <translation id="3413122095806433232">CA Issuers: <ph name="LOCATION" /></translation> <translation id="3414952576877147120">Size:</translation> +<translation id="3416468988018290825">Always show full URLs</translation> <translation id="3420501302812554910">Internal security key requires reset</translation> <translation id="3421387094817716717">Elliptic Curve Public Key</translation> <translation id="3422291238483866753">Ask when a site wants to create a 3D map of your surroundings or track camera position (recommended)</translation> @@ -2414,6 +2414,7 @@ <translation id="4144218403971135344">Get better quality video and save battery life. Video will play only on your Cast-enabled screen.</translation> <translation id="4146026355784316281">Always Open With System Viewer</translation> <translation id="4146785383423576110">Reset and clean up</translation> +<translation id="4147897805161313378">Google Photos</translation> <translation id="4147911968024186208">Please retry. If you see this error again, please contact your support representative.</translation> <translation id="4150201353443180367">Display</translation> <translation id="4152670763139331043">{NUM_TABS,plural, =1{1 tab}other{# tabs}}</translation> @@ -2733,6 +2734,7 @@ <translation id="4633757335284074492">Back up to Google Drive. Easily restore data or switch device at any time. This backup includes app data. Backups are uploaded to Google and encrypted using your child's Google Account password.</translation> <translation id="4634771451598206121">Sign in again...</translation> <translation id="4635398712689569051"><ph name="PAGE_NAME" /> is not available to Guest users.</translation> +<translation id="4636930964841734540">Info</translation> <translation id="4637083375689622795">More actions, <ph name="EMAIL" /></translation> <translation id="4638930039313743000">Enable ADB debugging</translation> <translation id="4641539339823703554">Chrome was unable to set the system time. Please check the time below and correct it if needed.</translation> @@ -2812,7 +2814,6 @@ <translation id="4750394297954878236">Suggestions</translation> <translation id="475088594373173692">First user</translation> <translation id="4751476147751820511">Motion or light sensors</translation> -<translation id="4756269098451810636">Image shared from <ph name="DEVICE_NAME" /></translation> <translation id="4756378406049221019">Stop/Reload</translation> <translation id="4756388243121344051">&History</translation> <translation id="4759238208242260848">Downloads</translation> @@ -3759,7 +3760,6 @@ <translation id="6040852767465482106">Anonymous Identity</translation> <translation id="6041046205544295907"><ph name="BEGIN_PARAGRAPH1" />Google's location service uses sources such as Wi-Fi, mobile networks and sensors to help estimate your device’s location.<ph name="END_PARAGRAPH1" /> <ph name="BEGIN_PARAGRAPH2" />You can turn off location by turning off the main location setting on your device. You can also turn off the use of Wi-Fi, mobile networks and sensors for location in location settings.<ph name="END_PARAGRAPH2" /></translation> -<translation id="6041150002191391409"><ph name="ORIGIN" /> will be able to view files in <ph name="FOLDERNAME" /> until you close all <ph name="ORIGIN" /> tabs</translation> <translation id="6041155700700864984">Exit Full Screen</translation> <translation id="604124094241169006">Automatic</translation> <translation id="6042308850641462728">More</translation> @@ -4155,7 +4155,6 @@ <translation id="6561726789132298588">enter</translation> <translation id="656293578423618167">The file path or name is too long. Please save with a shorter name or to another location.</translation> <translation id="6563469144985748109">Your manager hasn't approved it yet</translation> -<translation id="6567688344210276845">Could not load icon '<ph name="ICON" />' for page action.</translation> <translation id="6569934958368283244">Other people</translation> <translation id="657402800789773160">&Reload This Page</translation> <translation id="6577284282025554716">Download cancelled: <ph name="FILE_NAME" /></translation> @@ -4167,6 +4166,7 @@ <translation id="6586451623538375658">Swap the primary mouse button</translation> <translation id="6586604979641883411">At least <ph name="REQUIRED_SPACE" /> of free disk space is required to upgrade Linux. Please free some space on your device and try again.</translation> <translation id="6588043302623806746">Use secure DNS</translation> +<translation id="659005207229852190">Safety check has completed.</translation> <translation id="6590458744723262880">Rename folder</translation> <translation id="6592267180249644460">WebRTC log captured <ph name="WEBRTC_LOG_CAPTURE_TIME" /></translation> <translation id="6592808042417736307">Your fingerprint was captured</translation> @@ -4220,7 +4220,6 @@ <translation id="6659594942844771486">Tab</translation> <translation id="6664237456442406323">Unfortunately, your computer is configured with a malformed hardware ID. This prevents Chrome OS from updating with the latest security fixes and your computer <ph name="BEGIN_BOLD" />may be vulnerable to malicious attacks<ph name="END_BOLD" />.</translation> <translation id="6664774537677393800">Something went wrong when opening your profile. Please sign out then sign in again.</translation> -<translation id="6667776121818773738">Image shared from other device</translation> <translation id="6673391612973410118"><ph name="PRINTER_MAKE_OR_MODEL" /> (USB)</translation> <translation id="667517062706956822">Do you want Google to translate this page from <ph name="SOURCE_LANGUAGE" /> to <ph name="TARGET_LANGUAGE" />?</translation> <translation id="6675665718701918026">Pointing device connected</translation> @@ -4841,7 +4840,6 @@ <translation id="7497981768003291373">You have no recently captured WebRTC text logs.</translation> <translation id="7502658306369382406">IPv6 address</translation> <translation id="7503191893372251637">Netscape Certificate Type</translation> -<translation id="7503821294401948377">Could not load icon '<ph name="ICON" />' for browser action.</translation> <translation id="7503985202154027481">A record of your visit to this site will be kept on your security key.</translation> <translation id="7504293978434250212">Your organisation can scan files up to 50 MB. Try uploading a smaller file.</translation> <translation id="750509436279396091">Open downloads folder</translation> @@ -5429,6 +5427,7 @@ <translation id="8249672078237421304">Offer to translate pages that aren't in a language you read</translation> <translation id="8251441930213048644">Refresh now</translation> <translation id="8251578425305135684">Thumbnail removed.</translation> +<translation id="825238165904109940">Always show full URLs</translation> <translation id="8252569384384439529">Uploading…</translation> <translation id="8253198102038551905">Click '+' to get network properties</translation> <translation id="8254954272268479918">Shut down Linux (Beta)</translation> @@ -5644,7 +5643,6 @@ <translation id="8546930481464505581">Customise Touch Bar</translation> <translation id="8547013269961688403">Enable full-screen magnifier</translation> <translation id="85486688517848470">Hold the Search key to switch the behaviour of the top-row keys</translation> -<translation id="8550165047974571882"><ph name="ORIGIN" /> will be able to edit files in <ph name="FOLDERNAME" /> until you close all <ph name="ORIGIN" /> tabs</translation> <translation id="8551388862522347954">Licences</translation> <translation id="8553342806078037065">Manage other people</translation> <translation id="8554899698005018844">No language</translation>
diff --git a/chrome/app/resources/generated_resources_es-419.xtb b/chrome/app/resources/generated_resources_es-419.xtb index 8226a50e..06f0f180 100644 --- a/chrome/app/resources/generated_resources_es-419.xtb +++ b/chrome/app/resources/generated_resources_es-419.xtb
@@ -1117,7 +1117,6 @@ <translation id="247949520305900375">Compartir audio</translation> <translation id="2480868415629598489">Modificar los datos copiados y pegados</translation> <translation id="2482878487686419369">Notificaciones</translation> -<translation id="2483610039979585156"><ph name="ORIGIN" /> podrá editar <ph name="FILENAME" /> hasta que cierres todas las pestañas de <ph name="ORIGIN" /></translation> <translation id="2484959914739448251">Para borrar los datos de navegación de todos los dispositivos sincronizados y de tu Cuenta de Google, <ph name="BEGIN_LINK" />ingresa la frase de contraseña<ph name="END_LINK" />.</translation> <translation id="2485005079599453134">Contraseñas guardadas en este dispositivo</translation> <translation id="2485422356828889247">Desinstalación</translation> @@ -1722,7 +1721,6 @@ <translation id="3282568296779691940">Acceder a Chrome</translation> <translation id="3285322247471302225">Nueva pes&taña en</translation> <translation id="328571385944182268">¿Quieres guardar tus contraseñas?</translation> -<translation id="328785681103589998"><ph name="ORIGIN" /> podrá ver <ph name="FILENAME" /> hasta que cierres todas las pestañas de <ph name="ORIGIN" /></translation> <translation id="3288047731229977326">Las extensiones que se ejecutan en modo de programador pueden dañar tu computadora. Si no eres programador, debes inhabilitar las extensiones que se ejecutan en modo de programador para mantenerte protegido.</translation> <translation id="3289856944988573801">Para comprobar si hay actualizaciones, utiliza una conexión Ethernet o Wi-Fi.</translation> <translation id="3290356915286466215">No segura</translation> @@ -2411,6 +2409,7 @@ <translation id="4144218403971135344">Obtén videos de mejor calidad y extiende la duración de la batería. El video solo se reproducirá en tu pantalla compatible con Cast.</translation> <translation id="4146026355784316281">Abrir siempre con el visualizador del sistema</translation> <translation id="4146785383423576110">Restablecer y limpiar</translation> +<translation id="4147897805161313378">Google Fotos</translation> <translation id="4147911968024186208">Vuelve a intentarlo. Si vuelves a ver este error, comunícate con tu representante de asistencia.</translation> <translation id="4150201353443180367">Pantalla</translation> <translation id="4152670763139331043">{NUM_TABS,plural, =1{1 pestaña}other{# pestañas}}</translation> @@ -2730,6 +2729,7 @@ <translation id="4633757335284074492">Crea una copia de seguridad en Google Drive. Restablece datos o cambia de dispositivo en cualquier momento con facilidad. Se incluyen datos de las apps. Las copias de seguridad se encriptan con la contraseña de la Cuenta de Google de tu hijo y se suben a Google.</translation> <translation id="4634771451598206121">Volver a acceder...</translation> <translation id="4635398712689569051"><ph name="PAGE_NAME" /> no está disponible para los usuarios invitados.</translation> +<translation id="4636930964841734540">Información</translation> <translation id="4637083375689622795">Más acciones, <ph name="EMAIL" /></translation> <translation id="4638930039313743000">Habilitar depuración mediante ADB</translation> <translation id="4641539339823703554">Chrome no pudo establecer la hora del sistema. Comprueba la hora más abajo y corrígela si es necesario.</translation> @@ -2809,7 +2809,6 @@ <translation id="4750394297954878236">Sugerencias</translation> <translation id="475088594373173692">Primer usuario</translation> <translation id="4751476147751820511">Sensores de luz o movimiento</translation> -<translation id="4756269098451810636">Imagen compartida de <ph name="DEVICE_NAME" /></translation> <translation id="4756378406049221019">Detener/volver a cargar</translation> <translation id="4756388243121344051">&Historial</translation> <translation id="4759238208242260848">Descargas</translation> @@ -3756,7 +3755,6 @@ <translation id="6040852767465482106">Identidad anónima</translation> <translation id="6041046205544295907"><ph name="BEGIN_PARAGRAPH1" />El servicio de ubicación de Google usa fuentes como conexiones Wi-Fi, redes móviles y sensores para calcular la ubicación de tu dispositivo.<ph name="END_PARAGRAPH1" /> <ph name="BEGIN_PARAGRAPH2" />Para inhabilitar la Ubicación, desactiva la configuración de la ubicación principal de tu dispositivo. También puedes desactivar el uso de redes Wi-Fi, redes móviles y sensores para obtener la ubicación en la configuración de la ubicación.<ph name="END_PARAGRAPH2" /></translation> -<translation id="6041150002191391409"><ph name="ORIGIN" /> podrá ver archivos de <ph name="FOLDERNAME" /> hasta que cierres todas las pestañas de <ph name="ORIGIN" /></translation> <translation id="6041155700700864984">Salir de la pantalla completa</translation> <translation id="604124094241169006">Automático</translation> <translation id="6042308850641462728">Más</translation> @@ -4152,7 +4150,6 @@ <translation id="6561726789132298588">ingresar</translation> <translation id="656293578423618167">La ruta de acceso o el nombre del archivo es demasiado largo. Guarda con un nombre más corto o en otra ubicación.</translation> <translation id="6563469144985748109">Tu administrador aún no lo aprobó</translation> -<translation id="6567688344210276845">No se pudo cargar el ícono '<ph name="ICON" />' para las acciones de la página.</translation> <translation id="6569934958368283244">Otras personas</translation> <translation id="657402800789773160">&Volver a cargar esta página</translation> <translation id="6577284282025554716">Se canceló la descarga: <ph name="FILE_NAME" /></translation> @@ -4217,7 +4214,6 @@ <translation id="6659594942844771486">Pestaña</translation> <translation id="6664237456442406323">Desafortunadamente, la computadora está configurada con un identificador de hardware incorrecto. Esto impide que el Sistema operativo Chrome se actualice con las últimas correcciones de seguridad, y la computadora <ph name="BEGIN_BOLD" />puede quedar vulnerable a ataques maliciosos<ph name="END_BOLD" />.</translation> <translation id="6664774537677393800">Se produjo un error al abrir tu perfil. Sal de tu cuenta y vuelve a acceder.</translation> -<translation id="6667776121818773738">Imagen compartida desde otro dispositivo</translation> <translation id="6673391612973410118"><ph name="PRINTER_MAKE_OR_MODEL" /> (USB)</translation> <translation id="667517062706956822">¿Deseas que Google traduzca esta página de <ph name="SOURCE_LANGUAGE" /> a <ph name="TARGET_LANGUAGE" />?</translation> <translation id="6675665718701918026">Dispositivo señalador conectado</translation> @@ -4838,7 +4834,6 @@ <translation id="7497981768003291373">No capturaste ningún registro de texto de WebRTC recientemente.</translation> <translation id="7502658306369382406">Dirección IPv6</translation> <translation id="7503191893372251637">Tipo de certificado Netscape</translation> -<translation id="7503821294401948377">No se pudo cargar el ícono '<ph name="ICON" />' para las acciones del navegador.</translation> <translation id="7503985202154027481">En tu llave de seguridad, se guardará un registro de tu visita a este sitio.</translation> <translation id="7504293978434250212">Tu organización puede escanear archivos con un tamaño máximo de 50 MB. Intenta subir un archivo más pequeño.</translation> <translation id="750509436279396091">Abrir carpeta de descargas</translation> @@ -5641,7 +5636,6 @@ <translation id="8546930481464505581">Personalizar la barra táctil</translation> <translation id="8547013269961688403">Habilitar lupa en pantalla completa</translation> <translation id="85486688517848470">Mantén presionada la tecla de búsqueda para cambiar el comportamiento de las teclas en la fila superior</translation> -<translation id="8550165047974571882"><ph name="ORIGIN" /> podrá editar archivos de <ph name="FOLDERNAME" /> hasta que cierres todas las pestañas de <ph name="ORIGIN" /></translation> <translation id="8551388862522347954">Licencias</translation> <translation id="8553342806078037065">Administrar otras personas</translation> <translation id="8554899698005018844">Ningún idioma</translation>
diff --git a/chrome/app/resources/generated_resources_es.xtb b/chrome/app/resources/generated_resources_es.xtb index c66b450..b1f5252 100644 --- a/chrome/app/resources/generated_resources_es.xtb +++ b/chrome/app/resources/generated_resources_es.xtb
@@ -1120,7 +1120,6 @@ <translation id="247949520305900375">Compartir audio</translation> <translation id="2480868415629598489">Modificar los datos que se copian y se pegan</translation> <translation id="2482878487686419369">Notificaciones</translation> -<translation id="2483610039979585156"><ph name="ORIGIN" /> podrá editar <ph name="FILENAME" /> hasta que cierres todas las pestañas de <ph name="ORIGIN" /></translation> <translation id="2484959914739448251">Para borrar los datos de navegación de todos los dispositivos sincronizados y de tu cuenta de Google, <ph name="BEGIN_LINK" />introduce tu frase de contraseña<ph name="END_LINK" />.</translation> <translation id="2485005079599453134">Contraseña guardada en este dispositivo</translation> <translation id="2485422356828889247">Desinstalar</translation> @@ -1704,6 +1703,7 @@ <translation id="3264544094376351444">Fuente Sans-serif</translation> <translation id="3264582393905923483">Contexto</translation> <translation id="3265459715026181080">Cerrar ventana</translation> +<translation id="3266274118485960573">Se está realizando la comprobación de seguridad.</translation> <translation id="3267726687589094446">Seguir permitiendo las descargas automáticas de varios archivos</translation> <translation id="3268451620468152448">Pestañas abiertas</translation> <translation id="3269069891205016797">Tu información se eliminará del dispositivo al cerrar la sesión.</translation> @@ -1725,7 +1725,6 @@ <translation id="3282568296779691940">Iniciar sesión en Chrome</translation> <translation id="3285322247471302225">Nueva &pestaña</translation> <translation id="328571385944182268">¿Quieres guardar tus contraseñas?</translation> -<translation id="328785681103589998"><ph name="ORIGIN" /> podrá ver <ph name="FILENAME" /> hasta que cierres todas las pestañas de <ph name="ORIGIN" /></translation> <translation id="3288047731229977326">Las extensiones que se ejecutan en modo de desarrollador pueden causar daños en el ordenador. Si no eres desarrollador, debes inhabilitar esas extensiones para mantener protegido tu ordenador.</translation> <translation id="3289856944988573801">Para comprobar si hay actualizaciones, utiliza una conexión Ethernet o Wi-Fi.</translation> <translation id="3290356915286466215">No segura</translation> @@ -1810,6 +1809,7 @@ <translation id="3412265149091626468">Ir a la selección</translation> <translation id="3413122095806433232">Entidades emisoras de certificados: <ph name="LOCATION" /></translation> <translation id="3414952576877147120">Tamaño:</translation> +<translation id="3416468988018290825">Mostrar siempre URL completas</translation> <translation id="3420501302812554910">Es necesario restablecer la llave de seguridad interna</translation> <translation id="3421387094817716717">Clave pública de curva elíptica</translation> <translation id="3422291238483866753">Preguntar cuando un sitio web quiera crear un mapa 3D de tu entorno o hacer un seguimiento de la posición de la cámara (recomendado)</translation> @@ -2413,6 +2413,7 @@ <translation id="4144218403971135344">Disfruta de una mejor calidad de vídeo y ahorra batería. El vídeo se reproducirá solo en tu pantalla compatible con Google Cast.</translation> <translation id="4146026355784316281">Abrir siempre con el visor del sistema</translation> <translation id="4146785383423576110">Recuperar ajustes y borrar</translation> +<translation id="4147897805161313378">Google Fotos</translation> <translation id="4147911968024186208">Inténtalo de nuevo. Si el error persiste, ponte en contacto con tu representante de asistencia.</translation> <translation id="4150201353443180367">Pantalla</translation> <translation id="4152670763139331043">{NUM_TABS,plural, =1{1 pestaña}other{# pestañas}}</translation> @@ -2732,6 +2733,7 @@ <translation id="4633757335284074492">Crea copias de seguridad en Google Drive. Recupera datos de forma sencilla o cambia de dispositivo en cualquier momento. Esta copia de seguridad incluye datos de aplicaciones. Los archivos de las copias de seguridad se suben a Google y se cifran con la contraseña de la cuenta de Google de tu hijo.</translation> <translation id="4634771451598206121">Volver a iniciar sesión...</translation> <translation id="4635398712689569051">La página <ph name="PAGE_NAME" /> no está disponible para los usuarios invitados.</translation> +<translation id="4636930964841734540">Información</translation> <translation id="4637083375689622795">Más acciones, <ph name="EMAIL" /></translation> <translation id="4638930039313743000">Habilitar depuración adb</translation> <translation id="4641539339823703554">Chrome no ha podido establecer la hora del sistema. Comprueba la hora a continuación y corrígela si es necesario.</translation> @@ -2811,7 +2813,6 @@ <translation id="4750394297954878236">Sugerencias</translation> <translation id="475088594373173692">Primer usuario</translation> <translation id="4751476147751820511">Sensores de luz o movimiento</translation> -<translation id="4756269098451810636">Imagen compartida desde <ph name="DEVICE_NAME" /></translation> <translation id="4756378406049221019">Detener/Volver a cargar</translation> <translation id="4756388243121344051">&Historial</translation> <translation id="4759238208242260848">Descargas</translation> @@ -3758,7 +3759,6 @@ <translation id="6040852767465482106">Identidad anónima</translation> <translation id="6041046205544295907"><ph name="BEGIN_PARAGRAPH1" />El servicio de ubicación de Google utiliza distintas fuentes, como sensores y redes Wi‑Fi o móviles, para determinar la ubicación de este dispositivo.<ph name="END_PARAGRAPH1" /> <ph name="BEGIN_PARAGRAPH2" />Para inhabilitar la ubicación, desactiva la opción Ubicación del dispositivo. También puedes inhabilitar el uso de sensores y redes Wi‑Fi o móviles para determinar la ubicación en los ajustes de ubicación.<ph name="END_PARAGRAPH2" /></translation> -<translation id="6041150002191391409"><ph name="ORIGIN" /> podrá ver los archivos que haya en <ph name="FOLDERNAME" /> hasta que cierres todas las pestañas de <ph name="ORIGIN" /></translation> <translation id="6041155700700864984">Salir del modo de pantalla completa</translation> <translation id="604124094241169006">Automático</translation> <translation id="6042308850641462728">Más</translation> @@ -4154,7 +4154,6 @@ <translation id="6561726789132298588">intro</translation> <translation id="656293578423618167">La ruta o el nombre del archivo es demasiado largo. Especifica un nombre más corto o guarda el archivo en otra ubicación.</translation> <translation id="6563469144985748109">Tu administrador aún no la ha aprobado</translation> -<translation id="6567688344210276845">No se ha podido cargar el icono "<ph name="ICON" />" para la acción de la página.</translation> <translation id="6569934958368283244">Otras personas</translation> <translation id="657402800789773160">Volver a &cargar la página</translation> <translation id="6577284282025554716">Descarga cancelada: <ph name="FILE_NAME" /></translation> @@ -4166,6 +4165,7 @@ <translation id="6586451623538375658">Cambiar botón principal del ratón</translation> <translation id="6586604979641883411">Se necesitan al menos <ph name="REQUIRED_SPACE" /> de espacio libre en el disco para actualizar Linux. Libera espacio en el dispositivo y vuelve a intentarlo.</translation> <translation id="6588043302623806746">Usar DNS seguro</translation> +<translation id="659005207229852190">Se ha completado la comprobación de seguridad.</translation> <translation id="6590458744723262880">Cambia el nombre de la carpeta</translation> <translation id="6592267180249644460">Captura de registro de ReWebRTC: <ph name="WEBRTC_LOG_CAPTURE_TIME" /></translation> <translation id="6592808042417736307">Se ha registrado tu huella digital</translation> @@ -4219,7 +4219,6 @@ <translation id="6659594942844771486">Pestaña</translation> <translation id="6664237456442406323">Lamentablemente, tu ordenador está configurado con un identificador de hardware incorrecto. Esto impide que Chrome OS se actualice con los últimos parches de seguridad y hace que el ordenador <ph name="BEGIN_BOLD" />pueda ser vulnerable a ataques maliciosos<ph name="END_BOLD" />.</translation> <translation id="6664774537677393800">Se ha producido un error al abrir tu perfil. Cierra sesión y vuelve a iniciarla.</translation> -<translation id="6667776121818773738">Imagen compartida desde otro dispositivo</translation> <translation id="6673391612973410118"><ph name="PRINTER_MAKE_OR_MODEL" /> (USB)</translation> <translation id="667517062706956822">¿Quieres que Google traduzca esta página de <ph name="SOURCE_LANGUAGE" /> a <ph name="TARGET_LANGUAGE" />?</translation> <translation id="6675665718701918026">Dispositivo señalador conectado</translation> @@ -4840,7 +4839,6 @@ <translation id="7497981768003291373">No has capturado ningún registro de texto de WebRTC recientemente.</translation> <translation id="7502658306369382406">Dirección IPv6</translation> <translation id="7503191893372251637">Tipo de certificado de Netscape</translation> -<translation id="7503821294401948377">No se ha podido cargar el icono "<ph name="ICON" />" para la acción del navegador.</translation> <translation id="7503985202154027481">Se guardará un registro de tu visita a este sitio web en tu llave de seguridad.</translation> <translation id="7504293978434250212">Tu organización no puede analizar archivos de más de 50 MB. Prueba a subir uno más pequeño.</translation> <translation id="750509436279396091">Abrir carpeta de descargas</translation> @@ -5428,6 +5426,7 @@ <translation id="8249672078237421304">Preguntar si quieres traducir páginas web que no están escritas en un idioma que entiendas</translation> <translation id="8251441930213048644">Actualizar ahora</translation> <translation id="8251578425305135684">Miniatura eliminada</translation> +<translation id="825238165904109940">Mostrar siempre URL completas</translation> <translation id="8252569384384439529">Subiendo...</translation> <translation id="8253198102038551905">Haz clic en + para consultar las propiedades de la red</translation> <translation id="8254954272268479918">Apagar Linux (beta)</translation> @@ -5643,7 +5642,6 @@ <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="8550165047974571882"><ph name="ORIGIN" /> podrá editar los archivos que haya en <ph name="FOLDERNAME" /> hasta que cierres todas las pestañas de <ph name="ORIGIN" /></translation> <translation id="8551388862522347954">Licencias</translation> <translation id="8553342806078037065">Gestionar otros usuarios</translation> <translation id="8554899698005018844">Sin idioma</translation>
diff --git a/chrome/app/resources/generated_resources_et.xtb b/chrome/app/resources/generated_resources_et.xtb index 0f984360..4f77526 100644 --- a/chrome/app/resources/generated_resources_et.xtb +++ b/chrome/app/resources/generated_resources_et.xtb
@@ -1120,7 +1120,6 @@ <translation id="247949520305900375">Jaga heli</translation> <translation id="2480868415629598489">Kopeeritud ja kleebitud andmete muutmine</translation> <translation id="2482878487686419369">Märguanded</translation> -<translation id="2483610039979585156"><ph name="ORIGIN" /> saab muuta faili <ph name="FILENAME" />, kuni sulgete kõik allika <ph name="ORIGIN" /> vahelehed</translation> <translation id="2484959914739448251">Sirvimisandmete kustutamiseks kõigist sünkroonitud seadmetest ja oma Google'i kontolt <ph name="BEGIN_LINK" />sisestage oma parool<ph name="END_LINK" />.</translation> <translation id="2485005079599453134">Parool salvestati sellesse seadmesse</translation> <translation id="2485422356828889247">Desinstalli</translation> @@ -1704,6 +1703,7 @@ <translation id="3264544094376351444">Seriifideta font</translation> <translation id="3264582393905923483">Kontekst</translation> <translation id="3265459715026181080">Sulge aken</translation> +<translation id="3266274118485960573">Ohutuskontroll on käimas.</translation> <translation id="3267726687589094446">Luba ka edaspidi mitme faili automaatset allalaadimist</translation> <translation id="3268451620468152448">Avatud vahelehed</translation> <translation id="3269069891205016797">Teie teave eemaldatakse seadmest väljalogimisel.</translation> @@ -1725,7 +1725,6 @@ <translation id="3282568296779691940">Chrome'i sisselogimine</translation> <translation id="3285322247471302225">Uus &vaheleht</translation> <translation id="328571385944182268">Kas salvestada teie paroolid?</translation> -<translation id="328785681103589998"><ph name="ORIGIN" /> saab vaadata faili <ph name="FILENAME" />, kuni sulgete kõik allika <ph name="ORIGIN" /> vahelehed</translation> <translation id="3288047731229977326">Arendaja režiimis töötavad laiendused võivad teie arvutit kahjustada. Kui te pole arendaja, peaksite turvalisuse säilitamiseks nende laienduste käitamise arendaja režiimis keelama.</translation> <translation id="3289856944988573801">Kasutage värskenduste otsimiseks Etherneti või WiFi-ühendust.</translation> <translation id="3290356915286466215">Kaitsmata</translation> @@ -1810,6 +1809,7 @@ <translation id="3412265149091626468">Hüppa valikusse</translation> <translation id="3413122095806433232">CA väljastajad: <ph name="LOCATION" /></translation> <translation id="3414952576877147120">Suurus:</translation> +<translation id="3416468988018290825">Kuva alati täielikud URL-id</translation> <translation id="3420501302812554910">Sisemine turvavõti tuleb lähtestada</translation> <translation id="3421387094817716717">Elliptilise kõveraga avalik võti</translation> <translation id="3422291238483866753">Küsi, kui sait soovib luua mind ümbritsevast 3D-kaarti või jälgida kaamera asendit</translation> @@ -2414,6 +2414,7 @@ <translation id="4144218403971135344">Vaadake parema kvaliteediga videoid ja säästke aku tööiga. Videot esitatakse ainult Casti toega ekraanikuval.</translation> <translation id="4146026355784316281">Ava alati süsteemivaaturiga</translation> <translation id="4146785383423576110">Lähtestamine ja puhastamine</translation> +<translation id="4147897805161313378">Google Photos</translation> <translation id="4147911968024186208">Proovige uuesti. Kui viga ilmub siiski, võtke ühendust tugiteenuse esindajaga.</translation> <translation id="4150201353443180367">Kuva</translation> <translation id="4152670763139331043">{NUM_TABS,plural, =1{1 vaheleht}other{# vahelehte}}</translation> @@ -2733,6 +2734,7 @@ <translation id="4633757335284074492">Andmete varundamine Google Drive'i. Teil on alati võimalik andmed hõlpsalt taastada või seadet vahetada. Varukoopia hõlmab rakenduste andmeid. Varukoopiad laaditakse Google'isse üles ja krüpteeritakse teie lapse Google'i konto parooliga.</translation> <translation id="4634771451598206121">Logi uuesti sisse ...</translation> <translation id="4635398712689569051"><ph name="PAGE_NAME" /> ei ole külaliskasutajatele saadaval.</translation> +<translation id="4636930964841734540">Teave</translation> <translation id="4637083375689622795">Veel toiminguid, <ph name="EMAIL" /></translation> <translation id="4638930039313743000">Luba ADB silumine</translation> <translation id="4641539339823703554">Chrome'il ei õnnestunud süsteemiaega määrata. Kontrollige allolevat aega ja vajaduse korral parandage seda.</translation> @@ -2812,7 +2814,6 @@ <translation id="4750394297954878236">Soovitused</translation> <translation id="475088594373173692">Esimene kasutaja</translation> <translation id="4751476147751820511">Liikumis- või valgusandurid</translation> -<translation id="4756269098451810636">Seadmest <ph name="DEVICE_NAME" /> jagatud pilt</translation> <translation id="4756378406049221019">Peata / laadi uuesti</translation> <translation id="4756388243121344051">&Ajalugu</translation> <translation id="4759238208242260848">Allalaadimised</translation> @@ -3759,7 +3760,6 @@ <translation id="6040852767465482106">Anonüümne identiteet</translation> <translation id="6041046205544295907"><ph name="BEGIN_PARAGRAPH1" />Google'i asukohateenus kasutab selliseid allikaid nagu WiFi- ja mobiilsidevõrgud ning andurid, et aidata prognoosida seadme asukohta.<ph name="END_PARAGRAPH1" /> <ph name="BEGIN_PARAGRAPH2" />Funktsiooni Asukoht saab välja lülitada, kui lülitate välja oma seadme peamise asukohaseade. Asukohaseadetes võite välja lülitada ka WiFi- ja mobiilsidevõrkude ning andurite kasutamise asukoha määramiseks.<ph name="END_PARAGRAPH2" /></translation> -<translation id="6041150002191391409"><ph name="ORIGIN" /> saab vaadata kaustas <ph name="FOLDERNAME" /> olevaid faile, kuni sulgete kõik allika <ph name="ORIGIN" /> vahelehed</translation> <translation id="6041155700700864984">Välju täisekraanilt</translation> <translation id="604124094241169006">Automaatne</translation> <translation id="6042308850641462728">Rohkem</translation> @@ -4155,7 +4155,6 @@ <translation id="6561726789132298588">sisestusklahv</translation> <translation id="656293578423618167">Faili tee või nimi on liiga pikk. Salvestage lühema nimega või muusse asukohta.</translation> <translation id="6563469144985748109">Haldur ei ole seda veel kinnitanud</translation> -<translation id="6567688344210276845">Lehe toimingu jaoks ei õnnestunud laadida ikooni <ph name="ICON" />.</translation> <translation id="6569934958368283244">Teised inimesed</translation> <translation id="657402800789773160">&Laadi see leht uuesti</translation> <translation id="6577284282025554716">Allalaadimine on tühistatud: <ph name="FILE_NAME" /></translation> @@ -4167,6 +4166,7 @@ <translation id="6586451623538375658">Vaheta esmast hiirenuppu</translation> <translation id="6586604979641883411">Linuxi versiooni uuendamiseks on vaja vähemalt <ph name="REQUIRED_SPACE" /> vaba kettaruumi. Vabastage seadmes ruumi ja proovige uuesti.</translation> <translation id="6588043302623806746">Kasuta turvalist DNS-i</translation> +<translation id="659005207229852190">Ohutuskontroll jõudis lõpule.</translation> <translation id="6590458744723262880">Kausta ümbernimetamine</translation> <translation id="6592267180249644460">WebRTC logi on jäädvustatud: <ph name="WEBRTC_LOG_CAPTURE_TIME" /></translation> <translation id="6592808042417736307">Teie sõrmejälg jäädvustati</translation> @@ -4220,7 +4220,6 @@ <translation id="6659594942844771486">Vaheleht</translation> <translation id="6664237456442406323">Kahjuks on teie arvuti seadistatud vigase riistvara ID-ga. See ei lase Chrome OS-i värskendada uusimate turvaparandustega ja teie arvuti <ph name="BEGIN_BOLD" />võib pahatahtlike rünnakute osas haavatav olla<ph name="END_BOLD" />.</translation> <translation id="6664774537677393800">Teie profiili avamisel läks midagi valesti. Logige välja ja seejärel uuesti sisse.</translation> -<translation id="6667776121818773738">Muust seadmest jagatud pilt</translation> <translation id="6673391612973410118"><ph name="PRINTER_MAKE_OR_MODEL" /> (USB)</translation> <translation id="667517062706956822">Kas soovite lasta Google'il selle lehe tõlkida <ph name="SOURCE_LANGUAGE" /> keelest <ph name="TARGET_LANGUAGE" /> keelde?</translation> <translation id="6675665718701918026">Ühendati kursoriseade</translation> @@ -4841,7 +4840,6 @@ <translation id="7497981768003291373">Teil pole ühtegi hiljuti jäädvustatud WebRTC tekstilogi.</translation> <translation id="7502658306369382406">IPv6 aadress</translation> <translation id="7503191893372251637">Netscape'i sertifikaadi tüüp</translation> -<translation id="7503821294401948377">Brauseri toimingu jaoks ei õnnestunud laadida ikooni <ph name="ICON" />.</translation> <translation id="7503985202154027481">Kirje teie külastusest sellele saidile säilitatakse turvavõtmes.</translation> <translation id="7504293978434250212">Teie organisatsioon saab skannida kuni 50 MB faile. Laadige üles väiksem fail.</translation> <translation id="750509436279396091">Ava allalaaditud failide kaust</translation> @@ -5429,6 +5427,7 @@ <translation id="8249672078237421304">Paku lehtede tõlkimist, mis ei ole teie loetavas keeles</translation> <translation id="8251441930213048644">Värskenda kohe</translation> <translation id="8251578425305135684">Pisipilt eemaldatud.</translation> +<translation id="825238165904109940">Kuva alati täielikud URL-id</translation> <translation id="8252569384384439529">Üleslaadimine …</translation> <translation id="8253198102038551905">Võrguatribuutide hankimiseks klõpsake märgil „+”</translation> <translation id="8254954272268479918">Linuxi (beetaversioon) väljalülitamine</translation> @@ -5644,7 +5643,6 @@ <translation id="8546930481464505581">Puuteriba kohandamine</translation> <translation id="8547013269961688403">Luba täisekraani luup</translation> <translation id="85486688517848470">Ülemise rea klahvide toimingu vahetamiseks hoidke all otsinguklahvi</translation> -<translation id="8550165047974571882"><ph name="ORIGIN" /> saab muuta kaustas <ph name="FOLDERNAME" /> olevaid faile, kuni sulgete kõik allika <ph name="ORIGIN" /> vahelehed</translation> <translation id="8551388862522347954">Litsentsid</translation> <translation id="8553342806078037065">Teiste inimeste haldamine</translation> <translation id="8554899698005018844">Keel puudub</translation>
diff --git a/chrome/app/resources/generated_resources_eu.xtb b/chrome/app/resources/generated_resources_eu.xtb index eb5afb7..de53270a 100644 --- a/chrome/app/resources/generated_resources_eu.xtb +++ b/chrome/app/resources/generated_resources_eu.xtb
@@ -1120,7 +1120,6 @@ <translation id="247949520305900375">Partekatu audioa</translation> <translation id="2480868415629598489">Aldatu kopiatzen eta itsasten dituzun datuak</translation> <translation id="2482878487686419369">Jakinarazpenak</translation> -<translation id="2483610039979585156"><ph name="ORIGIN" /> webguneak <ph name="FILENAME" /> editatu ahalko du <ph name="ORIGIN" /> webguneko fitxa guztiak ixten dituzun arte</translation> <translation id="2484959914739448251">Sinkronizatutako gailu guztietako eta zure Google-ko kontuko arakatze-datuak garbitzeko, <ph name="BEGIN_LINK" />idatzi pasaesaldia<ph name="END_LINK" />.</translation> <translation id="2485005079599453134">Gorde da pasahitza gailuan</translation> <translation id="2485422356828889247">Desinstalatu</translation> @@ -1725,7 +1724,6 @@ <translation id="3282568296779691940">Hasi saioa Chrome-n</translation> <translation id="3285322247471302225">&Fitxa berria</translation> <translation id="328571385944182268">Pasahitzak gorde nahi dituzu?</translation> -<translation id="328785681103589998"><ph name="ORIGIN" /> webguneko fitxa guztiak ixten dituzun arte <ph name="FILENAME" /> ikusten jarraitu ahalko du <ph name="ORIGIN" /> webguneak</translation> <translation id="3288047731229977326">Garatzaile moduan abiarazten diren luzapenek ordenagailua kalte diezazukete. Ez bazara garatzailea, segurtasunez jokatzeko, luzapen horiek garatzaile moduan exekutatzeko aukera desgaitu beharko zenuke.</translation> <translation id="3289856944988573801">Eguneratzeak bilatzeko, erabili Ethernet edo Wi-Fi konexioa.</translation> <translation id="3290356915286466215">Babestu gabe</translation> @@ -2414,6 +2412,7 @@ <translation id="4144218403971135344">Lortu kalitate hobea duten bideoak eta aurreztu bateria. Cast-ekin bateragarriak diren pantailetan soilik erreproduzituko dira bideoak.</translation> <translation id="4146026355784316281">Ireki beti sistema-ikustailearekin</translation> <translation id="4146785383423576110">Berrezarri eta garbitu</translation> +<translation id="4147897805161313378">Google Argazkiak</translation> <translation id="4147911968024186208">Saiatu berriro. Errore hau berriz agertzen bazaizu, jarri laguntza-zerbitzuko ordezkariarekin harremanetan.</translation> <translation id="4150201353443180367">Pantaila</translation> <translation id="4152670763139331043">{NUM_TABS,plural, =1{Fitxa bat}other{# fitxa}}</translation> @@ -2733,6 +2732,7 @@ <translation id="4633757335284074492">Egin babeskopiak Google Drive-n. Leheneratu gailu honen datuak edo aldatu gailua edonoiz. Aplikazioetako datuak ere sartzen dira babeskopietan. Babeskopiak Google-ra kargatzen dira eta enkriptatu egiten dira haurraren Google-ko kontuaren pasahitza erabilita.</translation> <translation id="4634771451598206121">Hasi saioa berriro…</translation> <translation id="4635398712689569051">Gonbidatuek ezin dute erabili <ph name="PAGE_NAME" /> orria.</translation> +<translation id="4636930964841734540">Informazioa</translation> <translation id="4637083375689622795">Ekintza gehiago, <ph name="EMAIL" /></translation> <translation id="4638930039313743000">Gautu ADB arazketa</translation> <translation id="4641539339823703554">Chrome-k ezin izan du sistemaren ordua ezarri. Egiaztatu beheko ordua eta, beharrezkoa bada, zuzen ezazu.</translation> @@ -2812,7 +2812,6 @@ <translation id="4750394297954878236">Iradokizunak</translation> <translation id="475088594373173692">Lehen erabiltzailea</translation> <translation id="4751476147751820511">Mugimenduaren eta argiaren sentsoreak</translation> -<translation id="4756269098451810636"><ph name="DEVICE_NAME" /> gailutik partekatutako irudia</translation> <translation id="4756378406049221019">Gelditu / Kargatu berriro</translation> <translation id="4756388243121344051">&Historia</translation> <translation id="4759238208242260848">Deskargak</translation> @@ -3534,7 +3533,7 @@ <translation id="5734362860645681824">Komunikazioak</translation> <translation id="5734697361979786483">Gehitu fitxategiak partekatzeko sareko gailua</translation> <translation id="5736796278325406685">Idatzi balio duen erabiltzaile-izen bat</translation> -<translation id="5739017626473506901">Hasi saioa <ph name="USER_NAME" /> erabiltzaileak eskolako kontua gehi dezan</translation> +<translation id="5739017626473506901">Hasi saioa <ph name="USER_NAME" /> erabiltzaileak ikastetxeko kontua gehi dezan</translation> <translation id="5739235828260127894">Egiaztapenaren zain. <ph name="LINK_BEGIN" />Lortu informazio gehiago<ph name="LINK_END" /></translation> <translation id="5739458112391494395">Oso handia</translation> <translation id="574209121243317957">Tonua</translation> @@ -3759,7 +3758,6 @@ <translation id="6040852767465482106">Identitate anonimoa</translation> <translation id="6041046205544295907"><ph name="BEGIN_PARAGRAPH1" />Gailuaren kokapena zehazteko, wifi-sarea, sare mugikorrak eta sentsoreak erabiltzen ditu Google-ren kokapen-zerbitzuak.<ph name="END_PARAGRAPH1" /> <ph name="BEGIN_PARAGRAPH2" />Kokapena desaktibatzeko, desaktibatu gailuaren kokapen-ezarpen nagusia. Bestela, desaktibatu kokapena zehazteko wifi-sareak, sare mugikorrak eta sentsoreak erabiltzeko aukera kokapen-ezarpenetan.<ph name="END_PARAGRAPH2" /></translation> -<translation id="6041150002191391409"><ph name="ORIGIN" /> webguneak <ph name="FOLDERNAME" /> karpetako fitxategiak ikusi ahalko ditu <ph name="ORIGIN" /> webguneko fitxa guztiak ixten dituzun arte</translation> <translation id="6041155700700864984">Irten pantaila osoko modutik</translation> <translation id="604124094241169006">Automatikoa</translation> <translation id="6042308850641462728">Gehiago</translation> @@ -4155,7 +4153,6 @@ <translation id="6561726789132298588">sartu</translation> <translation id="656293578423618167">Fitxategi-bidea edo -izena luzeegia da. Gorde izen laburrago batekin edo beste kokapen batean.</translation> <translation id="6563469144985748109">Kudeatzaileak ez du onartu eskaera oraindik</translation> -<translation id="6567688344210276845">Ezin izan da kargatu "<ph name="ICON" />" ikonoa orriaren ekintzarako.</translation> <translation id="6569934958368283244">Jende gehiago</translation> <translation id="657402800789773160">&Kargatu orria berriro</translation> <translation id="6577284282025554716">Bertan behera utzi da <ph name="FILE_NAME" /> fitxategia deskargatzeko prozesua</translation> @@ -4220,7 +4217,6 @@ <translation id="6659594942844771486">Fitxa</translation> <translation id="6664237456442406323">Ordenagailua formatu okerreko hardware IDarekin dago konfiguratuta. Ondorioz, Chrome OS ezin da eguneratu azken segurtasun-konponketekin, eta ordenagailuak <ph name="BEGIN_BOLD" />asmo txarreko erasoak jaso ahal izango ditu<ph name="END_BOLD" />.</translation> <translation id="6664774537677393800">Arazoren bat izan da profila irekitzean. Amaitu saioa eta has ezazu berriro.</translation> -<translation id="6667776121818773738">Beste gailu batetik partekatutako irudia</translation> <translation id="6673391612973410118"><ph name="PRINTER_MAKE_OR_MODEL" /> (USB)</translation> <translation id="667517062706956822">Google-k <ph name="SOURCE_LANGUAGE" /> hizkuntzan dagoen orri hau <ph name="TARGET_LANGUAGE" /> hizkuntzara itzultzea nahi duzu?</translation> <translation id="6675665718701918026">Konektatu da gailu erakuslea</translation> @@ -4841,7 +4837,6 @@ <translation id="7497981768003291373">Ez duzu duela gutxi hartutako WebRTC testu-erregistrorik.</translation> <translation id="7502658306369382406">IPv6 helbidea</translation> <translation id="7503191893372251637">Netscape ziurtagiri mota</translation> -<translation id="7503821294401948377">Ezin izan da arakatzailearen ekintzarako "<ph name="ICON" />" ikonoa kargatu.</translation> <translation id="7503985202154027481">Webgune hau bisitatu izana erregistratu egingo da segurtasun-giltzan.</translation> <translation id="7504293978434250212">Gehienez 50 MB dituzten fitxategiak azter ditzake erakundeak. Kargatu fitxategi txikiago bat.</translation> <translation id="750509436279396091">Ireki deskargen karpeta</translation> @@ -5643,7 +5638,6 @@ <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="8550165047974571882"><ph name="ORIGIN" /> webguneak <ph name="FOLDERNAME" /> karpetako fitxategiak editatu ahalko ditu <ph name="ORIGIN" /> webguneko fitxa guztiak ixten dituzun arte</translation> <translation id="8551388862522347954">Lizentziak</translation> <translation id="8553342806078037065">Kudeatu beste pertsona batzuk</translation> <translation id="8554899698005018844">Ez da zehaztu hizkuntzarik</translation>
diff --git a/chrome/app/resources/generated_resources_fa.xtb b/chrome/app/resources/generated_resources_fa.xtb index c3dae04f..4ad1b68 100644 --- a/chrome/app/resources/generated_resources_fa.xtb +++ b/chrome/app/resources/generated_resources_fa.xtb
@@ -1117,7 +1117,6 @@ <translation id="247949520305900375">همرسانی صوت</translation> <translation id="2480868415629598489">اصلاح دادههایی که کپی و جایگذاری میکنید</translation> <translation id="2482878487686419369">اعلانها</translation> -<translation id="2483610039979585156">تا زمانیکه همه برگههای <ph name="ORIGIN" /> را نبندید، <ph name="ORIGIN" /> میتواند <ph name="FILENAME" /> را ویرایش کند</translation> <translation id="2484959914739448251">برای اینکه دادههای محصول مرور را از همه دستگاههای همگامسازیشده و حساب Google خود پاک کنید، <ph name="BEGIN_LINK" />عبارت عبورتان را وارد کنید<ph name="END_LINK" />.</translation> <translation id="2485005079599453134">گذرواژه در این دستگاه ذخیره شد</translation> <translation id="2485422356828889247">حذف نصب</translation> @@ -1722,7 +1721,6 @@ <translation id="3282568296779691940">ورود به Chrome</translation> <translation id="3285322247471302225">&برگه جدید</translation> <translation id="328571385944182268">گذرواژه ذخیره شود؟</translation> -<translation id="328785681103589998">تا زمانی که همه برگههای <ph name="ORIGIN" /> را ببندید، <ph name="ORIGIN" /> میتواند <ph name="FILENAME" /> را مشاهده کند</translation> <translation id="3288047731229977326">افزونههایی که در حالت برنامهنوبس اجرا میشوند میتوانند به رایانه شما آسیب برسانند. اگر برنامهنویس نیستید، باید این برنامههای افزودنی را که در حالت برنامهنویس اجرا میشوند غیرفعال کنید تا ایمن بمانید.</translation> <translation id="3289856944988573801">برای بررسی موارد بهروز لطفاً از کابل شبکه یا Wi-Fi استفاده کنید.</translation> <translation id="3290356915286466215">ناامن</translation> @@ -2411,6 +2409,7 @@ <translation id="4144218403971135344">دریافت ویدیوی با کیفیت بهتر و افزایش ماندگاری شارژ باتری. ویدیو فقط در صفحهنمایش سازگار با Cast پخش خواهد شد.</translation> <translation id="4146026355784316281">همیشه با نظارهگر سیستم باز شود</translation> <translation id="4146785383423576110">بارنشانی و پاک کردن</translation> +<translation id="4147897805161313378">Google Photos</translation> <translation id="4147911968024186208">لطفاً دوباره امتحان کنید. اگر باز این خطا را دیدید، لطفاً با نماینده پشتیبانیتان تماس بگیرید.</translation> <translation id="4150201353443180367">صفحهنمایش</translation> <translation id="4152670763139331043">{NUM_TABS,plural, =1{۱ برگه}one{# برگه}other{# برگه}}</translation> @@ -2730,6 +2729,7 @@ <translation id="4633757335284074492">در Google Drive پشتیبانگیری کنید. بهآسانی دادهها را بازیابی کنید یا هرزمان خواستید دستگاه را عوض کنید. این نسخه پشتیبان حاوی دادههای برنامه است. پشتیبانها در Google بارگذاری میشوند و با گذرواژه «حساب Google» فرزندتان رمزگذاری میشوند.</translation> <translation id="4634771451598206121">ورود مجدد به سیستم...</translation> <translation id="4635398712689569051"><ph name="PAGE_NAME" /> برای کاربران مهمان دردسترس نیست.</translation> +<translation id="4636930964841734540">اطلاعات</translation> <translation id="4637083375689622795">کنشهای دیگر، <ph name="EMAIL" /></translation> <translation id="4638930039313743000">فعالسازی اشکالزدایی ADB (پل اشکالزدایی Android)</translation> <translation id="4641539339823703554">Chrome نمیتواند زمان سیستم را تنظیم کند. لطفاً زمان را در زیر بررسی کرده و در صورت لزوم آن را درست کنید.</translation> @@ -2809,7 +2809,6 @@ <translation id="4750394297954878236">پیشنهادات</translation> <translation id="475088594373173692">کاربر اول</translation> <translation id="4751476147751820511">حسگرهای نوری یا حرکتی</translation> -<translation id="4756269098451810636">تصویر همرسانیشده از <ph name="DEVICE_NAME" /></translation> <translation id="4756378406049221019">توقف/تازهسازی</translation> <translation id="4756388243121344051">&سابقه</translation> <translation id="4759238208242260848">بارگیریها</translation> @@ -3756,7 +3755,6 @@ <translation id="6040852767465482106">شناسه ناشناس</translation> <translation id="6041046205544295907"><ph name="BEGIN_PARAGRAPH1" />خدمات مکان Google از منابعی مانند Wi-Fi، شبکههای تلفن همراه و حسگرها برای کمک به تخمین مکان دستگاهتان استفاده میکند.<ph name="END_PARAGRAPH1" /> <ph name="BEGIN_PARAGRAPH2" />با خاموش کردن تنظیم اصلی «مکان» در دستگاهتان میتوانید «مکان» را خاموش کنید. همچنین میتوانید در تنظیمات مکان، استفاده از Wi-Fi، شبکههای تلفن همراه و حسگرها را برای مکان خاموش کنید.<ph name="END_PARAGRAPH2" /></translation> -<translation id="6041150002191391409">تا زمانیکه همه برگههای <ph name="ORIGIN" /> را نبندید، <ph name="ORIGIN" /> میتواند فایلهای موجود در <ph name="FOLDERNAME" /> را مشاهده کند</translation> <translation id="6041155700700864984">خروج از تمام صفحه</translation> <translation id="604124094241169006">خودکار</translation> <translation id="6042308850641462728">بیشتر</translation> @@ -4152,7 +4150,6 @@ <translation id="6561726789132298588">Enter</translation> <translation id="656293578423618167">مسیر یا نام فایل خیلی طولانی است. لطفاً با یک نام کوتاهتر یا در محل دیگری ذخیره کنید.</translation> <translation id="6563469144985748109">مدیرتان هنوز این سایت را تأیید نکرده است</translation> -<translation id="6567688344210276845">بارگیری نماد "<ph name="ICON" />" برای عملکرد صفحه ممکن نیست.</translation> <translation id="6569934958368283244">افراد دیگر</translation> <translation id="657402800789773160">&بارگیری مجدد این صفحه</translation> <translation id="6577284282025554716">بارگیری لغو شد: <ph name="FILE_NAME" /></translation> @@ -4217,7 +4214,6 @@ <translation id="6659594942844771486">برگه</translation> <translation id="6664237456442406323">متأسفانه، رایانه شما با یک شناسه سختافزار ناقص پیکربندی شده است. این موضوح سیستم عامل Chrome را از بهروزرسانی با جدیدترین اصلاحات امنیتی باز میدارد که <ph name="BEGIN_BOLD" />میتواند رایانه شما را در برابر حملات مخرب آسیبپذیر نماید<ph name="END_BOLD" />.</translation> <translation id="6664774537677393800">هنگام باز کردن نمایهتان مشکلی پیش آمد. لطفاً از سیستم خارج شوید و دوباره به آن وارد شوید.</translation> -<translation id="6667776121818773738">تصویر همرسانیشده از دستگاه دیگر</translation> <translation id="6673391612973410118"><ph name="PRINTER_MAKE_OR_MODEL" /> (USB)</translation> <translation id="667517062706956822">میخواهید Google این صفحه را از <ph name="SOURCE_LANGUAGE" /> به <ph name="TARGET_LANGUAGE" /> ترجمه کند؟</translation> <translation id="6675665718701918026">دستگاه نشانگر متصل شد</translation> @@ -4838,7 +4834,6 @@ <translation id="7497981768003291373">هیچ گزارش نوشتاری WebRTC که اخیراً ثبت شده باشد ندارید.</translation> <translation id="7502658306369382406">نشانی IPv6</translation> <translation id="7503191893372251637">نوع گواهی Netscape</translation> -<translation id="7503821294401948377">بارگیری نماد "<ph name="ICON" />" برای عملکرد مرورگر ممکن نیست.</translation> <translation id="7503985202154027481">سابقه بازدیدتان از این سایت در کلید امنیتیتان نگهداری میشود.</translation> <translation id="7504293978434250212">سازمانتان میتواند فایلهایی با حداکثر اندازه ۵۰ مگابایت را اسکن کند. فایل کوچکتری را بارگذاری کنید.</translation> <translation id="750509436279396091">باز کردن پوشه بارگیریها</translation> @@ -5641,7 +5636,6 @@ <translation id="8546930481464505581">سفارشی کردن «نوار لمسی»</translation> <translation id="8547013269961688403">فعال کردن ذرهبین تمامصفحه</translation> <translation id="85486688517848470">برای جابهجایی بین رفتار کلیدهای ردیف بالا، کلید جستجو را نگهدارید</translation> -<translation id="8550165047974571882">تا زمانی که همه برگههای <ph name="ORIGIN" /> را نبندید، <ph name="ORIGIN" /> میتواند فایلهای موجود در <ph name="FOLDERNAME" /> را ویرایش کند</translation> <translation id="8551388862522347954">مجوزها</translation> <translation id="8553342806078037065">مدیریت افراد دیگر</translation> <translation id="8554899698005018844">زبانی موجود نیست</translation>
diff --git a/chrome/app/resources/generated_resources_fi.xtb b/chrome/app/resources/generated_resources_fi.xtb index 45368c1c..a5e2db6 100644 --- a/chrome/app/resources/generated_resources_fi.xtb +++ b/chrome/app/resources/generated_resources_fi.xtb
@@ -1120,7 +1120,6 @@ <translation id="247949520305900375">Jaa ääni</translation> <translation id="2480868415629598489">muokata kopioituja ja liitettyjä tietoja</translation> <translation id="2482878487686419369">Ilmoitukset</translation> -<translation id="2483610039979585156"><ph name="ORIGIN" /> voi muokata tiedostoa (<ph name="FILENAME" />), kunnes suljet kaikki <ph name="ORIGIN" />-välilehdet</translation> <translation id="2484959914739448251">Jos haluat poistaa selailutiedot kaikilta synkronoiduilta laitteiltasi ja Google-tililtäsi, <ph name="BEGIN_LINK" />kirjoita tunnuslauseesi<ph name="END_LINK" />.</translation> <translation id="2485005079599453134">Salasana tallennettu tälle laitteelle</translation> <translation id="2485422356828889247">Poista</translation> @@ -1725,7 +1724,6 @@ <translation id="3282568296779691940">Kirjaudu Chromeen</translation> <translation id="3285322247471302225">Uusi välileh&ti</translation> <translation id="328571385944182268">Tallennetaanko salasanat?</translation> -<translation id="328785681103589998"><ph name="ORIGIN" /> voi nähdä tiedoston <ph name="FILENAME" />, kunnes suljet kaikki <ph name="ORIGIN" />-välilehdet</translation> <translation id="3288047731229977326">Kehittäjätilassa olevat laajennukset voivat vahingoittaa tietokonettasi. Jos et ole kehittäjä, poista kehittäjätilassa olevat laajennukset käytöstä varmuuden vuoksi.</translation> <translation id="3289856944988573801">Tarkista päivitykset Ethernetin tai Wi-Fin kautta.</translation> <translation id="3290356915286466215">Suojaamaton</translation> @@ -2411,6 +2409,7 @@ <translation id="4144218403971135344">Katso laadukkaampia videoita ja säästä akkua. Videoita toistetaan vain Cast-yhteensopivalla näytöllä.</translation> <translation id="4146026355784316281">Avaa aina järjestelmän katselusovelluksella</translation> <translation id="4146785383423576110">Nollaa ja puhdista</translation> +<translation id="4147897805161313378">Google Kuvat</translation> <translation id="4147911968024186208">Yritä uudelleen. Jos näet tämän virheen uudelleen, ota yhteyttä tukihenkilöön.</translation> <translation id="4150201353443180367">Näyttö</translation> <translation id="4152670763139331043">{NUM_TABS,plural, =1{1 välilehti}other{# välilehteä}}</translation> @@ -2730,6 +2729,7 @@ <translation id="4633757335284074492">Varmuuskopioi Google Driveen. Palauta dataa tai ota uusi laite käyttöön kätevästi milloin tahansa. Tämä varmuuskopio sisältää sovellusdatan. Varmuuskopiot ladataan Googleen ja salataan lapsesi Google-tilin salasanalla.</translation> <translation id="4634771451598206121">Kirjaudu uudelleen sisään...</translation> <translation id="4635398712689569051"><ph name="PAGE_NAME" /> ei ole vieraskäyttäjien saatavilla.</translation> +<translation id="4636930964841734540">Tietoja</translation> <translation id="4637083375689622795">Lisää toimintoja, <ph name="EMAIL" /></translation> <translation id="4638930039313743000">Ota käyttöön ADB-virheenkorjaus</translation> <translation id="4641539339823703554">Chrome ei voinut asettaa järjestelmän aikaa. Tarkista aika alta ja korjaa sitä tarvittaessa.</translation> @@ -2809,7 +2809,6 @@ <translation id="4750394297954878236">Ehdotukset</translation> <translation id="475088594373173692">Ensimmäinen käyttäjä</translation> <translation id="4751476147751820511">Liike- tai valotunnistimet</translation> -<translation id="4756269098451810636"><ph name="DEVICE_NAME" /> jakoi kuvan</translation> <translation id="4756378406049221019">Pysäytä/päivitä</translation> <translation id="4756388243121344051">&Historia</translation> <translation id="4759238208242260848">Lataukset</translation> @@ -3756,7 +3755,6 @@ <translation id="6040852767465482106">Anonyymi henkilöllisyys</translation> <translation id="6041046205544295907"><ph name="BEGIN_PARAGRAPH1" />Googlen sijaintipalvelu pyrkii arvioimaan laitteen sijaintia esimerkiksi Wi-Fin, mobiiliverkkojen ja anturien avulla.<ph name="END_PARAGRAPH1" /> <ph name="BEGIN_PARAGRAPH2" />Voit poistaa palvelun käytöstä poistamalla laitteen sijainnin pääasetuksen käytöstä. Sijaintiasetuksissa voit myös estää Wi-Fin, mobiiliverkkojen ja anturien käytön sijainnin määrityksessä.<ph name="END_PARAGRAPH2" /></translation> -<translation id="6041150002191391409"><ph name="ORIGIN" /> voi nähdä tiedostot (<ph name="FOLDERNAME" />), kunnes suljet kaikki <ph name="ORIGIN" />-välilehdet</translation> <translation id="6041155700700864984">Poistu koko näytön tilasta</translation> <translation id="604124094241169006">Automaattinen</translation> <translation id="6042308850641462728">Lisää</translation> @@ -4154,7 +4152,6 @@ <translation id="6561726789132298588">enter</translation> <translation id="656293578423618167">Tiedostonimi tai -polku on liian pitkä. Lyhennä nimeä tai tallenna muuhun sijaintiin.</translation> <translation id="6563469144985748109">Ylläpitäjä ei ole hyväksynyt sitä vielä.</translation> -<translation id="6567688344210276845">Kuvakkeen <ph name="ICON" /> lataaminen sivun toimintoa varten epäonnistui.</translation> <translation id="6569934958368283244">Muut henkilöt</translation> <translation id="657402800789773160">&Päivitä tämä sivu</translation> <translation id="6577284282025554716">Lataus peruutettu: <ph name="FILE_NAME" /></translation> @@ -4219,7 +4216,6 @@ <translation id="6659594942844771486">Välilehti</translation> <translation id="6664237456442406323">Tietokoneesi on valitettavasti määritetty virheellisellä laitetunnuksella. Siksi Chrome-käyttöjärjestelmä ei voi asentaa uusimpia tietoturvapäivityksiä ja tietokoneesi <ph name="BEGIN_BOLD" />voi altistua hyökkäyksille<ph name="END_BOLD" />.</translation> <translation id="6664774537677393800">Jotain meni pieleen. profiilisi avaamisessa. Kirjaudu ensin ulos ja sitten uudelleen sisään.</translation> -<translation id="6667776121818773738">Toiselta laitteelta jaettu kuva</translation> <translation id="6673391612973410118"><ph name="PRINTER_MAKE_OR_MODEL" /> (USB)</translation> <translation id="667517062706956822">Haluatko, että Google kääntää tämän sivun kielestä <ph name="SOURCE_LANGUAGE" /> kieleen <ph name="TARGET_LANGUAGE" />?</translation> <translation id="6675665718701918026">Osoitinlaite yhdistetty.</translation> @@ -4840,7 +4836,6 @@ <translation id="7497981768003291373">Sinulla ei ole äskettäin tallennettuja WebRTC-tekstilokeja.</translation> <translation id="7502658306369382406">IPv6-osoite</translation> <translation id="7503191893372251637">Netscape-varmennetyyppi</translation> -<translation id="7503821294401948377">Kuvakkeen <ph name="ICON" /> lataaminen selaintoimintoa varten epäonnistui.</translation> <translation id="7503985202154027481">Tieto käynnistäsi tällä sivustolla tallentuu suojausavaimeesi.</translation> <translation id="7504293978434250212">Organisaatiosi voi tarkistaa enintään 50 Mt:n tiedostoja. Yritä ladata pienempi tiedosto.</translation> <translation id="750509436279396091">Avaa latauskansio</translation> @@ -5642,7 +5637,6 @@ <translation id="8546930481464505581">Muokkaa kosketuspalkkia</translation> <translation id="8547013269961688403">Ota koko näytön suurennus käyttöön</translation> <translation id="85486688517848470">Pidä hakunäppäintä pohjassa, jos haluat vaihtaa ylärivin näppäinten toimintaa.</translation> -<translation id="8550165047974571882"><ph name="ORIGIN" /> voi muokata tiedostoja (<ph name="FOLDERNAME" />), kunnes suljet kaikki <ph name="ORIGIN" />-välilehdet</translation> <translation id="8551388862522347954">Käyttöoikeudet</translation> <translation id="8553342806078037065">Hallitse muita henkilöitä</translation> <translation id="8554899698005018844">Ei kieltä</translation>
diff --git a/chrome/app/resources/generated_resources_fil.xtb b/chrome/app/resources/generated_resources_fil.xtb index 11addcc..9d70c971 100644 --- a/chrome/app/resources/generated_resources_fil.xtb +++ b/chrome/app/resources/generated_resources_fil.xtb
@@ -1120,7 +1120,6 @@ <translation id="247949520305900375">Ibahagi ang audio</translation> <translation id="2480868415629598489">Baguhin ang data na kinokopya at pine-paste mo</translation> <translation id="2482878487686419369">Mga Abiso</translation> -<translation id="2483610039979585156">Mae-edit ng <ph name="ORIGIN" /> ang <ph name="FILENAME" /> hangga't hindi mo isinasara ang lahat ng tab ng <ph name="ORIGIN" /></translation> <translation id="2484959914739448251">Para i-clear ang data sa pag-browse sa lahat ng iyong naka-sync na device at sa Google Account mo, <ph name="BEGIN_LINK" />ilagay ang iyong passphrase<ph name="END_LINK" />.</translation> <translation id="2485005079599453134">Na-save ang password sa device na ito</translation> <translation id="2485422356828889247">I-uninstall</translation> @@ -1725,7 +1724,6 @@ <translation id="3282568296779691940">Mag-sign in sa Chrome</translation> <translation id="3285322247471302225">Bagong &Tab</translation> <translation id="328571385944182268">I-save ang iyong mga password?</translation> -<translation id="328785681103589998">Matitingnan ng <ph name="ORIGIN" /> ang <ph name="FILENAME" /> hanggang sa isara mo ang lahat ng tab ng <ph name="ORIGIN" /></translation> <translation id="3288047731229977326">Ang mga extension na tumatakbo sa developer mode ay maaaring makapinsala sa iyong computer. Kung hindi ka isang developer, dapat mong i-disable ang mga extension na tumatakbo sa developer mode upang manatiling ligtas.</translation> <translation id="3289856944988573801">Upang tumingin ng mga update, mangyaring gumamit ng Ethernet o Wi-Fi.</translation> <translation id="3290356915286466215">Hindi naka-secure</translation> @@ -2414,6 +2412,7 @@ <translation id="4144218403971135344">Magkaroon ng mas magandang kalidad na video at makatipid ng baterya. Magpe-play lang ang video sa iyong screen na may naka-enable na Cast.</translation> <translation id="4146026355784316281">Palaging Buksan Gamit ang System Viewer</translation> <translation id="4146785383423576110">I-reset at linisin</translation> +<translation id="4147897805161313378">Google Photos</translation> <translation id="4147911968024186208">Pakisubukang muli. Kung makikita mong muli ang error na ito, makipag-ugnayan sa iyong kinatawan ng suporta.</translation> <translation id="4150201353443180367">Display</translation> <translation id="4152670763139331043">{NUM_TABS,plural, =1{1 tab}one{# tab}other{# na tab}}</translation> @@ -2733,6 +2732,7 @@ <translation id="4633757335284074492">I-back up sa Google Drive. Walang hirap na mag-restore ng data o lumipat ng device anumang oras. Kasama sa backup na ito ang data ng app. Ang mga backup ay ina-upload sa Google at ine-encrypt gamit ang password sa Google Account ng iyong anak.</translation> <translation id="4634771451598206121">Muling mag-sign in...</translation> <translation id="4635398712689569051">Hindi available ang <ph name="PAGE_NAME" /> sa mga Bisitang user.</translation> +<translation id="4636930964841734540">Impormasyon</translation> <translation id="4637083375689622795">Higit pang pagkilos, <ph name="EMAIL" /></translation> <translation id="4638930039313743000">I-enable ang pag-debug ng ADB</translation> <translation id="4641539339823703554">Hindi nagawang itakda ng Chrome ang oras sa system. Pakitingnan ang oras sa ibaba at iwasto ito kung kinakailangan.</translation> @@ -2812,7 +2812,6 @@ <translation id="4750394297954878236">Mga Suhestyon</translation> <translation id="475088594373173692">Unang user</translation> <translation id="4751476147751820511">Mga motion o light sensor</translation> -<translation id="4756269098451810636">Ibinahaging larawan mula sa <ph name="DEVICE_NAME" /></translation> <translation id="4756378406049221019">Ihinto/I-reload</translation> <translation id="4756388243121344051">&History</translation> <translation id="4759238208242260848">Mga Download </translation> @@ -3759,7 +3758,6 @@ <translation id="6040852767465482106">Anonymous na Pagkakakilanlan</translation> <translation id="6041046205544295907"><ph name="BEGIN_PARAGRAPH1" />Gumagamit ang serbisyo ng lokasyon ng Google ng mga source tulad ng mga Wi-Fi at mobile network para makatulong na matantya ang lokasyon ng device na ito.<ph name="END_PARAGRAPH1" /> <ph name="BEGIN_PARAGRAPH2" />Maaari mong i-off ang Lokasyon sa pamamagitan ng pag-off sa pangunahing setting ng Lokasyon sa device na ito. Maaari mo ring i-off ang paggamit ng Wi‑Fi, mga mobile network, at mga sensor para sa lokasyon sa mga setting ng lokasyon.<ph name="END_PARAGRAPH2" /></translation> -<translation id="6041150002191391409">Matitingnan ng <ph name="ORIGIN" /> ang mga file sa <ph name="FOLDERNAME" /> hangga't hindi mo isinasara ang lahat ng tab ng <ph name="ORIGIN" /></translation> <translation id="6041155700700864984">Lumabas sa Fullscreen</translation> <translation id="604124094241169006">Awtomatiko</translation> <translation id="6042308850641462728">Higit pa</translation> @@ -4155,7 +4153,6 @@ <translation id="6561726789132298588">enter</translation> <translation id="656293578423618167">Masyadong mahaba ang path o pangalan ng file. Mangyaring i-save nang may mas maikling pangalan o sa isa pang lokasyon.</translation> <translation id="6563469144985748109">Hindi pa ito inaaprubahan ng iyong manager</translation> -<translation id="6567688344210276845">Maaaring hindi mai-load ang icon '<ph name="ICON" />' para sa pagkilos sa pahina.</translation> <translation id="6569934958368283244">Iba pang tao</translation> <translation id="657402800789773160">&I-reload ang Pahinang Ito</translation> <translation id="6577284282025554716">Nakansela ang pag-download: <ph name="FILE_NAME" /></translation> @@ -4220,7 +4217,6 @@ <translation id="6659594942844771486">Tab</translation> <translation id="6664237456442406323">Sa kasamaang-palad, na-configure ang iyong computer gamit ang isang hardware ID na mali ang pagkakabuo. Pinipigilan nitong mag-update ang Chrome OS upang magkaroon ng mga pinakabagong pag-aayos sa seguridad at <ph name="BEGIN_BOLD" />maaaring mawalan ng proteksyon laban sa mga nakakahamak na pag-atake<ph name="END_BOLD" /> ang iyong computer.</translation> <translation id="6664774537677393800">Nagkaproblema sa pagbukas ng iyong profile. Mangyaring mag-sign out at pagkatapos ay muling mag-sign in.</translation> -<translation id="6667776121818773738">Ibinahaging larawan mula sa ibang device</translation> <translation id="6673391612973410118"><ph name="PRINTER_MAKE_OR_MODEL" /> (USB)</translation> <translation id="667517062706956822">Gusto mo bang i-translate ng Google ang page na ito mula sa <ph name="SOURCE_LANGUAGE" /> patungo sa <ph name="TARGET_LANGUAGE" />?</translation> <translation id="6675665718701918026">May nakakonektang pointing device</translation> @@ -4841,7 +4837,6 @@ <translation id="7497981768003291373">Wala kang kamakailang nakuhang log ng text ng WebRTC.</translation> <translation id="7502658306369382406">IPv6 address</translation> <translation id="7503191893372251637">Uri ng Netscape Certificate</translation> -<translation id="7503821294401948377">Maaaring hindi mai-load ang icon na '<ph name="ICON" />' para sa pagkilos ng browser.</translation> <translation id="7503985202154027481">Itatabi sa iyong security key ang tala ng pagbisita mo sa site na ito.</translation> <translation id="7504293978434250212">Puwedeng mag-scan ang iyong organisasyon ng mga file na hanggang 50 MB. Subukang mag-upload ng mas maliit na file.</translation> <translation id="750509436279396091">Buksan ang folder ng mga download</translation> @@ -5645,7 +5640,6 @@ <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="8550165047974571882">Mae-edit ng <ph name="ORIGIN" /> ang mga file sa <ph name="FOLDERNAME" /> hangga't hindi mo isinasara ang lahat ng tab ng <ph name="ORIGIN" /></translation> <translation id="8551388862522347954">Mga Lisensya</translation> <translation id="8553342806078037065">Pamahalaan ang iba pang mga tao</translation> <translation id="8554899698005018844">Walang wika</translation>
diff --git a/chrome/app/resources/generated_resources_fr-CA.xtb b/chrome/app/resources/generated_resources_fr-CA.xtb index a93d240..4c7c23c4 100644 --- a/chrome/app/resources/generated_resources_fr-CA.xtb +++ b/chrome/app/resources/generated_resources_fr-CA.xtb
@@ -1120,7 +1120,6 @@ <translation id="247949520305900375">Partager l'audio</translation> <translation id="2480868415629598489">Modifier les données que vous copiez et collez</translation> <translation id="2482878487686419369">Notifications</translation> -<translation id="2483610039979585156"><ph name="ORIGIN" /> sera en mesure de modifier le fichier <ph name="FILENAME" /> jusqu'à ce que vous fermiez tous les onglets de <ph name="ORIGIN" /></translation> <translation id="2484959914739448251">Pour effacer les données de navigation de tous vos appareils synchronisés et de votre compte Google, <ph name="BEGIN_LINK" />entrez votre phrase de passe<ph name="END_LINK" />.</translation> <translation id="2485005079599453134">Le mot de passe a été enregistré sur cet appareil</translation> <translation id="2485422356828889247">Désinstaller</translation> @@ -1726,7 +1725,6 @@ <translation id="3282568296779691940">Connexion à Chrome</translation> <translation id="3285322247471302225">Nouvel ongle&t</translation> <translation id="328571385944182268">Enregistrer vos mots de passe?</translation> -<translation id="328785681103589998"><ph name="ORIGIN" /> sera en mesure de consulter le fichier <ph name="FILENAME" /> jusqu'à ce que vous fermiez tous les onglets de <ph name="ORIGIN" /></translation> <translation id="3288047731229977326">Les extensions exécutées en mode développeur peuvent nuire à votre ordinateur. Si vous n'êtes pas un développeur, nous vous recommandons de désactiver celles-ci afin d'assurer la sécurité de votre ordinateur.</translation> <translation id="3289856944988573801">Pour rechercher des mises à jour, veuillez utiliser une connexion Ethernet ou Wi-Fi.</translation> <translation id="3290356915286466215">Non sécurisé</translation> @@ -2415,6 +2413,7 @@ <translation id="4144218403971135344">Obtenez une vidéo de meilleure qualité et économisez l'énergie de la pile. La vidéo sera lue uniquement sur votre écran compatible Google Cast.</translation> <translation id="4146026355784316281">Toujours ouvrir avec System Viewer</translation> <translation id="4146785383423576110">Réinitialiser et nettoyer</translation> +<translation id="4147897805161313378">Google Photos</translation> <translation id="4147911968024186208">Veuillez réessayer. Si vous voyez cette erreur de nouveau, veuillez communiquer avec votre représentant du soutien technique.</translation> <translation id="4150201353443180367">Affichage</translation> <translation id="4152670763139331043">{NUM_TABS,plural, =1{1 onglet}one{# onglet}other{# onglets}}</translation> @@ -2734,6 +2733,7 @@ <translation id="4633757335284074492">Sauvegarder sur Google Disque. Restaurez facilement vos données ou changez d'appareil à tout moment. Les données des applications sont également sauvegardées. Les sauvegardes sont téléversées dans les serveurs de Google et sont chiffrées en utilisant le mot de passe du compte Google de votre enfant.</translation> <translation id="4634771451598206121">Connectez-vous de nouveau...</translation> <translation id="4635398712689569051">Les utilisateurs invités n'ont pas accès à la page <ph name="PAGE_NAME" />.</translation> +<translation id="4636930964841734540">Renseignements</translation> <translation id="4637083375689622795">Autres actions, <ph name="EMAIL" /></translation> <translation id="4638930039313743000">Activer le débogage PDA</translation> <translation id="4641539339823703554">Chrome n'a pas pu régler l'heure du système. Veuillez vérifier l'heure ci-dessous et la corriger si nécessaire.</translation> @@ -2813,7 +2813,6 @@ <translation id="4750394297954878236">Suggestions</translation> <translation id="475088594373173692">Premier utilisateur</translation> <translation id="4751476147751820511">Capteurs de mouvement ou de luminosité</translation> -<translation id="4756269098451810636">Image partagée à partir de <ph name="DEVICE_NAME" /></translation> <translation id="4756378406049221019">Arrêter/Actualiser</translation> <translation id="4756388243121344051">&Historique</translation> <translation id="4759238208242260848">Téléchargements</translation> @@ -3760,7 +3759,6 @@ <translation id="6040852767465482106">Authentification anonyme</translation> <translation id="6041046205544295907"><ph name="BEGIN_PARAGRAPH1" />Les services de localisation de Google utilisent des sources comme les réseaux Wi-Fi et cellulaires, ainsi que des capteurs, pour estimer la position de votre appareil.<ph name="END_PARAGRAPH1" /> <ph name="BEGIN_PARAGRAPH2" />Vous pouvez couper ce service en désactivant le paramètre de localisation principal de l'appareil. Vous pouvez également désactiver l'utilisation des réseaux Wi‑Fi, des réseaux cellulaires et des capteurs pour la localisation dans les paramètres de localisation.<ph name="END_PARAGRAPH2" /></translation> -<translation id="6041150002191391409"><ph name="ORIGIN" /> sera en mesure d'afficher les fichiers dans le dossier <ph name="FOLDERNAME" /> jusqu'à ce que vous fermiez tous ces onglets de <ph name="ORIGIN" /></translation> <translation id="6041155700700864984">Quitter le mode Plein écran</translation> <translation id="604124094241169006">Automatique</translation> <translation id="6042308850641462728">Plus</translation> @@ -4156,7 +4154,6 @@ <translation id="6561726789132298588">entrée</translation> <translation id="656293578423618167">Le chemin d'accès ou le nom du fichier est trop long. Veuillez raccourcir le nom ou enregistrer le fichier à un autre endroit.</translation> <translation id="6563469144985748109">Votre gestionnaire n'a pas encore donné son autorisation</translation> -<translation id="6567688344210276845">Impossible de charger l'icône « <ph name="ICON" /> » d'action de page.</translation> <translation id="6569934958368283244">Autres personnes</translation> <translation id="657402800789773160">Actualise&r cette page</translation> <translation id="6577284282025554716">Téléchargement annulé : <ph name="FILE_NAME" /></translation> @@ -4221,7 +4218,6 @@ <translation id="6659594942844771486">Onglet</translation> <translation id="6664237456442406323">Malheureusement, votre ordinateur est configuré avec un identifiant de matériel invalide, ce qui empêche l'installation des derniers correctifs de sécurité pour Chrome OS. Votre ordinateur <ph name="BEGIN_BOLD" />peut ainsi être vulnérable aux attaques malveillantes<ph name="END_BOLD" />.</translation> <translation id="6664774537677393800">Un problème est survenu lors de l'ouverture de votre profil. Veuillez vous déconnecter, puis vous reconnecter.</translation> -<translation id="6667776121818773738">Image partagée à partir d'un autre appareil</translation> <translation id="6673391612973410118"><ph name="PRINTER_MAKE_OR_MODEL" /> (USB)</translation> <translation id="667517062706956822">Souhaitez-vous que Google traduise cette page (<ph name="SOURCE_LANGUAGE" /> > <ph name="TARGET_LANGUAGE" />)?</translation> <translation id="6675665718701918026">Appareil de pointage connecté</translation> @@ -4842,7 +4838,6 @@ <translation id="7497981768003291373">Aucun journal de texte WebRTC n'a été créé récemment.</translation> <translation id="7502658306369382406">Adresse IPv6</translation> <translation id="7503191893372251637">Type de certificat Netscape</translation> -<translation id="7503821294401948377">Échec de chargement de l'icône « <ph name="ICON" /> » pour une action du navigateur.</translation> <translation id="7503985202154027481">Une trace de votre visite sur ce site sera enregistrée sur votre clé de sécurité.</translation> <translation id="7504293978434250212">Votre organisation peut analyser les fichiers d'une taille maximale de 50 Mo. Essayez de téléverser un fichier de taille inférieure.</translation> <translation id="750509436279396091">Ouvrir le dossier des téléchargements</translation> @@ -5644,7 +5639,6 @@ <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="8550165047974571882"><ph name="ORIGIN" /> sera en mesure de modifier les fichiers dans le dossier <ph name="FOLDERNAME" /> jusqu'à ce que vous fermiez tous les onglets de <ph name="ORIGIN" /></translation> <translation id="8551388862522347954">Licences</translation> <translation id="8553342806078037065">Gérer d'autres personnes</translation> <translation id="8554899698005018844">Aucune langue</translation>
diff --git a/chrome/app/resources/generated_resources_fr.xtb b/chrome/app/resources/generated_resources_fr.xtb index 0187a4e..4874033 100644 --- a/chrome/app/resources/generated_resources_fr.xtb +++ b/chrome/app/resources/generated_resources_fr.xtb
@@ -1120,7 +1120,6 @@ <translation id="247949520305900375">Partager le contenu audio</translation> <translation id="2480868415629598489">Modifier les données que vous copiez-collez</translation> <translation id="2482878487686419369">Notifications</translation> -<translation id="2483610039979585156"><ph name="ORIGIN" /> pourra modifier le fichier "<ph name="FILENAME" />" jusqu'à ce que vous fermiez tous les onglets du site <ph name="ORIGIN" /></translation> <translation id="2484959914739448251">Pour effacer les données de navigation sur tous vos appareils synchronisés et dans votre compte Google, <ph name="BEGIN_LINK" />saisissez votre phrase secrète<ph name="END_LINK" />.</translation> <translation id="2485005079599453134">Mot de passe enregistré sur cet appareil</translation> <translation id="2485422356828889247">Désinstaller</translation> @@ -1725,7 +1724,6 @@ <translation id="3282568296779691940">Connectez-vous à Chrome</translation> <translation id="3285322247471302225">Nouvel ongle&t</translation> <translation id="328571385944182268">Enregistrer vos mots de passe ?</translation> -<translation id="328785681103589998"><ph name="ORIGIN" /> pourra afficher le fichier <ph name="FILENAME" /> jusqu'à ce que vous fermiez tous les onglets du site <ph name="ORIGIN" /></translation> <translation id="3288047731229977326">Les extensions exécutées en mode développeur peuvent nuire à votre ordinateur. Si vous n'êtes pas un développeur, nous vous recommandons de désactiver celles-ci afin d'assurer la sécurité de votre ordinateur.</translation> <translation id="3289856944988573801">Pour rechercher des mises à jour, veuillez utiliser une connexion Ethernet ou Wi-Fi.</translation> <translation id="3290356915286466215">Non sécurisé</translation> @@ -2414,6 +2412,7 @@ <translation id="4144218403971135344">Bénéficiez d'une meilleure qualité et économisez de la batterie. La vidéo sera lue uniquement sur votre écran compatible Cast.</translation> <translation id="4146026355784316281">Toujours ouvrir avec le lecteur système</translation> <translation id="4146785383423576110">Réinitialiser et nettoyer</translation> +<translation id="4147897805161313378">Google Photos</translation> <translation id="4147911968024186208">Veuillez réessayer. Si l'erreur se reproduit, veuillez contacter le service d'assistance.</translation> <translation id="4150201353443180367">Écran</translation> <translation id="4152670763139331043">{NUM_TABS,plural, =1{1 onglet}one{# onglet}other{# onglets}}</translation> @@ -2733,6 +2732,7 @@ <translation id="4633757335284074492">Sauvegarder dans Google Drive. Restaurez les données ou changez d'appareil facilement et à tout moment. Les données des applications sont également sauvegardées. Les sauvegardes sont importées dans Google et chiffrées à l'aide du mot de passe du compte Google de votre enfant.</translation> <translation id="4634771451598206121">Nouvelle connexion...</translation> <translation id="4635398712689569051">La page <ph name="PAGE_NAME" /> n'est pas accessible aux utilisateurs invités.</translation> +<translation id="4636930964841734540">Infos</translation> <translation id="4637083375689622795">Autres actions, <ph name="EMAIL" /></translation> <translation id="4638930039313743000">Activer le débogage ADB</translation> <translation id="4641539339823703554">Impossible de définir l'heure du système. Veuillez vérifier l'heure ci-dessous et la corriger si nécessaire.</translation> @@ -2812,7 +2812,6 @@ <translation id="4750394297954878236">Suggestions</translation> <translation id="475088594373173692">Premier utilisateur</translation> <translation id="4751476147751820511">Capteurs de mouvement ou de lumière</translation> -<translation id="4756269098451810636">Image partagée depuis <ph name="DEVICE_NAME" /></translation> <translation id="4756378406049221019">Arrêter/Actualiser</translation> <translation id="4756388243121344051">&Historique</translation> <translation id="4759238208242260848">Téléchargements</translation> @@ -3760,7 +3759,6 @@ <translation id="6040852767465482106">Authentification anonyme</translation> <translation id="6041046205544295907"><ph name="BEGIN_PARAGRAPH1" />Le service de localisation de Google utilise des sources comme le Wi-Fi, les réseaux mobiles et les capteurs pour estimer la position de votre appareil.<ph name="END_PARAGRAPH1" /> <ph name="BEGIN_PARAGRAPH2" />Pour arrêter ce service, désactivez le paramètre de localisation principal sur votre appareil. Vous pouvez également désactiver l'utilisation du Wi-Fi, des réseaux mobiles et des capteurs dans vos paramètres de localisation.<ph name="END_PARAGRAPH2" /></translation> -<translation id="6041150002191391409"><ph name="ORIGIN" /> pourra afficher les fichiers du dossier <ph name="FOLDERNAME" /> jusqu'à ce que vous fermiez tous les onglets du site <ph name="ORIGIN" /></translation> <translation id="6041155700700864984">Quitter le mode plein écran</translation> <translation id="604124094241169006">Automatique</translation> <translation id="6042308850641462728">Plus</translation> @@ -4156,7 +4154,6 @@ <translation id="6561726789132298588">entrée</translation> <translation id="656293578423618167">Le chemin d'accès ou le nom du fichier est trop long. Veuillez le raccourcir ou changer d'emplacement.</translation> <translation id="6563469144985748109">Votre responsable ne l'a pas encore autorisé</translation> -<translation id="6567688344210276845">Impossible de charger l'icône "<ph name="ICON" />" d'action de page.</translation> <translation id="6569934958368283244">Autres personnes</translation> <translation id="657402800789773160">&Rafraîchir cette page</translation> <translation id="6577284282025554716">Téléchargement annulé : <ph name="FILE_NAME" /></translation> @@ -4221,7 +4218,6 @@ <translation id="6659594942844771486">Onglet</translation> <translation id="6664237456442406323">Malheureusement, votre ordinateur est configuré avec un ID matériel incorrect. Cette défaillance empêche l'installation des derniers correctifs de sécurité sur Chrome OS et rend votre ordinateur <ph name="BEGIN_BOLD" />potentiellement vulnérable aux attaques malveillantes<ph name="END_BOLD" />.</translation> <translation id="6664774537677393800">Une erreur s'est produite lors de l'ouverture de votre profil. Veuillez vous déconnecter, puis vous connecter de nouveau.</translation> -<translation id="6667776121818773738">Image partagée depuis un autre appareil</translation> <translation id="6673391612973410118"><ph name="PRINTER_MAKE_OR_MODEL" /> (USB)</translation> <translation id="667517062706956822">Souhaitez-vous que Google traduise cette page de la langue "<ph name="SOURCE_LANGUAGE" />" vers la langue "<ph name="TARGET_LANGUAGE" />" ?</translation> <translation id="6675665718701918026">Dispositif de pointage connecté</translation> @@ -4842,7 +4838,6 @@ <translation id="7497981768003291373">Aucun journal texte WebRTC n'a été créé récemment.</translation> <translation id="7502658306369382406">Adresse IPv6</translation> <translation id="7503191893372251637">Type de certificat Netscape</translation> -<translation id="7503821294401948377">Impossible de charger l'icône "<ph name="ICON" />" d'action du navigateur.</translation> <translation id="7503985202154027481">Une trace de votre visite sur le site sera conservée sur votre clé de sécurité.</translation> <translation id="7504293978434250212">Votre organisation ne peut pas analyser les fichiers de plus de 50 Mo. Essayez d'importer un fichier moins volumineux.</translation> <translation id="750509436279396091">Ouvrir le dossier des téléchargements</translation> @@ -5645,7 +5640,6 @@ <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="8550165047974571882"><ph name="ORIGIN" /> pourra modifier les fichiers du dossier "<ph name="FOLDERNAME" />" jusqu'à ce que vous fermiez tous les onglets du site <ph name="ORIGIN" /></translation> <translation id="8551388862522347954">Licences</translation> <translation id="8553342806078037065">Gérer d'autres utilisateurs</translation> <translation id="8554899698005018844">Aucune langue</translation>
diff --git a/chrome/app/resources/generated_resources_gl.xtb b/chrome/app/resources/generated_resources_gl.xtb index d325200..85a32c6 100644 --- a/chrome/app/resources/generated_resources_gl.xtb +++ b/chrome/app/resources/generated_resources_gl.xtb
@@ -1119,7 +1119,6 @@ <translation id="247949520305900375">Compartir audio</translation> <translation id="2480868415629598489">Modificar os datos que copias e pegas</translation> <translation id="2482878487686419369">Notificacións</translation> -<translation id="2483610039979585156"><ph name="ORIGIN" /> poderá editar o ficheiro <ph name="FILENAME" /> ata que peches todas as pestanas de <ph name="ORIGIN" /></translation> <translation id="2484959914739448251">Para borrar os datos de navegación de todos os dispositivos sincronizados e da túa Conta de Google, tes que <ph name="BEGIN_LINK" />introducir a túa frase de acceso<ph name="END_LINK" />.</translation> <translation id="2485005079599453134">O contrasinal gardouse neste dispositivo</translation> <translation id="2485422356828889247">Desinstalar</translation> @@ -1724,7 +1723,6 @@ <translation id="3282568296779691940">Iniciar sesión en Chrome</translation> <translation id="3285322247471302225">Nova &pestana</translation> <translation id="328571385944182268">Queres gardar os teus contrasinais?</translation> -<translation id="328785681103589998"><ph name="ORIGIN" /> poderá acceder a <ph name="FILENAME" /> ata que peches todas as pestanas de <ph name="ORIGIN" /></translation> <translation id="3288047731229977326">As extensións que se executan no modo de programador poden danar o ordenador. Se non es programador, deberás desactivar estas extensións que se executan no modo de programador para permanecer seguro.</translation> <translation id="3289856944988573801">Para consultar se hai actualizacións, utiliza unha Ethernet ou unha wifi.</translation> <translation id="3290356915286466215">Sen protección</translation> @@ -2413,6 +2411,7 @@ <translation id="4144218403971135344">Consigue vídeo de mellor calidade e aforra batería. O vídeo só se reproducirá na pantalla compatible con Cast.</translation> <translation id="4146026355784316281">Abrir sempre co visualizador do sistema</translation> <translation id="4146785383423576110">Restablece e limpa</translation> +<translation id="4147897805161313378">Google Fotos</translation> <translation id="4147911968024186208">Téntao de novo. Se se produce este erro outra vez, ponte en contacto co representante do servizo de asistencia.</translation> <translation id="4150201353443180367">Pantalla</translation> <translation id="4152670763139331043">{NUM_TABS,plural, =1{Unha pestana}other{# pestanas}}</translation> @@ -2732,6 +2731,7 @@ <translation id="4633757335284074492">Facer copia de seguranza en Drive. Restaura os datos facilmente ou cambia de dispositivo en calquera momento. Esta copia de seguranza inclúe os datos das aplicacións. As copias de seguranza cárganse en Google e encríptanse co contrasinal da Conta de Google do teu fillo.</translation> <translation id="4634771451598206121">Inicia sesión de novo...</translation> <translation id="4635398712689569051"><ph name="PAGE_NAME" /> non está dispoñible para usuarios invitados.</translation> +<translation id="4636930964841734540">Información</translation> <translation id="4637083375689622795">Máis accións, <ph name="EMAIL" /></translation> <translation id="4638930039313743000">Activar depuración de ADB</translation> <translation id="4641539339823703554">Chrome non puido establecer a hora do sistema. Comproba a hora a continuación e corríxea se é necesario.</translation> @@ -2811,7 +2811,6 @@ <translation id="4750394297954878236">Suxestións</translation> <translation id="475088594373173692">Primeiro usuario</translation> <translation id="4751476147751820511">Sensores de movemento ou de luz</translation> -<translation id="4756269098451810636">A imaxe compartiuse desde este dispositivo: <ph name="DEVICE_NAME" /></translation> <translation id="4756378406049221019">Deter/Volver cargar</translation> <translation id="4756388243121344051">&Historial</translation> <translation id="4759238208242260848">Descargas</translation> @@ -3758,7 +3757,6 @@ <translation id="6040852767465482106">Identidade anónima</translation> <translation id="6041046205544295907"><ph name="BEGIN_PARAGRAPH1" />O servizo de localización de Google utiliza distintas fontes, como sensores e redes wifi ou de telefonía móbil, para calcular a localización do dispositivo.<ph name="END_PARAGRAPH1" /> <ph name="BEGIN_PARAGRAPH2" />Para desactivar a localización, desactiva a opción principal de localización do teu dispositivo. Tamén podes desactivar o uso de sensores e redes wifi ou de telefonía móbil para calcular a localización na configuración da localización.<ph name="END_PARAGRAPH2" /></translation> -<translation id="6041150002191391409"><ph name="ORIGIN" /> poderá ver os ficheiros de <ph name="FOLDERNAME" /> ata que peches todas as pestanas de <ph name="ORIGIN" /></translation> <translation id="6041155700700864984">Saír da pantalla completa</translation> <translation id="604124094241169006">Automático</translation> <translation id="6042308850641462728">Máis</translation> @@ -4154,7 +4152,6 @@ <translation id="6561726789132298588">intro</translation> <translation id="656293578423618167">A ruta ou o nome do ficheiro é demasiado longo. Gárdao con outro nome máis curto ou noutra localización.</translation> <translation id="6563469144985748109">O teu xestor aínda non o aprobou</translation> -<translation id="6567688344210276845">Non se puido cargar a icona "<ph name="ICON" />" para a acción da páxina.</translation> <translation id="6569934958368283244">Outras persoas</translation> <translation id="657402800789773160">&Recargar esta páxina</translation> <translation id="6577284282025554716">Cancelouse a descarga do ficheiro <ph name="FILE_NAME" /></translation> @@ -4219,7 +4216,6 @@ <translation id="6659594942844771486">Pestana</translation> <translation id="6664237456442406323">Desafortunadamente, o teu ordenador está configurado cun ID de hardware incorrecto. Isto impide que Chrome OS se actualice coas correccións de seguranza máis recentes e é posible que o teu ordenador <ph name="BEGIN_BOLD" />sexa vulnerable a ataques malintencionados<ph name="END_BOLD" />.</translation> <translation id="6664774537677393800">Produciuse un erro ao abrir o perfil. Pecha sesión e despois iníciaa de novo.</translation> -<translation id="6667776121818773738">A imaxe compartiuse desde outro dispositivo</translation> <translation id="6673391612973410118"><ph name="PRINTER_MAKE_OR_MODEL" /> (USB)</translation> <translation id="667517062706956822">Queres que Google traduza esta páxina do <ph name="SOURCE_LANGUAGE" /> ao <ph name="TARGET_LANGUAGE" />?</translation> <translation id="6675665718701918026">Conectouse o dispositivo apuntador</translation> @@ -4840,7 +4836,6 @@ <translation id="7497981768003291373">Non se capturou ningún rexistro WebRTC recentemente.</translation> <translation id="7502658306369382406">Enderezo IPv6</translation> <translation id="7503191893372251637">Tipo de certificado de Netscape</translation> -<translation id="7503821294401948377">Non se puido cargar a icona "<ph name="ICON" />" para a acción do navegador.</translation> <translation id="7503985202154027481">Conservarase un rexistro da túa visita a este sitio na túa chave de seguranza.</translation> <translation id="7504293978434250212">A túa organización pode analizar ficheiros de ata 50 MB. Tenta cargar un ficheiro máis pequeno.</translation> <translation id="750509436279396091">Abrir cartafol de descargas</translation> @@ -5642,7 +5637,6 @@ <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="8550165047974571882"><ph name="ORIGIN" /> poderá editar os ficheiros de <ph name="FOLDERNAME" /> ata que peches todas as pestanas de <ph name="ORIGIN" /></translation> <translation id="8551388862522347954">Licenzas</translation> <translation id="8553342806078037065">Xestionar outras persoas</translation> <translation id="8554899698005018844">Ningún idioma</translation>
diff --git a/chrome/app/resources/generated_resources_gu.xtb b/chrome/app/resources/generated_resources_gu.xtb index 7c8846f..8023cc08 100644 --- a/chrome/app/resources/generated_resources_gu.xtb +++ b/chrome/app/resources/generated_resources_gu.xtb
@@ -1116,7 +1116,6 @@ <translation id="247949520305900375">ઑડિઓ શેર કરો</translation> <translation id="2480868415629598489">તમે કૉપિ અને પેસ્ટ કરો છો તે ડેટાને સંશોધિત કરો</translation> <translation id="2482878487686419369">સૂચનાઓ</translation> -<translation id="2483610039979585156">જ્યાં સુધી તમે બધાં <ph name="ORIGIN" /> ટૅબ બંધ નહીં કરો ત્યાં સુધી <ph name="ORIGIN" /> <ph name="FILENAME" />માં ફેરફાર કરી શકશે</translation> <translation id="2484959914739448251">તમારા બધા સિંક કરેલા ડિવાઇસ અને તમારા Google એકાઉન્ટમાંથી બ્રાઉઝિંગ ડેટા સાફ કરવા માટે, <ph name="BEGIN_LINK" />તમારો પાસફ્રેઝ દાખલ કરો<ph name="END_LINK" />.</translation> <translation id="2485005079599453134">આ ડિવાઇસ પર પાસવર્ડ સાચવવામાં આવ્યા</translation> <translation id="2485422356828889247">અનઇન્સ્ટૉલ કરો</translation> @@ -1721,7 +1720,6 @@ <translation id="3282568296779691940">Chrome માં સાઇન ઇન કરો</translation> <translation id="3285322247471302225">નવું &ટૅબ</translation> <translation id="328571385944182268">તમારા પાસવર્ડ સાચવીએ?</translation> -<translation id="328785681103589998">જ્યાં સુધી તમે બધી <ph name="ORIGIN" /> ટૅબ બંધ નહીં કરો ત્યાં સુધી <ph name="ORIGIN" /> <ph name="FILENAME" />ને જોઈ શકશે</translation> <translation id="3288047731229977326">ડેવલપર મોડમાં ચાલી રહેલા એક્સટેન્શન તમારા કમ્પ્યુટરને નુકસાન પહોંચાડી શકે છે. જો તમે ડેવલપર નથી, તો તમે સુરક્ષિત રહેવા માટે ડેવલપર મોડમાં ચાલી રહેલા આ એક્સ્ટેન્શનને બંધ કરવા જોઈએ.</translation> <translation id="3289856944988573801">અપડેટ તપાસવા માટે, કૃપા કરીને ઇથરનેટ અથવા વાઇ-ફાઇનો ઉપયોગ કરો.</translation> <translation id="3290356915286466215">અસુરક્ષિત</translation> @@ -2410,6 +2408,7 @@ <translation id="4144218403971135344">બહેતર ક્વૉલિટીના વીડિઓ મેળવો અને બૅટરી આવરદા સાચવો. વીડિઓ માત્ર તમારી કાસ્ટ ચાલુ કરેલ હોય એવી સ્ક્રીન પર જ ચલાવવામાં આવશે.</translation> <translation id="4146026355784316281">હંમેશા સિસ્ટમ દર્શક સાથે ખોલો</translation> <translation id="4146785383423576110">રીસેટ કરો અને સાફ કરો</translation> +<translation id="4147897805161313378">Google ફોટો</translation> <translation id="4147911968024186208">કૃપા કરીને ફરી પ્રયાસ કરો. જો તમને આ ભૂલ ફરી દેખાય તો કૃપા કરીને તમારા સપોર્ટ પ્રતિનિધિનો સંપર્ક કરો.</translation> <translation id="4150201353443180367">ડિસ્પ્લે</translation> <translation id="4152670763139331043">{NUM_TABS,plural, =1{1 ટેબ}one{# ટેબ્સ}other{# ટેબ્સ}}</translation> @@ -2729,6 +2728,7 @@ <translation id="4633757335284074492">Google ડ્રાઇવ પર બૅકઅપ લો. ડેટાને સરળતાથી પાછો મેળવો અથવા ડિવાઇસને કોઈપણ સમયે સ્વિચ કરો. આ બૅકઅપમાં ઍપનો ડેટા શામેલ છે. બૅકઅપને Google પર અપલોડ કરવામાં આવે છે અને તમારા બાળકના Google એકાઉન્ટ પાસવર્ડનો ઉપયોગ કરીને એન્ક્રિપ્ટ કરવામાં આવે છે.</translation> <translation id="4634771451598206121">ફરીથી સાઇન ઇન કરો....</translation> <translation id="4635398712689569051">અતિથિ વપરાશકર્તાઓ માટે <ph name="PAGE_NAME" /> ઉપલબ્ધ નથી.</translation> +<translation id="4636930964841734540">માહિતી</translation> <translation id="4637083375689622795">વધુ ક્રિયાઓ, <ph name="EMAIL" /></translation> <translation id="4638930039313743000">ADB ડિબગીંગ ચાલુ કરો</translation> <translation id="4641539339823703554">Chrome, સિસ્ટમ સમય સેટ કરવામાં અસમર્થ હતું. કૃપા કરીને નીચે સમય તપાસો અને જરૂર પડવા પર તેને ઠીક કરો.</translation> @@ -2808,7 +2808,6 @@ <translation id="4750394297954878236">સૂચનો</translation> <translation id="475088594373173692">પ્રથમ વપરાશકર્તા</translation> <translation id="4751476147751820511">મોશન અથવા લાઇટ સેન્સર</translation> -<translation id="4756269098451810636"><ph name="DEVICE_NAME" />માંથી શેર કરેલી છબી</translation> <translation id="4756378406049221019">રોકો/ફરીથી લોડ કરો</translation> <translation id="4756388243121344051">&ઇતિહાસ</translation> <translation id="4759238208242260848">ડાઉનલોડ્સ</translation> @@ -3757,7 +3756,6 @@ <translation id="6040852767465482106">અજાણ ઓળખાણ</translation> <translation id="6041046205544295907"><ph name="BEGIN_PARAGRAPH1" />Googleની સ્થાન સેવા, તમારા ડિવાઇસના સ્થાનનું અનુમાન લગાવવામાં સહાય માટે વાઇ-ફાઇ, મોબાઇલ નેટવર્ક અને સેન્સર જેવા સૉર્સનો ઉપયોગ કરે છે.<ph name="END_PARAGRAPH1" /> <ph name="BEGIN_PARAGRAPH2" />તમે તમારા ડિવાઇસ પરની મુખ્ય સ્થાન સેટિંગને બંધ કરીને સ્થાન સેવાને બંધ કરી શકો છો. તમે સ્થાન સેટિંગમાં સ્થાન સેવા માટે વાઇ-ફાઇ, મોબાઇલ નેટવર્ક અને સેન્સરનો ઉપયોગ પણ બંધ કરી શકો છો.<ph name="END_PARAGRAPH2" /></translation> -<translation id="6041150002191391409">જ્યાં સુધી તમે બધાં <ph name="ORIGIN" /> ટૅબ બંધ નહીં કરો ત્યાં સુધી <ph name="ORIGIN" /> <ph name="FOLDERNAME" />માંની ફાઇલો જોઈ શકશે</translation> <translation id="6041155700700864984">પૂર્ણસ્ક્રીનમાંથી બહાર નીકળો</translation> <translation id="604124094241169006">સ્વચલિત</translation> <translation id="6042308850641462728">વધુ</translation> @@ -4153,7 +4151,6 @@ <translation id="6561726789132298588">Enter</translation> <translation id="656293578423618167">ફાઇલ પાથ અથવા નામ ખૂબ લાંબા છે. કૃપા કરીને ટૂંકા નામથી બીજી જગ્યાએ સાચવો.</translation> <translation id="6563469144985748109">તમારા સંચાલકે હજી સુધી તેને મંજૂર કરેલ નથી</translation> -<translation id="6567688344210276845">પૃષ્ઠ ક્રિયા માટે આયકન '<ph name="ICON" />' લોડ કરી શકાયું નથી.</translation> <translation id="6569934958368283244">અન્ય લોકો</translation> <translation id="657402800789773160">&Reload This Page</translation> <translation id="6577284282025554716">ડાઉનલોડ રદ કર્યું: <ph name="FILE_NAME" /></translation> @@ -4218,7 +4215,6 @@ <translation id="6659594942844771486">ટૅબ</translation> <translation id="6664237456442406323">દુર્ભાગ્યપણે, તમારું કમ્પ્યુટર ખરાબ હાર્ડવેર ID સાથે કોન્ફિગર કરાયેલું છે. આ Chrome OSને સુરક્ષા માટેના નવા ફિક્સના અપડેટથી રોકે છે અને તમારા કમ્પ્યુટરને <ph name="BEGIN_BOLD" />હાનિકાર હુમલાઓનો સમાનો કરવામાં<ph name="END_BOLD" /> અસક્ષમ બનાવી શકે.</translation> <translation id="6664774537677393800">તમારી પ્રોફાઇલ ખોલતી વખતે કંઈક ખોટું થયું. કૃપા કરીને સાઇન આઉટ કરો પછી ફરીથી સાઇન ઇન કરો.</translation> -<translation id="6667776121818773738">અન્ય ડિવાઇસમાંથી શેર કરવામાં આવેલી છબી</translation> <translation id="6673391612973410118"><ph name="PRINTER_MAKE_OR_MODEL" /> (USB)</translation> <translation id="667517062706956822">શું તમે ઇચ્છો છો કે Google, <ph name="SOURCE_LANGUAGE" /> થી <ph name="TARGET_LANGUAGE" /> માં આ પૃષ્ઠનો અનુવાદ કરે?</translation> <translation id="6675665718701918026">પોઇંટિંગ ઉપકરણ કનેક્ટ કર્યું</translation> @@ -4839,7 +4835,6 @@ <translation id="7497981768003291373">તમારી પાસે તાજેતરમાં કૅપ્ચર કરેલ કોઈ WebRTC ટેક્સ્ટ લૉગ નથી.</translation> <translation id="7502658306369382406">IPv6 સરનામું</translation> <translation id="7503191893372251637">નેટસ્કેપ પ્રમાણપત્રનો પ્રકાર</translation> -<translation id="7503821294401948377">બ્રાઉઝર ક્રિયા માટે આયકન '<ph name="ICON" />' લોડ કરી શકાયું નથી.</translation> <translation id="7503985202154027481">આ સાઇટની તમારી મુલાકાતનો રેકોર્ડ તમારા સુરક્ષા કોડ પર રાખવામાં આવશે.</translation> <translation id="7504293978434250212">તમારી સંસ્થા 50 MB સુધીની ફાઇલોને સ્કૅન કરી શકે છે. વધારે નાની ફાઇલ અપલોડ કરીને પ્રયાસ કરો.</translation> <translation id="750509436279396091">ડાઉનલોડ્સ ફોલ્ડર ખોલો</translation> @@ -5636,7 +5631,6 @@ <translation id="8546930481464505581">ટચ બારને કસ્ટમાઇઝ કરો</translation> <translation id="8547013269961688403">પૂર્ણસ્ક્રીન મેગ્નિફાયર ચાલુ કરો</translation> <translation id="85486688517848470">ટોચની-પંક્તિ કીની વર્તણૂંક બદલવા માટે શોધ કી દબાવી રાખો</translation> -<translation id="8550165047974571882">જ્યાં સુધી તમે બધાં <ph name="ORIGIN" /> ટૅબ બંધ નહીં કરો ત્યાં સુધી <ph name="ORIGIN" /> <ph name="FOLDERNAME" />માંની ફાઇલોમાં ફેરફાર કરી શકશે</translation> <translation id="8551388862522347954">લાઇસેંસીસ</translation> <translation id="8553342806078037065">અન્ય લોકોને સંચાલિત કરો</translation> <translation id="8554899698005018844">કોઈ ભાષા નથી</translation>
diff --git a/chrome/app/resources/generated_resources_hi.xtb b/chrome/app/resources/generated_resources_hi.xtb index 9baafe7..74e7933 100644 --- a/chrome/app/resources/generated_resources_hi.xtb +++ b/chrome/app/resources/generated_resources_hi.xtb
@@ -163,6 +163,7 @@ <translation id="1211364473545090084">गुप्त विंडो के ज़रिए अपना ब्राउज़िंग इतिहास सेव किए बगैर वेब का उपयोग करें</translation> <translation id="1211769675100312947">शॉर्टकट आप चुनते हैं</translation> <translation id="1213037489357051291"><ph name="NUM_FINGERPRINTS" /> फ़िंगरप्रिंट को सेट अप किया गया</translation> +<translation id="1213254615020057352">इस्तेमाल और गड़बड़ी की जानकारी से जुड़ा डेटा भेजें. Google को गड़बड़ी, डिवाइस, और ऐप्लिकेशन के इस्तेमाल से जुड़ा डेटा अपने-आप भेजकर, अपने बच्चे के Android अनुभव को बेहतर बनाने में मदद करें. इसका इस्तेमाल आपके बच्चे की पहचान करने के लिए नहीं किया जाएगा. यह सिस्टम और ऐप्लिकेशन की स्थिरता बढ़ाने और दूसरे सुधार करने में मदद करेगा. एग्रीगेट किया गया कुछ डेटा, Google ऐप्लिकेशन और पार्टनर की भी मदद करेगा. जैसे, Android डेवलपर. यह सेटिंग, डिवाइस के मालिक ने लागू की है. डिवाइस का मालिक, गड़बड़ी और इस डिवाइस के इस्तेमाल से जुड़ा डेटा Google को भेजने का विकल्प चुन सकता है. अगर आपके बच्चे के लिए 'अन्य वेब और ऐप्लिकेशन गतिविधि' सेटिंग चालू है, तो यह डेटा उसके Google खाते में सेव किया जा सकता है.</translation> <translation id="1215411991991485844">नया बैकग्राउंड ऐप्लिकेशन जोड़ा गया</translation> <translation id="1217483152325416304">आपका स्थानीय डेटा जल्द ही मिटा दिया जाएगा</translation> <translation id="1217668622537098248">कार्रवाई के बाद बायां क्लिक वापस लाएं</translation> @@ -292,6 +293,7 @@ <translation id="1398853756734560583">बड़ा करें</translation> <translation id="139911022479327130">अपना फ़ोन अनलॉक करके इस बात की पुष्टि करें कि यह आप ही हैं</translation> <translation id="1399511500114202393">कोई 'उपयोगकर्ता प्रमाणपत्र' नहीं</translation> +<translation id="1401308693935339022">जगह की जानकारी इस्तेमाल करें. जगह की जानकारी देखने की अनुमति मांगने वाले ऐप्लिकेशन और सेवाओं को इस डिवाइस की जगह की जानकारी का इस्तेमाल करने दें. Google समय-समय पर जगह से जुड़ा डेटा इकट्ठा कर सकता है. साथ ही, जगह की जानकारी को ज़्यादा सटीक बनाने और उससे जुड़ी सेवाओं में सुधार के लिए, आपकी पहचान ज़ाहिर किए बगैर यह डेटा इस्तेमाल कर सकता है.</translation> <translation id="140520891692800925"><ph name="PROFILE_DISPLAY_NAME" /> (पर्यवेक्षित)</translation> <translation id="1405779994569073824">बंद हो गया.</translation> <translation id="1406500794671479665">सत्यापन हो रहा है...</translation> @@ -390,7 +392,7 @@ <translation id="1524563461097350801">नहीं, रहने दें</translation> <translation id="1525740877599838384">स्थान तय करने के लिए सिर्फ़ वाई-फ़ाई का इस्तेमाल करें</translation> <translation id="152629053603783244">Linux को रीस्टार्ट करें</translation> -<translation id="1526335046150927198">टचपैड पर स्क्रोल की रफ़्तार बढ़ाने की सुविधा चालू करें</translation> +<translation id="1526335046150927198">टचपैड से स्क्रोल करने की रफ़्तार बढ़ाने की सुविधा चालू करें</translation> <translation id="1526560967942511387">शीर्षक रहित दस्तावेज़</translation> <translation id="1529891865407786369">पावर स्रोत</translation> <translation id="1530838837447122178">माउस और टचपैड डिवाइस सेटिंग खोलें</translation> @@ -625,6 +627,7 @@ <translation id="1819721979226826163">ऐप्लिकेशन सूचनाएं > Google Play सेवाएं पर टैप करें.</translation> <translation id="1820028137326691631">एडमिन का दिया हुआ पासवर्ड डालें</translation> <translation id="1822140782238030981">पहले से Chrome इस्तेमाल कर रहे हैं? तो साइन इन करें</translation> +<translation id="18245044880483936">बैकअप लिया गया डेटा, आपके बच्चे की डिस्क मेमोरी में नहीं गिना जाएगा.</translation> <translation id="1826516787628120939">जाँच की जा रही है</translation> <translation id="1828378091493947763">यह प्लग इन इस डिवाइस पर समर्थित नहीं है</translation> <translation id="1828901632669367785">सिस्टम डॉयलॉग का उपयोग करके प्रिंट करें…</translation> @@ -718,7 +721,7 @@ <translation id="1944528062465413897">ब्लूटूथ इस्तेमाल करके डिवाइस जोड़ने का कोड</translation> <translation id="1944921356641260203">अपडेट मिला</translation> <translation id="1946577776959096882">खातों को देखें</translation> -<translation id="1951012854035635156">सहायक</translation> +<translation id="1951012854035635156">Assistant</translation> <translation id="1954813140452229842">शेयर माउंट करने में गड़बड़ी. कृपया अपने क्रेडेंशियल देखें और दोबारा कोशिश करें.</translation> <translation id="1956050014111002555">फ़ाइल में एकाधिक प्रमाणपत्र थे, जिनमें से किसी को भी आयात नहीं किया गया था:</translation> <translation id="1956390763342388273">यह "<ph name="FOLDER_PATH" />" से सभी फ़ाइलों को अपलोड कर देगा. ऐसा तभी करें जब आपको साइट पर विश्वास हो.</translation> @@ -736,6 +739,7 @@ <translation id="1976323404609382849">एकाधिक साइटों से कुकी को अवरोधित किया गया.</translation> <translation id="1977965994116744507">अपने <ph name="DEVICE_TYPE" /> को अनलॉक करने के लिए अपने फ़ोन को पास लाएं.</translation> <translation id="1978006917103730774">आने वाले सॉफ़्टवेयर और सुरक्षा के अपडेट अपने आप इंस्टॉल हो जाएंगे.</translation> +<translation id="1979095679518582070">इस सुविधा को बंद करने के बाद भी यह डिवाइस, सिस्टम अपडेट, और सुरक्षा जैसी ज़रूरी सेवाएं पाने के लिए जानकारी भेज सकेगा.</translation> <translation id="1979280758666859181">आप <ph name="PRODUCT_NAME" /> के पुराने वर्शन वाले चैनल में बदल रहे हैं. चैनल बदलाव तब लागू किया जाएगा जब चैनल का वर्शन आपके डिवाइस पर वर्तमान में इंस्टॉल किए गए वर्शन से मिलान करेगा.</translation> <translation id="197989455406964291">केडीसी में सुरक्षित करने का यह तरीका इस्तेमाल नहीं किया जा सकता.</translation> <translation id="1982354452682152483">कोई जानकारी मौजूद नहीं है.</translation> @@ -1012,6 +1016,7 @@ <translation id="2347644257713614136">Hangouts और Cast for Education का इस्तेमाल 'Google निजता नीति' से नियंत्रित होता है.</translation> <translation id="2348176352564285430">ऐप्लिकेशन: <ph name="ARC_PROCESS_NAME" /></translation> <translation id="234889437187286781">डेटा लोड होने में कोई गड़बड़ी हुई</translation> +<translation id="2349896577940037438">अगर आपकी दूसरी 'वेब और ऐप्लिकेशन गतिविधि' सेटिंग चालू है, तो यह डेटा आपके Google खाते में सेव किया जा सकता है. आप account.google.com पर जाकर अपना डेटा देख सकते हैं, उसे मिटा सकते हैं, और अपने खाते की सेटिंग बदल सकते हैं.</translation> <translation id="2350133097354918058">फिर से लोड किया गया</translation> <translation id="2350182423316644347">ऐप्स आरंभ किया जा रहा है...</translation> <translation id="2350796302381711542"><ph name="HANDLER_HOSTNAME" /> को <ph name="REPLACED_HANDLER_TITLE" /> के बजाय सभी <ph name="PROTOCOL" /> लिंक खोलने दें?</translation> @@ -1033,6 +1038,7 @@ <translation id="2371076942591664043">&पू्र्ण होने पर खोलें</translation> <translation id="2373666622366160481">जिस कागज़ पर प्रिंट किया जाना है उसके आकार के हिसाब से फ़िट करें</translation> <translation id="2375406435414127095">अपने फ़ोन से जोड़ें</translation> +<translation id="2377588536920405462">जगह की जानकारी देना बंद करने के लिए, आप डिवाइस की सेटिंग में जाकर 'जगह की सेटिंग' बंद कर सकते हैं. आप जगह की सेटिंग में जाकर वाई-फ़ाई, मोबाइल नेटवर्क, और जगह की जानकारी का पता लगाने वाले सेंसर का इस्तेमाल करना बंद भी कर सकते हैं.</translation> <translation id="2377667304966270281">हार्ड फ़ॉल्ट</translation> <translation id="237828693408258535">क्या इस पेज का अनुवाद करना चाहते हैं?</translation> <translation id="2378346380592252785"><ph name="SHARE_PATH" /> के क्रेडेंशियल अपडेट करें.</translation> @@ -1114,7 +1120,6 @@ <translation id="247949520305900375">ऑडियो शेयर करें</translation> <translation id="2480868415629598489">अपने कॉपी किए हुए और चिपकाए हुए डेटा में बदलाव करें</translation> <translation id="2482878487686419369">सूचनाएं</translation> -<translation id="2483610039979585156">आप जब तक <ph name="ORIGIN" /> वाले सभी टैब बंद नहीं कर देते, <ph name="ORIGIN" /> <ph name="FILENAME" /> में बदलाव कर सकता है</translation> <translation id="2484959914739448251">अपने सभी सिंक किए हुए डिवाइस और अपने 'Google खाते' से ब्राउज़िंग डेटा साफ़ करने के लिए, <ph name="BEGIN_LINK" />अपना लंबा पासवर्ड डालें<ph name="END_LINK" />.</translation> <translation id="2485005079599453134">इस डिवाइस पर सेव किया गया पासवर्ड</translation> <translation id="2485422356828889247">विस्थापित करें</translation> @@ -1181,6 +1186,7 @@ <translation id="2553340429761841190"><ph name="PRODUCT_NAME" />, <ph name="NETWORK_ID" /> से कनेक्ट करने में असमर्थ था. कृपया कोई अन्य नेटवर्क चुनें या फिर से प्रयास करें.</translation> <translation id="2553440850688409052">यह प्लग इन छुपाएं</translation> <translation id="2554553592469060349">चुनी गई फ़ाइल बहुत बड़ी है (अधिकतम आकार: 3mb).</translation> +<translation id="2556092377360758201">कोई सुरक्षा नहीं (हम ऐसा करने का सुझाव नहीं देते)</translation> <translation id="2557378327156922632">इस फ़ाइल में संवेदनशील सामग्री है.</translation> <translation id="255747371423522804">मौजूदा समूह में जोड़ें</translation> <translation id="2558896001721082624">सिस्टम मेन्यू में सुलभता विकल्प हमेशा दिखाएं</translation> @@ -1276,6 +1282,7 @@ <translation id="2682498795777673382">आपके अभिभावक की तरफ़ से अपडेट</translation> <translation id="2683638487103917598">फ़ोल्डर क्रमबद्ध किया गया</translation> <translation id="2684004000387153598">जारी रखने के लिए, ठीक पर क्लिक करें, फिर व्यक्ति जोड़ें पर क्लिक करें, ताकि आप अपने ईमेल पते के लिए नई प्रोफ़ाइल बना सकें.</translation> +<translation id="2687403674020088961">सभी कुकी ब्लॉक करें (हम ऐसा करने का सुझाव नहीं देते)</translation> <translation id="2688196195245426394">डिवाइस को सर्वर के साथ पंजीकृत करते समय गड़बड़ी: <ph name="CLIENT_ERROR" />.</translation> <translation id="2690024944919328218">भाषा के विकल्प दिखाएं</translation> <translation id="2691385045260836588">मॉडल</translation> @@ -1456,6 +1463,7 @@ <translation id="2903457445916429186">चुने गए आइटम खोलें</translation> <translation id="2903882649406874750"><ph name="HOST" /> को सेंसर ऐक्सेस करने से हमेशा ब्लॉक करें</translation> <translation id="2904456025988372123">जब कोई साइट पहली फ़ाइल के बाद फ़ाइलों को अपने आप डाउनलोड करने का प्रयास करे, तो पूछें</translation> +<translation id="2905789169763945526">गुप्त मोड इस्तेमाल करने पर, कोई भी साइट कुकी की मदद से आपकी ब्राउज़िंग गतिविधि की जानकारी का इस्तेमाल, आपकी पसंद को ध्यान में रखकर विज्ञापन दिखाने के लिए नहीं कर पाएगी. कुछ साइटें शायद ठीक से काम नहीं करेंगी.</translation> <translation id="2907619724991574506">स्टार्टअप यूआरएल</translation> <translation id="2907798539022650680">'<ph name="NAME" />' से कनेक्ट करने में विफल: <ph name="DETAILS" /> सर्वर का संदेश: <ph name="SERVER_MSG" /></translation> @@ -1716,7 +1724,6 @@ <translation id="3282568296779691940">Chrome में साइन इन करें</translation> <translation id="3285322247471302225">नया &टैब</translation> <translation id="328571385944182268">क्या आप पासवर्ड सेव करना चाहते हैं?</translation> -<translation id="328785681103589998"><ph name="ORIGIN" />, <ph name="FILENAME" /> को तब तक देख पाएगी, जब तक आप सभी <ph name="ORIGIN" /> टैब बंद नहीं कर देते</translation> <translation id="3288047731229977326">डेवलपर मोड में चलने वाले एक्सटेंशन आपके कंप्यूटर को नुकसान पहुंचा सकते हैं. अगर आप डेवलपर नहीं हैं तो, सुरक्षित रहने के लिए आपको डेवलपर मोड मे चलने वाले इन एक्सटेंशन को बंद कर देना चाहिए.</translation> <translation id="3289856944988573801">अपडेट की जाँच करने के लिए, कृपया Ethernet या वाई-फ़ाई का उपयोग करें.</translation> <translation id="3290356915286466215">असुरक्षित</translation> @@ -1750,6 +1757,7 @@ <translation id="3328489342742826322">बैकअप डेटा बहाल करने से, आपके Linux फ़ाइलों और फ़ोल्डर में मौजूद Linux ऐप्लिकेशन और डेटा मिट जाएंगे.</translation> <translation id="3331321258768829690">(<ph name="UTCOFFSET" />) <ph name="LONGTZNAME" /> (<ph name="EXEMPLARCITY" />)</translation> <translation id="3331974543021145906">ऐप्लिकेशन की जानकारी</translation> +<translation id="3333190335304955291">सेटिंग में जाकर आप यह सेवा बंद कर सकते हैं</translation> <translation id="3334632933872291866"><ph name="WINDOW_TITLE" /> - वीडियो 'पिक्चर में पिक्चर' मोड में चल रहा है</translation> <translation id="3335947283844343239">बंद किए गए टैब फिर से खोलें</translation> <translation id="3336664756920573711">अपने <ph name="DEVICE_TYPE" /> को अपने Android फ़ोन से अनलॉक करें</translation> @@ -1785,6 +1793,7 @@ <translation id="338583716107319301">विभाजक</translation> <translation id="338691029516748599"><ph name="NETWORK_COUNT" /> में से <ph name="NETWORK_INDEX" /> नेटवर्क, <ph name="NETWORK_NAME" />, <ph name="SECURITY_STATUS" />, सिग्नल की क्षमता <ph name="SIGNAL_STRENGTH" />%, आपका एडमिन प्रबंधित करता है, कनेक्ट करें</translation> <translation id="3387614642886316601">'बेहतर वर्तनी जाँच' का इस्तेमाल करें</translation> +<translation id="3390724530210028866">Chrome आपके पासवर्ड की जांच नहीं कर सकता.</translation> <translation id="3390741581549395454">Linux ऐप्लिकेशन और फ़ाइलों का बैक अप ले लिया गया है. जल्द ही बेहतर बनाने की प्रोसेस शुरू हो जाएगी.</translation> <translation id="3396800784455899911">"स्वीकार करें और जारी रखें" बटन पर क्लिक करके, आप पुष्टि करते हैं कि इन Google सेवाओं के लिए ऊपर बताई गई प्रोसेसिंग से आप सहमत हैं.</translation> <translation id="3399432415385675819">नोटिफ़िकेशन अक्षम हो जाएंगे</translation> @@ -1813,10 +1822,12 @@ <translation id="3432762828853624962">शेयर किए गए वर्कर</translation> <translation id="3433621910545056227">ओह! सिस्टम डिवाइस इंस्टॉलेशन-समय विशेषता लॉक स्थापित नहीं कर पाया.</translation> <translation id="3434107140712555581"><ph name="BATTERY_PERCENTAGE" />%</translation> +<translation id="3434272557872943250">अगर आपके बच्चे के लिए 'अन्य वेब और ऐप्लिकेशन गतिविधि' सेटिंग चालू है, तो यह डेटा उसके Google खाते में सेव किया जा सकता है. इन सेटिंग के बारे में ज़्यादा जानें. साथ ही, जानें कि families.google.com पर इन्हें कैसे नियंत्रित करें.</translation> <translation id="3435688026795609344">"<ph name="EXTENSION_NAME" />" आपके <ph name="CODE_TYPE" /> का अनुरोध कर रहा है</translation> <translation id="3435738964857648380">सुरक्षा</translation> <translation id="343578350365773421">काग़ज़ खत्म हो गया है</translation> <translation id="3435896845095436175">चालू करें</translation> +<translation id="3436642683618870087">लाइव कैप्शन की सुविधा, Chrome में चल रहे किसी भी मीडिया के ऑडियो या वीडियो में हो रही बातचीत को पहचान कर अपने-आप कैप्शन बना देती है.</translation> <translation id="3438633801274389918">निंजा</translation> <translation id="3439153939049640737"><ph name="HOST" /> को कभी भी अपना माइक्रोफ़ोन एक्सेस करने दें</translation> <translation id="3439970425423980614">PDF को 'झलक' में खोल रहे हैं</translation> @@ -1892,6 +1903,7 @@ <translation id="3528033729920178817">यह पेज आपकी स्थिति ट्रैक कर रहा है.</translation> <translation id="3528498924003805721">शॉर्टकट लक्ष्य</translation> <translation id="353316712352074340"><ph name="WINDOW_TITLE" /> - ऑडियो म्यूट किया गया</translation> +<translation id="3533694711092285624">सेव किया हुआ कोई भी पासवर्ड नहीं है. Chrome आपके पासवर्ड की जांच तब कर सकता है, जब आप उन्हें सेव करें.</translation> <translation id="3538066758857505094">Linux अनइंस्टॉल करने में गड़बड़ी हुई. कृपया फिर से कोशिश करें.</translation> <translation id="354060433403403521">AC एडॉप्टर</translation> <translation id="354068948465830244">यह साइट डेटा पढ़ सकता है और बदल सकता है</translation> @@ -1937,6 +1949,7 @@ <translation id="3593965109698325041">प्रमाणपत्र नाम बाध्यताएं</translation> <translation id="3595381248165458839">अपने संगठन के डिवाइस एडमिन से संपर्क करें</translation> <translation id="3596235046596950091">क्लाउड सेवाएं चालू करें</translation> +<translation id="3596414637720633074">गुप्त मोड के दौरान तीसरे पक्ष की कुकी को ब्लॉक करें</translation> <translation id="3599221874935822507">बढ़ाया गया</translation> <translation id="3599863153486145794">साइन इन किए हुए सभी डिवाइसों से इतिहास साफ़ कर देता है. आपके Google खाते में <ph name="BEGIN_LINK" />myactivity.google.com<ph name="END_LINK" /> पर अन्य प्रकार के ब्राउज़िंग इतिहास हो सकते हैं.</translation> <translation id="3600051066689725006">वेब अनुरोध की जानकारी</translation> @@ -2067,6 +2080,7 @@ <translation id="3742055079367172538">स्क्रीनशॉट लिया गया</translation> <translation id="3742666961763734085">इस नाम की संगठनात्मक इकाई नहीं मिल पा रही है. कृपया फिर से कोशिश करें.</translation> <translation id="3744111561329211289">बैकग्राउंड सिंक</translation> +<translation id="3746127522257263495">Android ऐप्लिकेशन में 'शिक्षा के लिए G Suite' खाता नहीं जोड़ा जा सकता.</translation> <translation id="3747039297326604768">Plugin VM को खोला नहीं जा सका</translation> <translation id="3747077776423672805">ऐप्लिकेशन हटाने के लिए, सेटिंग > 'Google Play स्टोर' > Android से जुड़ी पसंद प्रबंधित करें > ऐप्लिकेशन या ऐप्लिकेशन मैनेजर पर जाएं. उसके बाद उस ऐप्लिकेशन पर टैप करें जिसे आप अनइंस्टॉल करना चाहते हैं (ऐप्लिकेशन ढूंढने के लिए आपको दाएं या बाएं स्वाइप करना पड़ सकता है). फिर 'अनइंस्टॉल करें' या 'बंद करें' पर टैप करें.</translation> <translation id="3748026146096797577">कनेक्ट नहीं है</translation> @@ -2087,6 +2101,7 @@ <translation id="3765246971671567135">ऑफ़लाइन डेमो मोड नीति पढ़ी नहीं जा सकी.</translation> <translation id="3768037234834996183">आपकी प्राथमिकताएं समन्वयित की जा रही हैं...</translation> <translation id="377050016711188788">आइसक्रीम</translation> +<translation id="3771290962915251154">यह सेटिंग बंद है, क्योंकि 'माता-पिता के नियंत्रण में' सुविधा चालू है</translation> <translation id="3771294271822695279">वीडियो फ़ाइलें</translation> <translation id="3775432569830822555">SSL सर्वर प्रमाणपत्र</translation> <translation id="3775705724665058594">अपने डिवाइस पर भेजें</translation> @@ -2147,11 +2162,12 @@ <translation id="383161972796689579">इस डिवाइस के मालिक ने नए उपयोगकर्ता जोड़े जाना अक्षम कर दिया है</translation> <translation id="3834775135533257713">"<ph name="TO_INSTALL_APP_NAME" />" ऐप्लिकेशन जोड़ा नहीं जा सका क्योंकि उसका "<ph name="INSTALLED_APP_NAME" />" से विरोध है.</translation> <translation id="3835522725882634757">ओह, नहीं! यह सर्वर ऐसे डेटा भेज रहा है, जो <ph name="PRODUCT_NAME" /> नहीं समझ सकता. कृपया <ph name="BEGIN_LINK" />किसी गड़बड़ी की रिपोर्ट करें<ph name="END_LINK" />, और <ph name="BEGIN2_LINK" />कम पूरी हुई सूची<ph name="END2_LINK" /> शामिल करें.</translation> +<translation id="383669374481694771">यह इस डिवाइस और इसके इस्तेमाल (जैसे कि बैटरी कितनी चार्ज है, सिस्टम, और ऐप्लिकेशन की गतिविधि और गड़बड़ियां) से जुड़ी सामान्य जानकारी है. डिवाइस से जुड़े इस डेटा का इस्तेमाल Android काे बेहतर बनाने के लिए किया जाएगा. साथ ही, इकट्ठा की गई कुछ जानकारी की मदद से Android डेवलपर जैसे पार्टनर और Google के ऐप्लिकेशन अपने उत्पाद को बेहतर बना पाएंगे.</translation> <translation id="3838085852053358637">एक्सटेंशन लोड नहीं हो सका</translation> <translation id="3838486795898716504">ज़्यादा <ph name="PAGE_TITLE" /></translation> <translation id="3838543471119263078">कुकी और अन्य साइट और प्लग इन डेटा</translation> <translation id="383891835335927981">कोई भी साइट ज़ूम इन या ज़ूम आउट नहीं की गई है</translation> -<translation id="3839509547554145593">माउस पर स्क्रोल की रफ़्तार बढ़ाने की सुविधा चालू करें</translation> +<translation id="3839509547554145593">माउस से स्क्रोल करने की रफ़्तार बढ़ाने की सुविधा चालू करें</translation> <translation id="3839516600093027468"><ph name="HOST" /> को क्लिपबोर्ड देखने से हमेशा ब्लॉक करें</translation> <translation id="3841964634449506551">पासवर्ड अमान्य है</translation> <translation id="3842552989725514455">Serif फ़ॉन्ट</translation> @@ -2164,6 +2180,7 @@ <translation id="3854976556788175030">आउटपुट ट्रे भरी हुई है</translation> <translation id="3855441664322950881">एक्सटेंशन पैक करें</translation> <translation id="3855676282923585394">बुकमार्क और सेटिंग आयात करें...</translation> +<translation id="3856096718352044181">कृपया पुष्टि करें कि यह एक मान्य डीएनएस सेवा है या थोड़ी देर बाद कोशिश करें</translation> <translation id="3856800405688283469">समय क्षेत्र चुनें</translation> <translation id="3857807444929313943">उठाएं, फिर दोबारा छुएं</translation> <translation id="3860104611854310167"><ph name="PROFILE_NAME" />: सिंक करना रोका गया</translation> @@ -2183,7 +2200,7 @@ <translation id="3873423927483480833">पिन दिखाएं</translation> <translation id="3873915545594852654">एआरसी++ के साथ कोई समस्या हुई.</translation> <translation id="3879748587602334249">डाउनलोड मैनेजर</translation> -<translation id="3881321138433527084">'सुरक्षित ब्राउज़िंग' बंद है. वेब पर सुरक्षित तरीके से काम करने के लिए, इसे चालू करें.</translation> +<translation id="3881321138433527084">सुरक्षित ब्राउज़िंग की सुविधा बंद है. वेब पर सुरक्षित तरीके से काम करने के लिए, इसे चालू करें.</translation> <translation id="3882165008614329320">कैमरा या फ़ाइल से मौजूदा वीडियो</translation> <translation id="3886446263141354045">यह साइट एक्सेस करने का आपका अनुरोध <ph name="NAME" /> को भेज दिया गया है</translation> <translation id="3888550877729210209"><ph name="LOCK_SCREEN_APP_NAME" /> से नोट लेना</translation> @@ -2214,6 +2231,7 @@ <translation id="392089482157167418">ChromeVox (कंप्यूटर का बोलकर दिया गया जवाब) चालू करें</translation> <translation id="3923676227229836009">इस पेज को फ़ाइलें देखने की अनुमति है</translation> <translation id="3924145049010392604">Meta</translation> +<translation id="3924487862883651986">सुरक्षित ब्राउज़िंग की सेवा को जांच के लिए यूआरएल भेजता है नए खतरों का पता लगाने के लिए पेज के नमूने, डाउनलोड, एक्सटेंशन की गतिविधि, और सिस्टम की जानकारी भी भेजता है. आपके साइन इन होने पर, थोड़ी देर के लिए इस डेटा को आपके Google खाते से जो़ड़ता है. ऐसा सभी Google ऐप्लिकेशन पर आपको सुरक्षित रखने के लिए किया जाता है.</translation> <translation id="3925573269917483990">कैमरा:</translation> <translation id="3926002189479431949">Smart Lock फ़ोन बदला गया</translation> <translation id="3927787410750478258">इस <ph name="DEVICE_TYPE" /> को <ph name="DOMAIN" /> प्रबंधित करेगा.</translation> @@ -2250,6 +2268,7 @@ <translation id="3955193568934677022">साइटों को सुरक्षित सामग्री चलाने दें (हम इस सेटिंग को चालू रखने का सुझाव देते हैं)</translation> <translation id="3955896417885489542">सेटअप के बाद Google Play विकल्पों की समीक्षा करें</translation> <translation id="3956702100721821638">Google Play तक नहीं पहुंचा जा सका</translation> +<translation id="3957079323242030166">बैक अप डेटा आपके डिस्क की मेमोरी को नहीं खर्च करेगा.</translation> <translation id="3957844511978444971">"स्वीकार है" पर टैप करके पुष्टि करें कि आपने Google की सेवाओं की ये सेटिंग चुनी हैं.</translation> <translation id="3958088479270651626">बुकमार्क और सेटिंग आयात करें</translation> <translation id="3960566196862329469">ONC</translation> @@ -2262,6 +2281,7 @@ <translation id="3970114302595058915">आईडी</translation> <translation id="397105322502079400">गणना की जा रही है...</translation> <translation id="3971764089670057203">इस सुरक्षा कुंजी के लिए दर्ज किए गए फ़िंगरप्रिंट</translation> +<translation id="3973660817924297510">पासवर्ड की जांच की जा रही है (<ph name="TOTAL_PASSWORDS" /> में से <ph name="CHECKED_PASSWORDS" />)…</translation> <translation id="3975565978598857337">दिए गए क्षेत्र के लिए सर्वर से संपर्क नहीं हो पाया</translation> <translation id="3976108569178263973">कोई भी प्रिंटर उपलब्ध नहीं है</translation> <translation id="397703832102027365">अंतिम रूप दिया जा रहा है...</translation> @@ -2360,6 +2380,7 @@ <translation id="4100853287411968461">किसी डिवाइस के इस्तेमाल में बीते समय की नई सीमा</translation> <translation id="4104163789986725820">नि&र्यात करें...</translation> <translation id="4107048419833779140">मेमोरी डिवाइसों की पहचान करें और उन्हें निकालें</translation> +<translation id="4108998448622696017">नुकसान पहुंचाने वाली घटनाएं होने पर उनकी पहचान करता है. साथ ही, उनके बारे में आपको चेतावनी देता है.</translation> <translation id="4109135793348361820">विंडो को <ph name="USER_NAME" /> (<ph name="USER_EMAIL" />) पर ले जाएं</translation> <translation id="4110490973560452005">डाउनलोड पूरा हो गया: <ph name="FILE_NAME" />. डाउनलोड बार वाले हिस्से पर जाने के लिए Shift+F6 दबाएं.</translation> <translation id="4110895898888439383">उच्च कंट्रास्ट मोड में वेब ब्राउज़ करें</translation> @@ -2380,6 +2401,7 @@ <translation id="413121957363593859">घटक</translation> <translation id="4131410914670010031">श्याम और श्वेत</translation> <translation id="4133076602192971179">पासवर्ड बदलने के लिए ऐप्लिकेशन खोलें</translation> +<translation id="4133265950310064865">Enhanced Protection</translation> <translation id="4136203100490971508">सूर्योदय होने पर नाइट लाइट अपने आप बंद हो जाएगी</translation> <translation id="41365691917097717">अगर आप जारी रखते हैं, तो Android ऐप्लिकेशन बनाने और उनकी जांच करने के लिए ADB डीबग करने की सुविधा चालू हो जाएगी. ध्यान दें कि यह कार्रवाई उन Android ऐप्लिकेशन को इंस्टॉल करने की अनुमति देती है जिनकी पुष्टि Google ने नहीं की है. साथ ही, फ़ैक्ट्री रीसेट को बंद करना ज़रूरी है.</translation> <translation id="4138267921960073861">साइन इन स्क्रीन पर उपयोगकर्ता का नाम और फ़ोटो दिखाएं</translation> @@ -2389,6 +2411,7 @@ <translation id="4144218403971135344">बेहतर गुणवत्ता वाले वीडियो पाएं और बैटरी लाइफ़ बचाएं. वीडियो सिर्फ़ उस स्क्रीन पर चलेगा जिस पर आपने कास्ट करने की सुविधा चालू की है.</translation> <translation id="4146026355784316281">हमेशा सिस्टम व्यूअर से खोलें</translation> <translation id="4146785383423576110">रीसेट करें और साफ़ करें</translation> +<translation id="4147897805161313378">Google फ़ोटो</translation> <translation id="4147911968024186208">कृपया फिर से कोशिश करें. अगर आपको यह गड़बड़ी फिर से दिखाई देती है, तो कृपया अपने सहायता प्रतिनिधि से संपर्क करें.</translation> <translation id="4150201353443180367">डिसप्ले</translation> <translation id="4152670763139331043">{NUM_TABS,plural, =1{1 टैब}one{# टैब}other{# टैब}}</translation> @@ -2549,6 +2572,7 @@ <translation id="4412698727486357573">सहायता केंद्र</translation> <translation id="44141919652824029">"<ph name="APP_NAME" />" को आपके अटैच किए हुए USB डिवाइसों की सूची पाने दें?</translation> <translation id="4414232939543644979">नई &गुप्त विंडो</translation> +<translation id="4415213869328311284">अब आप अपने <ph name="DEVICE_TYPE" /> का इस्तेमाल शुरू कर सकते हैं.</translation> <translation id="4415245286584082850">कोई डिवाइस नहीं मिला. नए टैब में सहायता केंद्र लेख खोलें.</translation> <translation id="4415276339145661267">अपना Google खाता प्रबंधित करें</translation> <translation id="4415748029120993980">SECG अंडाकार वक्र secp384r1 (अर्थात NIST P-384)</translation> @@ -2627,6 +2651,7 @@ <translation id="4522600456902129422">इस साइट को क्लिपबोर्ड देखने देते रहें</translation> <translation id="4524832533047962394">दिया गया नामांकन मोड ऑपरेटिंग सिस्टम के इस वर्शन पर काम नहीं करता है. कृपया पक्का करें कि आप सबसे नया वर्शन चला रहे हैं.</translation> <translation id="4525382759303819021">'Play स्टोर' ऐप्लिकेशन के लिए नए अपडेट और सुझाव पाएं</translation> +<translation id="452750746583162491">सिंक किए गए डेटा की समीक्षा करें</translation> <translation id="4530494379350999373">मूल</translation> <translation id="4532646538815530781">यह साइट हलचल पकड़ने वाले सेंसर का इस्तेमाल कर रही है.</translation> <translation id="4533846798469727141">अब "Hey Google" बोलें</translation> @@ -2703,8 +2728,10 @@ <translation id="4628757576491864469">डिवाइस</translation> <translation id="4628762811416793313">Linux कंटेनर का सेटअप पूरा नहीं हुआ. कृपया फिर से कोशिश करें.</translation> <translation id="4633003931260532286">एक्सटेंशन के लिए "<ph name="IMPORT_NAME" />" को न्यूनतम "<ph name="IMPORT_VERSION" />" वर्शन का होना चाहिए, लेकिन केवल "<ph name="INSTALLED_VERSION" />" वर्शन ही इंस्टॉल किया गया है</translation> +<translation id="4633757335284074492">'Google डिस्क' में बैक अप लें. आसानी से डेटा वापस पाएं या किसी भी समय डिवाइस बदलें. इस बैक अप में ऐप्लिकेशन का डेटा शामिल है. बैकअप आपके बच्चे के Google खाते के पासवर्ड से सुरक्षित करके Google पर अपलोड किए जाते हैं.</translation> <translation id="4634771451598206121">फिर से साइन इन करें...</translation> <translation id="4635398712689569051"><ph name="PAGE_NAME" /> मेहमान उपयोगकर्ताओं के लिए उपलब्ध नहीं है.</translation> +<translation id="4636930964841734540">जानकारी</translation> <translation id="4637083375689622795">ज़्यादा कार्रवाइयां, <ph name="EMAIL" /></translation> <translation id="4638930039313743000">ADB डीबग करने की सुविधा चालू करें</translation> <translation id="4641539339823703554">Chrome, सिस्टम का समय सेट नहीं कर सका. कृपया नीचे दिया गया समय देखें और ज़रुरत होने पर उसे सही करें.</translation> @@ -2723,6 +2750,8 @@ <translation id="4660476621274971848">अपेक्षित वर्शन "<ph name="EXPECTED_VERSION" />" है, लेकिन वर्शन "<ph name="NEW_ID" />" था</translation> <translation id="4660540330091848931">साइज़ बदला जा रहा है</translation> <translation id="4660838440047236328">आपके कमरे का लेआउट</translation> +<translation id="4661407454952063730">ऐप्लिकेशन से जुड़े डेटा में ऐसा कोई भी डेटा शामिल हो सकता है जिसे किसी ऐप्लिकेशन ने (डेवलपर सेटिंग के आधार पर) सेव किया है. इसमें संपर्क, मैसेज (एसएमएस) और फ़ोटो जैसा डेटा भी शामिल है.</translation> +<translation id="4661931051827810091">आप जिन पेजों पर जाते हैं उनमें से कुछ के यूआरएल, सिस्टम की थोड़ी जानकारी, और पेज की कुछ सामग्री को बिना आपको पहचान बताए भेजता है. इससे इंटरनेट पर मौजूद सभी उपयोगकर्ताओं के लिए, नए खतरों की पहचान कर उन्हें रोकने में मदद मिलती है.</translation> <translation id="4662788913887017617">इस बुकमार्क को अपने iPhone से शेयर करें</translation> <translation id="4663373278480897665">कैमरे की अनुमति है</translation> <translation id="4664482161435122549">PKCS #12 निर्यात गड़बड़ी</translation> @@ -2782,7 +2811,6 @@ <translation id="4750394297954878236">सुझाव</translation> <translation id="475088594373173692">पहला उपयोगकर्ता</translation> <translation id="4751476147751820511">गति या लाइट सेंसर</translation> -<translation id="4756269098451810636"><ph name="DEVICE_NAME" /> से शेयर की गई इमेज</translation> <translation id="4756378406049221019">रोकें/फिर से लोड करें</translation> <translation id="4756388243121344051">&इतिहास</translation> <translation id="4759238208242260848">डाउनलोड</translation> @@ -2807,6 +2835,7 @@ <translation id="4798236378408895261"><ph name="BEGIN_LINK" />ब्लूटूथ लॉग<ph name="END_LINK" /> अटैच करें (Google का अंदरूनी मामला)</translation> <translation id="4801448226354548035">खाते छिपाएं</translation> <translation id="4801512016965057443">मोबाइल डेटा रोमिंग की अनुमति दें</translation> +<translation id="480395942558135789">साइटें आपके ब्राउज़ करने के अनुभव को बेहतर बनाने के लिए कुकी इस्तेमाल कर सकती हैं. जैसे, आपको साइन इन बनाए रखने के लिए या आपने शॉपिंग गार्ट में जो आइटम सेव किए हैं उन्हें याद रखने के लिए.</translation> <translation id="4804818685124855865">डिसकनेक्ट करें</translation> <translation id="4804827417948292437">एवोकैडो</translation> <translation id="4805077164141082536">हमारा सुझाव है कि आप बेहतर बनाने से पहले, अपने मौजूदा Linux कंटेनर का बैक अप लेकर रखें.</translation> @@ -2843,7 +2872,7 @@ <translation id="4850669014075537160">स्क्रॉल करना</translation> <translation id="4850886885716139402">देखें</translation> <translation id="4853020600495124913">&नई विंडो में खोलें</translation> -<translation id="4854317507773910281">अनुमति मांगने के लिए माता-पिता का खाता चुनें</translation> +<translation id="4854317507773910281">मंज़ूरी के लिए माता-पिता का खाता चुनें</translation> <translation id="485480310608090163">ज़्यादा सेटिंग और अनुमतियां</translation> <translation id="4856478137399998590">आपकी मोबाइल डेटा सेवा सक्रिय कर दी गई है और उपयोग के लिए तैयार है</translation> <translation id="4856855265648545577">टैबलेट मोड में, 'शेल्फ़' में लॉन्चर, वापस जाएं, और खास जानकारी वाले बटन दिखाएं. ये बटन, ChromeVox (बोलकर दिया गया जवाब) या 'ऐक्सेस करने का तरीका बदलें' सुविधा हाेने पर ही चालू हाेते हैं.</translation> @@ -2933,6 +2962,7 @@ <translation id="4965808351167763748">क्या आप वाकई Hangouts Meet चलाने के लिए इस डिवाइस को सेट अप करना चाहते हैं?</translation> <translation id="496888482094675990">Files ऐप्लिकेशन उन फ़ाइलों के लिए तुरंत एक्सेस देता है जिन्हें आपने Google डिस्क, बाहरी मेमोरी, या अपने Chrome OS डिवाइस पर सेव किया है।</translation> <translation id="4971412780836297815">पू्र्ण होने पर खोलें</translation> +<translation id="4971735654804503942">नुकसान पहुंचाने वाली वेबसाइटों, डाउनलोड, और एक्सटेंशन से तेज़ और प्रोऐक्टिव (बिना मांगे मिलने वाली) सुरक्षा. पासवर्ड हैक होने के बारे में आपको चेतावनी देता है. Google को ब्राउज़िंग डेटा भेजने की ज़रूरत पड़ती है.</translation> <translation id="4972129977812092092">प्रिंटर में बदलाव करें</translation> <translation id="4972164225939028131">दर्ज किया गया पासवर्ड गलत है</translation> <translation id="4973307593867026061">प्रिंटर जोड़ें</translation> @@ -2967,6 +2997,7 @@ <translation id="5017508259293544172">LEAP</translation> <translation id="5017633213534173756">याद रखें</translation> <translation id="5018207570537526145">एक्सटेंशन की वेबसाइट खोलें</translation> +<translation id="5018526990965779848">इस्तेमाल और गड़बड़ी की जानकारी से जुड़ा डेटा भेजें. Google को गड़बड़ी की जानकारी, डिवाइस, और ऐप्लिकेशन के इस्तेमाल से जुड़ा डेटा अपने-आप भेजकर, अपने Android अनुभव को बेहतर बनाने में मदद करें. यह सिस्टम और ऐप्लिकेशन की स्थिरता बढ़ाने और दूसरे सुधार करने में मदद करेगा. एग्रीगेट किया गया कुछ डेटा, Google ऐप्लिकेशन और पार्टनर की भी मदद करेगा. जैसे, Android डेवलपर. अगर आपकी दूसरी 'वेब और ऐप्लिकेशन गतिविधि' सेटिंग चालू है, तो यह डेटा आपके Google खाते में सेव किया जा सकता है.</translation> <translation id="5021750053540820849">अब तक अपडेट नहीं किया गया</translation> <translation id="5026806129670917316">वाई-फ़ाई चालू करें</translation> <translation id="5026874946691314267">इसे दोबारा न दिखाएं</translation> @@ -3025,7 +3056,7 @@ <translation id="5097002363526479830">नेटवर्क से कनेक्ट करने में विफल '<ph name="NAME" />': <ph name="DETAILS" /></translation> <translation id="5101042277149003567">सभी बुकमार्क खोलें</translation> <translation id="5101839224773798795">कर्सर के रुक जाने पर अपने आप क्लिक होने की सुविधा</translation> -<translation id="5107443654503185812">एक एक्सटेंशन ने 'सुरक्षित ब्राउज़िंग' सुविधा बंद कर दी है</translation> +<translation id="5107443654503185812">एक एक्सटेंशन ने सुरक्षित ब्राउज़िंग की सुविधा बंद कर दी है</translation> <translation id="5108967062857032718">सेटिंग - Android ऐप्लिकेशन निकालें</translation> <translation id="5109044022078737958">मिया</translation> <translation id="5111646998522066203">गुप्त मोड से बाहर निकलें</translation> @@ -3056,12 +3087,13 @@ <translation id="5139112070765735680"><ph name="QUERY_NAME" />, <ph name="DEFAULT_SEARCH_ENGINE_NAME" /> खोजें</translation> <translation id="5139823398361067371">अपनी सुरक्षा कुंजी का पिन डालें. अगर आपको पिन नहीं पता है, तो सुरक्षा कुंजी रीसेट करनी होगी.</translation> <translation id="5139955368427980650">&खोलें</translation> -<translation id="5142793792982256885">टचपैड पर स्क्रोल की रफ़्तार</translation> +<translation id="5142793792982256885">टचपैड से स्क्रोल करने की रफ़्तार</translation> <translation id="5142961317498132443">पहचान करना</translation> <translation id="5143374789336132547">एक्सटेंशन <ph name="EXTENSION_NAME" /> ने यह बदल दिया है कि जब आप होम बटन क्लिक करते हैं तब कौन सा पेज दिखाया जाए.</translation> <translation id="5143712164865402236">फ़ुल स्क्रीन में प्रवेश करें</translation> <translation id="514575469079499857">जगह तय करने के लिए अपने आईपी पते का इस्तेमाल करें (डिफ़ॉल्ट)</translation> <translation id="5147103632304200977">जब कोई साइट एचआईडी डिवाइस ऐक्सेस करना चाहे, तो इसके लिए पूछें (सुझाया गया)</translation> +<translation id="5148277445782867161">Google की जगह की जानकारी सेवा वाई-फ़ाई, मोबाइल नेटवर्क, और सेंसर जैसे स्रोतों का इस्तेमाल करती है, ताकि आपके डिवाइस की जगह का आसानी से पता लगाया जा सके.</translation> <translation id="5150254825601720210">Netscape प्रमाणपत्र SSL सर्वर नाम</translation> <translation id="5151354047782775295">डिस्क स्पेस खाली करें अन्यथा चयनित डेटा अपने आप हट जाएगा</translation> <translation id="5153234146675181447">फ़ोन को भूल जाएं</translation> @@ -3089,6 +3121,7 @@ <translation id="51918995459521422"><ph name="ORIGIN" /> एक से ज़्यादा फ़ाइलें डाउनलोड करना चाहते हैं</translation> <translation id="5192062846343383368">निगरानी करने की सेटिग देखने के लिए Family Link ऐप्लिकेशन खोलें</translation> <translation id="5193988420012215838">आपके क्लिपबोर्ड पर कॉपी की गई</translation> +<translation id="5198430103906431024">इस्तेमाल और गड़बड़ी की जानकारी से जुड़ा डेटा भेजें. यह डिवाइस फ़िलहाल Google को गड़बड़ी की जानकारी, डिवाइस, और ऐप्लिकेशन के इस्तेमाल से जुड़ा डेटा अपने-आप भेज रहा है. यह सिस्टम और ऐप्लिकेशन की स्थिरता बढ़ाने और दूसरे सुधार करने में मदद करेगा. एग्रीगेट किया गया कुछ डेटा, Google ऐप्लिकेशन और पार्टनर की भी मदद करेगा. जैसे, Android डेवलपर. अगर आपकी दूसरी 'वेब और ऐप्लिकेशन गतिविधि' सेटिंग चालू है, तो यह डेटा आपके Google खाते में सेव किया जा सकता है.</translation> <translation id="5203920255089865054">{NUM_EXTENSIONS,plural, =1{एक्सटेंशन देखने के लिए क्लिक करें}one{इन एक्सटेंशन को देखने के लिए क्लिक करें}other{इन एक्सटेंशन को देखने के लिए क्लिक करें}}</translation> <translation id="5204673965307125349">कृपया डिवाइस को पावरवॉश करें और फिर से कोशिश करें.</translation> <translation id="5204967432542742771">पासवर्ड डालें</translation> @@ -3295,6 +3328,7 @@ <translation id="5468173180030470402">फ़ाइल शेयर को ढूंढा जा रहा है</translation> <translation id="5470735824776589490">डिवाइस को 'पावरवॉश' से रीसेट करने से पहले रीस्टार्ट करना ज़रूरी है. <ph name="LINK_BEGIN" />ज़्यादा जानें<ph name="LINK_END" /></translation> <translation id="5471768120198416576">नमस्ते! मैं आपकी लिखाई को बोली में बदलने वाली आवाज़ हूं.</translation> +<translation id="5472627187093107397">इस साइट के लिए पासवर्ड सेव करें</translation> <translation id="5473333559083690127">नया पिन फिर से डालें</translation> <translation id="5481941284378890518">आस-पास के प्रिंटर जोड़ें</translation> <translation id="5483785310822538350">फ़ाइल और डिवाइस के एक्सेस रद्द करें</translation> @@ -3572,6 +3606,7 @@ <translation id="5841270259333717135">ईथरनेट कॉन्फ़िगर करें</translation> <translation id="5842497610951477805">ब्लूटूथ चालू है</translation> <translation id="5846200638699387931">रिलेशन सिंटैक्स गड़बड़ी: <ph name="ERROR_LINE" /></translation> +<translation id="5846807460505171493">अपडेट और ऐप्लिकेशन इंस्टॉल करें. जारी रखकर, आप इस बात की इजाज़त देते हैं कि यह डिवाइस Google, आपको मोबाइल और इंटरनेट सेवा देने वाली कंपनी, और आपका डिवाइस बनाने वाली कंपनी से अपने-आप अपडेट और ऐप्लिकेशन डाउनलोड और उन्हें इंस्टॉल कर सकता है. इसके लिए, शायद आपके मोबाइल डेटा का इस्तेमाल किया जाए. इनमें से कुछ ऐप्लिकेशन में इन-ऐप्लिकेशन खरीदारी की सुविधा भी हो सकती है.</translation> <translation id="5849212445710944278">पहले ही जोड़ा जा चुका है</translation> <translation id="5849570051105887917">'होम' पर काम करने वाली सेवाओं का कोड</translation> <translation id="5851868085455377790">जारीकर्ता</translation> @@ -3617,7 +3652,7 @@ <translation id="5901630391730855834">पीला</translation> <translation id="5906655207909574370">करीब अप टू डेट हो गया है! अपडेट करना पूरा करने के लिए अपना डिवाइस फिर से प्रारंभ करें.</translation> <translation id="5906732635754427568">इस ऐप्लिकेशन से जुड़े डेटा को इस डिवाइस से हटा दिया जाएगा.</translation> -<translation id="5908695239556627796">माउस पर स्क्रोल की रफ़्तार</translation> +<translation id="5908695239556627796">माउस से स्क्रोल करने की रफ़्तार</translation> <translation id="5908769186679515905">साइट को Flash चलाने से रोकें</translation> <translation id="5910363049092958439">इमेज को इस रूप में सेव करें...</translation> <translation id="5910726859585389579"><ph name="DEVICE_TYPE" /> ऑफ़लाइन है</translation> @@ -3632,6 +3667,7 @@ <translation id="59174027418879706">चालू किया गया</translation> <translation id="5920543303088087579">इस नेटवर्क से कनेक्ट करने की सुविधा आपके व्यवस्थापक ने अक्षम कर दी है</translation> <translation id="5920835625712313205">Chrome OS सिस्टम इमेज राइटर</translation> +<translation id="5921257443092182237">Google की जगह की जानकारी सेवा वाई-फ़ाई, मोबाइल नेटवर्क, और सेंसर जैसे स्रोतों का इस्तेमाल करती है, ताकि इस डिवाइस की जगह का आसानी से पता लगाया जा सके.</translation> <translation id="5924047253200400718">सहायता पाएं<ph name="SCANNING_STATUS" /></translation> <translation id="5924527146239595929">नई फ़ोटो लें या मौजूदा फ़ोटो या आइकॉन चुनें. <ph name="LINE_BREAK" /> @@ -3721,7 +3757,6 @@ <translation id="6040852767465482106">अनाम पहचान</translation> <translation id="6041046205544295907"><ph name="BEGIN_PARAGRAPH1" />Google की जगह की जानकारी सेवा, आपके डिवाइस की जगह का पता लगाने के लिए वाई-फ़ाई, मोबाइल नेटवर्क और सेंसर जैसे स्रोतों का इस्तेमाल करती है.<ph name="END_PARAGRAPH1" /> <ph name="BEGIN_PARAGRAPH2" />आप अपने डिवाइस पर जगह की मुख्य सेटिंग बंद करके जगह की जानकारी वाली सेवा को बंद कर सकते हैं. आप जगह की सेटिंग में जाकर वाई-फ़ाई, मोबाइल नेटवर्क और जगह की जानकारी का पता लगाने वाले सेंसर का इस्तेमाल करना बंद भी कर सकते हैं.<ph name="END_PARAGRAPH2" /></translation> -<translation id="6041150002191391409">आप जब तक <ph name="ORIGIN" /> वाले सभी टैब बंद नहीं कर देते, <ph name="ORIGIN" /> को <ph name="FOLDERNAME" /> में मौजूद फ़ाइलें दिखती रहेंगी</translation> <translation id="6041155700700864984">पूर्णस्क्रीन से बाहर निकलें</translation> <translation id="604124094241169006">स्वचालित</translation> <translation id="6042308850641462728">और ज़्यादा</translation> @@ -3891,6 +3926,7 @@ <translation id="6254503684448816922">कुंजी समझौता</translation> <translation id="6257602895346497974">'सिंक करें' चालू करें...</translation> <translation id="6259104249628300056">अपने स्थानीय नेटवर्क पर डिवाइस खोजें</translation> +<translation id="6262371516389954471">आपके डिवाइस के डेटा का बैक अप Google पर अपलोड हो गया है. साथ ही, उसे Google खाते के पासवर्ड से एन्क्रिप्ट (सुरक्षित) कर दिया गया है.</translation> <translation id="6263082573641595914">Microsoft CA Version</translation> <translation id="6263284346895336537">महत्वपूर्ण नहीं</translation> <translation id="6264365405983206840">&सभी को चुनें</translation> @@ -3968,6 +4004,7 @@ <translation id="6362853299801475928">किसी समस्या की &रिपोर्ट करें...</translation> <translation id="6365069501305898914">Facebook</translation> <translation id="6365411474437319296">परिवार और मित्रों को जोड़ें</translation> +<translation id="6366190659675876144">मानक सुरक्षा</translation> <translation id="636850387210749493">एंटरप्राइज़ नामांकन</translation> <translation id="6370021412472292592">मेनिफ़ेस्ट लोड नहीं किया जा सका.</translation> <translation id="6371486244597785139">{NUM_PASSWORDS,plural, =1{पासवर्ड बदलें}one{पासवर्ड बदलें}other{पासवर्ड बदलें}}</translation> @@ -3998,6 +4035,7 @@ <translation id="6410328738210026208">चैनल बदलें और पावरवॉश करें</translation> <translation id="6410668567036790476">सर्च इंजन जोड़ें</translation> <translation id="641081527798843608">विषय मिलान</translation> +<translation id="6412673304250309937">Chrome में पहले से सेव असुरक्षित साइटों के साथ यूआरएल की जांच करता है. अगर कोई साइट आपका पासवर्ड चुराने की कोशिश करती है या आप कोई नुकसान पहुंचाने वाली फ़ाइल डाउनलोड करते हैं, तो Chrome सुरक्षित ब्राउज़िंग की सेवा को उनका यूआरएल भेजता है. इनमें उन पेज की सामग्री भी शामिल होती है.</translation> <translation id="6412931879992742813">नई गुप्त विंडो</translation> <translation id="641469293210305670">अपडेट और ऐप्लिकेशन इंस्टॉल करें</translation> <translation id="6414888972213066896">आपने अपने अभिभावक से पूछा है कि इस साइट पर जाना ठीक है या नहीं</translation> @@ -4114,7 +4152,6 @@ <translation id="6561726789132298588">enter</translation> <translation id="656293578423618167">फ़ाइल पाथ या नाम बहुत बड़ा है. कृपया छोटे नाम के साथ या किसी दूसरी जगह पर सेव करें.</translation> <translation id="6563469144985748109">आपके प्रबंधक ने अभी तक इसकी अनुमति नहीं दी है</translation> -<translation id="6567688344210276845">पेज कार्रवाई के लिए '<ph name="ICON" />' आइकन लोड नहीं किया जा सका.</translation> <translation id="6569934958368283244">दूसरे लोग</translation> <translation id="657402800789773160">&यह पेज फिर से लोड करें</translation> <translation id="6577284282025554716">डाउनलोड रोका गया: <ph name="FILE_NAME" /></translation> @@ -4153,6 +4190,7 @@ <translation id="6624687053722465643">स्वीटनेस</translation> <translation id="6628328486509726751"><ph name="WEBRTC_LOG_UPLOAD_TIME" /> पर अपलोड किया गया</translation> <translation id="6630752851777525409"><ph name="EXTENSION_NAME" /> को आपकी ओर से अपनी पुष्टि करने के लिए प्रमाणपत्र का स्थायी ऐक्सेस चाहिए.</translation> +<translation id="6635944431854494329">इस सुविधा को नियंत्रित करने के लिए मालिक सेटिंग > बेहतर > Google को गड़बड़ी और इस्तेमाल से जुड़ा डेटा अपने-आप भेजें, पर जा सकते हैं.</translation> <translation id="6635956300022133031">लिखाई को बोली में बदलने वाली आवाज़ें चुनें और उन्हें पसंद के मुताबिक बनाएं</translation> <translation id="6639554308659482635">SQLite मेमोरी</translation> <translation id="6641138807883536517">बिना किसी क्रम से जनरेट किया गया सुरक्षित मॉड्यूल पासवर्ड उपलब्ध नहीं है. Powerwash के बाद आमतौर पर ऐसा होता है.</translation> @@ -4178,7 +4216,6 @@ <translation id="6659594942844771486">टैब</translation> <translation id="6664237456442406323">दुर्भाग्यवश, आपका कंप्यूटर किसी विकृत हार्डवेयर आईडी द्वारा कॉन्फ़िगर किया हुआ है. इससे Chrome OS को नवीनतम सुरक्षा सुधारों से अपडेट होने में बाधा आ रही है और आपका कंप्यूटर <ph name="BEGIN_BOLD" />नुकसान पहुंचाने वाले हमलों की चपेट में आ सकता है<ph name="END_BOLD" />.</translation> <translation id="6664774537677393800">आपकी प्रोफ़ाइल खोलते समय कुछ गलत हुआ है. कृपया साइन आउट करके फिर से साइन इन करें.</translation> -<translation id="6667776121818773738">दूसरे डिवाइस से शेयर की गई इमेज</translation> <translation id="6673391612973410118"><ph name="PRINTER_MAKE_OR_MODEL" /> (USB)</translation> <translation id="667517062706956822">क्या आप चाहते हैं कि Google इस पेज का <ph name="SOURCE_LANGUAGE" /> से <ph name="TARGET_LANGUAGE" /> में अनुवाद करे?</translation> <translation id="6675665718701918026">सूचक डिवाइस कनेक्ट किया गया</translation> @@ -4313,6 +4350,7 @@ <translation id="6847125920277401289">जारी रखने के लिए डिवाइस में स्पेस खाली करें</translation> <translation id="6848388270925200958">फ़िलहाल, आपके कुछ कार्ड सिर्फ़ इसी डिवाइस पर इस्तेमाल किए जा सकते हैं</translation> <translation id="6850286078059909152">टेक्स्ट का रंग</translation> +<translation id="6851181413209322061">इस्तेमाल और गड़बड़ी की जानकारी से जुड़ा डेटा भेजें. यह डिवाइस फ़िलहाल Google को गड़बड़ी की जानकारी, डिवाइस, और ऐप्लिकेशन के इस्तेमाल से जुड़ा डेटा अपने-आप भेज रहा है. इसका इस्तेमाल आपके बच्चे की पहचान करने के लिए नहीं किया जाएगा. यह सिस्टम और ऐप्लिकेशन की स्थिरता बढ़ाने और दूसरे सुधार करने में मदद करेगा. एग्रीगेट किया गया कुछ डेटा, Google ऐप्लिकेशन और पार्टनर की भी मदद करेगा. जैसे, Android डेवलपर. यह सेटिंग, डिवाइस के मालिक ने लागू की है. अगर आपके बच्चे के लिए दूसरी 'वेब और ऐप्लिकेशन गतिविधि' चालू है, तो यह डेटा उसके Google खाते में सेव किया जा सकता है.</translation> <translation id="6851497530878285708">ऐप्लिकेशन चालू</translation> <translation id="6853388645642883916">अपडेटर निष्क्रिय</translation> <translation id="68541483639528434">अन्य टैब बंद करें</translation> @@ -4331,6 +4369,7 @@ <translation id="6876469544038980967">मददगार नहीं है</translation> <translation id="6878422606530379992">सेंसर को मंज़ूरी दी गई है</translation> <translation id="6880587130513028875">इस पेज पर चित्र अवरोधित कर दी गई थीं.</translation> +<translation id="6882836635272038266">उन वेबसाइटों, डाउनलोड, और एक्सटेंशन से मानक सुरक्षा जो नुकसान पहुंचा सकते हैं.</translation> <translation id="6883319974225028188">ओह! यह सिस्टम, डिवाइस कॉन्फ़िगरेशन को सेव नहीं कर सका.</translation> <translation id="6885771755599377173">सिस्टम जानकारी की झलक</translation> <translation id="6886476658664859389">NFC सुरक्षा चाबी</translation> @@ -4381,6 +4420,7 @@ <translation id="6951153907720526401">भुगतान हैंडलर</translation> <translation id="6953878494808481632">मिलती-जुलती जानकारी</translation> <translation id="6955446738988643816">पॉपअप का निरीक्षण करें</translation> +<translation id="6955535239952325894">यह सेटिंग, प्रबंधित किए गए ब्राउज़र पर काम नहीं करती है</translation> <translation id="6957044667612803194">इस सुरक्षा कुंजी में पिन की सुविधा नहीं है</translation> <translation id="6957231940976260713">सेवा का नाम</translation> <translation id="6964390816189577014">हीरो</translation> @@ -4575,6 +4615,7 @@ <translation id="7201420661433230412">फ़ाइलें देखें</translation> <translation id="7206693748120342859"><ph name="PLUGIN_NAME" /> डाउनलोड हो रहा है...</translation> <translation id="720715819012336933">{NUM_PAGES,plural, =1{पेज से बाहर निकलें}one{पेज से बाहर निकलें}other{पेज से बाहर निकलें}}</translation> +<translation id="7207457272187520234">इस्तेमाल और गड़बड़ी की जानकारी से जुड़ा डेटा भेजें. यह डिवाइस फ़िलहाल Google को गड़बड़ी की जानकारी, डिवाइस, और ऐप्लिकेशन के इस्तेमाल से जुड़ा डेटा अपने-आप भेज रहा है. यह सिस्टम और ऐप्लिकेशन की स्थिरता बढ़ाने और दूसरे सुधार करने में मदद करेगा. एग्रीगेट किया गया कुछ डेटा, Google ऐप्लिकेशन और पार्टनर की भी मदद करेगा. जैसे, Android डेवलपर. यह सेटिंग, डिवाइस के मालिक ने लागू की है. अगर आपकी दूसरी 'वेब और ऐप्लिकेशन गतिविधि' सेटिंग चालू है, तो यह डेटा आपके Google खाते में सेव किया जा सकता है.</translation> <translation id="7207631048330366454">ऐप्लिकेशन खोजें</translation> <translation id="7210499381659830293">एक्सटेंशन प्रिंटर</translation> <translation id="7212097698621322584">अपना मौजूदा पिन डालकर उसे बदलें. अगर आप पिन नहीं जानते हैं, तो आपको सुरक्षा कुंजी रीसेट करनी होगी, फिर एक नया पिन बनाना होगा.</translation> @@ -4604,6 +4645,7 @@ <translation id="7245628041916450754"><ph name="WIDTH" /> x <ph name="HEIGHT" /> (श्रेष्ठ)</translation> <translation id="7246230585855757313">अपनी सुरक्षा कुंजी फिर से लगाएं और दोबारा कोशिश करें</translation> <translation id="7246947237293279874">FTP प्रॉक्सी</translation> +<translation id="7249777306773517303"><ph name="DOMAIN" /> इस डिवाइस को प्रबंधित करता है. आपको हर बार साइन इन करना होगा.</translation> <translation id="725109152065019550">क्षमा करें, आपके व्यवस्थापक ने आपके खाते पर बाहरी मेमोरी को अक्षम कर दिया है.</translation> <translation id="7251346854160851420">डिफ़ॉल्ट वॉलपेपर</translation> <translation id="7253521419891527137">&अधिक जानें</translation> @@ -4656,6 +4698,7 @@ <translation id="7310598146671372464">लॉगिन नहीं कर पाए. सर्वर पर बताए गए केर्बेरोस सुरक्षा प्रकार काम नहीं करते हैं. कृपया अपने एडमिन से संपर्क करें.</translation> <translation id="7311079019872751559">सैंडबॉक्स नहीं किए गए प्लग इन की एक्सेस</translation> <translation id="73174032666024687"><ph name="SHEETS_LABEL" /> <ph name="NUMBER_OF_SHEETS" /></translation> +<translation id="732018663949361753">साइटें अलग-अलग साइटों पर की गई आपकी ब्राउज़िंग गतिविधियों के बारे में जानने के लिए, कुकी का इस्तेमाल नहीं कर सकती हैं. जैसे, दर्शकों की पसंद को ध्यान में रखकर विज्ञापन दिखाने के लिए. कुछ साइटें शायद ठीक से काम नहीं करेंगी.</translation> <translation id="7321545336522791733">सर्वर पहुंच योग्य नहीं है</translation> <translation id="7324297612904500502">बीटा फ़ोरम</translation> <translation id="7325209047678309347">कागज़ फंस गया है</translation> @@ -4697,6 +4740,7 @@ <translation id="736877393389250337"><ph name="URL" /> <ph name="ALTERNATIVE_BROWSER_NAME" /> में नहीं खोला जा सकता है. कृपया अपने सिस्टम एडमिन से संपर्क करें.</translation> <translation id="7370592524170198497">ईथरनेट EAP:</translation> <translation id="7371006317849674875">शुरू करने का समय</translation> +<translation id="7371490947952970241">जगह की जानकारी देना बंद करने के लिए, आप डिवाइस की सेटिंग में जाकर 'जगह की सेटिंग' बंद कर सकते हैं. आप जगह की सेटिंग में जाकर वाई-फ़ाई, मोबाइल नेटवर्क, और जगह की जानकारी का पता लगाने वाले सेंसर का इस्तेमाल करना बंद भी कर सकते हैं.</translation> <translation id="7375053625150546623">EAP</translation> <translation id="7375235221357833624">{0,plural, =1{1 घंटे के अंदर डिवाइस अपडेट करें}one{# घंटे के अंदर डिवाइस अपडेट करें}other{# घंटे के अंदर डिवाइस अपडेट करें}}</translation> <translation id="7376553024552204454">माउस कर्सर के हिलने पर उसे हाइलाइट करें</translation> @@ -4760,6 +4804,7 @@ <translation id="7458168200501453431">वर्तनी जांचने के लिए उसी सुविधा का इस्तेमाल करती है जिसका इस्तेमाल 'Google सर्च' में किया जाता है. आप ब्राउज़र में जो कुछ भी लिखते हैं उसे Google को भेजा जाता है.</translation> <translation id="7460045493116006516">आपकी इंस्टॉल की हुई मौजूदा थीम</translation> <translation id="7461924472993315131">पिन करें</translation> +<translation id="7462086387939910706">Chrome आपके पासवर्ड की जांच नहीं कर सकता, क्योंकि यहां बहुत सारे पासवर्ड दिए गए हैं.</translation> <translation id="746216226901520237">अगली बार, आपका फ़ोन आपके <ph name="DEVICE_TYPE" /> को अनलॉक कर देगा. आप सेटिंग में जाकर Smart Lock को बंद कर सकते हैं</translation> <translation id="7463006580194749499">व्यक्ति जोड़ें</translation> <translation id="7465522323587461835">{NUM_OPEN_TABS,plural, =1{# टैब खोलें, टैब बार को टॉगल करने के लिए बटन दबाएं}one{# टैब खोलें, टैब बार को टॉगल करने के लिए बटन दबाएं}other{# टैब खोलें, टैब बार को टॉगल करने के लिए बटन दबाएं}}</translation> @@ -4791,7 +4836,6 @@ <translation id="7497981768003291373">आपके पास हाल ही में कैप्चर किया गया कोई WebRTC लेख लॉग नहीं है.</translation> <translation id="7502658306369382406">IPv6 पता</translation> <translation id="7503191893372251637">Netscape प्रमाणपत्र प्रकार</translation> -<translation id="7503821294401948377">ब्राउज़र कार्रवाई के लिए आइकन '<ph name="ICON" />' लोड नहीं किया जा सका.</translation> <translation id="7503985202154027481">आपके इस साइट पर आने का रिकॉर्ड आपकी सुरक्षा कुंजी पर रह जाएगा.</translation> <translation id="7504293978434250212">आपका संगठन ज़्यादा से ज़्यादा 50 एमबी तक की फ़ाइलों को स्कैन कर सकता है. छोटी फ़ाइल अपलोड करके देखें.</translation> <translation id="750509436279396091">डाउनलोड फ़ोल्डर खोलें</translation> @@ -4866,6 +4910,7 @@ <translation id="7609148976235050828">कृपया इंटरनेट से कनेक्ट करें और फिर से कोशिश करें.</translation> <translation id="7611008212562900400">अपना डिवाइस, ऐप्लिकेशन, वेब... खोजें</translation> <translation id="7614260613810441905">जब कोई वेबसाइट आपके डिवाइस की किसी फ़ाइल या फ़ोल्डर में बदलाव करना चाहे, तो इसके लिए पूछें (सुझाया गया)</translation> +<translation id="761530003705945209">'Google डिस्क' में बैक अप लें. अपना डेटा आसानी से वापस लाएं या किसी भी समय डिवाइस बदलें. आपके बैक अप में ऐप्लिकेशन डेटा शामिल होता है. आपके डिवाइस के डेटा का बैक अप Google पर अपलोड हो गया है. साथ ही, उसे Google खाते के पासवर्ड से एन्क्रिप्ट (सुरक्षित) कर दिया गया है.</translation> <translation id="7616214729753637086">डिवाइस का नाम दर्ज किया जा रहा है...</translation> <translation id="7617366389578322136">"<ph name="DEVICE_NAME" />" से कनेक्ट हो रहा है</translation> <translation id="762068974690945752">यहां स्कूल वाला खाता जोड़ें या बच्चे के खातों को प्रबंधित करें. <ph name="LINK_BEGIN" />ज़्यादा जानें<ph name="LINK_END" /></translation> @@ -4928,6 +4973,7 @@ <translation id="7691077781194517083">यह सुरक्षा कुंजी रीसेट नहीं हो पा रही है. गड़बड़ी <ph name="ERROR_CODE" />.</translation> <translation id="7696063401938172191">आपके '<ph name="PHONE_NAME" />' पर:</translation> <translation id="7698408911093959127">{COUNT,plural, =1{बुकमार्क सूची में 1 आइटम है}one{बुकमार्क सूची में # आइटम हैं}other{बुकमार्क सूची में # आइटम हैं}}</translation> +<translation id="7699968112832915395">खाता नहीं जोड़ा जा सकता</translation> <translation id="7701040980221191251">कुछ नहीं</translation> <translation id="770157826141786566">इस डिवाइस को वापस करने की समयसीमा खत्म हो चुकी है.</translation> <translation id="7701869757853594372">उपयोगकर्ता हैंडल</translation> @@ -4964,7 +5010,7 @@ <translation id="7744047395460924128">अपना प्रिंटिंग इतिहास देखें</translation> <translation id="7744192722284567281">यह पासवर्ड आपके हैक हो चुके डेटा में शामिल है</translation> <translation id="7750228210027921155">पिक्चर में पिक्चर</translation> -<translation id="7751229152614300329">'सुरक्षित ब्राउज़िंग' अप-टू-डेट है. यह आपको नुकसान पहुंचाने वाली साइटों और डाउनलोड से बचाती है</translation> +<translation id="7751229152614300329">सुरक्षित ब्राउज़िंग अप-टू-डेट है. यह आपको नुकसान पहुंचाने वाली साइटों और डाउनलोड से बचाती है</translation> <translation id="7751260505918304024">सभी दिखाएं</translation> <translation id="7754704193130578113">डाउनलोड करने से पहले, हर फ़ाइल को सेव करने की जगह के बारें में पूछें</translation> <translation id="7755287808199759310">आपका अभिभावक इसे आपके लिए अनवरोधित कर सकता है</translation> @@ -5330,6 +5376,7 @@ <translation id="8186609076106987817">सर्वर को फ़ाइल नहीं मिल सकी.</translation> <translation id="8188389033983459049">अपनी डिवाइस सेटिंग जांचें और जारी रखने के लिए उसे चालू करें</translation> <translation id="8190193592390505034"><ph name="PROVIDER_NAME" /> से कनेक्ट हो रहा है</translation> +<translation id="8190310225494289459">Google खाते में देखें.</translation> <translation id="8191230140820435481">अपने ऐप्स , एक्सटेंशन, और थीम प्रबंधित करें</translation> <translation id="8195027750202970175">डिस्क पर आकार</translation> <translation id="8198323535106903877">हम आपके लिए वे <ph name="NUMBER_OF_APPS" /> ऐप्लिकेशन इंस्टॉल करेंगे</translation> @@ -5590,7 +5637,6 @@ <translation id="8546930481464505581">छूने वाले बार को पसंद के मुताबिक बनाएं</translation> <translation id="8547013269961688403">फ़ुलस्क्रीन पर सामग्री को बड़ा दिखाने की सुविधा चालू करें</translation> <translation id="85486688517848470">शीर्ष-पंक्ति वाली कुंजियों का व्यवहार स्विच करने के लिए खोज की दबाए रखें</translation> -<translation id="8550165047974571882">आप जब तक <ph name="ORIGIN" /> वाले सभी टैब बंद नहीं कर देते, <ph name="ORIGIN" /> <ph name="FOLDERNAME" /> में मौजूद फ़ाइलों में बदलाव कर सकता है</translation> <translation id="8551388862522347954">लाइसेंस</translation> <translation id="8553342806078037065">अन्य लोगों को प्रबंधित करें</translation> <translation id="8554899698005018844">कोई भाषा नहीं</translation> @@ -5622,6 +5668,7 @@ <translation id="8598453409908276158">सैंडबॉक्स नहीं किया गया प्लग इन ब्लॉक किया गया</translation> <translation id="8601206103050338563">TLS WWW क्लाइंट प्रमाणीकरण</translation> <translation id="8602851771975208551">आपके कंप्यूटर पर किसी दूसरे प्रोग्राम ने कोई ऐप्लिकेशन जोड़ा है जो Chrome के काम करने के तरीके को बदल सकता है.</translation> +<translation id="8603820497269504141">आप जब अपने Google खाते से साइन इन करते हैं, तब Chrome आपके पासवर्ड की जांच कर सकता है</translation> <translation id="8605428685123651449">SQLite मेमोरी</translation> <translation id="8608618451198398104">Kerberos टिकट जोड़ें</translation> <translation id="8609465669617005112">ऊपर जाएं</translation> @@ -5650,6 +5697,7 @@ <translation id="8637688295594795546">सिस्टम अपडेट उपलब्ध है. डाउनलोड करने के लिए तैयार हो रहा है...</translation> <translation id="8639047128869322042">नुकसान पहुंचाने वाला सॉफ़्टवेयर ढूंढा जा रहा है...</translation> <translation id="8639391553632924850"><ph name="INPUT_LABEL" /> - पोर्ट</translation> +<translation id="8639635302972078117">इस्तेमाल और गड़बड़ी की जानकारी से जुड़ा डेटा भेजें. यह डिवाइस फ़िलहाल Google को गड़बड़ी की जानकारी, डिवाइस, और ऐप्लिकेशन के इस्तेमाल से जुड़ा डेटा अपने-आप भेज रहा है. इसका इस्तेमाल आपके बच्चे की पहचान करने के लिए नहीं किया जाएगा. यह सिस्टम और ऐप्लिकेशन की स्थिरता बढ़ाने और दूसरे सुधार करने में मदद करेगा. एग्रीगेट किया गया कुछ डेटा, Google ऐप्लिकेशन और पार्टनर की भी मदद करेगा. जैसे, Android डेवलपर. अगर आपके बच्चे के लिए 'अन्य वेब और ऐप्लिकेशन गतिविधि' सेटिंग चालू है, तो यह डेटा उसके Google खाते में सेव किया जा सकता है.</translation> <translation id="8641606876632989680">जब आप किसी हैक या चोरी हो चुके पासवर्ड से साइन इन करेंगे, तो Chrome आपको इसकी सूचना देगा</translation> <translation id="8642900771896232685">2 सेकंड</translation> <translation id="8642947597466641025">लेख को बड़ा करें</translation> @@ -5742,6 +5790,7 @@ <translation id="8737709691285775803">Shill</translation> <translation id="8738766971144275885">इस फ़ाइल को सुरक्षित और ब्लॉक किया गया है, ताकि इसे खाेलकर देखा न जा सके.</translation> <translation id="8742371904523228557"><ph name="ORIGIN" /> के लिए आपका कोड <ph name="ONE_TIME_CODE" /> है</translation> +<translation id="8742998548129056176">यह आपके डिवाइस और इसके इस्तेमाल (जैसे कि बैटरी कितनी चार्ज है, सिस्टम और ऐप्लिकेशन की गतिविधि, और गड़बड़ियां) से जुड़ी सामान्य जानकारी है. डिवाइस से जुड़े इस डेटा का इस्तेमाल Android काे बेहतर बनाने के लिए किया जाएगा. साथ ही, इकट्ठा की गई कुछ जानकारी की मदद से Android डेवलपर जैसे पार्टनर और Google के ऐप्लिकेशन अपने उत्पाद को बेहतर बना पाएंगे.</translation> <translation id="8743390665131937741">फ़ुलस्क्रीन ज़ूम स्तर:</translation> <translation id="8743864605301774756">1 घंटे पहले अपडेट किया गया</translation> <translation id="8746654918629346731">आपने "<ph name="EXTENSION_NAME" />" का अनुरोध किया हुआ है</translation> @@ -5899,6 +5948,7 @@ <translation id="8926389886865778422">दोबारा न पूछें</translation> <translation id="892706138619340876">कुछ सेटिंग रीसेट कर दी गई हैं</translation> <translation id="8930351635855238750">पेज के फिर से लोड होने के बाद नई कुकी सेटिंग लागू होगी</translation> +<translation id="8931076093143205651">इस्तेमाल और गड़बड़ी की जानकारी से जुड़ा डेटा भेजें. Google को गड़बड़ी की जानकारी, डिवाइस, और ऐप्लिकेशन के इस्तेमाल से जुड़ा डेटा अपने-आप भेजकर, अपने Android अनुभव को बेहतर बनाने में मदद करें. यह सिस्टम और ऐप्लिकेशन की स्थिरता बढ़ाने और दूसरे सुधार करने में मदद करेगा. एग्रीगेट किया गया कुछ डेटा, Google ऐप्लिकेशन और पार्टनर की भी मदद करेगा. जैसे, Android डेवलपर. यह सेटिंग, डिवाइस के मालिक ने लागू की है. डिवाइस का मालिक, गड़बड़ी और इस डिवाइस के इस्तेमाल से जुड़ा डेटा Google को भेजने का विकल्प चुन सकता है. अगर आपकी दूसरी 'वेब और ऐप्लिकेशन गतिविधि' सेटिंग चालू है, तो यह डेटा आपके Google खाते में सेव किया जा सकता है.</translation> <translation id="8931394284949551895">नए डिवाइस</translation> <translation id="8931475688782629595">सिंक किया गया डेटा प्रबंधित करें</translation> <translation id="8932894639908691771">ऐक्सेस का तरीका बदलने के विकल्प</translation> @@ -5917,6 +5967,7 @@ <translation id="8951465597020890363">क्या आप मेहमान मोड से बाहर निकलना चाहते हैं?</translation> <translation id="8952831374766033534">कॉन्फ़िगर करने का विकल्प काम नहीं करता: <ph name="ERROR_LINE" /></translation> <translation id="895347679606913382">प्रारंभ कर रहा है...</translation> +<translation id="8957762313041272117">लाइव कैप्शन</translation> <translation id="895944840846194039">JavaScript मेमोरी</translation> <translation id="8962083179518285172">विवरण छुपाएं</translation> <translation id="8962918469425892674">यह साइट गति या रोशनी के सेंसर का इस्तेमाल कर रही है.</translation> @@ -5963,11 +6014,13 @@ <translation id="9018218886431812662">इंस्टॉल हो गया है</translation> <translation id="901834265349196618">ईमेल</translation> <translation id="9019062154811256702">ऑटोमैटिक भरने वाली सेटिंग को पढ़ें और बदलें</translation> +<translation id="9019894137004772119">जगह की जानकारी इस्तेमाल करें. जगह की जानकारी देखने की अनुमति मांगने वाले ऐप्लिकेशन और सेवाओं को अपने डिवाइस की जगह की जानकारी का इस्तेमाल करने दें. Google समय-समय पर जगह से जुड़ा डेटा इकट्ठा कर सकता है. साथ ही, जगह की जानकारी को ज़्यादा सटीक बनाने और उससे जुड़ी सेवाओं में सुधार के लिए, आपकी पहचान ज़ाहिर किए बगैर यह डेटा इस्तेमाल कर सकता है.</translation> <translation id="9020362265352758658">4x</translation> <translation id="9021662811137657072">वायरस का पता चला</translation> <translation id="9022847679183471841">यह खाता इस कंप्यूटर पर <ph name="AVATAR_NAME" /> के नाम से पहले से उपयोग किया जा रहा है.</translation> <translation id="9023009238991294202">इस डिवाइस के दूसरे उपयोगकर्ता इस नेटवर्क का उपयोग कर सकते हैं.</translation> <translation id="9023015617655685412">इस टैब को बुकमार्क करें...</translation> +<translation id="9023909777842748145">इस सुविधा को बंद करने के बाद भी आपका डिवाइस, सिस्टम अपडेट और सुरक्षा जैसी ज़रूरी सेवाएं पाने के लिए जानकारी भेज सकेगा.</translation> <translation id="9024127637873500333">नए टैब में &खोलें</translation> <translation id="9024158959543687197">शेयर माउंट करने में गड़बड़ी. फ़ाइल शेयर यूआरएल देखें और दोबारा कोशिश करें.</translation> <translation id="9026731007018893674">डाउनलोड करें</translation> @@ -5975,6 +6028,7 @@ <translation id="9027459031423301635">नए &टैब में लिंक खोलें</translation> <translation id="9030515284705930323">आपके संगठन ने आपके खाते के लिए Google Play स्टोर को सक्षम नहीं किया है. ज़्यादा जानकारी के लिए अपने व्यवस्थापक से संपर्क करें.</translation> <translation id="9030785788945687215">Gmail</translation> +<translation id="9031549947500880805">'Google डिस्क' में बैक अप लें. अपना डेटा आसानी से वापस लाएं या किसी भी समय डिवाइस बदलें. आपके बैक अप में ऐप्लिकेशन डेटा शामिल होता है.</translation> <translation id="9033857511263905942">&चिपकाएं</translation> <translation id="9037965129289936994">मूल दिखाएं</translation> <translation id="903797871439633902">इस <ph name="DEVICE_TYPE" /> के लिए अपने-आप होने वाला यह आखिरी साॅफ़्टवेयर और सुरक्षा अपडेट था. आने वाले समय में अपडेट पाने के लिए, नए माॅडल में अपग्रेड करें. <a target="_blank" href="<ph name="URL" />">ज़्यादा जानें</a></translation> @@ -6071,6 +6125,7 @@ <translation id="9170884462774788842">आपके कंप्यूटर पर किसी अन्य प्रोग्राम ने एक्सटेंशन जोड़ा है, जो Chrome के काम करने के तरीके को बदल सकता है.</translation> <translation id="917350715406657904">आप उस समयसीमा तक पहुंच गए हैं जो आपके माता-पिता ने <ph name="APP_NAME" /> के लिए तय की थी. आप इसे कल <ph name="TIME_LIMIT" /> के लिए इस्तेमाल कर सकते हैं.</translation> <translation id="9173995187295789444">ब्लूटूथ डिवाइस के लिए स्कैन किया जा रहा है...</translation> +<translation id="9174401638287877180">इस्तेमाल और गड़बड़ी की जानकारी से जुड़ा डेटा भेजें. Google को गड़बड़ी, डिवाइस, और ऐप्लिकेशन के इस्तेमाल से जुड़ा डेटा अपने-आप भेजकर, अपने बच्चे के Android अनुभव को बेहतर बनाने में मदद करें. इसका इस्तेमाल आपके बच्चे की पहचान करने के लिए नहीं किया जाएगा. यह सिस्टम और ऐप्लिकेशन की स्थिरता बढ़ाने और दूसरे सुधार करने में मदद करेगा. एग्रीगेट किया गया कुछ डेटा, Google ऐप्लिकेशन और पार्टनर की भी मदद करेगा. जैसे, Android डेवलपर. अगर आपके बच्चे के लिए 'अन्य वेब और ऐप्लिकेशन गतिविधि' सेटिंग चालू है, तो यह डेटा उसके Google खाते में सेव किया जा सकता है.</translation> <translation id="917510707618656279">जब कोई साइट ब्लूटूथ डिवाइस ऐक्सेस करना चाहे, तो इसके लिए पूछें</translation> <translation id="9176476835295860688">इस्तेमाल और निदान से जुड़ा डेटा भेजें. यह डिवाइस फ़िलहाल Google को निदान, डिवाइस, और ऐप्लिकेशन के इस्तेमाल से जुड़ा डेटा अपने आप भेज रहा है. यह सिस्टम और ऐप्लिकेशन की स्थिरता और दूसरे सुधारों में मदद करेगा. कुछ एग्रीगेट डेटा Google ऐप्लिकेशन और पार्टनर, जैसे कि Android डेवलपरों की भी मदद करेगा. यह <ph name="BEGIN_LINK1" />सेटिंग<ph name="END_LINK1" /> डिवाइस के मालिक ने लागू की है. अगर आपकी दूसरी 'वेब और ऐप्लिकेशन गतिविधि' सेटिंग चालू है, तो यह डेटा आपके Google खाते में सेव किया जा सकता है. <ph name="BEGIN_LINK2" />ज़्यादा जानें<ph name="END_LINK2" /></translation> <translation id="9176611096776448349"><ph name="WINDOW_TITLE" /> - ब्लूटूथ डिवाइस कनेक्ट है</translation>
diff --git a/chrome/app/resources/generated_resources_hr.xtb b/chrome/app/resources/generated_resources_hr.xtb index b6b4f5ea..8eeb782 100644 --- a/chrome/app/resources/generated_resources_hr.xtb +++ b/chrome/app/resources/generated_resources_hr.xtb
@@ -1120,7 +1120,6 @@ <translation id="247949520305900375">Podijeli zvuk</translation> <translation id="2480868415629598489">izmjenjivati podatke koje kopirate i lijepite</translation> <translation id="2482878487686419369">Obavijesti</translation> -<translation id="2483610039979585156"><ph name="ORIGIN" /> će moći uređivati <ph name="FILENAME" /> dok ne zatvorite sve <ph name="ORIGIN" /> kartice</translation> <translation id="2484959914739448251">Da biste izbrisali podatke o pregledavanju sa svih svojih sinkroniziranih uređaja i svojeg Google računa, <ph name="BEGIN_LINK" />unesite svoju šifru<ph name="END_LINK" />.</translation> <translation id="2485005079599453134">Zaporka je spremljena na ovom uređaju</translation> <translation id="2485422356828889247">Deinstaliraj</translation> @@ -1704,6 +1703,7 @@ <translation id="3264544094376351444">Font Sans-serif</translation> <translation id="3264582393905923483">Kontekst</translation> <translation id="3265459715026181080">Zatvori prozor</translation> +<translation id="3266274118485960573">U tijeku je sigurnosna provjera.</translation> <translation id="3267726687589094446">Nastavi dozvoljavati automatska preuzimanja više datoteka</translation> <translation id="3268451620468152448">Otvorene kartice</translation> <translation id="3269069891205016797">Vaši će se podaci ukloniti s uređaja kada se odjavite.</translation> @@ -1725,7 +1725,6 @@ <translation id="3282568296779691940">Prijavite se u Chrome</translation> <translation id="3285322247471302225">Nova &kartica</translation> <translation id="328571385944182268">Spremiti zaporke?</translation> -<translation id="328785681103589998"><ph name="ORIGIN" /> moći će pregledavati <ph name="FILENAME" /> dok ne zatvorite sve <ph name="ORIGIN" /> kartice</translation> <translation id="3288047731229977326">Proširenja pokrenuta u načinu rada razvojnog programera mogu naštetiti vašem računalu. Ako niste razvojni programer, trebali biste onemogućiti proširenja koja su pokrenuta u načinu rada razvojnog programera radi svoje zaštite.</translation> <translation id="3289856944988573801">Da biste provjerili ima li ažuriranja, upotrijebite Ethernet ili Wi-Fi.</translation> <translation id="3290356915286466215">Nije osigurano</translation> @@ -1810,6 +1809,7 @@ <translation id="3412265149091626468">Skoči na odabir</translation> <translation id="3413122095806433232">CA izdavači: <ph name="LOCATION" /></translation> <translation id="3414952576877147120">Veličina:</translation> +<translation id="3416468988018290825">Uvijek prikaži cijele URL-ove</translation> <translation id="3420501302812554910">Potrebno je vratiti interni sigurnosni ključ na zadano</translation> <translation id="3421387094817716717">Javni ključ s eliptičnom krivuljom</translation> <translation id="3422291238483866753">Prikaži upit kada web-lokacija želi izraditi 3D prikaz vašeg okruženja ili pratiti položaj kamere (preporučeno)</translation> @@ -2414,6 +2414,7 @@ <translation id="4144218403971135344">Gledajte videozapise u boljoj kvaliteti i štedite bateriju. Videozapisi će se reproducirati samo na zaslonu koji podržava Cast.</translation> <translation id="4146026355784316281">Uvijek otvori u pregledniku sustava</translation> <translation id="4146785383423576110">Vrati na zadano i očisti</translation> +<translation id="4147897805161313378">Google fotografije</translation> <translation id="4147911968024186208">Pokušajte ponovo. Ako se pogreška ponovi, obratite se predstavniku podrške.</translation> <translation id="4150201353443180367">Zaslon</translation> <translation id="4152670763139331043">{NUM_TABS,plural, =1{1 kartica}one{# kartica}few{# kartice}other{# kartica}}</translation> @@ -2733,6 +2734,7 @@ <translation id="4633757335284074492">Sigurnosno kopiranje na Google disku. Lako vratite podatke ili promijenite uređaj u bilo kojem trenutku. Sigurnosna kopija uključuje podatke aplikacija. Sigurnosna kopija prenosi se na Google i kriptira pomoću zaporke Google računa vašeg djeteta.</translation> <translation id="4634771451598206121">Prijavite se ponovo...</translation> <translation id="4635398712689569051">Stranica <ph name="PAGE_NAME" /> nije dostupna gostujućim korisnicima.</translation> +<translation id="4636930964841734540">Informacije</translation> <translation id="4637083375689622795">Više radnji, <ph name="EMAIL" /></translation> <translation id="4638930039313743000">Omogući ADB otklanjanje pogrešaka</translation> <translation id="4641539339823703554">Chrome nije mogao postaviti vrijeme sustava. Provjerite vrijeme u nastavku i ispravite ga ako je potrebno.</translation> @@ -2812,7 +2814,6 @@ <translation id="4750394297954878236">Prijedlozi</translation> <translation id="475088594373173692">Prvi korisnik</translation> <translation id="4751476147751820511">Senzori pokreta ili osvjetljenja</translation> -<translation id="4756269098451810636">Slika podijeljena s uređaja <ph name="DEVICE_NAME" /></translation> <translation id="4756378406049221019">Zaustavi / ponovno učitaj</translation> <translation id="4756388243121344051">&Povijest</translation> <translation id="4759238208242260848">Preuzimanje</translation> @@ -3759,7 +3760,6 @@ <translation id="6040852767465482106">Anoniman identitet</translation> <translation id="6041046205544295907"><ph name="BEGIN_PARAGRAPH1" />Googleova usluga lokacije upotrebljava izvore kao što su Wi‑Fi, mobilne mreže i senzori za procjenu lokacije vašeg uređaja.<ph name="END_PARAGRAPH1" /> <ph name="BEGIN_PARAGRAPH2" />Lokaciju možete isključiti tako što ćete isključiti glavnu postavku lokacije na ovom uređaju. U postavkama lokacije također možete isključiti upotrebu Wi‑Fija, mobilnih mreža i senzora za lokaciju.<ph name="END_PARAGRAPH2" /></translation> -<translation id="6041150002191391409"><ph name="ORIGIN" /> će moći vidjeti datoteke u mapi <ph name="FOLDERNAME" /> dok ne zatvorite sve <ph name="ORIGIN" /> kartice</translation> <translation id="6041155700700864984">Izađi iz punog zaslona</translation> <translation id="604124094241169006">Automatski</translation> <translation id="6042308850641462728">Više</translation> @@ -4155,7 +4155,6 @@ <translation id="6561726789132298588">enter</translation> <translation id="656293578423618167">Putanja ili naziv datoteke predugački su. Spremite datoteku pod kraćim nazivom ili na neku drugu lokaciju.</translation> <translation id="6563469144985748109">Voditelj je još nije odobrio</translation> -<translation id="6567688344210276845">Nije uspjelo učitavanje ikone "<ph name="ICON" />" za radnju stranice.</translation> <translation id="6569934958368283244">Druge osobe</translation> <translation id="657402800789773160">&Reload This Page (Ponovo učitaj ovu stranicu)</translation> <translation id="6577284282025554716">Preuzimanje otkazano: <ph name="FILE_NAME" /></translation> @@ -4167,6 +4166,7 @@ <translation id="6586451623538375658">Zamijeni primarnu tipku miša</translation> <translation id="6586604979641883411">Za nadogradnju Linuxa potrebno je najmanje <ph name="REQUIRED_SPACE" /> slobodnog prostora na disku. Oslobodite nešto prostora na svojem uređaju i pokušajte ponovno.</translation> <translation id="6588043302623806746">Koristi siguran DNS</translation> +<translation id="659005207229852190">Dovršena je sigurnosna provjera.</translation> <translation id="6590458744723262880">Preimenovanje mape</translation> <translation id="6592267180249644460">WebRTC zapisnik snimljen je u <ph name="WEBRTC_LOG_CAPTURE_TIME" /></translation> <translation id="6592808042417736307">Otisak prsta je spremljen</translation> @@ -4220,7 +4220,6 @@ <translation id="6659594942844771486">Kartica</translation> <translation id="6664237456442406323">Nažalost, vaše je računalo konfigurirano pogrešno oblikovanim ID-om hardvera. To sprječava ažuriranje OS-a Chrome najnovijim sigurnosnim popravcima pa bi vaše računalo <ph name="BEGIN_BOLD" />moglo biti ranjivo na zlonamjerne napade<ph name="END_BOLD" />.</translation> <translation id="6664774537677393800">Prilikom otvaranja profila dogodila se pogreška. Odjavite se i ponovo prijavite.</translation> -<translation id="6667776121818773738">Slika podijeljena s drugog uređaja</translation> <translation id="6673391612973410118"><ph name="PRINTER_MAKE_OR_MODEL" /> (USB)</translation> <translation id="667517062706956822">Želite li da Google prevede ovu stranicu (<ph name="SOURCE_LANGUAGE" /> – <ph name="TARGET_LANGUAGE" />)?</translation> <translation id="6675665718701918026">Pokazivački je uređaj povezan</translation> @@ -4841,7 +4840,6 @@ <translation id="7497981768003291373">Nemate nedavno snimljenih WebRTC tekstnih zapisnika.</translation> <translation id="7502658306369382406">IPv6 adresa</translation> <translation id="7503191893372251637">Vrsta Netscape certifikata</translation> -<translation id="7503821294401948377">Nije uspjelo učitavanje ikone "<ph name="ICON" />" za radnju preglednika.</translation> <translation id="7503985202154027481">Na sigurnosnom ključu zadržat će se evidencija vašeg posjeta toj web-lokaciji.</translation> <translation id="7504293978434250212">Vaša organizacija može pregledati datoteke veličine do 50 MB. Pokušajte prenijeti manju datoteku.</translation> <translation id="750509436279396091">Otvori mapu preuzimanja</translation> @@ -5429,6 +5427,7 @@ <translation id="8249672078237421304">Ponudi prijevod stranica koje nisu na jeziku koji čitam</translation> <translation id="8251441930213048644">Osvježi sada</translation> <translation id="8251578425305135684">Sličica je uklonjena.</translation> +<translation id="825238165904109940">Uvijek prikaži cijele URL-ove</translation> <translation id="8252569384384439529">Prijenos...</translation> <translation id="8253198102038551905">Kliknite "+" za proširenje svojstava mreže</translation> <translation id="8254954272268479918">Isključi Linux (Beta)</translation> @@ -5543,7 +5542,7 @@ <translation id="8408068190360279472"><ph name="NETWORK_TYPE" /> mreža, povezivanje</translation> <translation id="8410775397654368139">Google Play</translation> <translation id="8413385045638830869">Prvo pitaj (preporučeno)</translation> -<translation id="8417548266957501132">Roditeljeva zaporka</translation> +<translation id="8417548266957501132">Roditeljska zaporka</translation> <translation id="8417573335434189196">Ne štiti vas od opasnih web-lokacija, preuzimanja i proširenja. Chrome ne preporučuje ovu postavku.</translation> <translation id="8418445294933751433">&Prikaži kao karticu</translation> <translation id="8419098111404128271">Rezultati pretraživanja za "<ph name="SEARCH_TEXT" />"</translation> @@ -5644,7 +5643,6 @@ <translation id="8546930481464505581">Prilagodba dodirne trake</translation> <translation id="8547013269961688403">Omogući povećalo za cijeli zaslon</translation> <translation id="85486688517848470">Držite tipku Pretraživanje da biste izmjenjivali ponašanje tipki u najvišem retku</translation> -<translation id="8550165047974571882"><ph name="ORIGIN" /> će moći uređivati datoteke u mapi <ph name="FOLDERNAME" /> dok ne zatvorite sve <ph name="ORIGIN" /> kartice</translation> <translation id="8551388862522347954">Licence</translation> <translation id="8553342806078037065">Upravljaj drugim osobama</translation> <translation id="8554899698005018844">Nema jezika</translation>
diff --git a/chrome/app/resources/generated_resources_hu.xtb b/chrome/app/resources/generated_resources_hu.xtb index 5dc66007..34a792d 100644 --- a/chrome/app/resources/generated_resources_hu.xtb +++ b/chrome/app/resources/generated_resources_hu.xtb
@@ -1120,7 +1120,6 @@ <translation id="247949520305900375">Hang megosztása</translation> <translation id="2480868415629598489">Az Ön által másolt és beillesztett adatok módosítása</translation> <translation id="2482878487686419369">Értesítések</translation> -<translation id="2483610039979585156">A(z) <ph name="ORIGIN" /> addig tudja szerkeszteni a(z) <ph name="FILENAME" /> mappa fájljait, amíg Ön be nem zárja az összes <ph name="ORIGIN" />-lapot</translation> <translation id="2484959914739448251">Ha az összes szinkronizált eszközéről és a Google-fiókjából is törölni szeretné böngészési adatait, <ph name="BEGIN_LINK" />adja meg összetett jelszavát<ph name="END_LINK" />.</translation> <translation id="2485005079599453134">Jelszó mentve az eszközre</translation> <translation id="2485422356828889247">Eltávolítás</translation> @@ -1704,6 +1703,7 @@ <translation id="3264544094376351444">Talp nélküli betűtípus</translation> <translation id="3264582393905923483">Kontextus</translation> <translation id="3265459715026181080">Ablak bezárása</translation> +<translation id="3266274118485960573">A biztonsági ellenőrzés éppen fut.</translation> <translation id="3267726687589094446">Több fájl automatikus letöltésének engedélyezése továbbra is</translation> <translation id="3268451620468152448">Megnyitott lapok</translation> <translation id="3269069891205016797">Adatai törlődnek az eszközről, amikor kijelentkezik.</translation> @@ -1725,7 +1725,6 @@ <translation id="3282568296779691940">Bejelentkezés a Chrome-ba</translation> <translation id="3285322247471302225">Új lap</translation> <translation id="328571385944182268">Szeretné menteni a jelszavait?</translation> -<translation id="328785681103589998">A(z) <ph name="ORIGIN" /> addig tudja megtekinteni a(z) <ph name="FILENAME" /> mappa fájljait, amíg Ön be nem zárja az összes <ph name="ORIGIN" />-lapot</translation> <translation id="3288047731229977326">A fejlesztői módban futó bővítmények kárt okozhatnak számítógépén. Ha Ön nem fejlesztő, akkor a biztonság kedvéért kapcsolja ki a fejlesztői módban futó bővítményeket.</translation> <translation id="3289856944988573801">Kérjük, frissítések kereséséhez Ethernetet vagy Wi-Fit használjon.</translation> <translation id="3290356915286466215">Nem biztonságos</translation> @@ -1810,6 +1809,7 @@ <translation id="3412265149091626468">Ugrás a kijelöléshez</translation> <translation id="3413122095806433232">CA kibocsátók: <ph name="LOCATION" /></translation> <translation id="3414952576877147120">Méret:</translation> +<translation id="3416468988018290825">Mindig mutassa a teljes URL-eket</translation> <translation id="3420501302812554910">A belső biztonsági hardverkulcsot vissza kell állítani</translation> <translation id="3421387094817716717">Nyilvános kulcs elliptikus görbéje</translation> <translation id="3422291238483866753">Kérdezzen rá, ha valamelyik webhely 3D-s térképet szeretne létrehozni az Ön környezetéről, valamint ha követni szeretné a kamera pozícióját (ajánlott)</translation> @@ -2413,6 +2413,7 @@ <translation id="4144218403971135344">Jobb videóminőséget és hosszabb akkumulátor-üzemidőt biztosít. A videókat csak a Cast-kompatibilis képernyőn játssza le a rendszer.</translation> <translation id="4146026355784316281">Megnyitás mindig a rendszer megtekintőjével</translation> <translation id="4146785383423576110">Visszaállítás és megtisztítás</translation> +<translation id="4147897805161313378">Google Fotók</translation> <translation id="4147911968024186208">Próbálja újra. Ha ismét ezt a hibaüzenetet látja, forduljon helyi ügyfélszolgálati képviselőjéhez.</translation> <translation id="4150201353443180367">Megjelenítés</translation> <translation id="4152670763139331043">{NUM_TABS,plural, =1{1 lap}other{# lap}}</translation> @@ -2732,6 +2733,7 @@ <translation id="4633757335284074492">Biztonsági mentés a Google Drive-ra. Bármikor könnyedén visszaállíthatja adatait vagy lecserélheti eszközét. A biztonsági másolat alkalmazásadatokat tartalmaz. A biztonsági másolatokat a Google szervereire tölti fel a rendszer, és a gyermeke Google-fiókjához használt jelszóval titkosítja őket.</translation> <translation id="4634771451598206121">Bejelentkezés újra...</translation> <translation id="4635398712689569051">A(z) <ph name="PAGE_NAME" /> nem hozzáférhető a vendég felhasználók számára.</translation> +<translation id="4636930964841734540">Információ</translation> <translation id="4637083375689622795">További műveletek, <ph name="EMAIL" /></translation> <translation id="4638930039313743000">ADB-hibakeresés engedélyezése</translation> <translation id="4641539339823703554">A Chrome nem tudta beállítani a rendszeridőt. Kérjük, ellenőrizze az időt alább, és javítsa, ha szükséges.</translation> @@ -2811,7 +2813,6 @@ <translation id="4750394297954878236">Javaslatok</translation> <translation id="475088594373173692">Első felhasználó</translation> <translation id="4751476147751820511">Mozgás- és fényérzékelők</translation> -<translation id="4756269098451810636">A kép a következő eszközről lett megosztva: <ph name="DEVICE_NAME" /></translation> <translation id="4756378406049221019">Leállítás/Újratöltés</translation> <translation id="4756388243121344051">&Előzmények</translation> <translation id="4759238208242260848">Letöltések</translation> @@ -3760,7 +3761,6 @@ <translation id="6040852767465482106">Névtelen azonosító</translation> <translation id="6041046205544295907"><ph name="BEGIN_PARAGRAPH1" />A Google helyszolgáltatása olyan információforrásokat használ az eszköz helyének meghatározására, mint a Wi-Fi- és mobilhálózatok, valamint az érzékelők.<ph name="END_PARAGRAPH1" /> <ph name="BEGIN_PARAGRAPH2" />A helyszolgáltatás kikapcsolásához kapcsolja ki eszköze fő „Hely” beállítását. Emellett a helybeállításoknál kikapcsolhatja a Wi-Fi- és a mobilhálózatok, illetve az érzékelők használatát a tartózkodási hely meghatározásához.<ph name="END_PARAGRAPH2" /></translation> -<translation id="6041150002191391409">A(z) <ph name="ORIGIN" /> addig tudja megtekinteni a(z) <ph name="FOLDERNAME" /> mappa fájljait, amíg Ön be nem zárja az összes <ph name="ORIGIN" />-lapot</translation> <translation id="6041155700700864984">Kilépés a teljes képernyős módból</translation> <translation id="604124094241169006">Automatikus</translation> <translation id="6042308850641462728">Továbbiak</translation> @@ -4156,7 +4156,6 @@ <translation id="6561726789132298588">enter</translation> <translation id="656293578423618167">A fájl elérési útja vagy neve túl hosszú. Kérjük, mentse rövidebb névvel, illetve másik helyre.</translation> <translation id="6563469144985748109">A kezelő még nem hagyta jóvá</translation> -<translation id="6567688344210276845">Nem sikerült a(z) '<ph name="ICON" />' ikon betöltése az oldalművelethez.</translation> <translation id="6569934958368283244">További személyek</translation> <translation id="657402800789773160">Az oldal új&ratöltése</translation> <translation id="6577284282025554716">Letöltés megszakítva: <ph name="FILE_NAME" /></translation> @@ -4168,6 +4167,7 @@ <translation id="6586451623538375658">Az elsődleges egérgomb cseréje</translation> <translation id="6586604979641883411">A Linux frissítéséhez legalább <ph name="REQUIRED_SPACE" /> szabad lemezterületre van szükség. Szabadítson fel tárhelyet az eszközén, és próbálja újra.</translation> <translation id="6588043302623806746">Biztonságos DNS használata</translation> +<translation id="659005207229852190">A biztonsági ellenőrzés befejeződött.</translation> <translation id="6590458744723262880">Mappa átnevezése</translation> <translation id="6592267180249644460">WebRTC napló rögzítésének ideje: <ph name="WEBRTC_LOG_CAPTURE_TIME" /></translation> <translation id="6592808042417736307">Sikerült az ujjlenyomat rögzítése</translation> @@ -4221,7 +4221,6 @@ <translation id="6659594942844771486">Lap</translation> <translation id="6664237456442406323">Sajnos számítógépe nem megfelelő formátumú hardverazonosítóval van konfigurálva. Emiatt a Chrome OS nem tud frissülni a legújabb biztonsági javításokkal, és számítógépét <ph name="BEGIN_BOLD" />rosszindulatú támadások érhetik<ph name="END_BOLD" />.</translation> <translation id="6664774537677393800">Hiba történt a profil megnyitása során. Jelentkezzen ki, majd jelentkezzen be újra.</translation> -<translation id="6667776121818773738">A kép másik eszközről lett megosztva</translation> <translation id="6673391612973410118"><ph name="PRINTER_MAKE_OR_MODEL" /> (USB)</translation> <translation id="667517062706956822">Szeretné, hogy a Google lefordítsa az oldalt <ph name="SOURCE_LANGUAGE" /> nyelvről <ph name="TARGET_LANGUAGE" /> nyelvre?</translation> <translation id="6675665718701918026">Mutatóeszköz csatlakoztatva</translation> @@ -4842,7 +4841,6 @@ <translation id="7497981768003291373">Nincsenek mostanában rögzített szöveges WebRTC-naplói.</translation> <translation id="7502658306369382406">IPv6-cím</translation> <translation id="7503191893372251637">Netscape-tanúsítvány típusa</translation> -<translation id="7503821294401948377">Nem sikerült a(z) '<ph name="ICON" />' ikon betöltése a böngészőművelethez.</translation> <translation id="7503985202154027481">A biztonsági hardverkulcs tárolni fogja, hogy Ön felkereste ezt a webhelyet.</translation> <translation id="7504293978434250212">Szervezete legfeljebb 50 MB méretű fájlokat tud ellenőrizni. Próbáljon kisebb fájlt feltölteni.</translation> <translation id="750509436279396091">Letöltések mappa megnyitása</translation> @@ -5430,6 +5428,7 @@ <translation id="8249672078237421304">Kínálja fel az Ön által nem ismert nyelven írt oldalak fordítását</translation> <translation id="8251441930213048644">Frissítés most</translation> <translation id="8251578425305135684">Indexkép eltávolítva.</translation> +<translation id="825238165904109940">Mindig mutassa a teljes URL-eket</translation> <translation id="8252569384384439529">Feltöltés…</translation> <translation id="8253198102038551905">Kattintson a „+” gombra a hálózati tulajdonságok lekéréséhez.</translation> <translation id="8254954272268479918">Linux (béta) kikapcsolása</translation> @@ -5645,7 +5644,6 @@ <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="8550165047974571882">A(z) <ph name="ORIGIN" /> addig tudja szerkeszteni a(z) <ph name="FOLDERNAME" /> mappa fájljait, amíg Ön be nem zárja az összes <ph name="ORIGIN" />-lapot</translation> <translation id="8551388862522347954">Licencek</translation> <translation id="8553342806078037065">Más személyek kezelése</translation> <translation id="8554899698005018844">Nincs nyelv</translation>
diff --git a/chrome/app/resources/generated_resources_hy.xtb b/chrome/app/resources/generated_resources_hy.xtb index 3c37fd9..3273c43 100644 --- a/chrome/app/resources/generated_resources_hy.xtb +++ b/chrome/app/resources/generated_resources_hy.xtb
@@ -1120,7 +1120,6 @@ <translation id="247949520305900375">Տարածել ձայնը</translation> <translation id="2480868415629598489">Փոփոխել տվյալները, որոնք դուք պատճենում և տեղադրում եք</translation> <translation id="2482878487686419369">Ծանուցումներ</translation> -<translation id="2483610039979585156"><ph name="ORIGIN" /> կայքը կկարողանա խմբագրել <ph name="FILENAME" /> ֆայլը, մինչև չփակեք բոլոր <ph name="ORIGIN" /> ներդիրները։</translation> <translation id="2484959914739448251">Այցելությունների պատմությունը բոլոր համաժամացված սարքերից և Google հաշվից ջնջելու համար <ph name="BEGIN_LINK" />մուտքագրեք ձեր անցաբառը<ph name="END_LINK" />:</translation> <translation id="2485005079599453134">Գաղտնաբառը պահվեց այս սարքում</translation> <translation id="2485422356828889247">Ապատեղադրել</translation> @@ -1725,7 +1724,6 @@ <translation id="3282568296779691940">Մուտք գործել Chrome</translation> <translation id="3285322247471302225">Նոր &ներդիր</translation> <translation id="328571385944182268">Պահե՞լ ձեր գաղտնաբառերը</translation> -<translation id="328785681103589998"><ph name="ORIGIN" /> կայքը կկարողանա դիտել <ph name="FILENAME" /> ֆայլը, մինչև չփակեք բոլոր <ph name="ORIGIN" /> ներդիրները։</translation> <translation id="3288047731229977326">Մշակողի ռեժիմում գործարկվող ընդլայնումները կարող են վնասել ձեր համակարգիչը: Եթե դուք մշակող չեք, ձեր ապահովության համար խորհուրդ ենք տալիս անջատել այդ ընդլայնումները:</translation> <translation id="3289856944988573801">Թարմացումների առկայությունը ստուգելու համար օգտվեք Ethernet կամ Wi-Fi ցանցերից:</translation> <translation id="3290356915286466215">Պաշտպանված չէ</translation> @@ -2414,6 +2412,7 @@ <translation id="4144218403971135344">Այս գործառույթը կօգնի բարելավել տեսանյութի որակը և երկարացնել մարտկոցի կյանքը: Տեսանյութը կնվագարկվի միայն Cast աջակցող էկրաններին:</translation> <translation id="4146026355784316281">Միշտ բացել համակարգի դիտման ծրագրի միջոցով</translation> <translation id="4146785383423576110">Վերակայել և մաքրել</translation> +<translation id="4147897805161313378">Google Լուսանկարներ</translation> <translation id="4147911968024186208">Խնդրում ենք նորից փորձել։ Եթե խնդիրը չլուծվի, կապվեք աջակցման կենտրոնի մասնագետների հետ:</translation> <translation id="4150201353443180367">Էկրան</translation> <translation id="4152670763139331043">{NUM_TABS,plural, =1{1 ներդիր}one{# ներդիր}other{# ներդիր}}</translation> @@ -2733,6 +2732,7 @@ <translation id="4633757335284074492">Պահուստավորում Google Drive-ում։ Ցանկացած ժամանակ հեշտությամբ վերականգնեք ձեր տվյալները կամ տեղափոխեք մեկ այլ սարք։ Պահուստավորումը ներառում է հավելվածների տվյալները։ Պահուստավորված տվյալները վերբեռնվում են Google և գաղտնագրվում ձեր երեխայի Google հաշվի գաղտնաբառի միջոցով։</translation> <translation id="4634771451598206121">Նորից մուտք գործել…</translation> <translation id="4635398712689569051">«<ph name="PAGE_NAME" />» էջը հասանելի չէ հյուրի ռեժիմում:</translation> +<translation id="4636930964841734540">Տեղեկություններ</translation> <translation id="4637083375689622795">Այլ գործողություններ, <ph name="EMAIL" /></translation> <translation id="4638930039313743000">Միացնել ADB վրիպազերծումը</translation> <translation id="4641539339823703554">Chrome-ը չկարողացավ կայել համակարգի ժամանակը: Ստուգեք ժամը և, եթե կարիք կա, ուղղեք:</translation> @@ -2812,7 +2812,6 @@ <translation id="4750394297954878236">Առաջարկներ</translation> <translation id="475088594373173692">Առաջին օգտատեր</translation> <translation id="4751476147751820511">Շարժման և լուսավորության տվիչներ</translation> -<translation id="4756269098451810636">Պատկեր՝ <ph name="DEVICE_NAME" /> սարքից</translation> <translation id="4756378406049221019">Դադարեցնել/թարմացնել</translation> <translation id="4756388243121344051">&Պատմություն</translation> <translation id="4759238208242260848">Ներբեռնումներ</translation> @@ -3762,7 +3761,6 @@ <translation id="6040852767465482106">Նույնականացման անանուն տվյալներ</translation> <translation id="6041046205544295907"><ph name="BEGIN_PARAGRAPH1" />Google-ի տեղորոշման ծառայությունն օգտագործում է տարբեր աղբյուրներ, ինչպիսիք են Wi-Fi և բջջային ցանցերը՝ ձեր սարքի գտնվելու վայրը որոշելու համար:<ph name="END_PARAGRAPH1" /> <ph name="BEGIN_PARAGRAPH2" />Դուք կարող եք անջատել տեղորոշումը՝ սարքում անջատելով տեղորոշման հիմնական կարգավորումը: Ինչպես նաև տեղադրության կարգավորումներում կարող եք անջատել Wi-Fi-ի, բջջային ցանցերի ու տվիչների օգտագործումը տեղորոշման համար։<ph name="END_PARAGRAPH2" /></translation> -<translation id="6041150002191391409"><ph name="ORIGIN" /> կայքը կկարողանա դիտել «<ph name="FOLDERNAME" />» պանակի բոլոր ֆայլերը, մինչև չփակեք բոլոր <ph name="ORIGIN" /> ներդիրները։</translation> <translation id="6041155700700864984">Դուրս գալ լիաէկրան ռեժիմից</translation> <translation id="604124094241169006">Ավտոմատ</translation> <translation id="6042308850641462728">Ավելին</translation> @@ -4158,7 +4156,6 @@ <translation id="6561726789132298588">enter</translation> <translation id="656293578423618167">Ֆայլի ուղին կամ անունը չափազանց երկար է: Տվեք ավելի կարճ անուն կամ պահեք այլ տեղում:</translation> <translation id="6563469144985748109">Ձեր ադմինիստրատորը դեռ չի հաստատել</translation> -<translation id="6567688344210276845">Չհաջողվեց բեռնել «<ph name="ICON" />» պատկերակը՝ էջի գործողության համար:</translation> <translation id="6569934958368283244">Այլ մարդիկ</translation> <translation id="657402800789773160">&Վերաբեռնել այս էջը</translation> <translation id="6577284282025554716">Ներբեռնումը չեղարկվել է՝ <ph name="FILE_NAME" /></translation> @@ -4223,7 +4220,6 @@ <translation id="6659594942844771486">Ներդիր</translation> <translation id="6664237456442406323">Ձեր համակարգիչը կազմաձևված է սարքակազմի սխալ ID-ով: Սա թույլ չի տալիս, որպեսզի Chrome OS-ը թարմացվի անվտանգության վերջին նորացումներով և ձեր համակարգիչը <ph name="BEGIN_BOLD" />կարող է խոցելի դառնալ վնասարար հարձակումների համար<ph name="END_BOLD" />:</translation> <translation id="6664774537677393800">Պրոֆիլը բացելիս սխալ առաջացավ: Դուրս եկեք հաշվից ու նորից մուտք գործեք:</translation> -<translation id="6667776121818773738">Պատկեր՝ այլ սարքից</translation> <translation id="6673391612973410118"><ph name="PRINTER_MAKE_OR_MODEL" /> (USB)</translation> <translation id="667517062706956822">Ուզո՞ւմ եք, որ Google-ը թարգմանի այս էջը <ph name="SOURCE_LANGUAGE" />ից <ph name="TARGET_LANGUAGE" />:</translation> <translation id="6675665718701918026">Ցուցիչ սարքը միացված է</translation> @@ -4844,7 +4840,6 @@ <translation id="7497981768003291373">Վերջերս ստեղծված WebRTC տեքստային մատյաններ չկան:</translation> <translation id="7502658306369382406">IPv6 հասցե</translation> <translation id="7503191893372251637">Netscape-ի վկայագրի տեսակ</translation> -<translation id="7503821294401948377">Չհաջողվեց բեռնել «<ph name="ICON" />» պատկերակը դիտարկիչի աշխատանքի համար:</translation> <translation id="7503985202154027481">Անվտանգության բանալու վրա կպահվի նշում այս կայքի այցելության մասին:</translation> <translation id="7504293978434250212">Ձեր կազմակերպությունը կարող է սկանավորել մինչև 50 ՄԲ չափի ֆայլեր։ Փորձեք ավելի փոքր ֆայլ վերբեռնել։</translation> <translation id="750509436279396091">Բացել ներբեռնումների պանակը</translation> @@ -5544,7 +5539,7 @@ <translation id="8408068190360279472"><ph name="NETWORK_TYPE" /> ցանց, միացում…</translation> <translation id="8410775397654368139">Google Play</translation> <translation id="8413385045638830869">Նախ հարցնել (հանձնարարելի)</translation> -<translation id="8417548266957501132">Ծնողի գաղտնաբառ</translation> +<translation id="8417548266957501132">Ծնողի գաղտնաբառը</translation> <translation id="8417573335434189196">Չի պաշտպանում վտանգավոր կայքերից, ընդլայնումներից և ներբեռնումներից։ Chrome-ը խորհուրդ չի տալիս օգտագործել այս կարգավորումը։</translation> <translation id="8418445294933751433">&Ցույց տալ որպես ներդիր</translation> <translation id="8419098111404128271">«<ph name="SEARCH_TEXT" />»-ի որոնման արդյունքներ</translation> @@ -5645,7 +5640,6 @@ <translation id="8546930481464505581">Հարմարեցնել հպման գոտին</translation> <translation id="8547013269961688403">Միացնել լիաէկրան խոշորացույցը</translation> <translation id="85486688517848470">Վերևի շարքի ստեղները փոխարկելու համար սեղմած պահեք որոնման ստեղնը</translation> -<translation id="8550165047974571882"><ph name="ORIGIN" /> կայքը կկարողանա խմբագրել «<ph name="FOLDERNAME" />» պանակի բոլոր ֆայլերը, մինչև չփակեք բոլոր <ph name="ORIGIN" /> ներդիրները։</translation> <translation id="8551388862522347954">Լիցենզիաներ</translation> <translation id="8553342806078037065">Կառավարել այլ օգտատերերի</translation> <translation id="8554899698005018844">Լեզու նշված չէ</translation>
diff --git a/chrome/app/resources/generated_resources_id.xtb b/chrome/app/resources/generated_resources_id.xtb index c0bd7fa..984d087 100644 --- a/chrome/app/resources/generated_resources_id.xtb +++ b/chrome/app/resources/generated_resources_id.xtb
@@ -680,7 +680,7 @@ <translation id="1887850431809612466">Revisi hardware</translation> <translation id="1890674179660343635"><span>ID: </span><ph name="EXTENSION_ID" /></translation> <translation id="189210018541388520">Buka layar penuh</translation> -<translation id="1892341345406963517">Hai <ph name="PARENT_NAME" /></translation> +<translation id="1892341345406963517">Halo <ph name="PARENT_NAME" /></translation> <translation id="189358972401248634">Bahasa lain</translation> <translation id="1895252664692693738"><ph name="TIME_LEFT" /> lagi</translation> <translation id="1895658205118569222">Mati</translation> @@ -1120,7 +1120,6 @@ <translation id="247949520305900375">Bagikan audio</translation> <translation id="2480868415629598489">Mengubah data yang Anda copy-paste</translation> <translation id="2482878487686419369">Notifikasi</translation> -<translation id="2483610039979585156"><ph name="ORIGIN" /> akan dapat mengedit <ph name="FILENAME" /> hingga Anda menutup semua tab <ph name="ORIGIN" /></translation> <translation id="2484959914739448251">Untuk menghapus data browsing dari semua perangkat yang disinkronkan dan dari Akun Google, <ph name="BEGIN_LINK" />masukkan frasa sandi<ph name="END_LINK" />.</translation> <translation id="2485005079599453134">Sandi disimpan di perangkat ini</translation> <translation id="2485422356828889247">Uninstal</translation> @@ -1723,7 +1722,6 @@ <translation id="3282568296779691940">Login ke Chrome</translation> <translation id="3285322247471302225">&Tab Baru</translation> <translation id="328571385944182268">Simpan sandi Anda?</translation> -<translation id="328785681103589998"><ph name="ORIGIN" /> akan dapat melihat <ph name="FILENAME" /> hingga Anda menutup semua tab <ph name="ORIGIN" /></translation> <translation id="3288047731229977326">Ekstensi yang berjalan dalam mode pengembang dapat membahayakan komputer Anda. Jika Anda bukan pengembang, Anda sebaiknya menonaktifkan ekstensi yang berjalan dalam mode pengembang ini agar tetap aman.</translation> <translation id="3289856944988573801">Untuk memeriksa pembaruan, gunakan Ethernet atau Wi-Fi.</translation> <translation id="3290356915286466215">Tidak aman</translation> @@ -2412,6 +2410,7 @@ <translation id="4144218403971135344">Dapatkan video yang berkualitas lebih baik dan hemat baterai. Video hanya akan diputar di layar yang kompatibel untuk Cast.</translation> <translation id="4146026355784316281">Selalu Buka Dengan Penampil Sistem</translation> <translation id="4146785383423576110">Setel ulang dan bersihkan</translation> +<translation id="4147897805161313378">Google Foto</translation> <translation id="4147911968024186208">Harap coba lagi. Jika Anda melihat error ini lagi, hubungi perwakilan dukungan Anda.</translation> <translation id="4150201353443180367">Tampilan</translation> <translation id="4152670763139331043">{NUM_TABS,plural, =1{1 tab}other{# tab}}</translation> @@ -2731,6 +2730,7 @@ <translation id="4633757335284074492">Cadangkan ke Google Drive. Pulihkan data atau beralih perangkat kapan saja dengan mudah. Cadangan ini mencakup data aplikasi. Cadangan diupload ke Google dan dienkripsi menggunakan sandi Akun Google anak Anda.</translation> <translation id="4634771451598206121">Login lagi...</translation> <translation id="4635398712689569051"><ph name="PAGE_NAME" /> tidak tersedia bagi pengguna Tamu.</translation> +<translation id="4636930964841734540">Info</translation> <translation id="4637083375689622795">Tindakan lainnya, <ph name="EMAIL" /></translation> <translation id="4638930039313743000">Aktifkan proses debug ADB</translation> <translation id="4641539339823703554">Chrome tidak dapat menyetel waktu sistem. Periksa waktu di bawah dan perbaiki jika perlu.</translation> @@ -2810,7 +2810,6 @@ <translation id="4750394297954878236">Saran</translation> <translation id="475088594373173692">Pengguna pertama</translation> <translation id="4751476147751820511">Sensor gerakan atau cahaya</translation> -<translation id="4756269098451810636">Gambar yang dibagikan dari <ph name="DEVICE_NAME" /></translation> <translation id="4756378406049221019">Hentikan/Muat Ulang</translation> <translation id="4756388243121344051">&Riwayat</translation> <translation id="4759238208242260848">Download</translation> @@ -3757,7 +3756,6 @@ <translation id="6040852767465482106">Identitas Anonim</translation> <translation id="6041046205544295907"><ph name="BEGIN_PARAGRAPH1" />Layanan lokasi Google menggunakan sumber seperti Wi‑Fi, jaringan seluler, dan sensor untuk membantu memperkirakan lokasi perangkat Anda.<ph name="END_PARAGRAPH1" /> <ph name="BEGIN_PARAGRAPH2" />Anda dapat menonaktifkan Lokasi dengan menonaktifkan setelan Lokasi utama di perangkat. Anda juga dapat menonaktifkan penggunaan Wi-Fi, jaringan seluler, dan sensor untuk lokasi di setelan lokasi.<ph name="END_PARAGRAPH2" /></translation> -<translation id="6041150002191391409"><ph name="ORIGIN" /> akan dapat melihat semua file di <ph name="FOLDERNAME" /> hingga Anda menutup semua tab <ph name="ORIGIN" /></translation> <translation id="6041155700700864984">Keluar dari Layar Penuh</translation> <translation id="604124094241169006">Otomatis</translation> <translation id="6042308850641462728">Lainnya</translation> @@ -4153,7 +4151,6 @@ <translation id="6561726789132298588">masuk</translation> <translation id="656293578423618167">Jalur atau nama file terlalu panjang. Simpan dengan nama yang lebih pendek atau ke lokasi lain.</translation> <translation id="6563469144985748109">Pengelola Anda belum menyetujuinya</translation> -<translation id="6567688344210276845">Tidak dapat memuat ikon '<ph name="ICON" />' untuk tindakan halaman.</translation> <translation id="6569934958368283244">Orang lain</translation> <translation id="657402800789773160">&Muat Ulang Halaman Ini</translation> <translation id="6577284282025554716">Download dibatalkan: <ph name="FILE_NAME" /></translation> @@ -4218,7 +4215,6 @@ <translation id="6659594942844771486">Tab</translation> <translation id="6664237456442406323">Sayangnya, komputer Anda dikonfigurasi dengan ID hardware yang rusak. Hal ini mencegah Chrome OS memperbarui dengan perbaikan keamanan terbaru dan komputer Anda <ph name="BEGIN_BOLD" />mungkin rentan terhadap serangan berbahaya<ph name="END_BOLD" />.</translation> <translation id="6664774537677393800">Terjadi kesalahan saat membuka profil Anda. Harap keluar, lalu masuk lagi.</translation> -<translation id="6667776121818773738">Gambar dibagikan dari perangkat lain</translation> <translation id="6673391612973410118"><ph name="PRINTER_MAKE_OR_MODEL" /> (USB)</translation> <translation id="667517062706956822">Ingin Google menerjemahkan halaman ini dari <ph name="SOURCE_LANGUAGE" /> ke <ph name="TARGET_LANGUAGE" />?</translation> <translation id="6675665718701918026">Perangkat penunjuk telah tersambung</translation> @@ -4839,7 +4835,6 @@ <translation id="7497981768003291373">Anda tidak memiliki log teks WebRTC yang direkam baru-baru ini.</translation> <translation id="7502658306369382406">Alamat IPv6</translation> <translation id="7503191893372251637">Netscape Certificate Type</translation> -<translation id="7503821294401948377">Tidak dapat memuat ikon '<ph name="ICON" />' untuk tindakan browser.</translation> <translation id="7503985202154027481">Data kunjungan Anda ke situs ini akan disimpan di kunci keamanan.</translation> <translation id="7504293978434250212">Organisasi Anda dapat memindai file hingga 50 MB. Coba upload file yang berukuran lebih kecil.</translation> <translation id="750509436279396091">Buka folder download</translation> @@ -5642,7 +5637,6 @@ <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="8550165047974571882"><ph name="ORIGIN" /> akan dapat mengedit file di <ph name="FOLDERNAME" /> hingga Anda menutup semua tab <ph name="ORIGIN" /></translation> <translation id="8551388862522347954">Lisensi</translation> <translation id="8553342806078037065">Kelola orang lain</translation> <translation id="8554899698005018844">Tidak ada bahasa</translation>
diff --git a/chrome/app/resources/generated_resources_is.xtb b/chrome/app/resources/generated_resources_is.xtb index ee4b7d3..57a4791 100644 --- a/chrome/app/resources/generated_resources_is.xtb +++ b/chrome/app/resources/generated_resources_is.xtb
@@ -1120,7 +1120,6 @@ <translation id="247949520305900375">Deila hljóði</translation> <translation id="2480868415629598489">Breyta gögnum sem þú afritar og límir</translation> <translation id="2482878487686419369">Tilkynningar</translation> -<translation id="2483610039979585156"><ph name="ORIGIN" /> getur breytt <ph name="FILENAME" /> þar til þú lokar öllum flipum <ph name="ORIGIN" /></translation> <translation id="2484959914739448251">Til að hreinsa vafragögn úr öllum samstilltum tækjum og af Google reikningnum þínum skaltu <ph name="BEGIN_LINK" />slá inn aðgangsorðið þitt<ph name="END_LINK" />.</translation> <translation id="2485005079599453134">Aðgangsorð vistað í þessu tæki</translation> <translation id="2485422356828889247">Fjarlægja</translation> @@ -1704,6 +1703,7 @@ <translation id="3264544094376351444">Sans-serif letur</translation> <translation id="3264582393905923483">Samhengi</translation> <translation id="3265459715026181080">Loka glugga</translation> +<translation id="3266274118485960573">Öryggisathugun er í gangi.</translation> <translation id="3267726687589094446">Halda áfram að leyfa sjálfvirkt niðurhal margra skráa</translation> <translation id="3268451620468152448">Opna flipa</translation> <translation id="3269069891205016797">Upplýsingarnar þínar verða fjarlægðar af tækinu þegar þú skráir þig út.</translation> @@ -1725,7 +1725,6 @@ <translation id="3282568296779691940">Skráðu þig inn á Chrome</translation> <translation id="3285322247471302225">Nýr flipi</translation> <translation id="328571385944182268">Vista aðgangsorðin þín?</translation> -<translation id="328785681103589998"><ph name="ORIGIN" /> mun geta skoðað <ph name="FILENAME" /> þar til þú lokar öllum <ph name="ORIGIN" /> flipum</translation> <translation id="3288047731229977326">Viðbætur sem keyra í forritarastillingu geta skaðað tölvuna þína. Ef þú ert ekki forritari ættirðu að gera þessar viðbætur sem keyra í forritarastillingu óvirkar til öryggis.</translation> <translation id="3289856944988573801">Notaðu Ethernet-tengingu eða Wi-Fi til að leita að uppfærslum.</translation> <translation id="3290356915286466215">Ótryggt</translation> @@ -1810,6 +1809,7 @@ <translation id="3412265149091626468">Fara í val</translation> <translation id="3413122095806433232">CA-útgefendur: <ph name="LOCATION" /></translation> <translation id="3414952576877147120">Stærð:</translation> +<translation id="3416468988018290825">Sýna alltaf vefslóðir í fullri lengd</translation> <translation id="3420501302812554910">Endurstilla þarf innbyggðan öryggislykil</translation> <translation id="3421387094817716717">Opinber lykill með sporgerum ferli</translation> <translation id="3422291238483866753">Spyrja þegar vefsvæði vill búa til þrívíddarkort af umhverfinu eða rekja staðsetningu myndavélarinnar (ráðlagt)</translation> @@ -2414,6 +2414,7 @@ <translation id="4144218403971135344">Fáðu betri myndgæði og sparaðu rafhlöðuna. Myndskeiðið mun aðeins spilast á skjá sem styður Cast.</translation> <translation id="4146026355784316281">Opna alltaf með skoðara kerfis</translation> <translation id="4146785383423576110">Endurstilla og hreinsa</translation> +<translation id="4147897805161313378">Google myndir</translation> <translation id="4147911968024186208">Reyndu aftur. Ef þú sérð þessa villu aftur skaltu hafa samband við þjónustufulltrúa.</translation> <translation id="4150201353443180367">Skjár</translation> <translation id="4152670763139331043">{NUM_TABS,plural, =1{Einn flipi}one{# flipi}other{# flipar}}</translation> @@ -2733,6 +2734,7 @@ <translation id="4633757335284074492">Taka afrit á Google Drive. Endurheimtu gögn eða skiptu um tæki hvenær sem er. Þetta öryggisafrit inniheldur forritsgögn. Öryggisafritunum þínum er hlaðið inn á Google og þau dulkóðuð með aðgangsorði Google reiknings barnsins þíns.</translation> <translation id="4634771451598206121">Skráðu þig inn aftur...</translation> <translation id="4635398712689569051"><ph name="PAGE_NAME" /> er ekki í boði fyrir gestanotendur.</translation> +<translation id="4636930964841734540">Upplýsingar</translation> <translation id="4637083375689622795">Fleiri aðgerðir, <ph name="EMAIL" /></translation> <translation id="4638930039313743000">Kveikja á ADB-villuleit</translation> <translation id="4641539339823703554">Chrome gat ekki stillt kerfistímann. Athugaðu tímann hér fyrir neðan og leiðréttu hann ef þörf krefur.</translation> @@ -2812,7 +2814,6 @@ <translation id="4750394297954878236">Tillögur</translation> <translation id="475088594373173692">Fyrsti notandi</translation> <translation id="4751476147751820511">Hreyfi- eða birtuskynjarar</translation> -<translation id="4756269098451810636">Mynd deilt úr <ph name="DEVICE_NAME" /></translation> <translation id="4756378406049221019">Stöðva/endurhlaða</translation> <translation id="4756388243121344051">Ferill</translation> <translation id="4759238208242260848">Niðurhal</translation> @@ -3759,7 +3760,6 @@ <translation id="6040852767465482106">Nafnlaust auðkenni</translation> <translation id="6041046205544295907"><ph name="BEGIN_PARAGRAPH1" />Staðsetningarþjónusta Google notar Wi-Fi, farsímakerfi og skynjara til að áætla staðsetningu tækisins.<ph name="END_PARAGRAPH1" /> <ph name="BEGIN_PARAGRAPH2" />Hægt er að slökkva á staðsetningu með því að slökkva á aðalstaðsetningarstillingu tækisins. Einnig er hægt að slökkva á notkun Wi-Fi, farsímakerfa og skynjara við ákvörðun staðsetningar í staðsetningarstillingunum.<ph name="END_PARAGRAPH2" /></translation> -<translation id="6041150002191391409"><ph name="ORIGIN" /> getur skoðað skrár í <ph name="FOLDERNAME" /> þar til þú lokar öllum flipum <ph name="ORIGIN" /></translation> <translation id="6041155700700864984">Hætta að skoða á öllum skjánum</translation> <translation id="604124094241169006">Sjálfvirkt</translation> <translation id="6042308850641462728">Meira</translation> @@ -4155,7 +4155,6 @@ <translation id="6561726789132298588">enter</translation> <translation id="656293578423618167">Slóð eða heiti skráarinnar er of langt. Vistaðu undir styttra heiti eða á öðrum stað.</translation> <translation id="6563469144985748109">Umsjónarmaðurinn hefur enn ekki samþykkt þetta</translation> -<translation id="6567688344210276845">Ekki var hægt að hlaða táknið „<ph name="ICON" />“ fyrir síðuaðgerð.</translation> <translation id="6569934958368283244">Annað fólk</translation> <translation id="657402800789773160">Endu&rhlaða þessa síðu</translation> <translation id="6577284282025554716">Hætt við niðurhal: <ph name="FILE_NAME" /></translation> @@ -4167,6 +4166,7 @@ <translation id="6586451623538375658">Víxla aðalmúsarhnappi</translation> <translation id="6586604979641883411">Að lágmarki <ph name="REQUIRED_SPACE" /> af geymsluplássi þarf til að uppfæra Linux. Losaðu pláss á tækinu og reyndu aftur.</translation> <translation id="6588043302623806746">Nota öruggt DNS</translation> +<translation id="659005207229852190">Öryggisathugun er lokið.</translation> <translation id="6590458744723262880">Endurnefna möppu</translation> <translation id="6592267180249644460">WebRTC-annáll skráður <ph name="WEBRTC_LOG_CAPTURE_TIME" /></translation> <translation id="6592808042417736307">Fingrafarið þitt greindist</translation> @@ -4220,7 +4220,6 @@ <translation id="6659594942844771486">Flipi</translation> <translation id="6664237456442406323">Tölvan er því miður grunnstillt með gölluðu vélbúnaðarauðkenni. Þetta kemur í veg fyrir að Chrome OS geti uppfært í nýjustu öryggisúrræði og tölvan <ph name="BEGIN_BOLD" />kann að vera berskjölduð gagnvart árásum<ph name="END_BOLD" />.</translation> <translation id="6664774537677393800">Eitthvað fór úrskeiðis við að opna prófílinn þinn. Skráðu þig út og svo inn aftur.</translation> -<translation id="6667776121818773738">Mynd deilt úr öðru tæki</translation> <translation id="6673391612973410118"><ph name="PRINTER_MAKE_OR_MODEL" /> (USB)</translation> <translation id="667517062706956822">Viltu að Google þýði þessa síðu: <ph name="SOURCE_LANGUAGE" />-<ph name="TARGET_LANGUAGE" />?</translation> <translation id="6675665718701918026">Benditæki tengt</translation> @@ -4841,7 +4840,6 @@ <translation id="7497981768003291373">Þú ert ekki með neina nýlega WebRTC-textaannála.</translation> <translation id="7502658306369382406">IPv6-veffang</translation> <translation id="7503191893372251637">Tegund Netscape-vottorðs</translation> -<translation id="7503821294401948377">Ekki er hægt að hlaða táknið „<ph name="ICON" />“ fyrir vafraaðgerð.</translation> <translation id="7503985202154027481">Færsla um heimsókn þína á þetta vefsvæði verður vistuð á öryggislyklinum þínum.</translation> <translation id="7504293978434250212">Fyrirtækið þitt leyfir skönnun skráa sem eru allt að 50 MB stórar. Prófaðu að hlaða inn minni skrá.</translation> <translation id="750509436279396091">Opna niðurhalsmöppu</translation> @@ -5428,6 +5426,7 @@ <translation id="8249672078237421304">Bjóðast til að þýða síður á tungumálum sem þú getur ekki lesið</translation> <translation id="8251441930213048644">Endurnýja núna</translation> <translation id="8251578425305135684">Smámynd fjarlægð.</translation> +<translation id="825238165904109940">Sýna alltaf vefslóðir í fullri lengd</translation> <translation id="8252569384384439529">Hleður inn...</translation> <translation id="8253198102038551905">Smelltu á „+“ til að fá upp neteiginleika</translation> <translation id="8254954272268479918">Slökkva á Linux (tilraunaútgáfa)</translation> @@ -5643,7 +5642,6 @@ <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="8550165047974571882"><ph name="ORIGIN" /> getur breytt skrám í <ph name="FOLDERNAME" /> þar til þú lokar öllum flipum <ph name="ORIGIN" /></translation> <translation id="8551388862522347954">Leyfi</translation> <translation id="8553342806078037065">Stjórna öðrum notendum</translation> <translation id="8554899698005018844">Ekkert tungumál</translation>
diff --git a/chrome/app/resources/generated_resources_it.xtb b/chrome/app/resources/generated_resources_it.xtb index 1e4c400..c33a944 100644 --- a/chrome/app/resources/generated_resources_it.xtb +++ b/chrome/app/resources/generated_resources_it.xtb
@@ -1119,7 +1119,6 @@ <translation id="247949520305900375">Condividi audio</translation> <translation id="2480868415629598489">Modifica dei dati copiati e incollati</translation> <translation id="2482878487686419369">Notifiche</translation> -<translation id="2483610039979585156"><ph name="ORIGIN" /> potrà modificare <ph name="FILENAME" /> fino alla chiusura di tutte le schede <ph name="ORIGIN" /></translation> <translation id="2484959914739448251"><ph name="BEGIN_LINK" />Inserisci la passphrase<ph name="END_LINK" /> per cancellare i dati di navigazione da tutti i dispositivi sincronizzati e dal tuo Account Google.</translation> <translation id="2485005079599453134">Password salvata su questo dispositivo</translation> <translation id="2485422356828889247">Disinstalla</translation> @@ -1703,6 +1702,7 @@ <translation id="3264544094376351444">Carattere sans-serif</translation> <translation id="3264582393905923483">Contesto</translation> <translation id="3265459715026181080">Chiudi finestra</translation> +<translation id="3266274118485960573">Controllo di sicurezza in corso.</translation> <translation id="3267726687589094446">Continua a consentire download automatici di più file</translation> <translation id="3268451620468152448">Schede aperte</translation> <translation id="3269069891205016797">I tuoi dati verranno rimossi dal dispositivo al momento della disconnessione.</translation> @@ -1724,7 +1724,6 @@ <translation id="3282568296779691940">Accedi a Chrome</translation> <translation id="3285322247471302225">Nuova &scheda</translation> <translation id="328571385944182268">Vuoi salvare le password?</translation> -<translation id="328785681103589998"><ph name="ORIGIN" /> potrà visualizzare il file <ph name="FILENAME" /> fino alla chiusura di tutte le schede <ph name="ORIGIN" /></translation> <translation id="3288047731229977326">Le estensioni in esecuzione in modalità sviluppatore potrebbero danneggiare il computer. Se non sei uno sviluppatore, dovresti disattivare queste estensioni per la tua sicurezza.</translation> <translation id="3289856944988573801">Per verificare la disponibilità di aggiornamenti, utilizza una rete Ethernet o Wi-Fi.</translation> <translation id="3290356915286466215">Non protetta</translation> @@ -1809,6 +1808,7 @@ <translation id="3412265149091626468">Passa alla selezione</translation> <translation id="3413122095806433232">Autorità emittenti di CA: <ph name="LOCATION" /></translation> <translation id="3414952576877147120">Dimensioni:</translation> +<translation id="3416468988018290825">Mostra sempre URL completi</translation> <translation id="3420501302812554910">È necessario reimpostare il token di sicurezza interno</translation> <translation id="3421387094817716717">Chiave pubblica della curva ellittica</translation> <translation id="3422291238483866753">Chiedi conferma quando un sito vuole creare una mappa 3D dell'ambiente circostante o monitorare la posizione della fotocamera (opzione consigliata)</translation> @@ -2413,6 +2413,7 @@ <translation id="4144218403971135344">Migliora la qualità dei video e fai durare di più la batteria. I video verranno riprodotti soltanto sullo schermo compatibile con Google Cast.</translation> <translation id="4146026355784316281">Apri sempre con visualizzatore di sistema</translation> <translation id="4146785383423576110">Reimpostazione e pulizia</translation> +<translation id="4147897805161313378">Google Foto</translation> <translation id="4147911968024186208">Riprova. Se ricevi ancora questo messaggio di errore, contatta il tuo rappresentante dell'assistenza.</translation> <translation id="4150201353443180367">Display</translation> <translation id="4152670763139331043">{NUM_TABS,plural, =1{1 scheda}other{# schede}}</translation> @@ -2732,6 +2733,7 @@ <translation id="4633757335284074492">Effettua il backup su Google Drive. Ripristina i dati facilmente o cambia dispositivo in qualsiasi momento. Questa copia di backup include i dati delle app. Le copie di backup vengono caricate su Google e criptate mediante la password del tuo Account Google.</translation> <translation id="4634771451598206121">Esegui di nuovo l'accesso...</translation> <translation id="4635398712689569051">La pagina <ph name="PAGE_NAME" /> non è disponibile per gli utenti Ospite.</translation> +<translation id="4636930964841734540">Info</translation> <translation id="4637083375689622795">Altre azioni, <ph name="EMAIL" /></translation> <translation id="4638930039313743000">Attiva debug ADB</translation> <translation id="4641539339823703554">Impossibile impostare l'ora di sistema in Chrome. Controlla l'ora indicata sotto e correggila se necessario.</translation> @@ -2811,7 +2813,6 @@ <translation id="4750394297954878236">Suggerimenti</translation> <translation id="475088594373173692">Primo utente</translation> <translation id="4751476147751820511">Sensori di movimento o della luce</translation> -<translation id="4756269098451810636">Immagine condivisa da <ph name="DEVICE_NAME" /></translation> <translation id="4756378406049221019">Interrompi/Ricarica</translation> <translation id="4756388243121344051">&Cronologia</translation> <translation id="4759238208242260848">Download</translation> @@ -3758,7 +3759,6 @@ <translation id="6040852767465482106">Identità anonima</translation> <translation id="6041046205544295907"><ph name="BEGIN_PARAGRAPH1" />Il servizio di geolocalizzazione di Google utilizza fonti quali reti mobili, Wi-Fi e sensori per stabilire la posizione del tuo dispositivo.<ph name="END_PARAGRAPH1" /> <ph name="BEGIN_PARAGRAPH2" />Puoi disattivare la geolocalizzazione tramite la disattivazione dell'impostazione Posizione principale del tuo dispositivo. Puoi anche disattivare l'uso di reti Wi-Fi e mobili e di sensori per la geolocalizzazione nelle impostazioni di geolocalizzazione.<ph name="END_PARAGRAPH2" /></translation> -<translation id="6041150002191391409"><ph name="ORIGIN" /> potrà visualizzare i file nella cartella <ph name="FOLDERNAME" /> fino alla chiusura di tutte le schede <ph name="ORIGIN" /></translation> <translation id="6041155700700864984">Chiudi schermo intero</translation> <translation id="604124094241169006">Automatica</translation> <translation id="6042308850641462728">Altro</translation> @@ -4154,7 +4154,6 @@ <translation id="6561726789132298588">invio</translation> <translation id="656293578423618167">Il percorso o il nome del file è troppo lungo. Salva il file con un nome più corto o in un'altra posizione.</translation> <translation id="6563469144985748109">Il tuo gestore non ha ancora approvato la richiesta</translation> -<translation id="6567688344210276845">Impossibile caricare l'icona "<ph name="ICON" />" per l'azione della pagina.</translation> <translation id="6569934958368283244">Altre persone</translation> <translation id="657402800789773160">&Ricarica questa pagina</translation> <translation id="6577284282025554716">Download annullato: <ph name="FILE_NAME" /></translation> @@ -4166,6 +4165,7 @@ <translation id="6586451623538375658">Inverti pulsante principale del mouse</translation> <translation id="6586604979641883411">Per eseguire l'upgrade di Linux devi avere almeno <ph name="REQUIRED_SPACE" /> di spazio libero su disco. Libera spazio sul dispositivo e riprova.</translation> <translation id="6588043302623806746">Usa DNS sicuro</translation> +<translation id="659005207229852190">Controllo di sicurezza completato.</translation> <translation id="6590458744723262880">Rinomina cartella</translation> <translation id="6592267180249644460">Data/ora acquisizione log WebRTC: <ph name="WEBRTC_LOG_CAPTURE_TIME" /></translation> <translation id="6592808042417736307">La tua impronta è stata acquisita</translation> @@ -4219,7 +4219,6 @@ <translation id="6659594942844771486">Scheda</translation> <translation id="6664237456442406323">Purtroppo il tuo computer è configurato con un ID hardware non valido. Ciò impedisce a Chrome OS di aggiornarsi con le ultime correzioni relative alla sicurezza e il tuo computer <ph name="BEGIN_BOLD" />potrebbe essere vulnerabile ad attacchi dannosi<ph name="END_BOLD" />.</translation> <translation id="6664774537677393800">Si è verificato un problema durante l'apertura del profilo. Esci e accedi di nuovo.</translation> -<translation id="6667776121818773738">Immagine condivisa da un altro dispositivo</translation> <translation id="6673391612973410118"><ph name="PRINTER_MAKE_OR_MODEL" /> (USB)</translation> <translation id="667517062706956822">Vuoi che Google traduca la pagina da <ph name="SOURCE_LANGUAGE" /> in <ph name="TARGET_LANGUAGE" />?</translation> <translation id="6675665718701918026">Dispositivo di puntamento collegato</translation> @@ -4840,7 +4839,6 @@ <translation id="7497981768003291373">Nessun log di testo WebRTC acquisito di recente.</translation> <translation id="7502658306369382406">Indirizzo IPv6</translation> <translation id="7503191893372251637">Tipo di certificato Netscape</translation> -<translation id="7503821294401948377">Impossibile caricare l'icona "<ph name="ICON" />" per l'azione del browser.</translation> <translation id="7503985202154027481">Sul tuo token di sicurezza verrà memorizzato un record della tua visita a questo sito.</translation> <translation id="7504293978434250212">La tua organizzazione può analizzare file di dimensioni massime pari a 50 MB. Prova a caricare un file di dimensioni inferiori.</translation> <translation id="750509436279396091">Apri cartella dei download</translation> @@ -5427,6 +5425,7 @@ <translation id="8249672078237421304">Consenti di tradurre pagine in lingue che non conosci</translation> <translation id="8251441930213048644">Aggiorna ora</translation> <translation id="8251578425305135684">Miniatura rimossa.</translation> +<translation id="825238165904109940">Mostra sempre URL completi</translation> <translation id="8252569384384439529">Caricamento...</translation> <translation id="8253198102038551905">Fai clic su "+" per visualizzare le proprietà della rete</translation> <translation id="8254954272268479918">Spegni Linux (beta)</translation> @@ -5642,7 +5641,6 @@ <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="8550165047974571882"><ph name="ORIGIN" /> potrà modificare i file nella cartella <ph name="FOLDERNAME" /> fino alla chiusura di tutte le schede <ph name="ORIGIN" /></translation> <translation id="8551388862522347954">Licenze</translation> <translation id="8553342806078037065">Gestisci altre persone</translation> <translation id="8554899698005018844">Nessuna lingua</translation>
diff --git a/chrome/app/resources/generated_resources_iw.xtb b/chrome/app/resources/generated_resources_iw.xtb index 826b1440..13eb15e 100644 --- a/chrome/app/resources/generated_resources_iw.xtb +++ b/chrome/app/resources/generated_resources_iw.xtb
@@ -1117,7 +1117,6 @@ <translation id="247949520305900375">שיתוף אודיו</translation> <translation id="2480868415629598489">שינוי נתונים שאתה מעתיק ומדביק</translation> <translation id="2482878487686419369">התראות</translation> -<translation id="2483610039979585156">ל-<ph name="ORIGIN" /> תהיה הרשאה לערוך את <ph name="FILENAME" /> עד לסגירת כל הכרטיסיות של <ph name="ORIGIN" /></translation> <translation id="2484959914739448251">כדי לנקות את נתוני הגלישה מכל המכשירים המסונכרנים ומחשבון Google שלך, <ph name="BEGIN_LINK" />יש להזין את ביטוי הסיסמה<ph name="END_LINK" />.</translation> <translation id="2485005079599453134">הסיסמה נשמרה במכשיר הזה</translation> <translation id="2485422356828889247">הסר התקנה</translation> @@ -1723,7 +1722,6 @@ <translation id="3282568296779691940">כניסה ל-Chrome</translation> <translation id="3285322247471302225">כרטיסייה &חדשה</translation> <translation id="328571385944182268">לשמור את הסיסמאות?</translation> -<translation id="328785681103589998">ל-<ph name="ORIGIN" /> תהיה הרשאה לראות את <ph name="FILENAME" /> עד לסגירת כל הכרטיסיות של <ph name="ORIGIN" /></translation> <translation id="3288047731229977326">תוספים הרצים במצב מפתח יכולים להזיק למחשב שלך. אם אינך מפתח, עליך להשבית את התוספים הרצים במצב מפתח כדי לשמור על ביטחונך.</translation> <translation id="3289856944988573801">כדי לבדוק אם יש עדכונים, השתמש ב-Ethernet או ב-Wi-Fi.</translation> <translation id="3290356915286466215">לא מאובטחת</translation> @@ -2412,6 +2410,7 @@ <translation id="4144218403971135344">שיפור איכות הווידאו וחיסכון בחיי הסוללה. תוכן וידאו יופעל רק במסך התומך בהעברה.</translation> <translation id="4146026355784316281">פתח תמיד באמצעות מציג המערכת</translation> <translation id="4146785383423576110">איפוס וניקוי</translation> +<translation id="4147897805161313378">תמונות Google</translation> <translation id="4147911968024186208">אפשר לנסות שוב. אם השגיאה הזאת ממשיכה להופיע, ניתן לפנות לנציג התמיכה.</translation> <translation id="4150201353443180367">תצוגה</translation> <translation id="4152670763139331043">{NUM_TABS,plural, =1{כרטיסייה אחת}two{# כרטיסיות}many{# כרטיסיות}other{# כרטיסיות}}</translation> @@ -2731,6 +2730,7 @@ <translation id="4633757335284074492">גיבוי ב-Google Drive. אפשר לשחזר נתונים או להחליף מכשיר בכל שלב. הגיבוי הזה כולל נתוני אפליקציות. הגיבויים מועלים ל-Google ומוצפנים באמצעות סיסמת חשבון Google של הילד/ה שלך.</translation> <translation id="4634771451598206121">היכנס שוב...</translation> <translation id="4635398712689569051"><ph name="PAGE_NAME" /> לא זמין למשתמשים במצב אורח.</translation> +<translation id="4636930964841734540">מידע</translation> <translation id="4637083375689622795">פעולות נוספות, <ph name="EMAIL" /></translation> <translation id="4638930039313743000">הפעלה של ניפוי באגים באמצעות ADB</translation> <translation id="4641539339823703554">Chrome לא הצליח להגדיר את שעת המערכת. בדוק את השעה המצוינת בהמשך ותקן אותה במקרה הצורך.</translation> @@ -2810,7 +2810,6 @@ <translation id="4750394297954878236">הצעות</translation> <translation id="475088594373173692">משתמש ראשון</translation> <translation id="4751476147751820511">חיישני תנועה או אור</translation> -<translation id="4756269098451810636">תמונה ששותפה מ-<ph name="DEVICE_NAME" /></translation> <translation id="4756378406049221019">עצור/טען מחדש</translation> <translation id="4756388243121344051">&היסטוריה</translation> <translation id="4759238208242260848">הורדות</translation> @@ -3757,7 +3756,6 @@ <translation id="6040852767465482106">זהות אנונימית</translation> <translation id="6041046205544295907"><ph name="BEGIN_PARAGRAPH1" />שירות המיקום של Google נעזר במקורות כגון Wi‑Fi, רשתות סלולריות וחיישנים כדי להעריך את מיקום המכשיר.<ph name="END_PARAGRAPH1" /> <ph name="BEGIN_PARAGRAPH2" />ניתן להשבית את ההעברה של נתוני מיקום על-ידי כיבוי של הגדרת המיקום הראשית במכשיר. אפשר גם להשבית את השימוש ב-Wi-Fi, ברשתות סלולריות ובחיישנים לאיתור המיקום בהגדרות המיקום.<ph name="END_PARAGRAPH2" /></translation> -<translation id="6041150002191391409">ל-<ph name="ORIGIN" /> תהיה הרשאה להציג קבצים בתיקייה <ph name="FOLDERNAME" /> עד לסגירת כל הכרטיסיות של <ph name="ORIGIN" /></translation> <translation id="6041155700700864984">יציאה ממסך מלא</translation> <translation id="604124094241169006">אוטומטי</translation> <translation id="6042308850641462728">עוד</translation> @@ -4153,7 +4151,6 @@ <translation id="6561726789132298588">Enter</translation> <translation id="656293578423618167">הנתיב או שם הקובץ ארוך מדי. שמור בשם קצר יותר או למיקום אחר.</translation> <translation id="6563469144985748109">המנהל שלך עדיין לא אישר זאת</translation> -<translation id="6567688344210276845">לא היתה אפשרות לטעון את האייקון '<ph name="ICON" />' עבור פעולת דף.</translation> <translation id="6569934958368283244">אנשים אחרים</translation> <translation id="657402800789773160">&טען דף זה מחדש</translation> <translation id="6577284282025554716">ההורדה בוטלה: <ph name="FILE_NAME" /></translation> @@ -4218,7 +4215,6 @@ <translation id="6659594942844771486">כרטיסייה</translation> <translation id="6664237456442406323">לצערנו, המחשב שלך מוגדר עם זיהוי חומרה פגום. המצב הזה מונע ממערכת ההפעלה של Chrome להתקין את עדכוני האבטחה האחרונים, וייתכן שהמחשב שלך יהיה <ph name="BEGIN_BOLD" />חשוף להתקפות זדוניות<ph name="END_BOLD" />.</translation> <translation id="6664774537677393800">משהו השתבש בפתיחת הפרופיל שלך. צא ולאחר מכן היכנס מחדש.</translation> -<translation id="6667776121818773738">תמונה שותפה ממכשיר אחר</translation> <translation id="6673391612973410118"><ph name="PRINTER_MAKE_OR_MODEL" /> (USB)</translation> <translation id="667517062706956822">האם תרצה ש-Google תתרגם דף זה מ<ph name="SOURCE_LANGUAGE" /> ל<ph name="TARGET_LANGUAGE" />?</translation> <translation id="6675665718701918026">התקן הצבעה מחובר</translation> @@ -4839,7 +4835,6 @@ <translation id="7497981768003291373">אין לך יומני טקסט של WebRTC שתועדו לאחרונה.</translation> <translation id="7502658306369382406">כתובת IPv6</translation> <translation id="7503191893372251637">סוג אישור Netscape</translation> -<translation id="7503821294401948377">לא היתה אפשרות לטעון את האייקון '<ph name="ICON" />' עבור פעולת דפדפן.</translation> <translation id="7503985202154027481">תיעוד של ביקורך באתר יישמר במפתח האבטחה שלך.</translation> <translation id="7504293978434250212">הארגון שלך יכול לסרוק קבצים בגודל של עד 50 MB. יש להעלות קובץ קטן יותר.</translation> <translation id="750509436279396091">פתח את תיקיית ההורדות</translation> @@ -5643,7 +5638,6 @@ <translation id="8546930481464505581">התאם אישית את סרגל המגע</translation> <translation id="8547013269961688403">הפעלת מגדיל למסך מלא</translation> <translation id="85486688517848470">החזק את מקש החיפוש כדי לשנות את ההתנהגות של מקשי השורה העליונה</translation> -<translation id="8550165047974571882">ל-<ph name="ORIGIN" /> תהיה הרשאה לערוך קבצים בתיקייה <ph name="FOLDERNAME" /> עד לסגירת כל הכרטיסיות של <ph name="ORIGIN" /></translation> <translation id="8551388862522347954">רישיונות</translation> <translation id="8553342806078037065">נהל אנשים אחרים</translation> <translation id="8554899698005018844">לא הוגדרה שפה</translation>
diff --git a/chrome/app/resources/generated_resources_ja.xtb b/chrome/app/resources/generated_resources_ja.xtb index f4ca192..8d6c30f7 100644 --- a/chrome/app/resources/generated_resources_ja.xtb +++ b/chrome/app/resources/generated_resources_ja.xtb
@@ -1120,7 +1120,6 @@ <translation id="247949520305900375">音声を共有する</translation> <translation id="2480868415629598489">コピーして貼り付けるデータの修正</translation> <translation id="2482878487686419369">通知</translation> -<translation id="2483610039979585156"><ph name="ORIGIN" /> のタブをすべて閉じるまでの間、<ph name="ORIGIN" /> は「<ph name="FILENAME" />」を編集できるようになります</translation> <translation id="2484959914739448251">同期しているすべてのデバイスと Google アカウントから閲覧データを削除するには、<ph name="BEGIN_LINK" />パスフレーズを入力<ph name="END_LINK" />してください。</translation> <translation id="2485005079599453134">パスワードがデバイスに保存されました</translation> <translation id="2485422356828889247">アンインストール</translation> @@ -1725,7 +1724,6 @@ <translation id="3282568296779691940">Chrome にログイン</translation> <translation id="3285322247471302225">新しいタブ(&T)</translation> <translation id="328571385944182268">パスワードを保存しますか?</translation> -<translation id="328785681103589998"><ph name="ORIGIN" /> のタブをすべて閉じるまでの間、<ph name="ORIGIN" /> が「<ph name="FILENAME" />」を読み取れるようになります</translation> <translation id="3288047731229977326">デベロッパー モードで実行される拡張機能はパソコンにダメージを与える恐れがあります。デベロッパーでない場合は、安全のため、デベロッパー モードで実行されているこれらの拡張機能を無効にしてください。</translation> <translation id="3289856944988573801">アップデートの有無を確認するには、イーサネットまたは Wi-Fi を使用してください。</translation> <translation id="3290356915286466215">保護なし</translation> @@ -2414,6 +2412,7 @@ <translation id="4144218403971135344">動画の品質を向上させ、バッテリー消費を抑えます。動画はキャスト対応のスクリーンでのみ再生されます。</translation> <translation id="4146026355784316281">常にシステム ビューアで開く</translation> <translation id="4146785383423576110">リセットとクリーンアップ</translation> +<translation id="4147897805161313378">Google フォト</translation> <translation id="4147911968024186208">もう一度お試しください。このエラーが再び表示される場合は、サポート担当者にお問い合わせください。</translation> <translation id="4150201353443180367">表示</translation> <translation id="4152670763139331043">{NUM_TABS,plural, =1{1 個のタブ}other{# 個のタブ}}</translation> @@ -2733,6 +2732,7 @@ <translation id="4633757335284074492">Google ドライブにデータをバックアップします。これにより、いつでも簡単にデータを復元したりデバイスを切り替えたりできます。バックアップ内容にはアプリのデータが含まれます。バックアップ データは Google にアップロードされ、お子様の Google アカウントのパスワードを使って暗号化されます。</translation> <translation id="4634771451598206121">もう一度ログインする...</translation> <translation id="4635398712689569051">ゲストユーザーは <ph name="PAGE_NAME" /> を利用できません。</translation> +<translation id="4636930964841734540">情報</translation> <translation id="4637083375689622795">その他の操作(<ph name="EMAIL" />)</translation> <translation id="4638930039313743000">ADB デバッグを有効にする</translation> <translation id="4641539339823703554">Chrome はシステムの時刻を設定できませんでした。以下で時刻を確認し、必要に応じて修正してください。</translation> @@ -2812,7 +2812,6 @@ <translation id="4750394297954878236">候補</translation> <translation id="475088594373173692">最初のユーザー</translation> <translation id="4751476147751820511">モーション センサーまたは光センサー</translation> -<translation id="4756269098451810636"><ph name="DEVICE_NAME" /> から共有された画像</translation> <translation id="4756378406049221019">停止 / 再読み込み</translation> <translation id="4756388243121344051">履歴(&H)</translation> <translation id="4759238208242260848">ダウンロード</translation> @@ -3534,7 +3533,7 @@ <translation id="5734362860645681824">通信</translation> <translation id="5734697361979786483">ファイル共有を追加</translation> <translation id="5736796278325406685">有効なユーザー名を入力してください</translation> -<translation id="5739017626473506901">ログインして、<ph name="USER_NAME" /> の学校アカウントの追加を許可してください</translation> +<translation id="5739017626473506901">ログインして、<ph name="USER_NAME" /> さんの学校アカウントの追加を許可してください</translation> <translation id="5739235828260127894">確認を待っています。<ph name="LINK_BEGIN" />詳細<ph name="LINK_END" /></translation> <translation id="5739458112391494395">極大</translation> <translation id="574209121243317957">高さ</translation> @@ -3759,7 +3758,6 @@ <translation id="6040852767465482106">匿名 ID</translation> <translation id="6041046205544295907"><ph name="BEGIN_PARAGRAPH1" />Google の位置情報サービスは、Wi‑Fi やモバイル ネットワーク、センサーなどのソースからお使いのデバイスの現在地を推定します。<ph name="END_PARAGRAPH1" /> <ph name="BEGIN_PARAGRAPH2" />位置情報の使用を無効にするには、お使いのデバイスでメインの位置情報の設定を無効にします。また、位置情報の設定で、Wi‑Fi、モバイル ネットワーク、センサーを現在地の特定に使用しないよう指定することもできます。<ph name="END_PARAGRAPH2" /></translation> -<translation id="6041150002191391409"><ph name="ORIGIN" /> のタブをすべて閉じるまでの間、<ph name="ORIGIN" /> は「<ph name="FOLDERNAME" />」内のファイルを表示できるようになります</translation> <translation id="6041155700700864984">全画面表示を終了</translation> <translation id="604124094241169006">自動設定</translation> <translation id="6042308850641462728">もっと見る</translation> @@ -4155,7 +4153,6 @@ <translation id="6561726789132298588">Enter</translation> <translation id="656293578423618167">ファイルのパスまたは名前が長すぎます。名前を短くするか、別の場所に保存してください。</translation> <translation id="6563469144985748109">管理者がまだサイトを開くことを許可していません</translation> -<translation id="6567688344210276845">ページ操作のアイコン「<ph name="ICON" />」を読み込むことができませんでした。</translation> <translation id="6569934958368283244">他のユーザー</translation> <translation id="657402800789773160">ページを再読み込み(&R)</translation> <translation id="6577284282025554716"><ph name="FILE_NAME" /> のダウンロードがキャンセルされました</translation> @@ -4220,7 +4217,6 @@ <translation id="6659594942844771486">タブ</translation> <translation id="6664237456442406323">パソコンに設定されているハードウェア ID の形式が正しくありません。このため、Chrome OS に最新のセキュリティ修正を適用することができません。お使いのパソコンは、<ph name="BEGIN_BOLD" />悪意のある攻撃を受けやすくなる可能性があります<ph name="END_BOLD" />。</translation> <translation id="6664774537677393800">プロフィールを開こうとして問題が発生しました。ログアウトしてから再度ログインしてください。</translation> -<translation id="6667776121818773738">他のデバイスから共有された画像</translation> <translation id="6673391612973410118"><ph name="PRINTER_MAKE_OR_MODEL" />(USB)</translation> <translation id="667517062706956822">Google でこのページを <ph name="SOURCE_LANGUAGE" /> から <ph name="TARGET_LANGUAGE" /> に翻訳しますか?</translation> <translation id="6675665718701918026">ポインティング デバイスが接続されました</translation> @@ -4841,7 +4837,6 @@ <translation id="7497981768003291373">最近記録された WebRTC テキストログはありません。</translation> <translation id="7502658306369382406">IPv6 アドレス</translation> <translation id="7503191893372251637">Netscape 証明書タイプ</translation> -<translation id="7503821294401948377">ブラウザ操作のアイコン「<ph name="ICON" />」を読み込むことができませんでした。</translation> <translation id="7503985202154027481">このサイトへのアクセスの記録がセキュリティ キーに保存されます。</translation> <translation id="7504293978434250212">組織でスキャンできるファイルの最大サイズは 50 MB です。これより小さいサイズのファイルをアップロードしてください。</translation> <translation id="750509436279396091">ダウンロード フォルダを開く</translation> @@ -5644,7 +5639,6 @@ <translation id="8546930481464505581">Touch Bar をカスタマイズ</translation> <translation id="8547013269961688403">全画面拡大鏡を有効にする</translation> <translation id="85486688517848470">キーボードの最上段にあるキーの動作を切り替えるには、検索キーを押したままにします</translation> -<translation id="8550165047974571882"><ph name="ORIGIN" /> のタブをすべて閉じるまでの間、<ph name="ORIGIN" /> は「<ph name="FOLDERNAME" />」内のファイルを編集できるようになります</translation> <translation id="8551388862522347954">ライセンス</translation> <translation id="8553342806078037065">他のユーザーを管理</translation> <translation id="8554899698005018844">言語設定なし</translation>
diff --git a/chrome/app/resources/generated_resources_ka.xtb b/chrome/app/resources/generated_resources_ka.xtb index 186192f..2e14218 100644 --- a/chrome/app/resources/generated_resources_ka.xtb +++ b/chrome/app/resources/generated_resources_ka.xtb
@@ -392,7 +392,7 @@ <translation id="1524563461097350801">არა, გმადლობთ</translation> <translation id="1525740877599838384">მდებარეობის დასადგენად მხოლოდ Wi-Fi ქსელის გამოყენება</translation> <translation id="152629053603783244">Linux-ის გადატვირთვა</translation> -<translation id="1526335046150927198">სენსორული კლავიატურით გადაადგილების დაჩქარების ჩართვა</translation> +<translation id="1526335046150927198">სენსორული პანელით გადაადგილების დაჩქარების ჩართვა</translation> <translation id="1526560967942511387">უსათაურო დოკუმენტი</translation> <translation id="1529891865407786369">ელკვების წყარო</translation> <translation id="1530838837447122178">მაუსისა და სენსორული პანელის პარამეტრები</translation> @@ -1119,7 +1119,6 @@ <translation id="247949520305900375">აუდიოს გაზიარება</translation> <translation id="2480868415629598489">თქვენ მიერ კოპირებული და ჩასმული მონაცემების შეცვლა</translation> <translation id="2482878487686419369">შეტყობინებები</translation> -<translation id="2483610039979585156"><ph name="ORIGIN" /> შეძლებს „<ph name="FILENAME" />“-ის რედაქტირებას <ph name="ORIGIN" />-ის ყველა ჩანართის დახურვამდე</translation> <translation id="2484959914739448251">თქვენი Google ანგარიშიდან და ყველა სინქრონიზებული მოწყობილობიდან დათვალიერების მონაცემების გასასუფთავებლად <ph name="BEGIN_LINK" />შეიყვანეთ თქვენი საიდუმლო ფრაზა<ph name="END_LINK" />.</translation> <translation id="2485005079599453134">პაროლი შენახულია ამ მოწყობილობაზე</translation> <translation id="2485422356828889247">დეინსტალაცია</translation> @@ -1724,7 +1723,6 @@ <translation id="3282568296779691940">შესვლა Chrome-ში</translation> <translation id="3285322247471302225">ახალი ჩ&ანართი</translation> <translation id="328571385944182268">გსურთ თქვენი პაროლების შენახვა?</translation> -<translation id="328785681103589998"><ph name="ORIGIN" /> შეძლებს „<ph name="FILENAME" />“-ის ნახვას <ph name="ORIGIN" />-ის ყველა ჩანართის დახურვამდე</translation> <translation id="3288047731229977326">დეველოპერის რეჟიმში გაშვებულმა გაფართოებებმა შეიძლება დააზიანოს თქვენი კომპიუტერი. თუ თქვენ არ ხართ დეველოპერი, უსაფრთხოების შენარჩუნებისათვის თქვენ უნდა გამორთოთ დეველოპერულ რეჟიმში გაშვებული გაფართოებები.</translation> <translation id="3289856944988573801">განახლებების შესამოწმებლად გამოიყენეთ Ethernet ან Wi-Fi.</translation> <translation id="3290356915286466215">დაუცველი</translation> @@ -2413,6 +2411,7 @@ <translation id="4144218403971135344">ნახეთ ვიდეოები უკეთესი ხარისხით და დაზოგეთ ბატარეა. ვიდეოები დაიკვრება მხოლოდ Cast-ის მხარდაჭერის მქონე ეკრანზე.</translation> <translation id="4146026355784316281">ყოველთვის გახსნა სისტემის დამთვალიერებლით</translation> <translation id="4146785383423576110">გადაყენება და გასუფთავება</translation> +<translation id="4147897805161313378">Google Photos</translation> <translation id="4147911968024186208">გთხოვთ, ცადოთ ხელახლა. თუ ეს შეცდომა კვლავ შეგხვდებათ, გთხოვთ, დაუკავშირდეთ მხარდაჭერის გუნდის წარმომადგენელს.</translation> <translation id="4150201353443180367">ჩვენება</translation> <translation id="4152670763139331043">{NUM_TABS,plural, =1{1 ჩანართი}other{# ჩანართი}}</translation> @@ -2732,6 +2731,7 @@ <translation id="4633757335284074492">სარეზერვო კოპირება Google Drive-ში. მარტივად აღადგინეთ მონაცემები, ან შეცვალეთ მოწყობილობები ნებისმიერ დროს. ეს სარეზერვო ასლი მოიცავს აპების მონაცემებს. სარეზერვო ასლები აიტვირთება Google-ში და დაიშიფრება თქვენი შვილის Google ანგარიშის პაროლით.</translation> <translation id="4634771451598206121">ხელახლა შესვლა…</translation> <translation id="4635398712689569051"><ph name="PAGE_NAME" /> მიუწვდომელია სტუმარი მომხმარებლებისთვის.</translation> +<translation id="4636930964841734540">ინფორმაცია</translation> <translation id="4637083375689622795">სხვა ქმედებები, <ph name="EMAIL" /></translation> <translation id="4638930039313743000">ADB გამართვის ჩართვა</translation> <translation id="4641539339823703554">Chrome-მა ვერ დააყენა სისტემის დრო. შეამოწმეთ დრო ქვემოთ და გაასწორეთ, თუ საჭიროა.</translation> @@ -2811,7 +2811,6 @@ <translation id="4750394297954878236">შემოთავაზებები</translation> <translation id="475088594373173692">პირველი მომხმარებელი</translation> <translation id="4751476147751820511">მოძრაობის ან განათების სენსორები</translation> -<translation id="4756269098451810636"><ph name="DEVICE_NAME" />-დან გაზიარდა სურათი</translation> <translation id="4756378406049221019">შეწყვეტა/გადატვირთვა</translation> <translation id="4756388243121344051">&ისტორია</translation> <translation id="4759238208242260848">ჩამოტვირთვები</translation> @@ -3758,7 +3757,6 @@ <translation id="6040852767465482106">ანონიმური იდენტობა</translation> <translation id="6041046205544295907"><ph name="BEGIN_PARAGRAPH1" />თქვენი მოწყობილობის მიახლოებითი მდებარეობის დასადგენად Google-ის მდებარეობის სერვისები იყენებს ისეთ წყაროებს, როგორიცაა Wi-Fi, მობილური ქსელები და სენსორები.<ph name="END_PARAGRAPH1" /> <ph name="BEGIN_PARAGRAPH2" />მდებარეობის გამორთვა შესაძლებელია თქვენს მოწყობილობაზე მდებარეობის მთავარი პარამეტრის გამორთვით. ასევე შეგიძლიათ გამორთოთ Wi-Fi კავშირის, მობილური ქსელებისა და სენსორების გამოყენება მდებარეობის დასადგენად.<ph name="END_PARAGRAPH2" /></translation> -<translation id="6041150002191391409"><ph name="ORIGIN" /> შეძლებს „<ph name="FOLDERNAME" />“-ში არსებული ფაილების ნახვას <ph name="ORIGIN" />-ის ყველა ჩანართის დახურვამდე</translation> <translation id="6041155700700864984">სრულეკრანიანი რეჟიმიდან გამოსვლა</translation> <translation id="604124094241169006">ავტომატური</translation> <translation id="6042308850641462728">სხვა</translation> @@ -4154,7 +4152,6 @@ <translation id="6561726789132298588">enter</translation> <translation id="656293578423618167">ფაილის მდებარეობა ან სახელი ძალიან გრძელია. გთხოვთ, შეინახოთ იგი უფრო მოკლე სახელით ან სხვა ადგილას.</translation> <translation id="6563469144985748109">თქვენს მენეჯერს ის ჯერ არ დაუდასტურებია</translation> -<translation id="6567688344210276845">ვერ ჩაიტვირთა „<ph name="ICON" />“ გვერდის მოქმედებისთვის.</translation> <translation id="6569934958368283244">სხვა ადამიანები</translation> <translation id="657402800789773160">&ამ გვერდის ხელახლა ჩატვირთვა</translation> <translation id="6577284282025554716">ჩამოტვირთვა გაუქმდა: <ph name="FILE_NAME" /></translation> @@ -4219,7 +4216,6 @@ <translation id="6659594942844771486">ჩანართი</translation> <translation id="6664237456442406323">სამწუხაროდ, თქვენი კომპიუტერი კონფიგურირებულია დეფორმირებული აპარატურის ID-თი. ეს ხელს უშლის Chrome OS-ის განახლებას უსაფრთხოების უახლესი გამოსწორებებით და თქვენი კომპიუტერი <ph name="BEGIN_BOLD" />შეიძლება გახდეს მავნე პროგრამების მიერ განხორციელებული შეტევების ობიექტი<ph name="END_BOLD" />.</translation> <translation id="6664774537677393800">თქვენი პროფილის გახსნისას შეფერხება წარმოიქმნა. გთხოვთ, გამოხვიდეთ და ხელახლა შეხვიდეთ სისტემაში.</translation> -<translation id="6667776121818773738">სხვა მოწყობილობიდან გაზიარდა სურათი</translation> <translation id="6673391612973410118"><ph name="PRINTER_MAKE_OR_MODEL" /> (USB)</translation> <translation id="667517062706956822">გსურთ, Google-მა ამ <ph name="SOURCE_LANGUAGE" /> გვერდის <ph name="TARGET_LANGUAGE" /> ვერსია შემოგთავაზოთ?</translation> <translation id="6675665718701918026">დაკავშირებულია მიმთითებელი მოწყობილობა</translation> @@ -4840,7 +4836,6 @@ <translation id="7497981768003291373">ახლახან აღბეჭდილი WebRTC-ის ტექსტური ჟურნალები არ არის.</translation> <translation id="7502658306369382406">IPv6 მისამართი</translation> <translation id="7503191893372251637">Netscape სერტიფიკატის ტიპი</translation> -<translation id="7503821294401948377">ვერ ჩაიტვირთა ხატულა „<ph name="ICON" />“ ბრაუზერის მოქმედებისთვის.</translation> <translation id="7503985202154027481">თქვენს უსაფრთხოების გასაღებზე ჩაიწერება ამ საიტზე ვიზიტი.</translation> <translation id="7504293978434250212">თქვენს ორგანიზაციას შეუძლია 50 მბაიტამდე ზომის ფაილების სკანირება. ატვირთეთ უფრო მცირე ზომის ფაილი.</translation> <translation id="750509436279396091">გახსენით ჩამოტვირთვების ფოლდერი</translation> @@ -5641,7 +5636,6 @@ <translation id="8546930481464505581">შეხების ზოლის მორგება</translation> <translation id="8547013269961688403">სრულეკრანიანი ლუპის ჩართვა</translation> <translation id="85486688517848470">ზედა მწკრივის ღილაკების რეჟიმის გადასართავად ხანგრძლივად დააჭირეთ ძიების კლავიშს</translation> -<translation id="8550165047974571882"><ph name="ORIGIN" /> შეძლებს „<ph name="FOLDERNAME" />“-ში არსებული ფაილების რედაქტირებას <ph name="ORIGIN" />-ის ყველა ჩანართის დახურვამდე</translation> <translation id="8551388862522347954">ლიცენზიები</translation> <translation id="8553342806078037065">სხვა ადამიანების მართვა</translation> <translation id="8554899698005018844">ენის გარეშე</translation> @@ -5855,7 +5849,7 @@ <translation id="8808686172382650546">კატა</translation> <translation id="8808744862003883508">ამ გვერდზე შეგიძლიათ იხილოთ Chrome-ში დაინსტალირებული ყველა გაფართოება.</translation> <translation id="8809147117840417135">ღია ფირუზისფერი</translation> -<translation id="8812593354822910461">დათვალიერების მონაცემების (<ph name="URL" />) გასუფთავებაც (შესაძლოა, გამოხვიდეთ <ph name="DOMAIN" />-დან). <ph name="LEARN_MORE" /></translation> +<translation id="8812593354822910461">დათვალიერების მონაცემების (<ph name="URL" />) გასუფთავებაც (ეს გამოგიყვანთ <ph name="DOMAIN" />-იდან). <ph name="LEARN_MORE" /></translation> <translation id="8813698869395535039"><ph name="USERNAME" />-ში შესვლა ვერ მოხერხდა</translation> <translation id="8813811964357448561">ფურცელი</translation> <translation id="8813872945700551674">სთხოვეთ მშობელს, დაადასტუროს „<ph name="EXTENSION_NAME" />“</translation>
diff --git a/chrome/app/resources/generated_resources_kk.xtb b/chrome/app/resources/generated_resources_kk.xtb index e85895e..054f5e3 100644 --- a/chrome/app/resources/generated_resources_kk.xtb +++ b/chrome/app/resources/generated_resources_kk.xtb
@@ -1117,7 +1117,6 @@ <translation id="247949520305900375">Аудиомен бөлісу</translation> <translation id="2480868415629598489">Көшіріліп қойылатын деректерді жаңарту</translation> <translation id="2482878487686419369">Хабарламалар</translation> -<translation id="2483610039979585156"><ph name="ORIGIN" /> қойындылары жабылғанға дейін, <ph name="ORIGIN" /> сайты <ph name="FILENAME" /> қалтасындағы файлдарды өзгерте алады.</translation> <translation id="2484959914739448251">Барлық синхрондалған құрылғылардан және Google есептік жазбасынан браузерді пайдалану деректерін өшіру үшін, <ph name="BEGIN_LINK" />құпия фразаны енгізіңіз<ph name="END_LINK" />.</translation> <translation id="2485005079599453134">Құпия сөз осы құрылғыда сақталды</translation> <translation id="2485422356828889247">Жою</translation> @@ -1722,7 +1721,6 @@ <translation id="3282568296779691940">Chrome жүйесіне кіру</translation> <translation id="3285322247471302225">Жаңа &қойынды</translation> <translation id="328571385944182268">Құпия сөздеріңіз сақталсын ба?</translation> -<translation id="328785681103589998"><ph name="ORIGIN" /> қойындылары жабылғанға дейін, <ph name="ORIGIN" /> сайты <ph name="FILENAME" /> қалтасындағы файлдарды қарай алады.</translation> <translation id="3288047731229977326">Әзірлеуші режимінде іске қосылатын кеңейтімдер компьютеріңізге зиян келтіруі мүмкін. Әзірлеуші болмасаңыз, қауіпсіз болуы үшін әзірлеуші режимінде іске қосылатын бұл кеңейтімдерді өшіруіңіз тиіс.</translation> <translation id="3289856944988573801">Жаңартуларды тексеру үшін Ethernet немесе Wi-Fi желісін пайдаланыңыз.</translation> <translation id="3290356915286466215">Қорғалмаған</translation> @@ -2411,6 +2409,7 @@ <translation id="4144218403971135344">Жоғары сапалы бейнелерді көріп, батарея зарядын үнемдеңіз. Бейне Cast қосылған экранда ғана ойнайды.</translation> <translation id="4146026355784316281">Әрқашан жүйелік көру құралымен ашу</translation> <translation id="4146785383423576110">Бастапқы күйге қайтару және жою</translation> +<translation id="4147897805161313378">Google Photos</translation> <translation id="4147911968024186208">Қайталап көруіңізді сұраймыз. Егер бұл қате қайта шықса, қолдау қызметі өкіліне хабарласыңыз.</translation> <translation id="4150201353443180367">Дисплей</translation> <translation id="4152670763139331043">{NUM_TABS,plural, =1{1 қойынды}other{# қойынды}}</translation> @@ -2730,6 +2729,7 @@ <translation id="4633757335284074492">Google Drive жадына сақтық көшірме жасау. Деректерді қалпына келтіруге немесе құрылғыны кез келген уақытта ауыстыруға болады. Сақтық көшірмеде қолданба деректері қамтылады. Сақтық көшірмелер Google-ға жүктеп салынады және балаңыздың Google есептік жазбасының құпия сөзімен шифрланады.</translation> <translation id="4634771451598206121">Қайта кіру…</translation> <translation id="4635398712689569051">Қонақ пайдаланушылар <ph name="PAGE_NAME" /> бетіне кіре алмайды.</translation> +<translation id="4636930964841734540">Ақпарат</translation> <translation id="4637083375689622795">Қосымша әрекеттер, <ph name="EMAIL" /></translation> <translation id="4638930039313743000">ADB түзетуін қосу</translation> <translation id="4641539339823703554">Chrome жүйе уақытын орната алмады. Төмендегі уақытты тексеріп, қажет болса, оны түзетіңіз.</translation> @@ -2809,7 +2809,6 @@ <translation id="4750394297954878236">Ұсыныстар</translation> <translation id="475088594373173692">Алғашқы пайдаланушы</translation> <translation id="4751476147751820511">Қозғалыс не жарық датчиктері</translation> -<translation id="4756269098451810636"><ph name="DEVICE_NAME" /> құрылғысынан жіберілген сурет</translation> <translation id="4756378406049221019">Тоқтату/Қайта жүктеу</translation> <translation id="4756388243121344051">&Журнал</translation> <translation id="4759238208242260848">Жүктеп алынғандар</translation> @@ -3756,7 +3755,6 @@ <translation id="6040852767465482106">Анонимді сәйкестік</translation> <translation id="6041046205544295907"><ph name="BEGIN_PARAGRAPH1" />Google орынды анықтау қызметі Wi‑Fi, мобильдік желілер және сенсорлар сияқты дереккөздерді пайдаланып, құрылғының орнын болжайды.<ph name="END_PARAGRAPH1" /> <ph name="BEGIN_PARAGRAPH2" />Құрылғыңыздағы негізгі геодерек параметрін өшіру арқылы орналасқан жердің анықталуын өшіруге болады. Сонымен қатар Wi‑Fi мен мобильдік желілердің және сенсорлардың орынды анықтау үшін қолданылуын геодерек параметрлерінен өшіре аласыз.<ph name="END_PARAGRAPH2" /></translation> -<translation id="6041150002191391409"><ph name="ORIGIN" /> қойындылары жабылғанға дейін, <ph name="ORIGIN" /> сайты <ph name="FOLDERNAME" /> қалтасындағы файлдарды көре алады.</translation> <translation id="6041155700700864984">Толық экран режимінен шығу</translation> <translation id="604124094241169006">Автоматты</translation> <translation id="6042308850641462728">Жаю</translation> @@ -4152,7 +4150,6 @@ <translation id="6561726789132298588">enter</translation> <translation id="656293578423618167">Файл жолы немесе атауы тым ұзын. Қысқа атаумен немесе басқа орынға сақтаңыз.</translation> <translation id="6563469144985748109">Менеджеріңіз әлі мақұлдаған жоқ</translation> -<translation id="6567688344210276845">Бет әрекетіне арналған "<ph name="ICON" />" белгішесін жүктеу мүмкін емес.</translation> <translation id="6569934958368283244">Басқа адамдар</translation> <translation id="657402800789773160">&Бұл бетті қайта жүктеу</translation> <translation id="6577284282025554716">Жүктеп алудан бас тартылды: <ph name="FILE_NAME" /></translation> @@ -4217,7 +4214,6 @@ <translation id="6659594942844771486">Қойынды</translation> <translation id="6664237456442406323">Өкінішке орай, сіздің компьютеріңіз бұзылған жабдық идентификаторымен конфигурацияланған. Бұл Chrome OS жүйесіне соңғы қауіпсіздік түзетулерімен жаңартылуына кедергі жасайды және компьютеріңіз <ph name="BEGIN_BOLD" />зиянды шабуылдарға шалдығуы мүмкін<ph name="END_BOLD" />.</translation> <translation id="6664774537677393800">Профильді ашу кезінде бірдеңе дұрыс болмады. Жүйеден шығып, қайта кіріңіз.</translation> -<translation id="6667776121818773738">Басқа құрылғыдан жіберілген сурет</translation> <translation id="6673391612973410118"><ph name="PRINTER_MAKE_OR_MODEL" /> (USB)</translation> <translation id="667517062706956822">Google бұл бетті <ph name="SOURCE_LANGUAGE" /> тілінен <ph name="TARGET_LANGUAGE" /> тіліне аударсын ба?</translation> <translation id="6675665718701918026">Меңзеу құрылғысы қосылған</translation> @@ -4838,7 +4834,6 @@ <translation id="7497981768003291373">Жақында WebRTC мәтіндік журналдарын жазып алмадыңыз.</translation> <translation id="7502658306369382406">IPv6 мекенжайы</translation> <translation id="7503191893372251637">Netscape сертификат түрі</translation> -<translation id="7503821294401948377">Браузер әрекетіне арналған <ph name="ICON" /> белгішесін жүктеу мүмкін емес.</translation> <translation id="7503985202154027481">Осы сайтқа кіргеніңіз туралы жазба қауіпсіздік кілтінде сақталады.</translation> <translation id="7504293978434250212">Ұйымыңыз 50 МБ-қа дейінгі файлдарды тексере алады. Көлемі кішірек файлды жүктеп салып көріңіз.</translation> <translation id="750509436279396091">Жүктеулер қалтасын ашу</translation> @@ -5640,7 +5635,6 @@ <translation id="8546930481464505581">Touch Bar реттеу</translation> <translation id="8547013269961688403">Толық экран ұлғайтқышын қосу</translation> <translation id="85486688517848470">Жоғарғы қатардағы пернелердің әрекетін ауыстыру үшін "Іздеу" пернесін басып тұрыңыз</translation> -<translation id="8550165047974571882"><ph name="ORIGIN" /> қойындылары жабылғанға дейін, <ph name="ORIGIN" /> сайты <ph name="FOLDERNAME" /> қалтасындағы файлдарды өзгерте алады.</translation> <translation id="8551388862522347954">Лицензиялар</translation> <translation id="8553342806078037065">Басқа пайдаланушыларды басқару</translation> <translation id="8554899698005018844">Тілі көрсетілмеген</translation>
diff --git a/chrome/app/resources/generated_resources_km.xtb b/chrome/app/resources/generated_resources_km.xtb index 9658c357c..73a9f3e 100644 --- a/chrome/app/resources/generated_resources_km.xtb +++ b/chrome/app/resources/generated_resources_km.xtb
@@ -1120,7 +1120,6 @@ <translation id="247949520305900375">ចែករំលែកសម្លេង</translation> <translation id="2480868415629598489">កែតម្រូវទិន្នន័យដែលអ្នកចម្លង និងបិទភ្ជាប់</translation> <translation id="2482878487686419369">ការជូនដំណឹង</translation> -<translation id="2483610039979585156"><ph name="ORIGIN" /> នឹងអាចកែ <ph name="FILENAME" /> រហូតទាល់តែអ្នកបិទផ្ទាំង <ph name="ORIGIN" /> ទាំងអស់</translation> <translation id="2484959914739448251">ដើម្បីសម្អាតទិន្នន័យរុករកចេញពីឧបករណ៍ដែលបានធ្វើសមកាលកម្មទាំងអស់របស់អ្នក និងគណនី Google របស់អ្នក <ph name="BEGIN_LINK" />សូមបញ្ចូលឃ្លាសម្ងាត់<ph name="END_LINK" />។</translation> <translation id="2485005079599453134">បានរក្សាទុកពាក្យសម្ងាត់នៅលើឧបករណ៍នេះ</translation> <translation id="2485422356828889247">លុបការតំឡើង</translation> @@ -1725,7 +1724,6 @@ <translation id="3282568296779691940">ចូលទៅ Chrome</translation> <translation id="3285322247471302225">ផ្ទាំងថ្មី</translation> <translation id="328571385944182268">រក្សាទុកពាក្យសម្ងាត់របស់អ្នក?</translation> -<translation id="328785681103589998"><ph name="ORIGIN" /> នឹងអាចមើល <ph name="FILENAME" /> បាន រហូតទាល់តែអ្នកបិទផ្ទាំង <ph name="ORIGIN" /> ទាំងអស់</translation> <translation id="3288047731229977326">កម្មវិធីបន្ថែមដែលដំណើរការនៅក្នុងរបៀបអ្នកអភិវឌ្ឈន៍អាចបង្កគ្រោះថ្នាក់ដល់កុំព្យូទ័ររបស់អ្នក។ ប្រសិនបើអ្នកមិនមែនជាអ្នកអភិវឌ្ឍន៍ អ្នកគួរតែបិទដំណើរការកម្មវិធីបន្ថែមទាំងនេះដែលដំណើរការនៅក្នុងរបៀបអ្នកអភិវឌ្ឍន៍ដើម្បីឲ្យមានសុវត្ថិភាព។</translation> <translation id="3289856944988573801">ដើម្បីពិនិត្យរកការធ្វើបច្ចុប្បន្នភាព សូមប្រើខ្សែអ៊ីនធឺណិត ឬ Wi-Fi។</translation> <translation id="3290356915286466215">គ្មានសុវត្ថិភាព</translation> @@ -2414,6 +2412,7 @@ <translation id="4144218403971135344">ទទួលបានវីដេអូគុណភាពកាន់តែប្រសើរ និងសន្សំកម្រិតថាមពលថ្ម។ វីដេអូនឹងចាក់នៅលើអេក្រង់ដែលស្គាល់កម្មវិធី Cast របស់អ្នកតែប៉ុណ្ណោះ។</translation> <translation id="4146026355784316281">បើកជាមួយកម្មវិធីមើលប្រព័ន្ធជានិច្ច</translation> <translation id="4146785383423576110">កំណត់ឡើងវិញ និងសម្អាត</translation> +<translation id="4147897805161313378">Google រូបថត</translation> <translation id="4147911968024186208">សូមព្យាយាមម្ដងទៀត។ ប្រសិនបើអ្នកជួបបញ្ហានេះម្ដងទៀត សូមទាក់ទងតំណាងផ្នែកជំនួយ។</translation> <translation id="4150201353443180367">ការបង្ហាញ</translation> <translation id="4152670763139331043">{NUM_TABS,plural, =1{ផ្ទាំង 1}other{ផ្ទាំង #}}</translation> @@ -2733,6 +2732,7 @@ <translation id="4633757335284074492">បម្រុងទុកទៅក្នុង Google ថាស។ ងាយស្រួលក្នុងការស្ដារទិន្នន័យ ឬប្ដូរឧបករណ៍បានគ្រប់ពេល។ ការបម្រុងទុកនេះរួមបញ្ចូលទាំងទិន្នន័យកម្មវិធី។ ការបម្រុងទុកត្រូវបានបង្ហោះទៅ Google និងអ៊ីនគ្រីបដោយប្រើពាក្យសម្ងាត់គណនី Google របស់កូនអ្នក។</translation> <translation id="4634771451598206121">ចូលម្តងទៀត...</translation> <translation id="4635398712689569051"><ph name="PAGE_NAME" /> មិនអាចប្រើបានសម្រាប់អ្នកប្រើប្រាស់ជាភ្ញៀវទេ។</translation> +<translation id="4636930964841734540">ព័ត៌មាន</translation> <translation id="4637083375689622795">សកម្មភាពច្រើនទៀត <ph name="EMAIL" /></translation> <translation id="4638930039313743000">បើកការជួសជុល ADB</translation> <translation id="4641539339823703554">Chrome មិនអាចកំណត់ពេលវេលាប្រព័ន្ធ។ សូមពិនិត្យពេលវេលាខាងក្រោម ហើយកែតម្រូវវាបើចាំបាច់។</translation> @@ -2812,7 +2812,6 @@ <translation id="4750394297954878236">ការផ្តល់យោបល់</translation> <translation id="475088594373173692">អ្នកប្រើដំបូង</translation> <translation id="4751476147751820511">ឧបករណ៍ចាប់សញ្ញាពន្លឺ ឬចលនា</translation> -<translation id="4756269098451810636">រូបភាពដែលបានចែករំលែកពី <ph name="DEVICE_NAME" /></translation> <translation id="4756378406049221019">បញ្ឈប់/ផ្ទុកឡើងវិញ</translation> <translation id="4756388243121344051">ប្រវត្តិ</translation> <translation id="4759238208242260848">ទាញយក</translation> @@ -3760,7 +3759,6 @@ <translation id="6040852767465482106">អត្តសញ្ញាណអនាមិក</translation> <translation id="6041046205544295907"><ph name="BEGIN_PARAGRAPH1" />សេវាកម្មទីតាំងរបស់ Google ប្រើប្រាស់ប្រភពដូចជា Wi-Fi, បណ្តាញទូរសព្ទចល័ត និងឧបករណ៍ចាប់សញ្ញា ដើម្បីជួយប៉ាន់ស្មានទីតាំងឧបករណ៍របស់អ្នក។<ph name="END_PARAGRAPH1" /> <ph name="BEGIN_PARAGRAPH2" />អ្នកអាចបិទទីតាំងដោយបិទការកំណត់ទីតាំងចម្បងនៅលើឧបករណ៍របស់អ្នក។ អ្នកក៏អាចបិទការប្រើប្រាស់ Wi-Fi, បណ្តាញទូរសព្ទចល័ត និងឧបករណ៍ចាប់សញ្ញាសម្រាប់ទីតាំងនៅក្នុងការកំណត់ទីតាំងបានផងដែរ។<ph name="END_PARAGRAPH2" /></translation> -<translation id="6041150002191391409"><ph name="ORIGIN" /> នឹងអាចមើលឯកសារនៅក្នុង <ph name="FOLDERNAME" /> រហូតទាល់តែអ្នកបិទផ្ទាំង <ph name="ORIGIN" /> ទាំងអស់</translation> <translation id="6041155700700864984">ចាកចេញពីអេក្រង់ពេញ</translation> <translation id="604124094241169006">ស្វ័យប្រវត្តិ</translation> <translation id="6042308850641462728">ច្រើនទៀត</translation> @@ -4156,7 +4154,6 @@ <translation id="6561726789132298588">បញ្ចូល</translation> <translation id="656293578423618167">ផ្លូវ និងឈ្មោះឯកសារវែងពេក។ សូមរក្សាទុកជាមួយឈ្មោះខ្លីជាងនេះ ឬទៅទីតាំងដ៏ទៃទៀត។</translation> <translation id="6563469144985748109">អ្នកគ្រប់គ្រងរបស់អ្នកមិនទាន់យល់ព្រមនៅឡើយទេ</translation> -<translation id="6567688344210276845">មិនអាចដំណើរការរូបតំណាង '<ph name="ICON" />' សម្រាប់សកម្មភាពទំព័របានទេ។</translation> <translation id="6569934958368283244">មនុស្សផ្សេងទៀត</translation> <translation id="657402800789773160">ដំណើរការទំព័រនេះឡើងវិញ</translation> <translation id="6577284282025554716">បានបោះបង់ការទាញយក៖ <ph name="FILE_NAME" /></translation> @@ -4221,7 +4218,6 @@ <translation id="6659594942844771486">ផ្ទាំង</translation> <translation id="6664237456442406323">សំណាងមិនល្អ កុំព្យូទ័ររបស់អ្នកត្រូវបានតំឡើងជាមួយលេខសម្គាល់ផ្នែករឹងដែលមិនប្រក្រតី។ វាអាចបង្ការ Chrome OS ពីការធ្វើបច្ចុប្បន្នភាពជាមួយការដោះស្រាយសុវត្ថិភាពចុងក្រោយបំផុត ហើយកុំព្យូទ័ររបស់អ្នក <ph name="BEGIN_BOLD" />អាចរងគ្រោះដោយការវាយប្រហារព្យាបាទ<ph name="END_BOLD" />។</translation> <translation id="6664774537677393800">មានអ្វីមួយមិនប្រក្រតី ខណៈពេលបើកកម្រងព័ត៌មានរបស់អ្នក។ សូមចេញពីគណនី ហើយចូលម្តងទៀត។</translation> -<translation id="6667776121818773738">រូបភាពដែលបានចែករំលែកពីឧបករណ៍ផ្សេងទៀត</translation> <translation id="6673391612973410118"><ph name="PRINTER_MAKE_OR_MODEL" /> (USB)</translation> <translation id="667517062706956822">តើអ្នកចង់ឲ្យ Google បកប្រែទំព័រនេះពីភាសា <ph name="SOURCE_LANGUAGE" /> ទៅ <ph name="TARGET_LANGUAGE" /> ដែរទេ?</translation> <translation id="6675665718701918026">បានភ្ជាប់ឧបករណ៍ចង្អុល</translation> @@ -4842,7 +4838,6 @@ <translation id="7497981768003291373">អ្នកមិនមានកំណត់ហេតុអត្ថបទ WebRTC ដែលបានថតថ្មីៗនេះទេ។</translation> <translation id="7502658306369382406">អាសយដ្ឋាន IPv6</translation> <translation id="7503191893372251637">ប្រភេទវិញ្ញាបនប័ត្រ Netscape</translation> -<translation id="7503821294401948377">មិនអាចដំណើរការរូបតំណាង '<ph name="ICON" />' សម្រាប់សកម្មភាពកម្មវិធីរុករកទេ។</translation> <translation id="7503985202154027481">កំណត់ត្រាដែលអ្នកចូលមើលគេហទំព័រនេះនឹងត្រូវបានរក្សាទុកនៅក្នុងសោសុវត្ថិភាពរបស់អ្នក។</translation> <translation id="7504293978434250212">ស្ថាប័នរបស់អ្នកអាចស្កេនឯកសារបានរហូតដល់ 50 MB។ សូមសាកល្បងបង្ហោះឯកសារតូចជាងនេះ។</translation> <translation id="750509436279396091">បើកថតឯកសារទាញយក</translation> @@ -5644,7 +5639,6 @@ <translation id="8546930481464505581">កំណត់របារប៉ះតាមបំណង</translation> <translation id="8547013269961688403">បើកកែវពង្រីកពេញអេក្រង់</translation> <translation id="85486688517848470">ចុចប៊ូតុងស្វែងរកឲ្យជាប់ ដើម្បីប្តូរលក្ខណៈគ្រាប់ចុចនៅជួរខាងលើ</translation> -<translation id="8550165047974571882"><ph name="ORIGIN" /> នឹងអាចកែឯកសារនៅក្នុង <ph name="FOLDERNAME" /> រហូតទាល់តែអ្នកបិទផ្ទាំង <ph name="ORIGIN" /> ទាំងអស់</translation> <translation id="8551388862522347954">អាជ្ញាប័ណ្ណ</translation> <translation id="8553342806078037065">គ្រប់គ្រងមនុស្សផ្សេងទៀត</translation> <translation id="8554899698005018844">គ្មានភាសាទេ</translation>
diff --git a/chrome/app/resources/generated_resources_kn.xtb b/chrome/app/resources/generated_resources_kn.xtb index e2e8b51..3b9d64a3 100644 --- a/chrome/app/resources/generated_resources_kn.xtb +++ b/chrome/app/resources/generated_resources_kn.xtb
@@ -722,7 +722,7 @@ <translation id="1944528062465413897">ಬ್ಲೂಟೂತ್ ಜೋಡಿಸುವ ಕೋಡ್:</translation> <translation id="1944921356641260203">ಅಪ್ಡೇಟ್ ಕಂಡುಬಂದಿದೆ</translation> <translation id="1946577776959096882">ಖಾತೆಗಳನ್ನು ವೀಕ್ಷಿಸಿ</translation> -<translation id="1951012854035635156">ಸಹಾಯಕ</translation> +<translation id="1951012854035635156">Assistant</translation> <translation id="1954813140452229842">ಹಂಚಿಕೆಯನ್ನು ಅಳವಡಿಸುವುದರಲ್ಲಿ ದೋಷವಿದೆ. ನಿಮ್ಮ ರುಜುವಾತುಗಳನ್ನು ಪರಿಶೀಲಿಸಿ ಮತ್ತು ಪುನಃ ಪ್ರಯತ್ನಿಸಿ.</translation> <translation id="1956050014111002555">ಫೈಲ್ ಬಹು ಪ್ರಮಾಣಪತ್ರಗಳನ್ನು ಒಳಗೊಂಡಿದೆ, ಅವುಗಳಲ್ಲಿ ಯಾವುದನ್ನೂ ಆಮದು ಮಾಡಿಕೊಳ್ಳಲಾಗಿಲ್ಲ: </translation> <translation id="1956390763342388273">ಇದು "<ph name="FOLDER_PATH" />" ನಿಂದ ಎಲ್ಲ ಫೈಲ್ಗಳನ್ನು ಅಪ್ಲೋಡ್ ಮಾಡುತ್ತದೆ. ಸೈಟ್ ಕುರಿತು ನಿಮಗೆ ನಂಬಿಕೆಯಿದ್ದರೆ ಮಾತ್ರ ಇದನ್ನು ಮಾಡಿ.</translation> @@ -1120,7 +1120,6 @@ <translation id="247949520305900375">ಆಡಿಯೊ ಹಂಚಿಕೊಳ್ಳಿ</translation> <translation id="2480868415629598489">ನೀವು ನಕಲಿಸಿದ ಮತ್ತು ಅಂಟಿಸಿದ ಡೇಟಾವನ್ನು ಮಾರ್ಪಡಿಸಿ</translation> <translation id="2482878487686419369">ಸೂಚನೆಗಳು</translation> -<translation id="2483610039979585156">ನೀವು ಎಲ್ಲಾ <ph name="ORIGIN" /> ಟ್ಯಾಬ್ಗಳನ್ನು ಮುಚ್ಚುವವರೆಗೆ, <ph name="FILENAME" /> ಅನ್ನು ಎಡಿಟ್ ಮಾಡಲು <ph name="ORIGIN" /> ಗೆ ಸಾಧ್ಯವಾಗುತ್ತದೆ</translation> <translation id="2484959914739448251">ಸಿಂಕ್ ಮಾಡಿರುವ ನಿಮ್ಮ ಎಲ್ಲಾ ಸಾಧನಗಳು ಮತ್ತು ನಿಮ್ಮ Google ಖಾತೆಯಿಂದ ಬ್ರೌಸಿಂಗ್ ಡೇಟಾವನ್ನು ತೆರವುಗೊಳಿಸಲು, <ph name="BEGIN_LINK" />ನಿಮ್ಮ ಪಾಸ್ಫ್ರೇಸ್ ನಮೂದಿಸಿ<ph name="END_LINK" />.</translation> <translation id="2485005079599453134">ಪಾಸ್ವರ್ಡ್ ಅನ್ನು ಈ ಸಾಧನದಲ್ಲಿ ಉಳಿಸಲಾಗಿದೆ</translation> <translation id="2485422356828889247">ಅನ್ಇನ್ಸ್ಟಾಲ್</translation> @@ -1725,7 +1724,6 @@ <translation id="3282568296779691940">Chrome ಗೆ ಸೈನ್ ಇನ್ ಮಾಡಿ</translation> <translation id="3285322247471302225">ಹೊಸ &ಟ್ಯಾಬ್</translation> <translation id="328571385944182268">ನಿಮ್ಮ ಪಾಸ್ವರ್ಡ್ಗಳನ್ನು ಉಳಿಸುವುದೇ?</translation> -<translation id="328785681103589998">ನೀವು ಎಲ್ಲಾ <ph name="ORIGIN" /> ಟ್ಯಾಬ್ಗಳನ್ನು ಮುಚ್ಚುವವರೆಗೆ, <ph name="FILENAME" /> ಅನ್ನು ವೀಕ್ಷಿಸಲು <ph name="ORIGIN" /> ಗೆ ಸಾಧ್ಯವಾಗುತ್ತದೆ</translation> <translation id="3288047731229977326">ಡೆವಲಪರ್ ಮೋಡ್ನಲ್ಲಿ ಚಾಲನೆಯಾಗುವ ವಿಸ್ತರಣೆಗಳು ನಿಮ್ಮ ಕಂಪ್ಯೂಟರ್ಗೆ ಹಾನಿಮಾಡಬಹುದು. ನೀವು ಡೆವಲಪರ್ ಆಗಿರದಿದ್ದರೇ, ಸುರಕ್ಷಿತವಾಗಿರಲು ಡೆವಲಪರ್ ಮೋಡ್ನಲ್ಲಿ ಈ ವಿಸ್ತರಣೆಗಳ ಚಾಲನೆಯನ್ನು ನೀವು ನಿಷ್ಕ್ರಿಯಗೊಳಿಸಬೇಕು.</translation> <translation id="3289856944988573801">ನವೀಕರಣಗಳಿಗಾಗಿ ಪರಿಶೀಲಿಸಲು, ದಯವಿಟ್ಟು Ethernet ಅಥವಾ ವೈ-ಫೈ ಬಳಸಿ.</translation> <translation id="3290356915286466215">ಸುರಕ್ಷಿತವಾಗಿಲ್ಲ</translation> @@ -2414,6 +2412,7 @@ <translation id="4144218403971135344">ಉತ್ತಮ ಗುಣಮಟ್ಟದ ವೀಡಿಯೊ ಪಡೆಯಿರಿ ಮತ್ತು ಬ್ಯಾಟರಿ ಅವಧಿಯನ್ನು ಉಳಿಸಿ. ವೀಡಿಯೊ, ನಿಮ್ಮ Cast-ಸಕ್ರಿಯಗೊಂಡ ಸ್ಕ್ರೀನ್ನಲ್ಲಿ ಮಾತ್ರ ಪ್ಲೇ ಆಗುತ್ತದೆ.</translation> <translation id="4146026355784316281">ಯಾವಾಗಲೂ ಸಿಸ್ಟಂ ವೀಕ್ಷಕದ ಜೊತೆಗೆ ತೆರೆಯಿರಿ</translation> <translation id="4146785383423576110">ಮರುಹೊಂದಿಸಿ ಮತ್ತು ಸ್ವಚ್ಛಗೊಳಿಸಿ</translation> +<translation id="4147897805161313378">Google ಫೋಟೋಗಳು</translation> <translation id="4147911968024186208">ಪುನಃ ಪ್ರಯತ್ನಿಸಿ. ಈ ದೋಷವು ಮತ್ತೊಮ್ಮೆ ಕಂಡುಬಂದರೆ, ನಿಮ್ಮ ಬೆಂಬಲ ಪ್ರತಿನಿಧಿಯನ್ನು ಸಂಪರ್ಕಿಸಿ.</translation> <translation id="4150201353443180367">ಡಿಸ್ಪ್ಲೇ</translation> <translation id="4152670763139331043">{NUM_TABS,plural, =1{1 ಟ್ಯಾಬ್}one{# ಟ್ಯಾಬ್ಗಳು}other{# ಟ್ಯಾಬ್ಗಳು}}</translation> @@ -2733,6 +2732,7 @@ <translation id="4633757335284074492">Google ಡ್ರೈವ್ನಲ್ಲಿ ಬ್ಯಾಕಪ್ ಮಾಡಿ. ಡೇಟಾವನ್ನು ಸುಲಭವಾಗಿ ಮರುಸ್ಥಾಪಿಸಿ ಅಥವಾ ಯಾವಾಗ ಬೇಕಾದರೂ ಸಾಧನವನ್ನು ಬದಲಾಯಿಸಿ. ಈ ಬ್ಯಾಕಪ್ನಲ್ಲಿ ಆ್ಯಪ್ ಡೇಟಾ ಒಳಗೊಂಡಿರುತ್ತದೆ. ಬ್ಯಾಕಪ್ಗಳನ್ನು Google ಗೆ ಅಪ್ಲೋಡ್ ಮಾಡಲಾಗುತ್ತದೆ ಮತ್ತು ನಿಮ್ಮ ಮಗುವಿನ Google ಖಾತೆಯ ಪಾಸ್ವರ್ಡ್ ಅನ್ನು ಬಳಸಿ ಎನ್ಕ್ರಿಪ್ಟ್ ಮಾಡಲಾಗುತ್ತದೆ.</translation> <translation id="4634771451598206121">ಪುನಃ ಸೈನ್ ಇನ್ ಮಾಡಿ...</translation> <translation id="4635398712689569051"><ph name="PAGE_NAME" /> ಅತಿಥಿ ಬಳಕೆದಾರರಿಗೆ ಲಭ್ಯವಿಲ್ಲ.</translation> +<translation id="4636930964841734540">ಮಾಹಿತಿ</translation> <translation id="4637083375689622795">ಇನ್ನಷ್ಟು ಕ್ರಿಯೆಗಳು, <ph name="EMAIL" /></translation> <translation id="4638930039313743000">ADB ಡೀಬಗ್ ಮಾಡುವಿಕೆಯನ್ನು ಸಕ್ರಿಯಗೊಳಿಸಿ</translation> <translation id="4641539339823703554">Chrome ಗೆ ಸಿಸ್ಟಂ ಸಮಯವನ್ನು ಹೊಂದಿಸಲು ಸಾಧ್ಯವಾಗಲಿಲ್ಲ. ದಯವಿಟ್ಟು ಕೆಳಗಿನ ಸಮಯವನ್ನು ಪರಿಶೀಲಿಸಿ ಮತ್ತು ಅಗತ್ಯವಿದ್ದರೆ ಅದನ್ನು ಸರಿಪಡಿಸಿ.</translation> @@ -2812,7 +2812,6 @@ <translation id="4750394297954878236">ಸಲಹೆಗಳು</translation> <translation id="475088594373173692">ಮೊದಲ ಬಳಕೆದಾರ</translation> <translation id="4751476147751820511">ಚಲನೆ ಅಥವಾ ಬೆಳಕಿನ ಸೆನ್ಸರ್ಗಳು</translation> -<translation id="4756269098451810636"><ph name="DEVICE_NAME" /> ನಿಂದ ಹಂಚಿಕೊಂಡ ಚಿತ್ರ</translation> <translation id="4756378406049221019">ನಿಲ್ಲಿಸಿ/ಪುನಃ ಲೋಡ್ ಮಾಡಿ</translation> <translation id="4756388243121344051">&ಇತಿಹಾಸ</translation> <translation id="4759238208242260848">ಡೌನ್ಲೋಡ್ಗಳು</translation> @@ -3761,7 +3760,6 @@ <translation id="6040852767465482106">ಅನಾಮಧೇಯ ಗುರುತಿಸುವಿಕೆ</translation> <translation id="6041046205544295907"><ph name="BEGIN_PARAGRAPH1" />ಈ ಸಾಧನದ ಸ್ಥಳವನ್ನು ಅಂದಾಜಿಸುವಲ್ಲಿ ಸಹಾಯ ಮಾಡಲು, Google ನ ಸ್ಥಳ ಸೇವೆಯು ವೈ-ಫೈ, ಮೊಬೈಲ್ ನೆಟ್ವರ್ಕ್ಗಳು ಮತ್ತು ಸೆನ್ಸರ್ಗಳಂತಹ ಮೂಲಗಳನ್ನು ಬಳಸುತ್ತದೆ.<ph name="END_PARAGRAPH1" /> <ph name="BEGIN_PARAGRAPH2" />ನಿಮ್ಮ ಸಾಧನದಲ್ಲಿ ಮುಖ್ಯ ಸ್ಥಳ ಸೆಟ್ಟಿಂಗ್ ಅನ್ನು ಆಫ್ ಮಾಡುವ ಮೂಲಕ ನೀವು ಸ್ಥಳವನ್ನು ಆಫ್ ಮಾಡಬಹುದು. ನೀವು ಸ್ಥಳ ಸೆಟ್ಟಿಂಗ್ಗಳಲ್ಲಿ ಸ್ಥಳಕ್ಕಾಗಿ ವೈ-ಫೈ, ಮೊಬೈಲ್ ನೆಟ್ವರ್ಕ್ಗಳು ಮತ್ತು ಸೆನ್ಸರ್ಗಳ ಬಳಕೆಯನ್ನು ಸಹ ಆಫ್ ಮಾಡಬಹುದು.<ph name="END_PARAGRAPH2" /></translation> -<translation id="6041150002191391409">ನೀವು ಎಲ್ಲಾ <ph name="ORIGIN" /> ಟ್ಯಾಬ್ಗಳನ್ನು ಮುಚ್ಚುವವರೆಗೆ, <ph name="FOLDERNAME" /> ನಲ್ಲಿ ಇರುವ ಫೈಲ್ಗಳನ್ನು ವೀಕ್ಷಿಸಲು <ph name="ORIGIN" /> ಗೆ ಸಾಧ್ಯವಾಗುತ್ತದೆ</translation> <translation id="6041155700700864984">ಪೂರ್ಣಪರದೆಯಿಂದ ನಿರ್ಗಮಿಸಿ</translation> <translation id="604124094241169006">ಸ್ವಯಂಚಾಲಿತ</translation> <translation id="6042308850641462728">ಇನ್ನಷ್ಟು</translation> @@ -4157,7 +4155,6 @@ <translation id="6561726789132298588">ನಮೂದಿಸಿ</translation> <translation id="656293578423618167">ಫೈಲ್ ಹಾದಿ ಅಥವಾ ಹೆಸರು ತುಂಬಾ ಉದ್ದವಾಗಿದೆ. ದಯವಿಟ್ಟು ಕಿರಿದಾದ ಹೆಸರಿನೊಂದಿಗೆ ಅಥವಾ ಮತ್ತೊಂದು ಸ್ಥಾನದಲ್ಲಿ ಉಳಿಸಿ. </translation> <translation id="6563469144985748109">ನಿಮ್ಮ ಮ್ಯಾನೇಜರ್ ಇನ್ನೂ ಇದನ್ನು ಅಂಗೀಕರಿಸಿಲ್ಲ</translation> -<translation id="6567688344210276845">ಪುಟದ ಕ್ರಿಯೆಗಾಗಿ ಐಕಾನ್ '<ph name="ICON" />' ಅನ್ನು ಲೋಡ್ ಮಾಡಲಾಗಿಲ್ಲ.</translation> <translation id="6569934958368283244">ಇತರ ಜನರು</translation> <translation id="657402800789773160">ಈ ಪುಟವನ್ನು &ರೀಲೋಡ್ ಮಾಡಿ</translation> <translation id="6577284282025554716">ಡೌನ್ಲೋಡ್ ರದ್ದುಪಡಿಸಲಾಗಿದೆ: <ph name="FILE_NAME" /></translation> @@ -4222,7 +4219,6 @@ <translation id="6659594942844771486">ಟ್ಯಾಬ್</translation> <translation id="6664237456442406323">ದುರದೃಷ್ಟವಶಾತ್, ನಿಮ್ಮ ಕಂಪ್ಯೂಟರ್ ಅನ್ನು ತಪ್ಪಾಗಿ ರಚಿಸಲಾದ ಹಾರ್ಡ್ವೇರ್ ID ಯೊಂದಿಗೆ ಕಾನ್ಫಿಗರ್ ಮಾಡಲಾಗಿದೆ. ಇದು Chrome OS ಅನ್ನು ಇತ್ತೀಚಿನ ಭದ್ರತೆ ಸರಿಪಡಿಸುವಿಕೆಗಳೊಂದಿಗೆ ನವೀಕರಿಸುವುದನ್ನು ತಡೆಯುತ್ತದೆ ಮತ್ತು ನಿಮ್ಮ ಕಂಪ್ಯೂಟರ್ <ph name="BEGIN_BOLD" />ದುರುದ್ದೇಶದ ದಾಳಿಗಳಿಗೆ ಗುರಿಯಾಗುವ ಸಾಧ್ಯತೆಯಿದೆ<ph name="END_BOLD" />.</translation> <translation id="6664774537677393800">ನಿಮ್ಮ ಪ್ರೊಫೈಲ್ ತೆರೆಯುವಾಗ ಏನೋ ತಪ್ಪು ಸಂಭವಿಸಿದೆ. ದಯವಿಟ್ಟು ಸೈನ್ ಔಟ್ ಮಾಡಿ ನಂತರ ಮತ್ತೆ ಸೈನ್ ಇನ್ ಮಾಡಿ.</translation> -<translation id="6667776121818773738">ಇತರ ಸಾಧನದಿಂದ ಹಂಚಿಕೊಂಡ ಚಿತ್ರ</translation> <translation id="6673391612973410118"><ph name="PRINTER_MAKE_OR_MODEL" /> (USB)</translation> <translation id="667517062706956822"><ph name="SOURCE_LANGUAGE" /> ಭಾಷೆಯಿಂದ <ph name="TARGET_LANGUAGE" /> ಭಾಷೆಗೆ ಈ ಪುಟವನ್ನು ಅನುವಾದಿಸಲು ನಿಮಗೆ Google ಸಹಾಯ ಬೇಕೇ?</translation> <translation id="6675665718701918026">ಪಾಯಿಂಟಿಂಗ್ ಸಾಧನ ಸಂಪರ್ಕಿಸಲಾಗಿದೆ</translation> @@ -4844,7 +4840,6 @@ <translation id="7497981768003291373">ನಿಮ್ಮಲ್ಲಿ ಇತ್ತೀಚೆಗೆ ಕ್ಯಾಪ್ಚರ್ ಆಗಿರುವ WebRTC ಪಠ್ಯ ಲಾಗ್ಗಳು ಇಲ್ಲ.</translation> <translation id="7502658306369382406">IPv6 ವಿಳಾಸ</translation> <translation id="7503191893372251637">Netscape ಪ್ರಮಾಣಪತ್ರ ಪ್ರಕಾರ</translation> -<translation id="7503821294401948377">ಬ್ರೌಸರ್ ಕ್ರಿಯೆಗಾಗಿ '<ph name="ICON" />' ಐಕಾನ್ ಅನ್ನು ಲೋಡ್ ಮಾಡಲು ಸಾಧ್ಯವಿಲ್ಲ.</translation> <translation id="7503985202154027481">ನೀವು ಈ ಸೈಟ್ಗೆ ಭೇಟಿ ನೀಡಿರುವ ಕುರಿತಾದ ದಾಖಲೆಗಳನ್ನು ನಿಮ್ಮ ಭದ್ರತೆ ಕೀಯಲ್ಲಿ ಉಳಿಸಲಾಗಿರುತ್ತದೆ.</translation> <translation id="7504293978434250212">ನಿಮ್ಮ ಸಂಸ್ಥೆಯು, 50 MB ವರೆಗಿನ ಫೈಲ್ಗಳನ್ನು ಸ್ಕ್ಯಾನ್ ಮಾಡಬಲ್ಲದು. ಚಿಕ್ಕ ಫೈಲ್ ಅನ್ನು ಅಪ್ಲೋಡ್ ಮಾಡಲು ಪ್ರಯತ್ನಿಸಿ.</translation> <translation id="750509436279396091">ಡೌನ್ಲೋಡ್ಗಳ ಫೋಲ್ಡರ್ ಅನ್ನು ತೆರೆಯಿರಿ</translation> @@ -5645,7 +5640,6 @@ <translation id="8546930481464505581">ಸ್ಪರ್ಶ ಪಟ್ಟಿಯನ್ನು ಕಸ್ಟಮೈಸ್ ಮಾಡಿ</translation> <translation id="8547013269961688403">ಪೂರ್ಣಪರದೆ ವರ್ಧಕವನ್ನು ಸಕ್ರಿಯಗೊಳಿಸಿ</translation> <translation id="85486688517848470">ಮೇಲಿನ-ಸಾಲುಗಳ ಕೀಗಳ ನಡುವಳಿಕೆಯನ್ನು ಬದಲಾಯಿಸಲು ಹುಡುಕಾಟದ ಕೀ ಅನ್ನು ಒತ್ತಿ ಹಿಡಿಯಿರಿ</translation> -<translation id="8550165047974571882">ನೀವು ಎಲ್ಲಾ <ph name="ORIGIN" /> ಟ್ಯಾಬ್ಗಳನ್ನು ಮುಚ್ಚುವವರೆಗೆ, <ph name="FOLDERNAME" /> ನಲ್ಲಿ ಇರುವ ಫೈಲ್ಗಳನ್ನು ಎಡಿಟ್ ಮಾಡಲು <ph name="ORIGIN" /> ಗೆ ಸಾಧ್ಯವಾಗುತ್ತದೆ</translation> <translation id="8551388862522347954">ಪರವಾನಗಿಗಳು</translation> <translation id="8553342806078037065">ಇತರ ವ್ಯಕ್ತಿಗಳನ್ನು ನಿರ್ವಹಿಸು</translation> <translation id="8554899698005018844">ಭಾಷೆ ನಮೂದಿಸಿಲ್ಲ</translation>
diff --git a/chrome/app/resources/generated_resources_ko.xtb b/chrome/app/resources/generated_resources_ko.xtb index 6d4f96fc7..fb3e0e0 100644 --- a/chrome/app/resources/generated_resources_ko.xtb +++ b/chrome/app/resources/generated_resources_ko.xtb
@@ -1120,7 +1120,6 @@ <translation id="247949520305900375">오디오 공유</translation> <translation id="2480868415629598489">복사하고 붙여넣는 데이터 수정</translation> <translation id="2482878487686419369">알림</translation> -<translation id="2483610039979585156">모든 <ph name="ORIGIN" /> 탭을 닫을 때까지 <ph name="ORIGIN" />에서 <ph name="FILENAME" /> 파일을 수정할 수 있게 됩니다.</translation> <translation id="2484959914739448251">동기화된 모든 기기 및 Google 계정에서 인터넷 사용 기록을 삭제하려면 <ph name="BEGIN_LINK" />암호를 입력<ph name="END_LINK" />하세요.</translation> <translation id="2485005079599453134">비밀번호가 기기에 저장됨</translation> <translation id="2485422356828889247">제거</translation> @@ -1725,7 +1724,6 @@ <translation id="3282568296779691940">Chrome에 로그인</translation> <translation id="3285322247471302225">새 탭(&T)</translation> <translation id="328571385944182268">비밀번호를 저장하시겠습니까?</translation> -<translation id="328785681103589998"><ph name="ORIGIN" /> 탭을 모두 닫을 때까지 <ph name="ORIGIN" />에서 <ph name="FILENAME" /> 파일을 볼 수 있게 됩니다.</translation> <translation id="3288047731229977326">개발자 모드로 실행 중인 확장 프로그램은 컴퓨터에 해를 줄 수 있습니다. 개발자가 아닌 경우 컴퓨터를 안전하게 사용하려면 개발자 모드로 실행 중인 확장 프로그램을 사용 중지해야 합니다.</translation> <translation id="3289856944988573801">업데이트를 확인하려면 이더넷 또는 Wi-Fi를 사용하세요.</translation> <translation id="3290356915286466215">잠기지 않음</translation> @@ -2412,6 +2410,7 @@ <translation id="4144218403971135344">우수한 화질의 동영상을 감상하고 배터리를 더 오래 사용하세요. 동영상은 Cast가 지원되는 화면에서만 재생됩니다.</translation> <translation id="4146026355784316281">항상 시스템 뷰어로 열기</translation> <translation id="4146785383423576110">재설정 및 정리하기</translation> +<translation id="4147897805161313378">Google 포토</translation> <translation id="4147911968024186208">다시 시도해 주세요. 이 오류가 다시 표시되면 지원 담당자에게 문의하시기 바랍니다.</translation> <translation id="4150201353443180367">디스플레이</translation> <translation id="4152670763139331043">{NUM_TABS,plural, =1{탭 1개}other{탭 #개}}</translation> @@ -2731,6 +2730,7 @@ <translation id="4633757335284074492">Google 드라이브에 백업합니다. 언제든지 간편하게 데이터를 복원하거나 다른 기기로 전환할 수 있습니다. 앱 데이터도 백업에 포함됩니다. 백업 항목은 Google에 업로드되며 자녀의 Google 계정 비밀번호를 사용하여 암호화됩니다.</translation> <translation id="4634771451598206121">다시 로그인...</translation> <translation id="4635398712689569051">게스트 사용자는 <ph name="PAGE_NAME" />을(를) 사용할 수 없음</translation> +<translation id="4636930964841734540">정보</translation> <translation id="4637083375689622795">추가 작업, <ph name="EMAIL" /></translation> <translation id="4638930039313743000">ADB 디버깅 사용 설정</translation> <translation id="4641539339823703554">Chrome에서 시스템 시간을 설정할 수 없습니다. 아래에서 시간을 확인한 다음 필요한 경우 수정해 주세요.</translation> @@ -2810,7 +2810,6 @@ <translation id="4750394297954878236">추천</translation> <translation id="475088594373173692">첫 번째 사용자</translation> <translation id="4751476147751820511">모션 또는 조도 센서</translation> -<translation id="4756269098451810636"><ph name="DEVICE_NAME" />에서 공유한 이미지</translation> <translation id="4756378406049221019">중지/새로고침</translation> <translation id="4756388243121344051">방문 기록(&H)</translation> <translation id="4759238208242260848">다운로드</translation> @@ -3757,7 +3756,6 @@ <translation id="6040852767465482106">익명 ID</translation> <translation id="6041046205544295907"><ph name="BEGIN_PARAGRAPH1" />Google의 위치 서비스는 Wi-Fi, 모바일 네트워크, 센서 등의 소스를 활용하여 기기의 위치를 추정합니다.<ph name="END_PARAGRAPH1" /> <ph name="BEGIN_PARAGRAPH2" />기기에서 기본 위치 설정을 사용 중지하여 위치 정보를 끌 수 있습니다. 또한 위치 설정에서 위치 파악에 Wi‑Fi, 모바일 네트워크, 센서의 사용을 중지할 수도 있습니다.<ph name="END_PARAGRAPH2" /></translation> -<translation id="6041150002191391409">모든 <ph name="ORIGIN" /> 탭을 닫을 때까지 <ph name="ORIGIN" />에서 <ph name="FOLDERNAME" />의 파일을 볼 수 있게 됩니다.</translation> <translation id="6041155700700864984">전체화면 종료</translation> <translation id="604124094241169006">자동</translation> <translation id="6042308850641462728">더보기</translation> @@ -4153,7 +4151,6 @@ <translation id="6561726789132298588">입력</translation> <translation id="656293578423618167">파일 경로 또는 이름이 너무 깁니다. 짧은 이름으로 변경하거나 다른 위치에 저장하세요.</translation> <translation id="6563469144985748109">관리자가 아직 승인하지 않았습니다.</translation> -<translation id="6567688344210276845">페이지 작업의 아이콘('<ph name="ICON" />')을 로드하지 못했습니다.</translation> <translation id="6569934958368283244">다른 사용자</translation> <translation id="657402800789773160">페이지 새로고침(&R)</translation> <translation id="6577284282025554716">다운로드 취소됨: <ph name="FILE_NAME" /></translation> @@ -4218,7 +4215,6 @@ <translation id="6659594942844771486">탭</translation> <translation id="6664237456442406323">컴퓨터가 잘못된 형식의 하드웨어 ID로 구성되어 있습니다. 이렇게 하면 Chrome OS가 최신 보안 수정사항을 업데이트할 수 없으며 컴퓨터가<ph name="BEGIN_BOLD" />악의적인 공격에 취약해 집니다<ph name="END_BOLD" />.</translation> <translation id="6664774537677393800">프로필을 여는 동안 문제가 발생했습니다. 로그아웃했다가 다시 로그인하세요.</translation> -<translation id="6667776121818773738">다른 기기에서 공유한 이미지</translation> <translation id="6673391612973410118"><ph name="PRINTER_MAKE_OR_MODEL" />(USB)</translation> <translation id="667517062706956822">Google에서 이 페이지를 <ph name="SOURCE_LANGUAGE" />에서 <ph name="TARGET_LANGUAGE" />로 번역할까요?</translation> <translation id="6675665718701918026">포인팅 기기 연결됨</translation> @@ -4839,7 +4835,6 @@ <translation id="7497981768003291373">최근 캡처한 WebRTC 텍스트 로그가 없습니다.</translation> <translation id="7502658306369382406">IPv6 주소</translation> <translation id="7503191893372251637">Netscape Certificate Type</translation> -<translation id="7503821294401948377">브라우저 작업의 아이콘('<ph name="ICON" />')을 로드하지 못했습니다.</translation> <translation id="7503985202154027481">이 사이트를 방문한 기록이 보안 키에 보관됩니다.</translation> <translation id="7504293978434250212">조직에서 파일을 50MB까지만 검사할 수 있습니다. 더 작은 파일을 업로드해 보세요.</translation> <translation id="750509436279396091">다운로드 폴더 열기</translation> @@ -5642,7 +5637,6 @@ <translation id="8546930481464505581">Touch Bar 맞춤설정</translation> <translation id="8547013269961688403">전체화면 돋보기 사용</translation> <translation id="85486688517848470">맨 위 키의 동작을 전환하려면 검색 키를 길게 누름</translation> -<translation id="8550165047974571882">모든 <ph name="ORIGIN" /> 탭을 닫을 때까지 <ph name="ORIGIN" />에서 <ph name="FOLDERNAME" />의 파일을 수정할 수 있게 됩니다.</translation> <translation id="8551388862522347954">라이선스</translation> <translation id="8553342806078037065">다른 사용자 관리</translation> <translation id="8554899698005018844">언어가 없음</translation>
diff --git a/chrome/app/resources/generated_resources_ky.xtb b/chrome/app/resources/generated_resources_ky.xtb index a3a4abb..c3f22e2 100644 --- a/chrome/app/resources/generated_resources_ky.xtb +++ b/chrome/app/resources/generated_resources_ky.xtb
@@ -1120,7 +1120,6 @@ <translation id="247949520305900375">Аудио бөлүшүү</translation> <translation id="2480868415629598489">Көчүрүлүп, коюла турган дайындарды өзгөртүү</translation> <translation id="2482878487686419369">Билдирмелер</translation> -<translation id="2483610039979585156">Бардык <ph name="ORIGIN" /> өтмөктөрү жабылмайынча <ph name="ORIGIN" /> сайты <ph name="FILENAME" /> файлын түзөтө алат</translation> <translation id="2484959914739448251">Бардык шайкештирилген түзмөктөрүңүздөгү жана Google аккаунтуңуздагы серептөө дайындарын тазалоо үчүн <ph name="BEGIN_LINK" />өткөрүүчү сүйлөмдү киргизиңиз<ph name="END_LINK" />.</translation> <translation id="2485005079599453134">Сырсөз бул түзмөктө сакталды</translation> <translation id="2485422356828889247">Орнотуудан чыгаруу</translation> @@ -1725,7 +1724,6 @@ <translation id="3282568296779691940">Chrome'го кириңиз</translation> <translation id="3285322247471302225">Жаңы &өтмөк</translation> <translation id="328571385944182268">Сырсөздөрүңүз сакталсынбы?</translation> -<translation id="328785681103589998">Бардык <ph name="ORIGIN" /> өтмөктөрү жабылмайынча <ph name="ORIGIN" /> сайты <ph name="FILENAME" /> файлын көрө алат</translation> <translation id="3288047731229977326">Иштеп чыгуучунун режиминде иштеп жаткан кеңейтүүлөр компьютериңизге зыян келтирип коюшу мүмкүн. Эгер сиз иштеп чыгуучу эмес болсоңуз, коопсуздук максатында иштеп чыгуучу режиминде иштеп жаткан кеңейтүүлөрдү өчүрүп коюңуз.</translation> <translation id="3289856944988573801">Жаңыртууларды издөө үчүн, Ethernet же Wi-Fi'ды колдонуңуз.</translation> <translation id="3290356915286466215">Корголгон эмес</translation> @@ -2414,6 +2412,7 @@ <translation id="4144218403971135344">Видеонун сапатын жакшыртуу менен бирге түзмөгүңүздүн кубатын үнөмдөңүз. Видео Google Cast иштетилген экранда гана ойнотулат.</translation> <translation id="4146026355784316281">Ар дайым тутум көрсөткүч менен ачуу</translation> <translation id="4146785383423576110">Баштапкы абалга келтирип, тазалоо</translation> +<translation id="4147897805161313378">Google Фото</translation> <translation id="4147911968024186208">Кайталаңыз. Эгер бул ката кайра көрсөтүлсө, кардарларды тейлеген өкүлгө кайрылыңыз.</translation> <translation id="4150201353443180367">Көрсөтүү</translation> <translation id="4152670763139331043">{NUM_TABS,plural, =1{1 өтмөк}other{# өтмөк}}</translation> @@ -2733,6 +2732,7 @@ <translation id="4633757335284074492">Google Drive'га камдык көчүрмөлөрдү сактоо. Маалыматыңды (ошондой эле колдонмолордогу) оңой эле калыбына келтирип, бир түзмөктөн экинчисине өткөрө аласыз. Көчүрмөдө колдонмо тууралуу маалымат дагы сакталат. Камдык көчүрмөлөр Google'га жүктөлүп берилип, балаңыздын Google аккаунтунун сырсөзү менен шифрленет.</translation> <translation id="4634771451598206121">Кайра кириңиз…</translation> <translation id="4635398712689569051"><ph name="PAGE_NAME" /> Конок режиминдеги колдонуучулар үчүн жеткиликсиз.</translation> +<translation id="4636930964841734540">Маалымат</translation> <translation id="4637083375689622795">Көбүрөөк аракеттер, <ph name="EMAIL" /></translation> <translation id="4638930039313743000">ADB аркылуу мүчүлүштүктөрдү оңдоону иштетүү</translation> <translation id="4641539339823703554">Chrome тутумдун убакытын коё алган жок. Төмөнкү убакытты текшерип, зарыл болсо, аны тууралаңыз.</translation> @@ -2812,7 +2812,6 @@ <translation id="4750394297954878236">Сунуштар</translation> <translation id="475088594373173692">Биринчи колдонуучу</translation> <translation id="4751476147751820511">Кыймыл же жарык сенсорлору</translation> -<translation id="4756269098451810636"><ph name="DEVICE_NAME" /> түзмөгүнөн көчүрүлгөн сүрөт</translation> <translation id="4756378406049221019">Токтотуу/Кайра жүктөө</translation> <translation id="4756388243121344051">&Таржымал</translation> <translation id="4759238208242260848">Жүктөлүп алынгандар</translation> @@ -3534,7 +3533,7 @@ <translation id="5734362860645681824">Байланыштар</translation> <translation id="5734697361979786483">Файлды бөлүшүү жөндөөсүн кошуу</translation> <translation id="5736796278325406685">Жарактуу колдонуучунун атын киргизиңиз</translation> -<translation id="5739017626473506901"><ph name="USER_NAME" /> аттуу балаңызга мектеп аккаунтун кошууга жардам берүү үчүн аккаунтуңузга кириңиз.</translation> +<translation id="5739017626473506901"><ph name="USER_NAME" /> балаңызга мектеп аккаунтун кошууга жардам берүү үчүн аккаунтуңузга кириңиз.</translation> <translation id="5739235828260127894">Ырастоо күтүлүүдө. <ph name="LINK_BEGIN" />Кеңири маалымат<ph name="LINK_END" /></translation> <translation id="5739458112391494395">Өтө чоң</translation> <translation id="574209121243317957">Тон</translation> @@ -3759,7 +3758,6 @@ <translation id="6040852767465482106">Аноним</translation> <translation id="6041046205544295907"><ph name="BEGIN_PARAGRAPH1" />Google'дун жайгашкан жерди аныктоо кызматы бул түзмөктүн жайгашкан жерин аныктоо үчүн Wi‑Fi, мобилдик тармактарды жана сенсорлорду колдонот.<ph name="END_PARAGRAPH1" /> <ph name="BEGIN_PARAGRAPH2" />Бул кызматты өчүрүү үчүн, түзмөгүңүздөгү Жайгашкан жерди аныктоо функциясын өчүрүп салыңыз. Сиз ошондой эле Wi Fi, мобилдик тармактарды, жайгашкан жер сенсорлорун жайгаштыруу жөндөөлөрүнөн өчүрсөңүз болот.<ph name="END_PARAGRAPH2" /></translation> -<translation id="6041150002191391409">Бардык <ph name="ORIGIN" /> өтмөктөрү жабылмайынча <ph name="ORIGIN" /> сайты <ph name="FOLDERNAME" /> папкасындагы файлдарды көрө алат</translation> <translation id="6041155700700864984">Толук экран режиминен чыгуу</translation> <translation id="604124094241169006">Автоматтык</translation> <translation id="6042308850641462728">Дагы</translation> @@ -4155,7 +4153,6 @@ <translation id="6561726789132298588">enter</translation> <translation id="656293578423618167">Файлдын аталышы же ага алып барчу жол өтө узун. Анын аталышын кыскартыңыз же жакыныраак жерге сактаңыз.</translation> <translation id="6563469144985748109">Башкаруучуңуз буга уруксат бере элек</translation> -<translation id="6567688344210276845">Бет аракети үчүн '<ph name="ICON" />' сүрөтчөсү жүктөлбөй койду.</translation> <translation id="6569934958368283244">Башка кишилер</translation> <translation id="657402800789773160">&Бул бетти кайра жүктөө</translation> <translation id="6577284282025554716">Жүктөп алуу жокко чыгарылды: <ph name="FILE_NAME" /></translation> @@ -4220,7 +4217,6 @@ <translation id="6659594942844771486">Өтмөк</translation> <translation id="6664237456442406323">Тилекке каршы, компьютериңиз бузулган жабдыктын далдаштыргыч дайындарына конфигурацияланган. Ушундан улам, Chrome OS эң акыркы коопсуздук чаралары менен жаңыртылбагандыктан, компьютериңиз <ph name="BEGIN_BOLD" />зыянкеч чабуулдардан коргоно албай калышы мүмкүн<ph name="END_BOLD" />.</translation> <translation id="6664774537677393800">Профилиңизди ачууда бир жерден ката кетти. Чыгып, кайра кириңиз…</translation> -<translation id="6667776121818773738">Башка түзмөктөн бөлүшүлгөн сүрөт</translation> <translation id="6673391612973410118"><ph name="PRINTER_MAKE_OR_MODEL" /> (USB)</translation> <translation id="667517062706956822">Бул баракты Google <ph name="SOURCE_LANGUAGE" /> тилинен <ph name="TARGET_LANGUAGE" /> тилине которсунбу?</translation> <translation id="6675665718701918026">Көрсөтүүчү түзмөк туташтырылды</translation> @@ -4841,7 +4837,6 @@ <translation id="7497981768003291373">Текст түрүндө сакталган акыркы WebRTC таржымалдары жок.</translation> <translation id="7502658306369382406">IPv6 дареги</translation> <translation id="7503191893372251637">Netscape тастыктамасынын түрү</translation> -<translation id="7503821294401948377">Серепчи үчүн '<ph name="ICON" />' сүрөтчөсү жүктөлгөн жок.</translation> <translation id="7503985202154027481">Бул вебсайтка киргениңиз тууралуу маалымат коопсуздук ачкычыңызга жазылат.</translation> <translation id="7504293978434250212">Уюмуңуз көлөмү 50 Мб чейинки файлдарды гана текшере алат. Кичирээк файлды жүктөп берип көрүңүз.</translation> <translation id="750509436279396091">Жүктөлүп алынгандар куржунун ачуу</translation> @@ -5643,7 +5638,6 @@ <translation id="8546930481464505581">Басуу тилкесин ыңгайлаштыруу</translation> <translation id="8547013269961688403">Толук экран лупасын иштетүү</translation> <translation id="85486688517848470">Жогорку катардагы баскычтардын аракеттерин которуштуруу үчүн Издөө баскычын басып туруңуз</translation> -<translation id="8550165047974571882">Бардык <ph name="ORIGIN" /> өтмөктөрү жабылмайынча <ph name="ORIGIN" /> сайты <ph name="FOLDERNAME" /> папкасындагы файлдарды түзөтө алат</translation> <translation id="8551388862522347954">Уруксаттамалар</translation> <translation id="8553342806078037065">Башка адамдарды башкаруу</translation> <translation id="8554899698005018844">Тил коюлган эмес</translation>
diff --git a/chrome/app/resources/generated_resources_lo.xtb b/chrome/app/resources/generated_resources_lo.xtb index afec3a9..2bfacd96 100644 --- a/chrome/app/resources/generated_resources_lo.xtb +++ b/chrome/app/resources/generated_resources_lo.xtb
@@ -1118,7 +1118,6 @@ <translation id="247949520305900375">ແບ່ງປັນສຽງ</translation> <translation id="2480868415629598489">ແກ້ໄຂຂໍ້ມູນທີ່ທ່ານສຳເນົາ ແລະ ວາງໃສ່</translation> <translation id="2482878487686419369">ການແຈ້ງເຕືອນ</translation> -<translation id="2483610039979585156"><ph name="ORIGIN" /> ຈະສາມາດແກ້ໄຂໄຟລ໌ໃນ <ph name="FILENAME" /> ຈົນກວ່າວ່າທ່ານປິດແຖບ <ph name="ORIGIN" /> ທັງໝົດ</translation> <translation id="2484959914739448251">ເພື່ອລຶບລ້າງຂໍ້ມູນການທ່ອງເວັບອອກຈາກອຸປະກອນທີ່ຊິ້ງຂໍ້ມູນຂອງທ່ານທັງໝົດ ແລະ ບັນຊີ Google ຂອງທ່ານ, ກະລຸນາ <ph name="BEGIN_LINK" />ປ້ອນລະຫັດຜ່ານຂອງທ່ານ<ph name="END_LINK" />.</translation> <translation id="2485005079599453134">ບັນທຶກລະຫັດຜ່ານໄວ້ໃນອຸປະກອນນີ້ແລ້ວ</translation> <translation id="2485422356828889247">ຖອນຕິດຕັ້ງ</translation> @@ -1723,7 +1722,6 @@ <translation id="3282568296779691940">ລົງຊື່ເຂົ້າໃຊ້ Chrome</translation> <translation id="3285322247471302225">ແຖບໃໝ່</translation> <translation id="328571385944182268">ບັນທຶກລະຫັດຜ່ານຂອງທ່ານໄວ້ບໍ?</translation> -<translation id="328785681103589998"><ph name="ORIGIN" /> ຈະສາມາດເບິ່ງ <ph name="FILENAME" /> ຈົນກວ່າວ່າທ່ານປິດແຖບ <ph name="ORIGIN" /> ທັງໝົດ</translation> <translation id="3288047731229977326">ສ່ວນຂະຫຍາຍທີ່ແລ່ນຢູ່ໃນໂໝດຜູ້ພັດທະນາສາມາດເຮັດໃຫ້ຄອມພິວເຕີຂອງທ່ານເສຍຫາຍໄດ້. ຖ້າທ່ານບໍ່ແມ່ນຜູ້ພັດທະນາ, ທ່ານຄວນຈະປິດໃຊ້ງານສ່ວນຂະຫຍາຍເຫຼົ່ານີ້ທີ່ແລ່ນຢູ່ໃນໂໝດຜູ້ພັດທະນາ ເືພ່ອໃຫ້ປອດໄພ.</translation> <translation id="3289856944988573801">ເພື່ອກວດເບິ່ງການອັບເດດ, ກະລຸນາໃຊ້ອີເທີເນັດ ຫຼື Wi-Fi.</translation> <translation id="3290356915286466215">ບໍ່ປອດໄພ</translation> @@ -2412,6 +2410,7 @@ <translation id="4144218403971135344">ມີວິດີໂອຄຸນນະພາບທີ່ດີກວ່າ ແລະ ປະຢັດແບັດເຕີຣີ. ວິດີໂອຈະຫຼິ້ນໃນໜ້າຈໍທີ່ເປີດນຳໃຊ້ Cast ເທົ່ານັ້ນ.</translation> <translation id="4146026355784316281">ເປີດກັບຕົວເບິ່ງລະບົບທຸກຄັ້ງ</translation> <translation id="4146785383423576110">ຣີເຊັດ ແລະ ອະນາໄມ</translation> +<translation id="4147897805161313378">Google ຮູບພາບ</translation> <translation id="4147911968024186208">ກະລຸນາລອງໃໝ່. ຖ້າທ່ານເຫັນຄວາມຜິດພາດນີ້ອີກຄັ້ງ ກະລຸນາຕິດຕໍ່ຫາຜູ້ຕາງໜ້າຝ່າຍຊ່ວຍເຫຼືອຂອງທ່ານ.</translation> <translation id="4150201353443180367">ການສະແດງຜົນ</translation> <translation id="4152670763139331043">{NUM_TABS,plural, =1{1 ແຖບ}other{# ແຖບ}}</translation> @@ -2731,6 +2730,7 @@ <translation id="4633757335284074492">ສຳຮອງຂໍ້ມູນໄວ້ໃນ Google Drive ກູ້ຄືນຂໍ້ມູນໄດ້ຢ່າງງ່າຍດາຍ ຫຼື ປ່ຽນອຸປະກອນໄດ້ທຸກເວລາ. ການສຳຮອງຂໍ້ມູນີ້ຮວມເອົາຂໍ້ມູນແອັບ. ຂໍ້ມູນທີ່ສຳຮອງໄວ້ຂອງທ່ານຖືກອັບໂຫຼດໄວ້ໃນ Google ແລະ ເຂົ້າລະຫັດໄວ້ໂດຍໃຊ້ລະຫັດຜ່ານບັນຊີ Google ຂອງລູກທ່ານ.</translation> <translation id="4634771451598206121">ລົງຊື່ເຂົ້າໃຊ້ອີກ...</translation> <translation id="4635398712689569051"><ph name="PAGE_NAME" /> ບໍ່ສາມາດໃຊ້ໄດ້ຕໍ່ກັບຜູ້ໃຊ້ທີ່ເປັນແຂກ.</translation> +<translation id="4636930964841734540">ຂໍ້ມູນ</translation> <translation id="4637083375689622795">ການດຳເນີນການເພີ່ມເຕີມ, <ph name="EMAIL" /></translation> <translation id="4638930039313743000">ເປີດນຳໃຊ້ການດີບັກ ADB</translation> <translation id="4641539339823703554">Chrome ບໍ່ສາມາດຕັ້ງເວລາຂອງລະບົບໄດ້. ກະລຸນາກວດເບິ່ງເວລາຢູ່ລຸ່ມນີ້ ແລະແກ້ໄຂໃຫ້ຖືກຕ້ອງ ຖ້າຈໍາເປັນ.</translation> @@ -2810,7 +2810,6 @@ <translation id="4750394297954878236">ຄໍາແນະນໍາ</translation> <translation id="475088594373173692">ຜູ້ໃຊ້ທໍາອິດ</translation> <translation id="4751476147751820511">ເຊັນເຊີກວດຈັບການເຄື່ອນໄຫວ ຫຼື ແສງ</translation> -<translation id="4756269098451810636">ຮູບພາບທີ່ແບ່ງປັນຈາກ <ph name="DEVICE_NAME" /></translation> <translation id="4756378406049221019">ຢຸດ/ໂຫຼດຄືນໃໝ່</translation> <translation id="4756388243121344051">ປະຫວັດ</translation> <translation id="4759238208242260848">ດາວໂຫຼດ</translation> @@ -3757,7 +3756,6 @@ <translation id="6040852767465482106">ຕົວຕົນທີ່ບໍ່ເປີດເຜີຍຊື່</translation> <translation id="6041046205544295907"><ph name="BEGIN_PARAGRAPH1" />ການບໍລິການສະຖານທີ່ຂອງ Google ຈະໃຊ້ແຫລ່ງຂໍ້ມູນຕ່າງໆ ເຊັ່ນ: Wi‑Fi, ເຄືອຂ່າຍມືຖື ແລະ ເຊັນເຊີຕ່າງໆເພື່ອຊ່ວຍຄາດຄະເນສະຖານທີ່ຂອງອຸປະກອນຂອງທ່ານ.<ph name="END_PARAGRAPH1" /> <ph name="BEGIN_PARAGRAPH2" />ທ່ານສາມາດປິດສະຖານທີ່ໄດ້ໂດຍການປິດການຕັ້ງຄ່າສະຖານທີ່ຫຼັກຢູ່ໃນອຸປະກອນຂອງທ່ານ. ນອກຈາກທ່ານຍັງສາມາດປິດການໃຊ້ Wi‑Fi, ເຄືອຂ່າຍມືຖື ແລະ ເຊັນເຊີຕ່າງໆສຳລັບສະຖານທີ່ໄດ້ໃນການຕັ້ງຄ່າສະຖານທີ່.<ph name="END_PARAGRAPH2" /></translation> -<translation id="6041150002191391409"><ph name="ORIGIN" /> ຈະສາມາດເບິ່ງໄຟລ໌ໃນ <ph name="FOLDERNAME" /> ຈົນກວ່າວ່າທ່ານປິດແຖບ <ph name="ORIGIN" /> ທັງໝົດ</translation> <translation id="6041155700700864984">ອອກຈາກເຕັມໜ້າຈໍ</translation> <translation id="604124094241169006">ອັດຕະໂນມັດ</translation> <translation id="6042308850641462728">ເພີ່ມເຕີມ</translation> @@ -4153,7 +4151,6 @@ <translation id="6561726789132298588">ປ້ອນເຂົ້າ</translation> <translation id="656293578423618167">ຊ່ອງທາງ ຫຼືຊື່ໄຟລ໌ຍາວເກີນໄປ. ກະລຸນາບັນທຶກດ້ວຍຊື່ທີ່ສັ້ນກ່ວາ ຫຼືໄປໃສ່ທີ່ຕັ້ງອື່ນ.</translation> <translation id="6563469144985748109">ຜູ້ຈັດການຂອງທ່ານຍັງບໍ່ທັນອະນຸມັດມັນເທື່ອ</translation> -<translation id="6567688344210276845">ບໍ່ສາມາດໂຫຼດໄອຄອນ '<ph name="ICON" />' ສໍາລັບການດໍາເນີນການໜ້າໄດ້.</translation> <translation id="6569934958368283244">ບຸກຄົນອື່ນ</translation> <translation id="657402800789773160">ໂຫຼດຫນ້ານີ້ຄືນອີກ</translation> <translation id="6577284282025554716">ຍົກເລີກການດາວໂຫຼດແລ້ວ: <ph name="FILE_NAME" /></translation> @@ -4218,7 +4215,6 @@ <translation id="6659594942844771486">ແຖບ</translation> <translation id="6664237456442406323">ໜ້າເສຍດາຍ, ຄອມພິວເຕີຂອງທ່ານຖືກປັບຕັ້ງຄ່າດ້ວຍ ID ຮາດແວທີ່ຜິດຮູບແບບ. ນີ້ສະກັດກັ້ນບໍ່ໃຫ້ Chrome OS ອັບເດດດ້ວຍຕົວກໍານົດຄວາມປອດໄພຫຼ້າສຸດ ແລະຄອມພິວເຕີຂອງທ່ານ <ph name="BEGIN_BOLD" />ອາດຈະອ່ອນໄຫວຕໍ່ການໂຈມຕີທີ່ປອງຮ້າຍ<ph name="END_BOLD" />ໄດ້.</translation> <translation id="6664774537677393800">ມີບາງຢ່າງຜິດພາດໃນເວລາເປີດໂປຣໄຟລ໌ຂອງທ່ານ. ກະລຸນາອອກຈາກລະບົບ ແລ້ວເຂົ້າສູ່ລະບົບຄືນໃໝ່.</translation> -<translation id="6667776121818773738">ຮູບພາບທີ່ແບ່ງປັນຈາກອຸປະກອນອື່ນ</translation> <translation id="6673391612973410118"><ph name="PRINTER_MAKE_OR_MODEL" /> (USB)</translation> <translation id="667517062706956822">ທ່ານຕ້ອງການໃຫ້ Google ແປໜ້ານີ້ຈາກ <ph name="SOURCE_LANGUAGE" /> ເປັນ <ph name="TARGET_LANGUAGE" /> ບໍ?</translation> <translation id="6675665718701918026">ອຸປະກອນຊີ້ເຊື່ອມຕໍ່ແລ້ວ</translation> @@ -4839,7 +4835,6 @@ <translation id="7497981768003291373">ທ່ານບໍ່ມີບັນທຶກຂໍ້ຄວາມ WebRTC ທີ່ບັນທຶກໄວ້ເມື່ອບໍ່ດົນມານີ້.</translation> <translation id="7502658306369382406">ທີ່ຢູ່ IPv6</translation> <translation id="7503191893372251637">ປະເພດໃບຢັ້ງຢືນ Netscape</translation> -<translation id="7503821294401948377">ບໍ່ສາມາດໂຫຼດໄອຄອນ '<ph name="ICON" />' ສໍາລັບການດໍາເນີນການຂອງບຣາວເຊີ.</translation> <translation id="7503985202154027481">ບັນທຶກການເຂົ້າເບິ່ງເວັບໄຊນີ້ຂອງທ່ານຈະຖືກຮັກສາໄວ້ໃນກະແຈຄວາມປອດໄພຂອງທ່ານ.</translation> <translation id="7504293978434250212">ອົງການຂອງທ່ານສາມາດສະແກນໄຟລ໌ໄດ້ເຖິງ 50 MB. ລອງອັບໂຫຼດໄຟລ໌ທີ່ໜ້ອຍກວ່າ.</translation> <translation id="750509436279396091">ເປີດໂຟລເດີດາວໂຫຼດ</translation> @@ -5640,7 +5635,6 @@ <translation id="8546930481464505581">ປັບແຕ່ງແຖບການແຕະ</translation> <translation id="8547013269961688403">ເປີດນຳໃຊ້ແວ່ນຂະຫຍາຍເຕັມຈໍ</translation> <translation id="85486688517848470">ກົດປຸ່ມຊອກຫາຄ້າງໄວ້ເພື່ອປ່ຽນພຶດຕິກຳຂອງປຸ່ມແຖວເທິງ</translation> -<translation id="8550165047974571882"><ph name="ORIGIN" /> ຈະສາມາດແກ້ໄຂໄຟລ໌ໃນ <ph name="FOLDERNAME" /> ຈົນກວ່າວ່າທ່ານປິດແຖບ <ph name="ORIGIN" /> ທັງໝົດ</translation> <translation id="8551388862522347954">ໃບອະນຸຍາດ</translation> <translation id="8553342806078037065">ຈັດການບູກຄົນອື່ນ</translation> <translation id="8554899698005018844">ບໍ່ມີພາສາ</translation>
diff --git a/chrome/app/resources/generated_resources_lt.xtb b/chrome/app/resources/generated_resources_lt.xtb index 9861435..e685ac8d 100644 --- a/chrome/app/resources/generated_resources_lt.xtb +++ b/chrome/app/resources/generated_resources_lt.xtb
@@ -1120,7 +1120,6 @@ <translation id="247949520305900375">Bendrinti garsą</translation> <translation id="2480868415629598489">Keisti kopijuojamus ir įklijuojamus duomenis</translation> <translation id="2482878487686419369">Pranešimai</translation> -<translation id="2483610039979585156"><ph name="ORIGIN" /> galės redaguoti failą „<ph name="FILENAME" />“, kol uždarysite visus <ph name="ORIGIN" /> skirtukus</translation> <translation id="2484959914739448251">Norėdami išvalyti naršymo duomenis iš sinchronizuotų įrenginių ir „Google“ paskyros, <ph name="BEGIN_LINK" />įveskite slaptafrazę<ph name="END_LINK" />.</translation> <translation id="2485005079599453134">Slaptažodis išsaugotas šiame įrenginyje</translation> <translation id="2485422356828889247">Pašalinti</translation> @@ -1704,6 +1703,7 @@ <translation id="3264544094376351444">Šriftas „Sans-Serif“</translation> <translation id="3264582393905923483">Kontekstas</translation> <translation id="3265459715026181080">Uždaryti langą</translation> +<translation id="3266274118485960573">Vykdoma saugos patikra.</translation> <translation id="3267726687589094446">Toliau leisti automatiškai atsisiųsti kelis failus</translation> <translation id="3268451620468152448">Atidaryti skirtukai</translation> <translation id="3269069891205016797">Jūsų informacija bus ištrinta iš įrenginio, kai atsijungsite.</translation> @@ -1725,7 +1725,6 @@ <translation id="3282568296779691940">Prisijungti prie „Chrome“</translation> <translation id="3285322247471302225">Naujas &skirtukas</translation> <translation id="328571385944182268">Išsaugoti slaptažodžius?</translation> -<translation id="328785681103589998"><ph name="ORIGIN" /> galės peržiūrėti failą „<ph name="FILENAME" />“, kol uždarysite visus <ph name="ORIGIN" /> skirtukus</translation> <translation id="3288047731229977326">Kūrėjo režimu veikiantys plėtiniai gali padaryti žalos kompiuteryje. Jei nesate kūrėjai, turėtumėte išjungti šių plėtinių veikimą kūrėjo režimu, kad išliktumėte saugūs.</translation> <translation id="3289856944988573801">Jei norite tikrinti, ar nėra naujinių, naudokite eternetą arba „Wi-Fi“.</translation> <translation id="3290356915286466215">Neapsaugota</translation> @@ -1810,6 +1809,7 @@ <translation id="3412265149091626468">Nukreipti į pasirinkimą</translation> <translation id="3413122095806433232">CA išdavėjai: <ph name="LOCATION" /></translation> <translation id="3414952576877147120">Dydis:</translation> +<translation id="3416468988018290825">Visada rodyti visus URL</translation> <translation id="3420501302812554910">Reikia iš naujo nustatyti vidinį saugos raktą</translation> <translation id="3421387094817716717">Elipsės formos kreivės viešasis raktas</translation> <translation id="3422291238483866753">Klausti, kai svetainė nori kurti jūsų aplinkos 3D žemėlapį ir stebėti kameros padėtį (rekomenduojama)</translation> @@ -2414,6 +2414,7 @@ <translation id="4144218403971135344">Gaukite kokybiškesnį vaizdo įrašą ir tausokite akumuliatoriaus energiją. Vaizdo įrašas bus leidžiamas tik su „Cast“ suderinamame įrenginyje.</translation> <translation id="4146026355784316281">Visada atidaryti naudojant sistemos peržiūros priemonę</translation> <translation id="4146785383423576110">Nustatykite iš naujo ir išvalykite</translation> +<translation id="4147897805161313378">„Google“ nuotraukos</translation> <translation id="4147911968024186208">Bandykite iš naujo. Jei ši klaida bus parodyta dar kartą, susisiekite su palaikymo komandos atstovu.</translation> <translation id="4150201353443180367">Pateiktis</translation> <translation id="4152670763139331043">{NUM_TABS,plural, =1{1 skirtukas}one{# skirtukas}few{# skirtukai}many{# skirtuko}other{# skirtukų}}</translation> @@ -2733,6 +2734,7 @@ <translation id="4633757335284074492">Sukurkite atsarginę kopiją „Google“ diske. Lengvai atkurkite duomenis arba perjunkite įrenginį bet kuriuo metu. Į šią atsarginę kopiją įtraukiami programų. Atsarginės kopijos įkeliamos į sistemą „Google“ ir šifruojamos naudojant vaiko „Google“ paskyros slaptažodį.</translation> <translation id="4634771451598206121">Prisijungti dar kartą...</translation> <translation id="4635398712689569051">„<ph name="PAGE_NAME" />“ nepasiekiamas svečiams.</translation> +<translation id="4636930964841734540">Informacija</translation> <translation id="4637083375689622795">Daugiau veiksmų, <ph name="EMAIL" /></translation> <translation id="4638930039313743000">Įgalinti ADB derinimą</translation> <translation id="4641539339823703554">„Chrome“ nepavyko nustatyti sistemos laiko. Toliau patikrinkite laiką ir ištaisykite jį, jei reikia.</translation> @@ -2812,7 +2814,6 @@ <translation id="4750394297954878236">Pasiūlymai</translation> <translation id="475088594373173692">Pirmas naudotojas</translation> <translation id="4751476147751820511">Judesio arba šviesos jutikliai</translation> -<translation id="4756269098451810636">Iš „<ph name="DEVICE_NAME" />“ bendrinamas vaizdas</translation> <translation id="4756378406049221019">Stabdyti / įkelti iš naujo</translation> <translation id="4756388243121344051">&Istorija</translation> <translation id="4759238208242260848">Atsisiuntimai</translation> @@ -3760,7 +3761,6 @@ <translation id="6040852767465482106">Anoniminė tapatybė</translation> <translation id="6041046205544295907"><ph name="BEGIN_PARAGRAPH1" />„Google“ vietovės paslauga naudoja įvairius šaltinius, pvz., „Wi‑Fi“, mobiliojo ryšio tinklus ir jutiklius, įrenginio vietovei nustatyti.<ph name="END_PARAGRAPH1" /> <ph name="BEGIN_PARAGRAPH2" />Galite išjungti vietovės nustatymą išjungdami pagrindinį vietovės nustatymą įrenginyje. Vietovės nustatymuose taip pat galite išjungti „Wi‑Fi“, mobiliojo ryšio tinklų ir jutiklių naudojimą vietovei nustatyti.<ph name="END_PARAGRAPH2" /></translation> -<translation id="6041150002191391409"><ph name="ORIGIN" /> galės peržiūrėti aplanko „<ph name="FOLDERNAME" />“ failus, kol uždarysite visus <ph name="ORIGIN" /> skirtukus</translation> <translation id="6041155700700864984">Išjungti viso ekrano režimą</translation> <translation id="604124094241169006">Automatinis</translation> <translation id="6042308850641462728">Daugiau</translation> @@ -4156,7 +4156,6 @@ <translation id="6561726789132298588">enter</translation> <translation id="656293578423618167">Failo kelias arba pavadinimas per ilgas. Išsaugokite nurodę trumpesnį pavadinimą arba kitoje vietoje.</translation> <translation id="6563469144985748109">Jūsų valdytojas dar jos nepatvirtino</translation> -<translation id="6567688344210276845">Puslapio veiksmui „<ph name="ICON" />“ piktogramos įkelti nepavyko.</translation> <translation id="6569934958368283244">Kiti žmonės</translation> <translation id="657402800789773160">&Iš naujo įkelti šį puslapį</translation> <translation id="6577284282025554716">Atsisiuntimas atšauktas: <ph name="FILE_NAME" /></translation> @@ -4168,6 +4167,7 @@ <translation id="6586451623538375658">Sukeisti pagrindinį pelės klavišą</translation> <translation id="6586604979641883411">Reikia bent <ph name="REQUIRED_SPACE" /> laisvos vietos diske, kad galėtumėte naujovinti „Linux“. Atlaisvinkite vietos įrenginyje ir bandykite dar kartą.</translation> <translation id="6588043302623806746">Naudoti saugią DNS</translation> +<translation id="659005207229852190">Saugos patikra baigta.</translation> <translation id="6590458744723262880">Pervardyti aplanką</translation> <translation id="6592267180249644460">„WebRTC“ žurnalas užfiksuotas <ph name="WEBRTC_LOG_CAPTURE_TIME" /></translation> <translation id="6592808042417736307">Kontrolinis kodas užfiksuotas</translation> @@ -4221,7 +4221,6 @@ <translation id="6659594942844771486">Skirtukas</translation> <translation id="6664237456442406323">Deja, jūsų kompiuteris yra sukonfigūruotas naudojant netinkamai suformuotą aparatinės įrangos ID. Tai neleidžia „Chrome“ OS atnaujinti naujausiais saugos pataisymais ir jūsų kompiuteris <ph name="BEGIN_BOLD" />gali būti neatsparus kenkėjiškoms programoms<ph name="END_BOLD" />.</translation> <translation id="6664774537677393800">Atidarant profilį įvyko klaida. Atsijunkite, tada vėl prisijunkite.</translation> -<translation id="6667776121818773738">Vaizdas bendrinamas iš kito įrenginio</translation> <translation id="6673391612973410118"><ph name="PRINTER_MAKE_OR_MODEL" /> (USB)</translation> <translation id="667517062706956822">Ar norite, kad „Google“ išverstų puslapį iš <ph name="SOURCE_LANGUAGE" /> į <ph name="TARGET_LANGUAGE" />?</translation> <translation id="6675665718701918026">Manipuliatorius prijungtas</translation> @@ -4842,7 +4841,6 @@ <translation id="7497981768003291373">Neturite neseniai užfiksuotų „WebRTC“ teksto žurnalų.</translation> <translation id="7502658306369382406">„IPv6“ adresas</translation> <translation id="7503191893372251637">„Netscape“ sertifikato tipas</translation> -<translation id="7503821294401948377">Naršyklės veiksmui įkelti „<ph name="ICON" />“ piktogramos nepavyko.</translation> <translation id="7503985202154027481">Saugos rakte bus saugomas įrašas apie apsilankymą šioje svetainėje.</translation> <translation id="7504293978434250212">Organizacijoje galima nuskaityti iki 50 MB failus. Pabandykite įkelti mažesnį failą.</translation> <translation id="750509436279396091">Atidaryti atsisiuntimų aplanką</translation> @@ -5430,6 +5428,7 @@ <translation id="8249672078237421304">Siūlyti versti puslapius, kurie pateikiami ne skaitoma kalba</translation> <translation id="8251441930213048644">Atnaujinti dabar</translation> <translation id="8251578425305135684">Miniatiūra pašalinta.</translation> +<translation id="825238165904109940">Visada rodyti visus URL</translation> <translation id="8252569384384439529">Įkeliama...</translation> <translation id="8253198102038551905">Spustelėkite „+“, kad peržiūrėtumėte tinklo savybes</translation> <translation id="8254954272268479918">Išjungti „Linux“ (beta)</translation> @@ -5645,7 +5644,6 @@ <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="8550165047974571882"><ph name="ORIGIN" /> galės redaguoti aplanko „<ph name="FOLDERNAME" />“ failus, kol uždarysite visus <ph name="ORIGIN" /> skirtukus</translation> <translation id="8551388862522347954">Licencijos</translation> <translation id="8553342806078037065">Tvarkyti kitus žmones</translation> <translation id="8554899698005018844">Kalbos nėra</translation>
diff --git a/chrome/app/resources/generated_resources_lv.xtb b/chrome/app/resources/generated_resources_lv.xtb index 23e64eb..79a7cd0 100644 --- a/chrome/app/resources/generated_resources_lv.xtb +++ b/chrome/app/resources/generated_resources_lv.xtb
@@ -1120,7 +1120,6 @@ <translation id="247949520305900375">Kopīgot audio</translation> <translation id="2480868415629598489">Modificēt datus, kurus jūs kopējat un ielīmējat</translation> <translation id="2482878487686419369">Paziņojumi</translation> -<translation id="2483610039979585156">Vietne <ph name="ORIGIN" /> varēs rediģēt failu <ph name="FILENAME" />, kamēr netiks aizvērtas visas vietnes <ph name="ORIGIN" /> cilnes.</translation> <translation id="2484959914739448251">Lai notīrītu pārlūkošanas datus no visām savām sinhronizētajām ierīcēm un Google konta, <ph name="BEGIN_LINK" />ievadiet ieejas frāzi<ph name="END_LINK" />.</translation> <translation id="2485005079599453134">Parole ir saglabāta šajā ierīcē</translation> <translation id="2485422356828889247">Atinstalēt</translation> @@ -1725,7 +1724,6 @@ <translation id="3282568296779691940">Pierakstīties pārlūkā Chrome</translation> <translation id="3285322247471302225">Jauna &cilne</translation> <translation id="328571385944182268">Vai saglabāt jūsu paroles?</translation> -<translation id="328785681103589998">Vietne <ph name="ORIGIN" /> varēs skatīt failu “<ph name="FILENAME" />”, kamēr netiks aizvērtas visas vietnes <ph name="ORIGIN" /> cilnes.</translation> <translation id="3288047731229977326">Paplašinājumi, kas darbojas izstrādātāja režīmā, var kaitēt jūsu datoram. Ja neesat izstrādātājs, drošības nolūkos atspējojiet šos paplašinājumus, kas darbojas izstrādātāja režīmā.</translation> <translation id="3289856944988573801">Lai pārbaudītu, vai ir pieejami atjauninājumi, lūdzu, izmantojiet tīklu Ethernet vai Wi-Fi.</translation> <translation id="3290356915286466215">Nav aizsargāts</translation> @@ -2414,6 +2412,7 @@ <translation id="4144218403971135344">Iegūstiet labāku videoklipu kvalitāti un paildziniet akumulatora darbības laiku. Videoklipi tiks atskaņoti tikai Cast iespējotā ekrānā.</translation> <translation id="4146026355784316281">Vienmēr atvērt, izmantojot sistēmas skatītāju</translation> <translation id="4146785383423576110">Atiestatiet un tīriet</translation> +<translation id="4147897805161313378">Google fotoattēli</translation> <translation id="4147911968024186208">Lūdzu, mēģiniet vēlreiz. Ja atkal tiek parādīta šī kļūda, sazinieties ar atbalsta dienesta pārstāvi.</translation> <translation id="4150201353443180367">Displejs</translation> <translation id="4152670763139331043">{NUM_TABS,plural, =1{1 cilne}zero{# ciļņu}one{# cilne}other{# cilnes}}</translation> @@ -2733,6 +2732,7 @@ <translation id="4633757335284074492">Datu dublēšana Google diskā. Varēsiet jebkurā laikā ērti atjaunot datus vai mainīt ierīci. Dublējumā ir ietverti arī lietotņu dati. Dublējumi tiek augšupielādēti Google serveros un tiek šifrēti, izmantojot jūsu bērna Google konta paroli.</translation> <translation id="4634771451598206121">Pierakstīties vēlreiz...</translation> <translation id="4635398712689569051">Lapa “<ph name="PAGE_NAME" />” nav pieejama viesa režīma lietotājiem.</translation> +<translation id="4636930964841734540">Informācija</translation> <translation id="4637083375689622795">Citas darbības (<ph name="EMAIL" />)</translation> <translation id="4638930039313743000">Vai iespējot ADB atkļūdošanu</translation> <translation id="4641539339823703554">Chrome nevarēja iestatīt sistēmas laiku. Ludzu, pārbaudiet tālāk norādīto laiku un labojiet to, ja nepieciešams.</translation> @@ -2812,7 +2812,6 @@ <translation id="4750394297954878236">Ieteikumi</translation> <translation id="475088594373173692">Pirmais lietotājs</translation> <translation id="4751476147751820511">Kustību vai gaismas sensori</translation> -<translation id="4756269098451810636">Attēls kopīgots no <ph name="DEVICE_NAME" /></translation> <translation id="4756378406049221019">Pārtraukt/ielādēt atkārtoti</translation> <translation id="4756388243121344051">Vēsture</translation> <translation id="4759238208242260848">Lejupielādes</translation> @@ -3759,7 +3758,6 @@ <translation id="6040852767465482106">Anonīma identitāte</translation> <translation id="6041046205544295907"><ph name="BEGIN_PARAGRAPH1" />Google atrašanās vietu pakalpojumā tiek izmantoti tādi avoti kā Wi‑Fi, mobilie tīkli un sensori, lai palīdzētu noteikt jūsu ierīces atrašanās vietu.<ph name="END_PARAGRAPH1" /> <ph name="BEGIN_PARAGRAPH2" />Varat izslēgt atrašanās vietas noteikšanu, izslēdzot ierīces galveno atrašanās vietas iestatījumu. Atrašanās vietas iestatījumos varat arī izslēgt Wi‑Fi, mobilo tīklu un sensoru izmantošanu atrašanās vietas noteikšanai.<ph name="END_PARAGRAPH2" /></translation> -<translation id="6041150002191391409">Vietne <ph name="ORIGIN" /> varēs skatīt failus mapē <ph name="FOLDERNAME" />, kamēr netiks aizvērtas visas vietnes <ph name="ORIGIN" /> cilnes</translation> <translation id="6041155700700864984">Aizvērt pilnekrāna režīmu</translation> <translation id="604124094241169006">Automātiski</translation> <translation id="6042308850641462728">Vairāk</translation> @@ -4155,7 +4153,6 @@ <translation id="6561726789132298588">Ievadīt</translation> <translation id="656293578423618167">Faila ceļš vai nosaukums ir pārāk garš. Saglabājiet ar īsāku nosaukumu vai citā atrašanās vietā.</translation> <translation id="6563469144985748109">Jūsu vadītājs vēl nav to apstiprinājis</translation> -<translation id="6567688344210276845">Nevarēja ielādēt lapas darbības ikonu “<ph name="ICON" />”.</translation> <translation id="6569934958368283244">Citas personas</translation> <translation id="657402800789773160">&Atkārtoti ielādēt šo lapu</translation> <translation id="6577284282025554716">Lejupielāde atcelta: <ph name="FILE_NAME" /></translation> @@ -4220,7 +4217,6 @@ <translation id="6659594942844771486">Cilne</translation> <translation id="6664237456442406323">Diemžēl jūsu datora konfigurācijā tika izmantots nepareizi veidots aparatūras ID. Šī iemesla dēļ operētājsistēmu Chrome OS nevarēja atjaunināt, izmantojot jaunākos drošības labojumus, un jūsu dators, iespējams, <ph name="BEGIN_BOLD" />nebūs aizsargāts pret ļaunprātīgiem uzbrukumiem<ph name="END_BOLD" />.</translation> <translation id="6664774537677393800">Atverot jūsu profilu, radās kļūda. Lūdzu, izrakstieties un vēlreiz pierakstieties.</translation> -<translation id="6667776121818773738">Attēls kopīgots no citas ierīces</translation> <translation id="6673391612973410118"><ph name="PRINTER_MAKE_OR_MODEL" /> (USB)</translation> <translation id="667517062706956822">Vai vēlaties, lai Google tulkotu šo lapu šādā valodu kombinācijā: <ph name="SOURCE_LANGUAGE" />–<ph name="TARGET_LANGUAGE" />?</translation> <translation id="6675665718701918026">Rādītājierīce ir pievienota.</translation> @@ -4841,7 +4837,6 @@ <translation id="7497981768003291373">Jums nav nesen ierakstītu WebRTC tekstu žurnālu.</translation> <translation id="7502658306369382406">IPv6 adrese</translation> <translation id="7503191893372251637">Netscape sertifikāta veids</translation> -<translation id="7503821294401948377">Nevarēja ielādēt pārlūka darbības ikonu “<ph name="ICON" />”.</translation> <translation id="7503985202154027481">Ieraksts par jūsu apmeklējumu šajā vietnē tiks reģistrēts jūsu drošības atslēgā.</translation> <translation id="7504293978434250212">Jūsu organizācija var pārbaudīt failus, kuru lielums nepārsniedz 50 MB. Mēģiniet augšupielādēt mazāku failu.</translation> <translation id="750509436279396091">Atvērt lejupielāžu mapi</translation> @@ -5643,7 +5638,6 @@ <translation id="8546930481464505581">Pielāgot skārienjoslu</translation> <translation id="8547013269961688403">Iespējot pilnekrāna lupu</translation> <translation id="85486688517848470">Turiet meklēšanas taustiņu, lai pārslēgtu augšējās rindas taustiņu funkcijas.</translation> -<translation id="8550165047974571882">Vietne <ph name="ORIGIN" /> varēs rediģēt failus mapē <ph name="FOLDERNAME" />, kamēr netiks aizvērtas visas vietnes <ph name="ORIGIN" /> cilnes.</translation> <translation id="8551388862522347954">Licences</translation> <translation id="8553342806078037065">Pārvaldīt citas personas</translation> <translation id="8554899698005018844">Nav valodas</translation>
diff --git a/chrome/app/resources/generated_resources_mk.xtb b/chrome/app/resources/generated_resources_mk.xtb index 3b46f19..7a127fb8 100644 --- a/chrome/app/resources/generated_resources_mk.xtb +++ b/chrome/app/resources/generated_resources_mk.xtb
@@ -1120,7 +1120,6 @@ <translation id="247949520305900375">Сподели го аудиото</translation> <translation id="2480868415629598489">Измена на податоците што ги копирате</translation> <translation id="2482878487686419369">Известувања</translation> -<translation id="2483610039979585156"><ph name="ORIGIN" /> ќе може да ја изменува <ph name="FILENAME" /> сѐ додека не ги затворите сите картички на <ph name="ORIGIN" /></translation> <translation id="2484959914739448251">За да ги избришете податоците од прелистувањето од сите ваши синхронизирани уреди и од сметката на Google, <ph name="BEGIN_LINK" />внесете ја лозинката<ph name="END_LINK" />.</translation> <translation id="2485005079599453134">Лозинката е зачувана на уредов</translation> <translation id="2485422356828889247">Деинсталирај</translation> @@ -1317,7 +1316,7 @@ <translation id="2725200716980197196">Обновена мрежна поврзливост</translation> <translation id="2727633948226935816">Не потсетувај ме повторно</translation> <translation id="2727712005121231835">Вистинска големина</translation> -<translation id="2729314457178420145">Избришете ги и податоците од прелистувањето (<ph name="URL" />), а тоа може да ве одјави од Google.com. <ph name="LEARN_MORE" /></translation> +<translation id="2729314457178420145">Избриши ги и податоците од прелистувањето (<ph name="URL" />). Тоа може да ве одјави од Google.com. <ph name="LEARN_MORE" /></translation> <translation id="2730029791981212295">Се прави бекап на апликациите и датотеките на Linux</translation> <translation id="273093730430620027">Страницата пристапува до фотоапаратот.</translation> <translation id="2731392572903530958">Повторно& отвори затворен прозорец</translation> @@ -1704,6 +1703,7 @@ <translation id="3264544094376351444">Фонт Sans-Serif</translation> <translation id="3264582393905923483">Контекст</translation> <translation id="3265459715026181080">Затвори го прозорецот</translation> +<translation id="3266274118485960573">Се извршува безбедносната проверка.</translation> <translation id="3267726687589094446">Продолжи со дозволување автоматски преземања на повеќе датотеки</translation> <translation id="3268451620468152448">Отворени картички</translation> <translation id="3269069891205016797">Вашите информации ќе бидат отстранети од уредот кога ќе се одјавите.</translation> @@ -1725,7 +1725,6 @@ <translation id="3282568296779691940">Најави се на Chrome</translation> <translation id="3285322247471302225">Нова &картичка</translation> <translation id="328571385944182268">Да се зачуваат лозинките?</translation> -<translation id="328785681103589998"><ph name="ORIGIN" /> ќе може да ја прикажува <ph name="FILENAME" /> додека не ги затворите сите картички на <ph name="ORIGIN" /></translation> <translation id="3288047731229977326">Наставки кои работат во режим на програмер може да го оштетат компјутерот. Ако не сте програмер, треба да ги оневозможите наставките кои работат во режим на програмер за да останете безбедни.</translation> <translation id="3289856944988573801">За да се проверат ажурирања, користете Етернет или Wi-Fi.</translation> <translation id="3290356915286466215">Незаштитена</translation> @@ -1810,6 +1809,7 @@ <translation id="3412265149091626468">Скокни до Избор</translation> <translation id="3413122095806433232">Издавачи на ЦА: <ph name="LOCATION" /></translation> <translation id="3414952576877147120">Големина:</translation> +<translation id="3416468988018290825">Секогаш прикажувај ги целосните URL-адреси</translation> <translation id="3420501302812554910">Потребно е ресетирање на внатрешен безбедносен клуч</translation> <translation id="3421387094817716717">Јавен клуч на елиптична крива</translation> <translation id="3422291238483866753">Прашувај кога некој сајт сака да создаде 3D-карта на опкружувањето или да ја следи позицијата на камерата (препорачано)</translation> @@ -2414,6 +2414,7 @@ <translation id="4144218403971135344">Добијте подобар квалитет на видео и продолжете го траењето на батеријата. Видеото ќе се пушта само на екранот овозможен за Cast.</translation> <translation id="4146026355784316281">Секогаш отворај со прегледувачот на системот</translation> <translation id="4146785383423576110">Ресетирање и чистење</translation> +<translation id="4147897805161313378">Фотографии на Google</translation> <translation id="4147911968024186208">Обидете се повторно. Доколку повторно ја гледате грешкава, контактирајте со претставникот за поддршка.</translation> <translation id="4150201353443180367">Екран</translation> <translation id="4152670763139331043">{NUM_TABS,plural, =1{1 картичка}one{# картичка}other{# картички}}</translation> @@ -2733,6 +2734,7 @@ <translation id="4633757335284074492">Направете бекап на Google Drive. Лесно враќајте ги податоците или менувајте ги уредите во секое време. Бекапов опфаќа податоци од апликациите. Бекапот се прикачува во Google и се шифрира со лозинката за сметката на Google на вашето дете.</translation> <translation id="4634771451598206121">Најави се повторно...</translation> <translation id="4635398712689569051"><ph name="PAGE_NAME" /> не е достапна за гостинските корисници.</translation> +<translation id="4636930964841734540">Информации</translation> <translation id="4637083375689622795">Повеќе дејства, <ph name="EMAIL" /></translation> <translation id="4638930039313743000">Овозможете отстранување грешка на ADB</translation> <translation id="4641539339823703554">Chrome не успеа да го постави системското време. Проверете го времето подолу и поправете го ако е потребно.</translation> @@ -2812,7 +2814,6 @@ <translation id="4750394297954878236">Предлози</translation> <translation id="475088594373173692">Прв корисник</translation> <translation id="4751476147751820511">Сензори за движење или светлина</translation> -<translation id="4756269098451810636">Слика споделена од <ph name="DEVICE_NAME" /></translation> <translation id="4756378406049221019">Сопри/Вчитај повторно</translation> <translation id="4756388243121344051">&Историја</translation> <translation id="4759238208242260848">Преземања</translation> @@ -3759,7 +3760,6 @@ <translation id="6040852767465482106">Анонимен идентитет</translation> <translation id="6041046205544295907"><ph name="BEGIN_PARAGRAPH1" />Услугата според локација на Google користи извори како што се Wi-Fi, мобилни мрежи и сензори за да се процени локацијата на уредот.<ph name="END_PARAGRAPH1" /> <ph name="BEGIN_PARAGRAPH2" />Може да ја исклучите „Локацијата“ со исклучување на главната поставка „Локација“ на уредот. Може да го исклучите и користењето Wi-Fi, мобилни мрежи и сензори за локација во поставките за локација.<ph name="END_PARAGRAPH2" /></translation> -<translation id="6041150002191391409"><ph name="ORIGIN" /> ќе може да прегледува датотеки во <ph name="FOLDERNAME" /> сѐ додека не ги затворите сите картички на <ph name="ORIGIN" /></translation> <translation id="6041155700700864984">Излези од цел екран</translation> <translation id="604124094241169006">Автоматски</translation> <translation id="6042308850641462728">Повеќе</translation> @@ -4155,7 +4155,6 @@ <translation id="6561726789132298588">enter</translation> <translation id="656293578423618167">Патеката на датотеката или нејзиното име се многу долги. Зачувајте ја со пократко име или на друга локација.</translation> <translation id="6563469144985748109">Управникот уште не го одобрил</translation> -<translation id="6567688344210276845">Не можеше да се вчита иконата „<ph name="ICON" />“ за дејство на страница.</translation> <translation id="6569934958368283244">Други луѓе</translation> <translation id="657402800789773160">&Пак вчитај страница</translation> <translation id="6577284282025554716">Преземањето е откажано: <ph name="FILE_NAME" /></translation> @@ -4167,6 +4166,7 @@ <translation id="6586451623538375658">Замени го примарното копче на глушецот</translation> <translation id="6586604979641883411">Потребен е слободен простор на дискот од најмалку <ph name="REQUIRED_SPACE" /> за надградба на Linux. Ослободете простор на уредот и обидете се повторно.</translation> <translation id="6588043302623806746">Користете безбеден DNS</translation> +<translation id="659005207229852190">Безбедносната проверка заврши.</translation> <translation id="6590458744723262880">Преименувај папка</translation> <translation id="6592267180249644460">Дневникот WebRTC е зачуван во <ph name="WEBRTC_LOG_CAPTURE_TIME" /></translation> <translation id="6592808042417736307">Вашиот отпечаток е снимен</translation> @@ -4220,7 +4220,6 @@ <translation id="6659594942844771486">Картичка</translation> <translation id="6664237456442406323">За жал, вашиот компјутер е конфигуриран со деформиран ИД на хардвер. Ова го спречува Chrome OS да ги ажурира најновите безбедносни поправки и вашиот компјутер <ph name="BEGIN_BOLD" />може да е ранлив на напади од злонамерен софтвер<ph name="END_BOLD" />.</translation> <translation id="6664774537677393800">Нешто тргна наопаку при отворањето на профилот. Одјавете се, па најавете се повторно.</translation> -<translation id="6667776121818773738">Слика споделена од друг уред</translation> <translation id="6673391612973410118"><ph name="PRINTER_MAKE_OR_MODEL" /> (USB)</translation> <translation id="667517062706956822">Сакате ли Google да ја преведе страницава од <ph name="SOURCE_LANGUAGE" /> на <ph name="TARGET_LANGUAGE" />?</translation> <translation id="6675665718701918026">Уредот за покажување е поврзан</translation> @@ -4841,7 +4840,6 @@ <translation id="7497981768003291373">Немате неодамна снимена текстуална евиденција на WebRTC.</translation> <translation id="7502658306369382406">IPv6-адреса</translation> <translation id="7503191893372251637">Тип сертификат за Netscape</translation> -<translation id="7503821294401948377">Не може да ја вчита иконата „<ph name="ICON" />“ за прелистување.</translation> <translation id="7503985202154027481">Запис за вашата посета на сајтов ќе се чува на вашиот безбедносен клуч.</translation> <translation id="7504293978434250212">Вашата организација може да скенира датотеки со големина од најмногу 50 MB. Обидете се да прикачите помала датотека.</translation> <translation id="750509436279396091">Отвори папка на преземања</translation> @@ -5428,6 +5426,7 @@ <translation id="8249672078237421304">Понуди да преведеш страници што не се на јазик што го знам</translation> <translation id="8251441930213048644">Освежи сега</translation> <translation id="8251578425305135684">Отстранета сликичка.</translation> +<translation id="825238165904109940">Секогаш прикажувај ги целосните URL-адреси</translation> <translation id="8252569384384439529">Се прикачува…</translation> <translation id="8253198102038551905">Кликнете на „+" за да ги добиете својствата на мрежата</translation> <translation id="8254954272268479918">Исклучи Linux (Бета)</translation> @@ -5646,7 +5645,6 @@ <translation id="8546930481464505581">Приспособи ја лентата на допир</translation> <translation id="8547013269961688403">Овозможи лупа за цел екран</translation> <translation id="85486688517848470">Држете го копчето „Пребарување“ за да го промените однесувањето на копчињата во најгорниот ред</translation> -<translation id="8550165047974571882"><ph name="ORIGIN" /> ќе може да изменува датотеки во <ph name="FOLDERNAME" /> сѐ додека не ги затворите сите картички на <ph name="ORIGIN" /></translation> <translation id="8551388862522347954">Лиценци</translation> <translation id="8553342806078037065">Управувај со другите луѓе</translation> <translation id="8554899698005018844">Нема јазик</translation> @@ -5860,7 +5858,7 @@ <translation id="8808686172382650546">Мачка</translation> <translation id="8808744862003883508">На страницава, може да ги видите сите екстензии инсталирани во Chrome.</translation> <translation id="8809147117840417135">Светла синозелена</translation> -<translation id="8812593354822910461">Избришете ги и податоците од прелистувањето (<ph name="URL" />), а тоа ќе ве одјави од <ph name="DOMAIN" />. <ph name="LEARN_MORE" /></translation> +<translation id="8812593354822910461">Избриши ги и податоците од прелистувањето (<ph name="URL" />). Тоа ќе ве одјави од <ph name="DOMAIN" />. <ph name="LEARN_MORE" /></translation> <translation id="8813698869395535039">Не може да се најави на <ph name="USERNAME" /></translation> <translation id="8813811964357448561">лист хартија</translation> <translation id="8813872945700551674">Повикај родител за да ја одобри „<ph name="EXTENSION_NAME" />“</translation> @@ -6150,7 +6148,7 @@ <translation id="9203398526606335860">&Профилирањето е овозможено</translation> <translation id="9203904171912129171">Изберете уред</translation> <translation id="9203962528777363226">Администраторот на уредов оневозможи додавање нови корисници</translation> -<translation id="9209689095351280025">Сајтовите не можат да користат колачиња што ве следат на интернет</translation> +<translation id="9209689095351280025">Сајтовите не можe да користат колачиња што ве следат на интернет</translation> <translation id="9211177926627870898">Потребно е ажурирање</translation> <translation id="9214520840402538427">Упс! Иницијализацијата на атрибутите за време на инсталација истече. Контактирајте со вашиот претставник за поддршка.</translation> <translation id="9214695392875603905">Тортичка</translation>
diff --git a/chrome/app/resources/generated_resources_ml.xtb b/chrome/app/resources/generated_resources_ml.xtb index efaf9c5..c342b57e 100644 --- a/chrome/app/resources/generated_resources_ml.xtb +++ b/chrome/app/resources/generated_resources_ml.xtb
@@ -718,7 +718,7 @@ <translation id="1944528062465413897">Bluetooth ജോടിയാക്കൽ കോഡ്:</translation> <translation id="1944921356641260203">അപ്ഡേറ്റ് കണ്ടെത്തി</translation> <translation id="1946577776959096882">അക്കൗണ്ടുകൾ കാണുക</translation> -<translation id="1951012854035635156">സഹായി</translation> +<translation id="1951012854035635156">Assistant</translation> <translation id="1954813140452229842">പങ്കിടൽ മൗണ്ട് ചെയ്യുന്നതിൽ പിശക്. ക്രെഡൻഷ്യലുകൾ പരിശോധിച്ച് വീണ്ടും ശ്രമിക്കുക.</translation> <translation id="1956050014111002555">ഫയലില് ഒന്നിലധികം സാക്ഷ്യപ്ത്രങ്ങള് അടങ്ങിയിരിക്കുന്നു, അതിലൊന്നും ഇറക്കുമതി ചെയ്തില്ല:</translation> <translation id="1956390763342388273">"<ph name="FOLDER_PATH" />" ഫോൾഡറിൽ നിന്നുള്ള എല്ലാ ഫയലുകളും ഇത് അപ്ലോഡ് ചെയ്യും. നിങ്ങൾ സൈറ്റിനെ വിശ്വസിക്കുന്നുവെങ്കിൽ മാത്രം ഇത് ചെയ്യുക.</translation> @@ -1117,7 +1117,6 @@ <translation id="247949520305900375">ഓഡിയോ പങ്കിടുക</translation> <translation id="2480868415629598489">നിങ്ങൾ പകർത്തി ഒട്ടിക്കുന്ന വിവരത്തിൽ മാറ്റം വരുത്തുക</translation> <translation id="2482878487686419369">വിജ്ഞാപനങ്ങള്</translation> -<translation id="2483610039979585156">നിങ്ങൾ എല്ലാ <ph name="ORIGIN" /> ടാബുകളും അടയ്ക്കുന്നത് വരെ <ph name="ORIGIN" />-ന് <ph name="FILENAME" /> എന്നത് എഡിറ്റ് ചെയ്യാനാവും</translation> <translation id="2484959914739448251">നിങ്ങളുടെ സമന്വയിപ്പിച്ച എല്ലാ ഉപകരണങ്ങളിൽ നിന്നും Google അക്കൗണ്ടിൽ നിന്നും ബ്രൗസിംഗ് ഡാറ്റ മായ്ക്കാൻ<ph name="BEGIN_LINK" />നിങ്ങളുടെ പാസ്ഫ്രെയ്സ് നൽകുക<ph name="END_LINK" />.</translation> <translation id="2485005079599453134">പാസ്വേഡ് ഈ ഉപകരണത്തിൽ സംരക്ഷിച്ചു</translation> <translation id="2485422356828889247">അണ്ഇന്സ്റ്റാള് ചെയ്യുക</translation> @@ -1722,7 +1721,6 @@ <translation id="3282568296779691940">Chrome-ലേക്ക് സൈൻ ഇൻ ചെയ്യുക</translation> <translation id="3285322247471302225">പുതിയ &ടാബ്</translation> <translation id="328571385944182268">നിങ്ങളുടെ പാസ്വേഡുകൾ സംരക്ഷിക്കണോ?</translation> -<translation id="328785681103589998">നിങ്ങൾ എല്ലാ <ph name="ORIGIN" /> ടാബുകളും അടയ്ക്കുന്നത് വരെ <ph name="ORIGIN" />-ന് <ph name="FILENAME" /> എന്നത് കാണാനാവും</translation> <translation id="3288047731229977326">ഡവലപ്പർ മോഡിൽ പ്രവർത്തിക്കുന്ന വിപുലീകരണങ്ങൾ നിങ്ങളുടെ കമ്പ്യൂട്ടർ കേടുവരുത്താനിടയുണ്ട്. നിങ്ങൾ ഒരു ഡവലപ്പർ അല്ലെങ്കിൽ, സുരക്ഷിതമായി തുടരാൻ ഡവലപ്പർ മോഡിൽ പ്രവർത്തിക്കുന്ന ഈ വിപുലീകരണങ്ങൾ പ്രവർത്തനരഹിതമാക്കണം.</translation> <translation id="3289856944988573801">അപ്ഡേറ്റുകൾക്കായി പരിശോധിക്കാൻ, ഇതർനെറ്റ് അല്ലെങ്കിൽ Wi-Fi ഉപയോഗിക്കുക.</translation> <translation id="3290356915286466215">സുരക്ഷിതമല്ലാത്തത്</translation> @@ -2410,6 +2408,7 @@ <translation id="4144218403971135344">മികച്ച ഗുണമേന്മയുള്ള വീഡിയോ നേടുകയും ബാറ്ററി ലൈഫ് കൂട്ടുകയും ചെയ്യുക. നിങ്ങളുടെ Cast ചെയ്യാൻ പ്രാപ്തിയുള്ള സ്ക്രീനിൽ മാത്രം വീഡിയോ പ്ലേ ചെയ്യും.</translation> <translation id="4146026355784316281">എപ്പോഴും സിസ്റ്റം വ്യൂവറിൽ തുറക്കുക</translation> <translation id="4146785383423576110">റീസെറ്റ് ചെയ്ത ശേഷം മായ്ക്കുക</translation> +<translation id="4147897805161313378">Google ഫോട്ടോസ്</translation> <translation id="4147911968024186208">വീണ്ടും ശ്രമിക്കുക. ഈ പിശക് വീണ്ടും കാണുകയാണെങ്കിൽ, നിങ്ങളുടെ പിന്തുണാ പ്രതിനിധിയെ ബന്ധപ്പെടുക.</translation> <translation id="4150201353443180367">ഡിസ്പ്ലേ</translation> <translation id="4152670763139331043">{NUM_TABS,plural, =1{ഒരു ടാബ്}other{# ടാബുകൾ}}</translation> @@ -2729,6 +2728,7 @@ <translation id="4633757335284074492">Google ഡ്രൈവിലേക്ക് ബാക്കപ്പെടുക്കുക. ഏത് സമയത്തും ഡാറ്റ എളുപ്പത്തിൽ പുനഃസ്ഥാപിക്കുകയോ ഉപകരണം മാറുകയോ ചെയ്യുക. ഈ ബാക്കപ്പിൽ ആപ്പ് ഡാറ്റയും ഉൾപ്പെടുന്നു. ബാക്കപ്പുകൾ Google-ലേക്ക് അപ്ലോഡ് ചെയ്ത്, നിങ്ങളുടെ കുട്ടിയുടെ Google അക്കൗണ്ട് പാസ്വേഡ് ഉപയോഗിച്ച് എൻക്രിപ്റ്റ് ചെയ്യും.</translation> <translation id="4634771451598206121">വീണ്ടും പ്രവേശിക്കുക...</translation> <translation id="4635398712689569051">അതിഥി ഉപയോക്താക്കൾക്ക്, <ph name="PAGE_NAME" /> ലഭ്യമല്ല.</translation> +<translation id="4636930964841734540">വിവരം</translation> <translation id="4637083375689622795">കൂടുതൽ പ്രവര്ത്തനങ്ങൾ, <ph name="EMAIL" /></translation> <translation id="4638930039313743000">ADB ഡീബഗ് ചെയ്യൽ പ്രവർത്തനക്ഷമമാക്കുക</translation> <translation id="4641539339823703554">സിസ്റ്റം സമയം സജ്ജീകരിക്കാൻ Chrome-ന് കഴിഞ്ഞില്ല. ചുവടെകൊടുത്തിരിക്കുന്ന സമയം പരിശോധിച്ച്, ആവശ്യമുണ്ടെങ്കിൽ തിരുത്തുക.</translation> @@ -2808,7 +2808,6 @@ <translation id="4750394297954878236">നിർദ്ദേശങ്ങൾ</translation> <translation id="475088594373173692">ആദ്യ ഉപയോക്താവ്</translation> <translation id="4751476147751820511">ചലന അല്ലെങ്കിൽ വെളിച്ച സെൻസറുകൾ</translation> -<translation id="4756269098451810636"><ph name="DEVICE_NAME" /> എന്ന ഉപകരണത്തിൽ നിന്ന് പങ്കിട്ട ചിത്രം</translation> <translation id="4756378406049221019">നിർത്തുക/റീലോഡ് ചെയ്യുക</translation> <translation id="4756388243121344051">&ചരിത്രം</translation> <translation id="4759238208242260848">ഡൌണ്ലോഡുകള്</translation> @@ -3756,7 +3755,6 @@ <translation id="6040852767465482106">അജ്ഞാത ഐഡന്റിറ്റി</translation> <translation id="6041046205544295907"><ph name="BEGIN_PARAGRAPH1" />നിങ്ങളുടെ ഉപകരണം ഏത് ലൊക്കേഷനിലാണെന്ന് അറിയാൻ, Google-ന്റെ ലൊക്കേഷൻ സേവനം വൈഫൈയും മൊബൈൽ നെറ്റ്വർക്കുകളും സെൻസറുകളും പോലുള്ള ഉറവിടങ്ങൾ ഉപയോഗിക്കുന്നു.<ph name="END_PARAGRAPH1" /> <ph name="BEGIN_PARAGRAPH2" />നിങ്ങളുടെ ഉപകരണത്തിലെ പ്രധാന ലൊക്കേഷൻ ക്രമീകരണം ഓഫാക്കി, നിങ്ങൾക്ക് ലൊക്കേഷൻ ഓഫാക്കാം. ലൊക്കേഷന് വേണ്ടിയുള്ള വൈഫൈ, മൊബൈൽ നെറ്റ്വർക്കുകൾ, സെൻസറുകൾ എന്നിവയുടെ ഉപയോഗവും ലൊക്കേഷൻ ക്രമീകരണത്തിൽ ഓഫാക്കാനാവും.<ph name="END_PARAGRAPH2" /></translation> -<translation id="6041150002191391409">നിങ്ങൾ എല്ലാ <ph name="ORIGIN" /> ടാബുകളും അടയ്ക്കുന്നത് വരെ <ph name="FOLDERNAME" />-ൽ <ph name="ORIGIN" /> എന്നതിന് ഫയലുകൾ കാണാൻ കഴിയും</translation> <translation id="6041155700700864984">മുഴുവൻസ്ക്രീനിൽ നിന്നും നിർഗമിക്കുക</translation> <translation id="604124094241169006">സ്വപ്രേരിതം</translation> <translation id="6042308850641462728">കൂടുതൽ</translation> @@ -4153,7 +4151,6 @@ <translation id="6561726789132298588">എന്റർ</translation> <translation id="656293578423618167">ഫയലിന്റെ പാതയോ പേരോ ദൈർഘ്യമേറിയതാണ്. ഹ്രസ്വമായ പേര് ഉപയോഗിച്ചോ മറ്റൊരു ലൊക്കേഷനിലേക്കോ സംരക്ഷിക്കുക.</translation> <translation id="6563469144985748109">നിങ്ങളുടെ മാനേജർ ഇതുവരെ അംഗീകാരം നൽകിയിട്ടില്ല</translation> -<translation id="6567688344210276845">പേജ് പ്രവർത്തനത്തിനായി ഐക്കൺ '<ph name="ICON" />' ലോഡ് ചെയ്യാനായില്ല.</translation> <translation id="6569934958368283244">മറ്റ് ആളുകൾ</translation> <translation id="657402800789773160">&ഈ പേജ് വീണ്ടും ലോഡ് ചെയ്യുക</translation> <translation id="6577284282025554716">ഡൗൺലോഡ് റദ്ദാക്കി: <ph name="FILE_NAME" /></translation> @@ -4218,7 +4215,6 @@ <translation id="6659594942844771486">ടാബ്</translation> <translation id="6664237456442406323">നിർഭാഗ്യവശാൽ, കേടായ ഒരു ഹാർഡ്വെയർ ID ഉപയോഗിച്ചാണ് നിങ്ങളുടെ കമ്പ്യൂട്ടർ കോൺഫിഗർ ചെയ്തിരിക്കുന്നത്. ഇത് ഏറ്റവും പുതിയ സുരക്ഷാ പരിഹാരങ്ങൾ അപ്ഡേറ്റ് ചെയ്യുന്നതിൽ നിന്നും Chrome OS-നെ തടയുന്നു, ഒപ്പം നിങ്ങളുടെ കമ്പ്യൂട്ടർ <ph name="BEGIN_BOLD" />ക്ഷുദ്രകരമായ ആക്രമണങ്ങളാൽ കേടാകാനുമിടയുണ്ട്<ph name="END_BOLD" />.</translation> <translation id="6664774537677393800">നിങ്ങളുടെ പ്രൊഫൈൽ തുറക്കുമ്പോൾ എന്തോ കുഴപ്പമുണ്ടായി. സൈൻ ഔട്ട് ചെയ്ത്, വീണ്ടും സൈൻ ഇൻ ചെയ്യുക.</translation> -<translation id="6667776121818773738">മറ്റൊരു ഉപകരണത്തിൽ നിന്ന് പങ്കിട്ട ചിത്രം</translation> <translation id="6673391612973410118"><ph name="PRINTER_MAKE_OR_MODEL" /> (USB)</translation> <translation id="667517062706956822">Google ഈ പേജ്, <ph name="SOURCE_LANGUAGE" /> ഭാഷയിൽ നിന്ന് <ph name="TARGET_LANGUAGE" /> ഭാഷയിലേക്ക് വിവർത്തനം ചെയ്യണോ?</translation> <translation id="6675665718701918026">പോയിന്റ് ചെയ്യുന്ന ഉപകരണം കണക്റ്റ് ചെയ്തു</translation> @@ -4839,7 +4835,6 @@ <translation id="7497981768003291373">നിങ്ങൾക്ക് അടുത്തിടെ രേഖപ്പെടുത്തിയ WebRTC ടെക്സ്റ്റ് ലോഗുകളൊന്നുമില്ല.</translation> <translation id="7502658306369382406">IPv6 വിലാസം</translation> <translation id="7503191893372251637">നെറ്റ്സ്കേപ്പ് സര്ട്ടിഫിക്കറ്റ് തരം</translation> -<translation id="7503821294401948377">ബ്രൗസർ പ്രവർത്തനത്തിനായി '<ph name="ICON" />' ഐക്കൺ ലോഡ് ചെയ്യാനായില്ല.</translation> <translation id="7503985202154027481">നിങ്ങൾ ഈ സൈറ്റ് സന്ദർശിച്ചതിൻ്റെ റെക്കോർഡ് നിങ്ങളുടെ സുരക്ഷാ കീയിൽ സൂക്ഷിക്കും.</translation> <translation id="7504293978434250212">നിങ്ങളുടെ സ്ഥാപനത്തിന് 50 MB വരെയുള്ള ഫയലുകൾ സ്കാൻ ചെയ്യാൻ കഴിയും. ചെറിയ ഫയൽ അപ്ലോഡ് ചെയ്യാൻ ശ്രമിക്കുക.</translation> <translation id="750509436279396091">ഡൗൺലോഡുകൾ ഫോൾഡർ തുറക്കുക</translation> @@ -5642,7 +5637,6 @@ <translation id="8546930481464505581">'ടച്ച് ബാർ' ഇഷ്ടാനുസൃതമാക്കുക</translation> <translation id="8547013269961688403">പൂർണ്ണസ്ക്രീൻ മാഗ്നിഫയർ പ്രവർത്തനക്ഷമമാക്കുക</translation> <translation id="85486688517848470">മുകൾ-വരിയിലെ കീകളുടെ പ്രവർത്തനരീതി മാറ്റാൻ 'തിരയൽ' കീ അമർത്തിപ്പിടിക്കുക</translation> -<translation id="8550165047974571882">നിങ്ങൾ എല്ലാ <ph name="ORIGIN" /> ടാബുകളും അടയ്ക്കുന്നത് വരെ <ph name="ORIGIN" />-ന് <ph name="FOLDERNAME" /> എന്നതിലെ ഫയലുകൾ എഡിറ്റ് ചെയ്യാനാവും</translation> <translation id="8551388862522347954">ലൈസന്സുകള്</translation> <translation id="8553342806078037065">മറ്റുള്ളവരെ മാനേജുചെയ്യുക</translation> <translation id="8554899698005018844">ഭാഷയില്ല</translation>
diff --git a/chrome/app/resources/generated_resources_mn.xtb b/chrome/app/resources/generated_resources_mn.xtb index f4c2e0a..7b41e3a 100644 --- a/chrome/app/resources/generated_resources_mn.xtb +++ b/chrome/app/resources/generated_resources_mn.xtb
@@ -1115,7 +1115,6 @@ <translation id="247949520305900375">Аудио хуваалцах</translation> <translation id="2480868415629598489">Хуулж, буулгах өгөгдлөө өөрчлөх</translation> <translation id="2482878487686419369">Мэдэгдэл</translation> -<translation id="2483610039979585156">Таныг бүх <ph name="ORIGIN" /> табыг хаах хүртэл <ph name="ORIGIN" /> нь <ph name="FILENAME" /> файлыг засах боломжтой байна</translation> <translation id="2484959914739448251">Хөтчийн өгөгдлийг синк хийсэн бүх төхөөрөмж болон Google Бүртгэлээсээ устгахын тулд <ph name="BEGIN_LINK" />нэвтрэх хэллэгээ оруулна уу<ph name="END_LINK" />.</translation> <translation id="2485005079599453134">Энэ төхөөрөмж дээр хадгалсан нууц үг</translation> <translation id="2485422356828889247">Устгах</translation> @@ -1720,7 +1719,6 @@ <translation id="3282568296779691940">Chrome руу нэвтрэх</translation> <translation id="3285322247471302225">Шинэ &Цонх</translation> <translation id="328571385944182268">Таны нууц үгийг хадгалах уу?</translation> -<translation id="328785681103589998">Таныг бүх <ph name="ORIGIN" /> табыг хаах хүртэл <ph name="ORIGIN" /> нь <ph name="FILENAME" /> файлыг харах боломжтой байна</translation> <translation id="3288047731229977326">Хөгжүүлэгч горим дээр ачаалж буй өргөтгөл нь таны компьютерийг гэмтээж болзошгүй байна. Хэрэв та хөгжүүлэгч биш бол аюулгүй байдлаа хангах үүднээс хөгжүүлэгч горим дээр ачаалж буй өргөтгөлийг идэвхгүй болгоно уу.</translation> <translation id="3289856944988573801">Шинэчлэлтийг шалгахын тулд Ethernet эсвэл Wi-Fi-аа ашиглана уу.</translation> <translation id="3290356915286466215">Хамгаалалтгүй</translation> @@ -2408,6 +2406,7 @@ <translation id="4144218403971135344">Илүү чанартай видео авж батарейн ажиллах хугацаагаа хэмнээрэй. Видео нь зөвхөн таны дамжуулах боломжтой дэлгэцэд тоглоно.</translation> <translation id="4146026355784316281">Системийн харагчтэй үргэлж хамт нээж байх</translation> <translation id="4146785383423576110">Шинэчлэх, цэвэрлэх</translation> +<translation id="4147897805161313378">Google Зураг</translation> <translation id="4147911968024186208">Дахин оролдоно уу. Та энэ алдааг дахин харвал дэмжлэгийн төлөөлөгчтэйгээ холбогдоно уу.</translation> <translation id="4150201353443180367">Дэлгэц</translation> <translation id="4152670763139331043">{NUM_TABS,plural, =1{1 цонх}other{# цонх}}</translation> @@ -2727,6 +2726,7 @@ <translation id="4633757335284074492">Google Драйвд хуулбарлана уу. Өгөгдлийг амархан сэргээх эсвэл хүссэн үедээ төхөөрөмж хооронд сэлгэнэ үү. Энэ нөөцлөлтөд аппын өгөгдөл багтана. Нөөцлөлтийг Google-д байршуулдаг бөгөөд таны хүүхдийн Google Бүртгэлийн нууц үгийг ашиглан шифрлэдэг.</translation> <translation id="4634771451598206121">Дахин нэвтэрнэ үү...</translation> <translation id="4635398712689569051"><ph name="PAGE_NAME" /> Зочин хэрэглэгч ашиглах боломжгүй байна.</translation> +<translation id="4636930964841734540">Мэдээлэл</translation> <translation id="4637083375689622795">Нэмэлт үйлдлүүд, <ph name="EMAIL" /></translation> <translation id="4638930039313743000">ADB алдаа засахыг идэвхжүүлэх</translation> <translation id="4641539339823703554">Chrome-оос системийн цагийг тохируулах боломжгүй байсан. Доор байгаа цагийг шалгаад шаардлагатай бол зөв болгоно уу.</translation> @@ -2806,7 +2806,6 @@ <translation id="4750394297954878236">Санал зөвлөмж</translation> <translation id="475088594373173692">Анхны хэрэглэгч</translation> <translation id="4751476147751820511">Хөдөлгөөн эсвэл гэрэл мэдрэгч</translation> -<translation id="4756269098451810636"><ph name="DEVICE_NAME" />-с хуваалцсан зураг</translation> <translation id="4756378406049221019">Зогсоох/Дахин ачааллах</translation> <translation id="4756388243121344051">& Түүх</translation> <translation id="4759238208242260848">Татацууд:</translation> @@ -3753,7 +3752,6 @@ <translation id="6040852767465482106">Нэрээ нууцалсан байдал</translation> <translation id="6041046205544295907"><ph name="BEGIN_PARAGRAPH1" />Google-н байршлын үйлчилгээ нь таны төхөөрөмжийн байршлыг тооцоолоход туслах зорилгоор Wi‑Fi, мобайл сүлжээ болон мэдрэгч зэрэг эх сурвалжийг ашигладаг.<ph name="END_PARAGRAPH1" /> <ph name="BEGIN_PARAGRAPH2" />Та төхөөрөмжийнхөө Байршлын үндсэн тохиргоог унтрааж, Байршлыг унтраах боломжтой. Түүнчлэн та байршлын Wi‑Fi, мобайл сүлжээ болон мэдрэгчийн ашиглалтыг байршлын тохиргоонд унтрааж болно.<ph name="END_PARAGRAPH2" /></translation> -<translation id="6041150002191391409">Таныг бүх <ph name="ORIGIN" /> табыг хаах хүртэл <ph name="ORIGIN" /> нь <ph name="FOLDERNAME" /> фолдерын файлуудыг харах боломжтой байна</translation> <translation id="6041155700700864984">Бүтэн дэлгэцээс гарах</translation> <translation id="604124094241169006">Автомат</translation> <translation id="6042308850641462728">Илүү их</translation> @@ -4149,7 +4147,6 @@ <translation id="6561726789132298588">Оруул</translation> <translation id="656293578423618167">Файлын зам эсвэл нэр нь хэтэрхий урт байна. Илүү богино нэрээр эсвэл өөр газарт хадгална уу.</translation> <translation id="6563469144985748109">Таны менежер үүнийг одоогоор зөвшөөрөөгүй байна</translation> -<translation id="6567688344210276845">Хуудасны арга хэмжээг авах '<ph name="ICON" />' тэмдэгтийг ачаалж чадсангүй.</translation> <translation id="6569934958368283244">Бусад хүмүүс</translation> <translation id="657402800789773160">Энэ хуудсыг дахин ачаалах</translation> <translation id="6577284282025554716">Таталтыг цуцалсан: <ph name="FILE_NAME" /></translation> @@ -4214,7 +4211,6 @@ <translation id="6659594942844771486">Цонх</translation> <translation id="6664237456442406323">Харамсалтай нь таны компьютер хорт вирусаар халдварласан техник хангамжийн ID-аар тохируулагдсан байна. Энэ нь Chrome OS-ийг хамгийн сүүлийн үеийн аюулгүй байдлын засваруудаас шинэчлэлт хийх боломжгүй болгодог бөгөөд таны компьютер <ph name="BEGIN_BOLD" /> хорт халдлагад өртөх магадлалтай байна<ph name="END_BOLD" /> .</translation> <translation id="6664774537677393800">Таны профайлыг нээхэд асуудал гарлаа. Бүртгэлээсээ гараад, дахин нэвтэрнэ үү.</translation> -<translation id="6667776121818773738">Бусад төхөөрөмжөөс хуваалцсан зураг</translation> <translation id="6673391612973410118"><ph name="PRINTER_MAKE_OR_MODEL" /> (USB)</translation> <translation id="667517062706956822">Та Google-г энэ хуудсыг<ph name="SOURCE_LANGUAGE" />-с <ph name="TARGET_LANGUAGE" /> руу орчуулахыг хүсэж байна уу?</translation> <translation id="6675665718701918026">Сонгосон төхөөрөмжийг холбосон</translation> @@ -4835,7 +4831,6 @@ <translation id="7497981768003291373">Танд саяхан авсан WebRTC текст лог алга.</translation> <translation id="7502658306369382406">IPv6 хаяг</translation> <translation id="7503191893372251637">Нэтскейпийн гэрчилгээний төрөл</translation> -<translation id="7503821294401948377">Вэб хөтөчийг ажиллуулах '<ph name="ICON" />'-ыг ачаалж чадсангүй.</translation> <translation id="7503985202154027481">Таны энэ сайтад зочилсон бүртгэл аюулгүй байдлын түлхүүрт хадгалагдана.</translation> <translation id="7504293978434250212">Танай байгууллага 50 МБ хүртэл хэмжээтэй файлыг скан хийх боломжтой. Илүү жижиг файл байршуулж үзнэ үү.</translation> <translation id="750509436279396091">Татаж авсан файлуудын хавтсыг нээ</translation> @@ -5634,7 +5629,6 @@ <translation id="8546930481464505581">Хүрэх мөрийг өөрчлөх</translation> <translation id="8547013269961688403">Бүтэн дэлгэцийн томруулагчийг идэвхжүүлэх</translation> <translation id="85486688517848470">Дээд мөрний түлхүүрийн функцийг сэлгэхийн тулд Хайлтын түлхүүрийг дарна уу</translation> -<translation id="8550165047974571882">Таныг бүх <ph name="ORIGIN" /> табыг хаах хүртэл <ph name="ORIGIN" /> нь <ph name="FOLDERNAME" /> фолдерын файлуудыг засах боломжтой байна</translation> <translation id="8551388862522347954">Лиценз</translation> <translation id="8553342806078037065">Бусад хүмүүсийг удирдах</translation> <translation id="8554899698005018844">Хэл байхгүй</translation>
diff --git a/chrome/app/resources/generated_resources_mr.xtb b/chrome/app/resources/generated_resources_mr.xtb index 72ef01e..e30a6d1 100644 --- a/chrome/app/resources/generated_resources_mr.xtb +++ b/chrome/app/resources/generated_resources_mr.xtb
@@ -720,7 +720,7 @@ <translation id="1944528062465413897">ब्लूटूथ पेअरींग कोड:</translation> <translation id="1944921356641260203">अपडेट आढळले</translation> <translation id="1946577776959096882">खाती पाहा</translation> -<translation id="1951012854035635156">साहाय्यक</translation> +<translation id="1951012854035635156">Assistant</translation> <translation id="1954813140452229842">शेअर माउंट करताना एरर आली. कृपया तुमची क्रेडेंशियल तपासा आणि पुन्हा प्रयत्न करा.</translation> <translation id="1956050014111002555">फाइलमध्ये एकाधिक प्रमाणपत्रे आहेत ज्यापैकी एकही इंपोर्ट झालेले नाही: </translation> <translation id="1956390763342388273">हे "<ph name="FOLDER_PATH" />" वरील सर्व फायली अपलोड करेल. जर तुमचा साइटवर विश्वास असेल तरच हे करा.</translation> @@ -1119,7 +1119,6 @@ <translation id="247949520305900375">ऑडिओ शेअर करा</translation> <translation id="2480868415629598489">तुम्ही कॉपी आणि पेस्ट करता तो डेटा सुधारित करा</translation> <translation id="2482878487686419369">सूचना</translation> -<translation id="2483610039979585156">तुम्ही सर्व <ph name="ORIGIN" /> टॅब बंद करेपर्यंत <ph name="ORIGIN" /> ला <ph name="FILENAME" /> संपादित करता येईल</translation> <translation id="2484959914739448251">तुमच्या सिंक केलेल्या सर्व डिव्हाइसमधून आणि तुमच्या Google खात्यामधून ब्राउझ केलेला डेटा साफ करण्यासाठी, <ph name="BEGIN_LINK" />तुमचा पासफ्रेझ एंटर करा<ph name="END_LINK" />.</translation> <translation id="2485005079599453134">या डिव्हाइसवर पासवर्ड सेव्ह केला आहे</translation> <translation id="2485422356828889247">अनइंस्टॉल करा</translation> @@ -1724,7 +1723,6 @@ <translation id="3282568296779691940">Chrome वर साइन इन करा</translation> <translation id="3285322247471302225">नवीन &टॅब</translation> <translation id="328571385944182268">तुमचे पासवर्ड सेव्ह करायचे आहेत का?</translation> -<translation id="328785681103589998">तुम्ही सर्व <ph name="ORIGIN" /> टॅब बंद करेपर्यंत <ph name="ORIGIN" /> ला <ph name="FILENAME" /> पाहता येईल</translation> <translation id="3288047731229977326">डेव्हलपर मोडमध्ये चालणारे विस्तार तुमच्या कॉंप्युटरास हानी पोहचवू शकतात. तुम्ही डेव्हलपर नसल्यास, सुरक्षित राहाण्यासाठी डेव्हलपर मोडमध्ये चालणारे हे विस्तार तुम्ही अक्षम करावे.</translation> <translation id="3289856944988573801">अपडेट तपासण्यासाठी, कृपया इथरनेट किंवा वाय-फाय वापरा.</translation> <translation id="3290356915286466215">असुरक्षित</translation> @@ -2411,6 +2409,7 @@ <translation id="4144218403971135344">आणखी चांगल्या दर्जाचे व्हिडिओ मिळवा आणि बॅटरी लाइफ वाचवा. व्हिडिओ फक्त तुमच्या Cast सुरू केलेल्या स्क्रीनवर प्ले होईल.</translation> <translation id="4146026355784316281">नेहमी सिस्टम दर्शकासह उघडा</translation> <translation id="4146785383423576110">रीसेट करा आणि साफ करा</translation> +<translation id="4147897805161313378">Google फोटो</translation> <translation id="4147911968024186208">रीबूट करा. तुम्हाला ही एरर पुन्हा दिसल्यास कृपया तुमच्या साहाय्य प्रतिनिधीशी संपर्क साधा.</translation> <translation id="4150201353443180367">डिस्प्ले करा</translation> <translation id="4152670763139331043">{NUM_TABS,plural, =1{1 टॅब}other{# टॅब}}</translation> @@ -2730,6 +2729,7 @@ <translation id="4633757335284074492">Google Drive वर बॅकअप घ्या. डेटा कधीही सहजपणे रिस्टोअर करा किंवा डिव्हाइस स्विच करा. या बॅकअपमध्ये अॅप डेटा समाविष्ट आहे. बॅकअप Google वर अपलोड केले जातात आणि तुमच्या मुलाचा Google खाते पासवर्ड वापरून एंक्रिप्ट केले जातात.</translation> <translation id="4634771451598206121">पुन्हा साइन इन करा...</translation> <translation id="4635398712689569051"><ph name="PAGE_NAME" /> हे अतिथी वापरकर्त्यांसाठी उपलब्ध नाही.</translation> +<translation id="4636930964841734540">माहिती</translation> <translation id="4637083375689622795"><ph name="EMAIL" /> मधील आणखी क्रिया</translation> <translation id="4638930039313743000">ADB डीबगिंग सुरू करा</translation> <translation id="4641539339823703554">प्रणाली वेळ सेट करण्यात Chrome अक्षम होते. कृपया खालील वेळ तपासा आणि आवश्यक असल्यास ती दुरुस्त करा.</translation> @@ -2809,7 +2809,6 @@ <translation id="4750394297954878236">सूचना</translation> <translation id="475088594373173692">प्रथम वापरकर्ता</translation> <translation id="4751476147751820511">मोशन किंवा प्रकाश सेन्सर</translation> -<translation id="4756269098451810636"><ph name="DEVICE_NAME" /> वरून शेअर केलेली इमेज</translation> <translation id="4756378406049221019">थांबा/पुन्हा लोड करा</translation> <translation id="4756388243121344051">&इतिहास</translation> <translation id="4759238208242260848">डाउनलोड</translation> @@ -3757,7 +3756,6 @@ <translation id="6040852767465482106">निनावी ओळख</translation> <translation id="6041046205544295907"><ph name="BEGIN_PARAGRAPH1" />डिव्हाइसच्या स्थानाचा अंदाज लावण्यात मदत करण्यासाठी, Google ची स्थान सेवा तुमच्या वाय-फाय, मोबाइल नेटवर्क आणि सेंसरसारख्या स्रोतांचा वापर करते.<ph name="END_PARAGRAPH1" /> <ph name="BEGIN_PARAGRAPH2" />तुम्ही या डिव्हाइसवरील मुख्य स्थान सेटिंग बंद करून स्थान बंद करू शकता. तुम्ही स्थान सेटिंग्जमध्ये स्थानासाठी वाय-फाय, मोबाइल नेटवर्क आणि सेंसरचा वापर देखील बंद करू शकता.<ph name="END_PARAGRAPH2" /></translation> -<translation id="6041150002191391409">तुम्ही सर्व <ph name="ORIGIN" /> टॅब बंद करेपर्यंत <ph name="ORIGIN" /> ला <ph name="FOLDERNAME" /> मध्ये फाइल पाहता येतील</translation> <translation id="6041155700700864984">क्षेत्रेमधून बाहेर पडा</translation> <translation id="604124094241169006">स्वयंचलित</translation> <translation id="6042308850641462728">अधिक</translation> @@ -4153,7 +4151,6 @@ <translation id="6561726789132298588">प्रविष्ट करा</translation> <translation id="656293578423618167">फाइल पथ किंवा नाव खूप मोठे आहे. कृपया एका छोट्या नावाने किंवा दुसर्या स्थानावर सेव्ह करा.</translation> <translation id="6563469144985748109">आपल्या व्यवस्थापकाने अद्याप ती मंजूर केली नाही</translation> -<translation id="6567688344210276845">पेज क्रियेसाठी '<ph name="ICON" />' आयकन लोड करता आला नाही.</translation> <translation id="6569934958368283244">इतर लोक</translation> <translation id="657402800789773160">हे पृष्ठ &रीलोड करा</translation> <translation id="6577284282025554716">डाउनलोड रद्द केले: <ph name="FILE_NAME" /></translation> @@ -4218,7 +4215,6 @@ <translation id="6659594942844771486">टॅब</translation> <translation id="6664237456442406323">दुर्दैवाने, तुमचा कॉंप्युटर एका विकृत हार्डवेअर आयडी सह कॉन्फिगर केला आहे. हे नवीनतम सुरक्षितता निराकरणे अपडेट करण्यापासून Chrome OS ला प्रतिबंध करते आणि तुमच्या कॉंप्युटरवर <ph name="BEGIN_BOLD" />दुर्भावनापूर्ण आक्रमणांमुळे सहज परिणाम होऊ शकतो<ph name="END_BOLD" />.</translation> <translation id="6664774537677393800">तुमचे प्रोफाईल उघडताना काहीतरी चूक झाली. कृपया साइन आउट करा नंतर पुन्हा साइन इन करा.</translation> -<translation id="6667776121818773738">इतर डिव्हाइसवरून शेअर केलेली इमेज</translation> <translation id="6673391612973410118"><ph name="PRINTER_MAKE_OR_MODEL" /> (USB)</translation> <translation id="667517062706956822">Google ने हे पृष्ठ <ph name="SOURCE_LANGUAGE" /> मधून <ph name="TARGET_LANGUAGE" /> मध्ये भाषांतरित करावे असे तुम्ही इच्छिता?</translation> <translation id="6675665718701918026">निर्देशित करणारे डिव्हाइस कनेक्ट केले</translation> @@ -4839,7 +4835,6 @@ <translation id="7497981768003291373">तुमच्याकडे नुकतेच कॅप्चर केलेले कोणतेही WebRTC मजकूर लॉग नाहीत.</translation> <translation id="7502658306369382406">IPv6 पत्ता</translation> <translation id="7503191893372251637">Netscape सर्टिफिकेट प्रकार</translation> -<translation id="7503821294401948377">ब्राउझर क्रियेसाठी '<ph name="ICON" />' आयकन लोड करू शकलो नाही.</translation> <translation id="7503985202154027481">तुम्ही या साइटला भेट दिल्याचे रेकॉर्ड तुमच्या सिक्युरिटी कीवर ठेवले जातील.</translation> <translation id="7504293978434250212">तुमची संस्था ५०MB पर्यंत फाइल स्कॅन करू शकते. आणखी लहान फाइल अपलोड करून पहा.</translation> <translation id="750509436279396091">डाउनलोड फोल्डर उघडा</translation> @@ -5640,7 +5635,6 @@ <translation id="8546930481464505581">स्पर्श बार कस्टमाइझ करा</translation> <translation id="8547013269961688403">पूर्णस्क्रीन भिंग सुरू करा</translation> <translation id="85486688517848470">शीर्ष-पंक्ती की चे वर्तन बदलण्यासाठी शोध की दाबून ठेवा</translation> -<translation id="8550165047974571882">तुम्ही सर्व <ph name="ORIGIN" /> टॅब बंद करेपर्यंत <ph name="ORIGIN" /> ला <ph name="FOLDERNAME" /> मधल्या फाइल संपादित करता येतील</translation> <translation id="8551388862522347954">परवाने</translation> <translation id="8553342806078037065">इतर लोक व्यवस्थापित करा</translation> <translation id="8554899698005018844">कोणतीही भाषा नाही</translation>
diff --git a/chrome/app/resources/generated_resources_ms.xtb b/chrome/app/resources/generated_resources_ms.xtb index 627e590..fe0136b 100644 --- a/chrome/app/resources/generated_resources_ms.xtb +++ b/chrome/app/resources/generated_resources_ms.xtb
@@ -1120,7 +1120,6 @@ <translation id="247949520305900375">Kongsi audio</translation> <translation id="2480868415629598489">Ubah suai data yang anda salin dan tampal</translation> <translation id="2482878487686419369">Pemberitahuan</translation> -<translation id="2483610039979585156"><ph name="ORIGIN" /> akan dapat mengedit <ph name="FILENAME" /> sehingga anda menutup semua tab <ph name="ORIGIN" /></translation> <translation id="2484959914739448251">Untuk mengosongkan data semakan imbas daripada semua peranti tersegerak dan Akaun Google anda, <ph name="BEGIN_LINK" />masukkan frasa laluan anda<ph name="END_LINK" />.</translation> <translation id="2485005079599453134">Kata laluan yang disimpan pada peranti ini</translation> <translation id="2485422356828889247">Nyahpasang</translation> @@ -1725,7 +1724,6 @@ <translation id="3282568296779691940">Log masuk ke Chrome</translation> <translation id="3285322247471302225">&Tab Baharu</translation> <translation id="328571385944182268">Simpan kata laluan anda?</translation> -<translation id="328785681103589998"><ph name="ORIGIN" /> akan dapat melihat <ph name="FILENAME" /> sehinggalah anda menutup semua tab <ph name="ORIGIN" /></translation> <translation id="3288047731229977326">Sambungan yang dijalankan dalam mod pembangun boleh membahayakan komputer anda. Jika anda bukan pembangun, anda harus melumpuhkan sambungan yang dijalankan dalam mod pembangun ini supaya kekal selamat.</translation> <translation id="3289856944988573801">Untuk menyemak kemas kini, sila gunakan Ethernet atau Wi-Fi.</translation> <translation id="3290356915286466215">Tidak selamat</translation> @@ -2414,6 +2412,7 @@ <translation id="4144218403971135344">Dapatkan video berkualiti lebih baik dan jimatkan hayat bateri. Video akan dimainkan hanya pada skrin yang berdaya Cast.</translation> <translation id="4146026355784316281">Sentiasa Buka dengan Alat Lihat Sistem</translation> <translation id="4146785383423576110">Tetapkan semula dan padam bersih</translation> +<translation id="4147897805161313378">Google Photos</translation> <translation id="4147911968024186208">Sila cuba semula. Jika ralat ini dipaparkan sekali lagi, sila hubungi wakil sokongan anda.</translation> <translation id="4150201353443180367">Paparan</translation> <translation id="4152670763139331043">{NUM_TABS,plural, =1{1 tab}other{# tab}}</translation> @@ -2733,6 +2732,7 @@ <translation id="4633757335284074492">Sandarkan pada Google Drive. Pulihkan data atau tukar peranti dengan mudah pada bila-bila masa. Sandaran ini merangkumi data apl. Sandaran dimuat naik pada Google dan disulitkan dengan menggunakan kata laluan Akaun Google anak anda.</translation> <translation id="4634771451598206121">Log masuk semula...</translation> <translation id="4635398712689569051"><ph name="PAGE_NAME" /> tidak tersedia untuk pengguna Tetamu.</translation> +<translation id="4636930964841734540">Maklumat</translation> <translation id="4637083375689622795">Lagi tindakan, <ph name="EMAIL" /></translation> <translation id="4638930039313743000">Dayakan penyahpepijatan ADB</translation> <translation id="4641539339823703554">Chrome tidak dapat menetapkan masa sistem. Sila semak masa di bawah dan betulkan jika perlu.</translation> @@ -2812,7 +2812,6 @@ <translation id="4750394297954878236">Cadangan</translation> <translation id="475088594373173692">Pengguna pertama</translation> <translation id="4751476147751820511">Penderia gerakan atau cahaya</translation> -<translation id="4756269098451810636">Imej dikongsi daripada <ph name="DEVICE_NAME" /></translation> <translation id="4756378406049221019">Berhenti/Muat Semula</translation> <translation id="4756388243121344051">&Sejarah</translation> <translation id="4759238208242260848">Muat turun</translation> @@ -3135,7 +3134,7 @@ <translation id="5213891612754844763">Tunjukkan tetapan proksi</translation> <translation id="5215502535566372932">Pilih negara</translation> <translation id="521582610500777512">Foto telah dibuang</translation> -<translation id="5222403284441421673">Muat turun yang tidak selamat disekat</translation> +<translation id="5222403284441421673">Sekatan untuk muat turun tidak selamat</translation> <translation id="5222676887888702881">Log keluar</translation> <translation id="52232769093306234">Gagal membungkus.</translation> <translation id="5225324770654022472">Paparkan pintasan apl</translation> @@ -3759,7 +3758,6 @@ <translation id="6040852767465482106">Identiti Tanpa Nama</translation> <translation id="6041046205544295907"><ph name="BEGIN_PARAGRAPH1" />Perkhidmatan lokasi Google menggunakan sumber seperti Wi-Fi, rangkaian mudah alih dan penderia untuk menganggarkan lokasi peranti anda.<ph name="END_PARAGRAPH1" /> <ph name="BEGIN_PARAGRAPH2" />Anda boleh mematikan Lokasi dengan mematikan tetapan Lokasi utama pada peranti anda. Anda juga boleh mematikan penggunaan Wi-Fi, rangkaian mudah alih dan penderia untuk lokasi dalam tetapan lokasi.<ph name="END_PARAGRAPH2" /></translation> -<translation id="6041150002191391409"><ph name="ORIGIN" /> akan dapat melihat fail dalam <ph name="FOLDERNAME" /> sehingga anda menutup semua tab <ph name="ORIGIN" /></translation> <translation id="6041155700700864984">Keluar Daripada Skrin Penuh</translation> <translation id="604124094241169006">Automatik</translation> <translation id="6042308850641462728">Lagi</translation> @@ -4155,7 +4153,6 @@ <translation id="6561726789132298588">enter</translation> <translation id="656293578423618167">Laluan atau nama fail terlalu panjang. Sila simpan dengan nama yang lebih pendek atau ke lokasi lain.</translation> <translation id="6563469144985748109">Pengurus anda belum meluluskannya</translation> -<translation id="6567688344210276845">Tidak dapat memuatkan ikon '<ph name="ICON" />' untuk tindakan halaman.</translation> <translation id="6569934958368283244">Orang lain</translation> <translation id="657402800789773160">&Muatkan Semula Halaman Ini</translation> <translation id="6577284282025554716">Muat turun dibatalkan: <ph name="FILE_NAME" /></translation> @@ -4220,7 +4217,6 @@ <translation id="6659594942844771486">Tab</translation> <translation id="6664237456442406323">Malangnya, komputer anda dikonfigurasi dengan ID perkakasan tidak sempurna. Hal ini menghalang OS Chrome daripada mengemas kini kepada pembetulan keselamatan terbaharu dan komputer anda <ph name="BEGIN_BOLD" />mungkin terdedah kepada serangan berniat jahat<ph name="END_BOLD" />.</translation> <translation id="6664774537677393800">Kesilapan telah berlaku semasa membuka profil anda. Sila log keluar dan log masuk sekali lagi.</translation> -<translation id="6667776121818773738">Imej yang dikongsi daripada peranti lain</translation> <translation id="6673391612973410118"><ph name="PRINTER_MAKE_OR_MODEL" /> (USB)</translation> <translation id="667517062706956822">Adakah anda mahu Google menterjemahkan halaman ini daripada <ph name="SOURCE_LANGUAGE" /> kepada <ph name="TARGET_LANGUAGE" />?</translation> <translation id="6675665718701918026">Peranti penuding disambung</translation> @@ -4841,7 +4837,6 @@ <translation id="7497981768003291373">Anda tiada log teks WebRTC yang dirakam baru-baru ini.</translation> <translation id="7502658306369382406">Alamat IPv6</translation> <translation id="7503191893372251637">Jenis Sijil Netscape</translation> -<translation id="7503821294401948377">Tidak dapat memuatkan ikon '<ph name="ICON" />' untuk tindakan penyemak imbas.</translation> <translation id="7503985202154027481">Rekod lawatan anda ke tapak ini akan disimpan pada kunci keselamatan anda.</translation> <translation id="7504293978434250212">Organisasi anda boleh mengimbas fail sehingga 50 MB sahaja. Cuba muat naik fail yang lebih kecil.</translation> <translation id="750509436279396091">Buka folder muat turun</translation> @@ -5645,7 +5640,6 @@ <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="8550165047974571882"><ph name="ORIGIN" /> akan dapat mengedit fail dalam <ph name="FOLDERNAME" /> sehingga anda menutup semua tab <ph name="ORIGIN" /></translation> <translation id="8551388862522347954">Lesen</translation> <translation id="8553342806078037065">Urus orang lain</translation> <translation id="8554899698005018844">Tiada bahasa</translation>
diff --git a/chrome/app/resources/generated_resources_my.xtb b/chrome/app/resources/generated_resources_my.xtb index 2506b67..1e9ce14c 100644 --- a/chrome/app/resources/generated_resources_my.xtb +++ b/chrome/app/resources/generated_resources_my.xtb
@@ -1121,7 +1121,6 @@ <translation id="247949520305900375">အသံမျှဝေပါ</translation> <translation id="2480868415629598489">သင်မိတ္တူကူးပြီး ထည့်ထားသော အချက်အလက်တို့ကို ပြင်ဆင်ပါ</translation> <translation id="2482878487686419369">အကြောင်းကြားချက်များ</translation> -<translation id="2483610039979585156">သင် <ph name="ORIGIN" /> တဘ်အားလုံးကို မပိတ်မချင်း <ph name="ORIGIN" /> သည် <ph name="FILENAME" /> ကို တည်းဖြတ်နိုင်ပါမည်</translation> <translation id="2484959914739448251">ဖွင့်ကြည့်ထားသည့်မှတ်တမ်းဒေတာများကို သင်စင့်ခ်လုပ်ထားသော စက်အားလုံးနှင့် သင့် Google အကောင့်မှ ရှင်းထုတ်ရန် <ph name="BEGIN_LINK" />သင်၏စကားဝှက်စာ ထည့်ပါ<ph name="END_LINK" />။</translation> <translation id="2485005079599453134">စကားဝှက်ကို ဤစက်တွင် သိမ်းလိုက်သည်</translation> <translation id="2485422356828889247">ဖြုတ်ရန်</translation> @@ -1726,7 +1725,6 @@ <translation id="3282568296779691940">Chrome သို့ လက်မှတ်ထိုး ဝင်</translation> <translation id="3285322247471302225">တဲဘ် & အသစ်</translation> <translation id="328571385944182268">သင့်စကားဝှက်များ သိမ်းမလား။</translation> -<translation id="328785681103589998">သင် <ph name="ORIGIN" /> တဘ်အားလုံးကို မပိတ်မချင်း <ph name="ORIGIN" /> သည် <ph name="FILENAME" /> ကို ကြည့်နိုင်ပါမည်</translation> <translation id="3288047731229977326">ဖွံ့ဖြိုးစေသူမုဒ်တွင် ဖွင့်ထားသည့် အိတ်စတန်းရှင်းသည် သင့်ကွန်ပျူတာကို ထိခိုက်စေနိုင်သည်။ အကယ်၍ သင်သည် ဖွံ့ဖြိုးစေသူမဟုတ်လျှင်၊ လုံခြုံမှုရှိစေရန် ဖွံ့ဖြိုးစေသူမုဒ်၌ ဖွင့်ထားသည့် ဤအိတ်စတန်းရှင်းများကို ပိတ်ထားသင့်သည်။</translation> <translation id="3289856944988573801">မွမ်းမံမှုများကို စစ်ကြည့်ရန်၊ ကျေးဇူးပြုပြီး အီသာနက် သို့မဟုတ် ကြိုးမဲ့ကို အသုံးပြုပါ။</translation> <translation id="3290356915286466215">လုံခြုံမှုမရှိပါ</translation> @@ -2414,6 +2412,7 @@ <translation id="4144218403971135344">အရည်အသွေးပိုကောင်းသော ဗီဒီယိုကို ရယူပြီး ဘက်ထရီသက်တမ်း ချွေတာပါ။ ဗီဒီယိုကို ကာ့စ်ဖွင့်ထားသော မျက်နှာပြင်တွင်သာ ဖွင့်ပါမည်။</translation> <translation id="4146026355784316281">အမြဲတမ်း စနစ် ကြည့်ရှုသူဖြင့် ဖွင့်ပါ</translation> <translation id="4146785383423576110">ပြင်ဆင်သတ်မှတ်ပြီး ရှင်းလင်းခြင်း</translation> +<translation id="4147897805161313378">Google Photos</translation> <translation id="4147911968024186208">ထပ်စမ်းကြည့်ပါ။ ဤအမှားအယွင်းကို ထပ်မံတွေ့ရှိရလျှင် သင်၏ ကူညီရေးရာကိုယ်စားလှယ်ထံ ဆက်သွယ်ပါ။</translation> <translation id="4150201353443180367">မျက်နှာပြင်ပြသမှု</translation> <translation id="4152670763139331043">{NUM_TABS,plural, =1{တဘ် ၁}other{# တဘ်များ}}</translation> @@ -2733,6 +2732,7 @@ <translation id="4633757335284074492">Google Drive သို့ မိတ္တူကူးရန်။ ဒေတာများကို အလွယ်တကူ ပြန်ယူပါ သို့မဟုတ် စက်ပစ္စည်းကို အချိန်မရွေး ပြောင်းပါ။ ဤမိတ္တူတွင် အက်ပ်ဒေတာများ ပါဝင်သည်။ မိတ္တူများကို Google သို့ အပ်လုဒ်လုပ်ပြီး သင့်ကလေး၏ Google အကောင့်စကားဝှက်သုံး၍ အသွင်ဝှက်ထားပါသည်။</translation> <translation id="4634771451598206121">ထပ်မံ ဝင်ရောက်ပါ...</translation> <translation id="4635398712689569051"><ph name="PAGE_NAME" /> သည် 'ဧည့်သည်' အသုံးပြုသူများအတွက် မရနိုင်ပါ။</translation> +<translation id="4636930964841734540">အချက်အလက်</translation> <translation id="4637083375689622795">နောက်ထပ် လုပ်ဆောင်ချက်များ၊ <ph name="EMAIL" /></translation> <translation id="4638930039313743000">ADB အမှားရှာပြင်ကိရိယာကို ဖွင့်ပါ</translation> <translation id="4641539339823703554">Chrome သည် စနစ် အချိန်ကို မသတ်မှတ်နိုင်ခဲ့ပါ။ ကျေးဇူးပြုပြီး အောက်ပါ အချိန်ကို စစ်ကြည့်လျက် လိုအပ်လျှင် ပြင်ပေးပါ။</translation> @@ -2812,7 +2812,6 @@ <translation id="4750394297954878236">အကြံပေးချက်များ</translation> <translation id="475088594373173692">ပထမ အသုံးပြုသူ</translation> <translation id="4751476147751820511">လှုပ်ရှားမှု သို့မဟုတ် အလင်းအာရုံခံကိရိယာများ</translation> -<translation id="4756269098451810636"><ph name="DEVICE_NAME" /> မှ မျှဝေထားသည့်ပုံ</translation> <translation id="4756378406049221019">ရပ်ဆိုင်းရန်/ပြန်လည်စတင်ရန်</translation> <translation id="4756388243121344051">မှတ်တမ်း</translation> <translation id="4759238208242260848">ဒေါင်းလုဒ်များ</translation> @@ -3758,7 +3757,6 @@ <translation id="6040852767465482106">အမည်မသိ အထောက်အထား:</translation> <translation id="6041046205544295907"><ph name="BEGIN_PARAGRAPH1" />Google ၏ တည်နေရာဝန်ဆောင်မှုသည် ဤစက်၏ တည်နေရာကို ခန့်မှန်းရန် Wi‑Fi၊ မိုဘိုင်း ကွန်ရက်နှင့် အာရုံခံစနစ်များကဲ့သို့ ရင်းမြစ်များကို အသုံးပြုသည်။<ph name="END_PARAGRAPH1" /> <ph name="BEGIN_PARAGRAPH2" />ဤစက်ပေါ်ရှိ ပင်မ 'တည်နေရာ' ဆက်တင်ကို ပိတ်ခြင်းဖြင့် 'တည်နေရာ' ကို ပိတ်နိုင်သည်။တည်နေရာဆက်တင်များတွင် Wi-Fi၊ မိုဘိုင်းကွန်ရက်နှင့် တည်နေရာအတွက် အာရုံခံစနစ်များ အသုံးပြုခြင်းကိုလည်း ပိတ်နိုင်သည်။<ph name="END_PARAGRAPH2" /></translation> -<translation id="6041150002191391409">သင် <ph name="ORIGIN" /> တဘ်အားလုံးကို မပိတ်မချင်း <ph name="ORIGIN" /> သည် <ph name="FOLDERNAME" /> ရှိ ဖိုင်များကို ကြည့်နိုင်ပါမည်</translation> <translation id="6041155700700864984">မျက်နှာပြင်အပြည့်မုဒ်မှ ထွက်ရန်</translation> <translation id="604124094241169006">အလိုအလျောက်</translation> <translation id="6042308850641462728">နောက်ထပ်</translation> @@ -4153,7 +4151,6 @@ <translation id="6561726789132298588">ထည့်သွင်းရန်</translation> <translation id="656293578423618167">ဖိုင်လမ်းကြောင်း သို့မဟုတ် အမည်သည် ရှည်လွန်းနေပါသည်။ ကျေးဇူးပြုပြီး အမည်တို သို့မဟုတ် အခြား တစ်နေရာတွင် တွင် သိမ်းဆည်းပေးပါ။</translation> <translation id="6563469144985748109">သင့်စီမံခန့်ခွဲသူသည် ၎င်းကို အတည်မပြုသေးပါ</translation> -<translation id="6567688344210276845">စာမျက်နှာ လုပ်ဆောင်ချက် အတွက် အိုင်ကွန် '<ph name="ICON" />'ကို တင်မပေးနိုင်ပါ။</translation> <translation id="6569934958368283244">အခြားလူများ</translation> <translation id="657402800789773160">&ဒီစာမျက်နှာကို ပြန်တင်ရန်</translation> <translation id="6577284282025554716">ဒေါင်းလုဒ်လုပ်ခြင်းကို ပယ်ဖျက်ထားသည်− <ph name="FILE_NAME" /></translation> @@ -4218,7 +4215,6 @@ <translation id="6659594942844771486">တဲဘ်</translation> <translation id="6664237456442406323">သင်၏ ကွန်ပျူတာကို အန္တရာယ်ရှိ ဟာ့ဒ်ဝဲ ID ဖြင့် စီစဉ်ဖွဲ့စည်းထားသည်မှာ ကံဆိုးပါသည်။ ၎င်းက Chrome OS ကို နောက်ဆုံး လုံခြုံရေး ပြင်ဆင်ချက်များဖြင့် မွမ်းမံမှုကို ဟန့်တားနေရာ သင်၏ ကွန်ပျူတာမှာ <ph name="BEGIN_BOLD" />အန္တရာယ် တိုက်ခိုက်မှုများ ခံရမှာ စိုးရိမ်ရပါသည်<ph name="END_BOLD" />။</translation> <translation id="6664774537677393800">သင့်ပရိုဖိုင်ကို ဖွင့်နေစဉ်တွင် တစ်စုံတစ်ခု မှားယွင်းသွားပါသည်။ ထွက်ပြီး ပြန်လည်၍ လက်မှတ်ထိုးဝင်ကြည့်ပါ။</translation> -<translation id="6667776121818773738">အခြားစက်မှနေ၍ မျှဝေထားသည့်ပုံ</translation> <translation id="6673391612973410118"><ph name="PRINTER_MAKE_OR_MODEL" /> (USB)</translation> <translation id="667517062706956822">ဤစာမျက်နှာအား <ph name="SOURCE_LANGUAGE" /> မှ <ph name="TARGET_LANGUAGE" /> သို့ Google ကို ဘာသာပြန်စေလိုပါသလား။</translation> <translation id="6675665718701918026">ညွှန်းပြ ကိရိယာကို ချိတ်ဆက်ထားသည်</translation> @@ -4839,7 +4835,6 @@ <translation id="7497981768003291373">သင့်ထံတွင် မကြာသေးခင်က မှတ်သားထားသည့် WebRTC စာသားမှတ်တမ်းများ မရှိပါ။</translation> <translation id="7502658306369382406">IPv6 လိပ်စာ</translation> <translation id="7503191893372251637">Netscape လက်မှတ် အမျိုးအစား</translation> -<translation id="7503821294401948377">ဘရောင်ဇာ လုပ်ကိုင်မှု အတွက် အိုင်ကွန် '<ph name="ICON" />'ကို မတင်နိုင်ခဲ့ပါ။</translation> <translation id="7503985202154027481">သင်၏ လုံခြုံရေးကီးတွင် ဤဝဘ်ဆိုက်ကို ဖွင့်ကြည့်သည့် မှတ်တမ်းတစ်ခု ရှိနေပါမည်။</translation> <translation id="7504293978434250212">သင့်အဖွဲ့အစည်းက ဖိုင်များကို ၅၀ MB အထိ စကင်ဖတ်နိုင်သည်။ ပိုသေးသောဖိုင် အပ်လုဒ်လုပ်ပါ။</translation> <translation id="750509436279396091">ဒေါင်းလုဒ်များ၏ ဖိုလ်ဒါကို ဖွင့်ပေးရန်</translation> @@ -5641,7 +5636,6 @@ <translation id="8546930481464505581">ထိတွေ့ဘားကို စိတ်ကြိုက်ပြင်ဆင်ရန်</translation> <translation id="8547013269961688403">မျက်နှာပြင်အပြည့် မှန်ဘီလူးကို ဖွင့်ရန်</translation> <translation id="85486688517848470">အပေါ်ဆုံးအတန်း ခလုတ်များ၏ အမူအကျင့်ကို ပြောင်းရန် 'ရှာဖွေရန်' ခလုတ်ကို ဖိထားပါ</translation> -<translation id="8550165047974571882">သင် <ph name="ORIGIN" /> တဘ်အားလုံးကို မပိတ်မချင်း <ph name="ORIGIN" /> သည် <ph name="FOLDERNAME" /> ရှိ ဖိုင်များကို တည်းဖြတ်နိုင်ပါမည်</translation> <translation id="8551388862522347954">လိုင်စင်များ</translation> <translation id="8553342806078037065">အခြားလူများကို စီမံခန့်ခွဲရန်</translation> <translation id="8554899698005018844">ဘာသာစကား ရွေးမထားပါ</translation>
diff --git a/chrome/app/resources/generated_resources_ne.xtb b/chrome/app/resources/generated_resources_ne.xtb index 007ed99..3c95bf8 100644 --- a/chrome/app/resources/generated_resources_ne.xtb +++ b/chrome/app/resources/generated_resources_ne.xtb
@@ -1116,7 +1116,6 @@ <translation id="247949520305900375">अडियो साझेदारी गर्नुहोस्</translation> <translation id="2480868415629598489">तपाईंले प्रतिलिपि गरी टाँस्नुभएको डेटालाई परिमार्जन गर्नुहोस्</translation> <translation id="2482878487686419369">सूचनाहरू</translation> -<translation id="2483610039979585156">तपाईंले सबै <ph name="ORIGIN" /> ट्याबहरू बन्द नगरुन्जेल <ph name="ORIGIN" /> ले <ph name="FILENAME" /> सम्पादन गर्न सक्ने छ</translation> <translation id="2484959914739448251">तपाईंका सिंक गरिएका सबै यन्त्र र Google खाताबाट ब्राउजिङ डेटा खाली गर्न <ph name="BEGIN_LINK" />आफ्नो पासफ्रेज प्रविष्टि गर्नुहोस्<ph name="END_LINK" />।</translation> <translation id="2485005079599453134">यो यन्त्रमा पासवर्ड सुरक्षित गरियो</translation> <translation id="2485422356828889247">विस्थापन गर्नुहोस्</translation> @@ -1722,7 +1721,6 @@ <translation id="3282568296779691940">Chrome मा साइन इन गर्नुहोस्</translation> <translation id="3285322247471302225">नयाँ &ट्याब</translation> <translation id="328571385944182268">तपाईंका पासवर्डहरू सुरक्षित गर्ने हो?</translation> -<translation id="328785681103589998">तपाईंले सबै <ph name="ORIGIN" /> ट्याबहरू बन्द नगरुन्जेल <ph name="ORIGIN" /> ले <ph name="FILENAME" /> हेर्न सक्ने छ</translation> <translation id="3288047731229977326">विकासकर्ता मोडमा चालू विस्तारहरूले तपाइँको कम्प्युटरलाई हानि पुर्याउन सक्छ। यदि तपाइँ विकासकर्ता हनुहुन्न भने, सुरक्षित रहनको लागि तपाइँले विकासकर्ता मोडमा चालू यी विस्तारहरूलाई असक्षम गर्नुपर्छ।</translation> <translation id="3289856944988573801">अद्यावधिकहरू हेर्नको लागि, कृपया इथर्नेट वा Wi-Fi प्रयोग गर्नुहोस्।</translation> <translation id="3290356915286466215">असुरक्षित</translation> @@ -2410,6 +2408,7 @@ <translation id="4144218403971135344">अझ राम्रो गुणस्तरको भिडियो प्राप्त गर्नुहोस् र ब्याट्रीको आयु बचत गर्नुहोस्। उक्त भिडियो तपाईंको Cast सक्षम पारिएको स्क्रिनमा प्ले हुने छ।</translation> <translation id="4146026355784316281">प्रणाली दर्शकमार्फत सधैं खोल्नुहोस्</translation> <translation id="4146785383423576110">रिसेट गर्नुहोस् र हानिकारक सफ्टवेयर हटाउनुहोस्</translation> +<translation id="4147897805161313378">Google फोटो</translation> <translation id="4147911968024186208">कृपया पुनः प्रयास गर्नुहोस्। यो त्रुटि फेरि देख्नुभयो भने कृपया सहायता प्रतिनिधिलाई सम्पर्क गर्नुहोला।</translation> <translation id="4150201353443180367">प्रदर्शन</translation> <translation id="4152670763139331043">{NUM_TABS,plural, =1{१ ट्याब}other{# ट्याबहरू}}</translation> @@ -2729,6 +2728,7 @@ <translation id="4633757335284074492">Google ड्राइभमा ब्याकअप गर्नुहोस् जुनसुकै बेला सजिलैसँग डेटा पुनर्स्थापना गर्नुहोस् वा यन्त्र बदल्नुहोस्। यो ब्याकअपमा अनुप्रयोगको डेटा समावेश हुन्छ। ब्याकअपहरू Google मा अपलोड गरी तपाईंका बच्चाको Google खाताको पासवर्ड प्रयोग गरेर इन्क्रिप्ट गरिन्छन्।</translation> <translation id="4634771451598206121">फेरि साइन इन गर्नुहोस्...</translation> <translation id="4635398712689569051">अतिथि प्रयोगकर्ताहरूका लागि <ph name="PAGE_NAME" /> उपलब्ध छैन।</translation> +<translation id="4636930964841734540">जानकारी</translation> <translation id="4637083375689622795">थप कारबाहीहरू, <ph name="EMAIL" /></translation> <translation id="4638930039313743000">ADB डिबग प्रक्रिया सक्षम पार्नुहोस्</translation> <translation id="4641539339823703554">प्रणाली समय सेट गर्न Chrome असफल भयो। कृपया तल समय हेर्नुहोस् र आवश्यक भएको खण्डमा ठिक बनाउनुहोस्।</translation> @@ -2808,7 +2808,6 @@ <translation id="4750394297954878236">सुझावहरू</translation> <translation id="475088594373173692">पहिलो प्रयोगकर्ता</translation> <translation id="4751476147751820511">गति वा प्रकाशसम्बन्धी सेन्सरहरू</translation> -<translation id="4756269098451810636"><ph name="DEVICE_NAME" /> बाट आदान प्रदान गरिएको छवि</translation> <translation id="4756378406049221019">रोक्नुहोस्/पुनः लोड गर्नुहोस्</translation> <translation id="4756388243121344051">&इतिहास</translation> <translation id="4759238208242260848">डाउनलोडहरू</translation> @@ -3754,7 +3753,6 @@ <translation id="6040852767465482106">अज्ञात पहिचान</translation> <translation id="6041046205544295907"><ph name="BEGIN_PARAGRAPH1" />तपाईंको यन्त्रको स्थानबारे अनुमान गर्न Google को स्थानसम्बन्धी सेवाले Wi-Fi, मोबाइल नेटवर्क र सेन्सर जस्ता स्रोतहरूको प्रयोग गर्छ।<ph name="END_PARAGRAPH1" /> <ph name="BEGIN_PARAGRAPH2" />तपाईं आफ्नो यन्त्रमा रहेको स्थानसम्बन्धी मुख्य सेटिङलाई निष्क्रिय पारेर स्थानसम्बन्धी सेवा निष्क्रिय पार्न सक्नुहुन्छ। तपाईं स्थानसम्बन्धी सेटिङहरूमा गई स्थान पत्ता लगाउने प्रयोजनका लागि Wi-Fi, मोबाइल नेटवर्क र सेन्सरहरूको प्रयोग निष्क्रिय पार्न पनि सक्नुहुन्छ।<ph name="END_PARAGRAPH2" /></translation> -<translation id="6041150002191391409">तपाईंले सबै <ph name="ORIGIN" /> ट्याबहरू बन्द नगरुन्जेल <ph name="ORIGIN" /> ले <ph name="FOLDERNAME" /> मा रहेका फाइलहरू देख्न सक्ने छ</translation> <translation id="6041155700700864984">पूर्ण स्क्रिनबाट बाहिरिनुहोस्</translation> <translation id="604124094241169006">स्वचालित</translation> <translation id="6042308850641462728">थप</translation> @@ -4150,7 +4148,6 @@ <translation id="6561726789132298588">प्रविष्टि गर्नुहोस्</translation> <translation id="656293578423618167">फाइलको बाटो वा नाम निकै लामो छ । कृपया छोटो नाम दिएर वा अर्को स्थानमा बचत गर्नुहोस् ।</translation> <translation id="6563469144985748109">तपाईंको प्रबन्धकले अझै पनि यसलाई अनुमोदन गर्नुभएको छैन</translation> -<translation id="6567688344210276845">पृष्ठ कार्यको लागि प्रतिमा '<ph name="ICON" />' लाई लोड गर्न सकिएन।</translation> <translation id="6569934958368283244">अन्य मान्छेहरू</translation> <translation id="657402800789773160">यो पेजलाई &पुन: लोड गर्नुहोस्</translation> <translation id="6577284282025554716">डाउनलोड रद्द गरियो: <ph name="FILE_NAME" /></translation> @@ -4215,7 +4212,6 @@ <translation id="6659594942844771486">ट्याब</translation> <translation id="6664237456442406323">दुर्भाग्यवश, तपाइँको कम्प्युटर एक विकृत हार्डवेयर आइडीद्वारा विन्यास गरिएको छ। यसले Chrome OS लाई सबैभन्दा नयाँ सुरक्षा निर्धारणहरू अद्यावधिक गर्नबाट रोक्छ र तपाइँको कम्प्युटर <ph name="BEGIN_BOLD" />मालिसियस आक्रमणहरू देखि भेद्य हुन सक्छ<ph name="END_BOLD" />।</translation> <translation id="6664774537677393800">तपाईँको प्रोफाइल खोल्दा केही गडबड भयो। कृपया साइन आउट गर्नुहोस्, त्यसपछि फेरि साइन इन गर्नुहोस्।</translation> -<translation id="6667776121818773738">अन्य यन्त्रबाट आदान प्रदान गरिएको छवि</translation> <translation id="6673391612973410118"><ph name="PRINTER_MAKE_OR_MODEL" /> (USB)</translation> <translation id="667517062706956822">तपाईं Google ले यस पृष्ठलाई <ph name="SOURCE_LANGUAGE" /> बाट <ph name="TARGET_LANGUAGE" /> मा अनुवाद गरोस् भन्ने चाहनुहुन्छ?</translation> <translation id="6675665718701918026">निर्देशित गरिएको यन्त्र जडान गरियो</translation> @@ -4836,7 +4832,6 @@ <translation id="7497981768003291373">तपाईंसँग हालै क्याप्चर गरिएको WebRTC पाठको कुनै पनि लग छैन।</translation> <translation id="7502658306369382406">IPv6 ठेगाना</translation> <translation id="7503191893372251637">नेटस्केप प्रमाणपत्र प्रकार</translation> -<translation id="7503821294401948377">ब्राउजर कार्यको लागि <ph name="ICON" /> प्रतिमा लोड गर्न सकेन।</translation> <translation id="7503985202154027481">तपाईंको सुरक्षा साँचोमा तपाईं यो साइटमा जानुभएको कुराको रेकर्ड राखिने छ।</translation> <translation id="7504293978434250212">तपाईंको सङ्गठनले बढीमा ५० एम.बि. सम्मका फाइलहरू स्क्यान गर्न सक्छ। अलि सानो फाइल अपलोड गरी हेर्नुहोस्।</translation> <translation id="750509436279396091">डाउनलोडहरू फोल्डर खोल्नुहोस्</translation> @@ -5638,7 +5633,6 @@ <translation id="8546930481464505581">टच बारलाई आफू अनुकूल पार्नुहोस्</translation> <translation id="8547013269961688403">पूर्ण स्क्रिन म्याग्निफायर सक्षम पार्नुहोस्</translation> <translation id="85486688517848470">शीर्ष-पङ्क्तिका कुञ्जीहरूको व्यवहार बदल्न खोज कुञ्जीलाई थिचिराख्नुहोस्</translation> -<translation id="8550165047974571882">तपाईंले सबै <ph name="ORIGIN" /> ट्याबहरू बन्द नगरुन्जेल <ph name="ORIGIN" /> ले <ph name="FOLDERNAME" /> मा रहेका फाइलहरू सम्पादन गर्न सक्ने छ</translation> <translation id="8551388862522347954">लाइसेन्सहरू</translation> <translation id="8553342806078037065">अन्य व्यक्तिहरूलाई व्यवस्थापन गर्नुहोस्</translation> <translation id="8554899698005018844">कुनै पनि भाषा छैन</translation>
diff --git a/chrome/app/resources/generated_resources_nl.xtb b/chrome/app/resources/generated_resources_nl.xtb index cdbcb2a..57db44a 100644 --- a/chrome/app/resources/generated_resources_nl.xtb +++ b/chrome/app/resources/generated_resources_nl.xtb
@@ -1120,7 +1120,6 @@ <translation id="247949520305900375">Audio delen</translation> <translation id="2480868415629598489">Gegevens aanpassen die je kopieert en plakt</translation> <translation id="2482878487686419369">Meldingen</translation> -<translation id="2483610039979585156"><ph name="ORIGIN" /> kan <ph name="FILENAME" /> bewerken totdat je alle tabbladen van <ph name="ORIGIN" /> sluit</translation> <translation id="2484959914739448251">Als je browsergegevens wilt wissen van al je gesynchroniseerde apparaten en je Google-account, <ph name="BEGIN_LINK" />geef je je wachtwoordzin op<ph name="END_LINK" />.</translation> <translation id="2485005079599453134">Wachtwoord opgeslagen op dit apparaat</translation> <translation id="2485422356828889247">Installatie ongedaan maken</translation> @@ -1704,6 +1703,7 @@ <translation id="3264544094376351444">Sans-Serif-lettertype</translation> <translation id="3264582393905923483">Context</translation> <translation id="3265459715026181080">Sluit venster</translation> +<translation id="3266274118485960573">Veiligheidscheck wordt uitgevoerd.</translation> <translation id="3267726687589094446">Automatisch downloaden van meerdere bestanden blijven toestaan</translation> <translation id="3268451620468152448">Geopende tabbladen</translation> <translation id="3269069891205016797">Je informatie wordt verwijderd van het apparaat wanneer je uitlogt.</translation> @@ -1725,7 +1725,6 @@ <translation id="3282568296779691940">Inloggen bij Chrome</translation> <translation id="3285322247471302225">Nieuw &tabblad</translation> <translation id="328571385944182268">Je wachtwoorden opslaan?</translation> -<translation id="328785681103589998"><ph name="ORIGIN" /> kan <ph name="FILENAME" /> bekijken totdat je alle tabbladen van <ph name="ORIGIN" /> sluit</translation> <translation id="3288047731229977326">Extensies die in de ontwikkelaarmodus worden uitgevoerd, kunnen je computer beschadigen. Als je geen ontwikkelaar bent, moet je deze extensies uitschakelen, die in de ontwikkelaarsmodus worden uitgevoerd, om beveiligd te blijven.</translation> <translation id="3289856944988573801">Gebruik ethernet of wifi om op updates te controleren.</translation> <translation id="3290356915286466215">Niet beveiligd</translation> @@ -1810,6 +1809,7 @@ <translation id="3412265149091626468">Ga naar selectie</translation> <translation id="3413122095806433232">CA-uitgevers: <ph name="LOCATION" /></translation> <translation id="3414952576877147120">Grootte:</translation> +<translation id="3416468988018290825">Altijd volledige URL's weergeven</translation> <translation id="3420501302812554910">Interne beveiligingssleutel moet worden gereset</translation> <translation id="3421387094817716717">Openbare sleutel voor elliptische kromme</translation> <translation id="3422291238483866753">Vragen als een site een 3D-kaart van je omgeving wil maken of de camerapositie wil volgen (aanbevolen)</translation> @@ -2414,6 +2414,7 @@ <translation id="4144218403971135344">Ontvang video van betere kwaliteit en spaar de batterij. De video wordt alleen afgespeeld op je scherm dat werkt met Cast.</translation> <translation id="4146026355784316281">Altijd openen met systeemviewer</translation> <translation id="4146785383423576110">Resetten en opruimen</translation> +<translation id="4147897805161313378">Google Foto's</translation> <translation id="4147911968024186208">Probeer het opnieuw. Als deze fout opnieuw wordt weergegeven, neem je contact op met een medewerker van de ondersteuning.</translation> <translation id="4150201353443180367">Weergave</translation> <translation id="4152670763139331043">{NUM_TABS,plural, =1{1 tabblad}other{# tabbladen}}</translation> @@ -2733,6 +2734,7 @@ <translation id="4633757335284074492">Maak een back-up op Google Drive. Zet gegevens eenvoudig terug of schakel wanneer je wilt tussen apparaten. Deze back-up omvat app-gegevens. Back-ups worden geüpload naar Google en versleuteld met het wachtwoord van het Google-account van je kind.</translation> <translation id="4634771451598206121">Opnieuw inloggen...</translation> <translation id="4635398712689569051"><ph name="PAGE_NAME" /> is niet beschikbaar voor gastgebruikers.</translation> +<translation id="4636930964841734540">Info</translation> <translation id="4637083375689622795">Meer acties, <ph name="EMAIL" /></translation> <translation id="4638930039313743000">ADB-foutopsporing inschakelen</translation> <translation id="4641539339823703554">Chrome kan de systeemtijd niet instellen. Controleer hieronder de tijd en corrigeer deze indien nodig.</translation> @@ -2812,7 +2814,6 @@ <translation id="4750394297954878236">Suggesties</translation> <translation id="475088594373173692">Eerste gebruiker</translation> <translation id="4751476147751820511">Bewegings- of lichtsensoren</translation> -<translation id="4756269098451810636">Afbeelding gedeeld vanaf <ph name="DEVICE_NAME" /></translation> <translation id="4756378406049221019">Stoppen/opnieuw laden</translation> <translation id="4756388243121344051">Gesc&hiedenis</translation> <translation id="4759238208242260848">Downloads</translation> @@ -3759,7 +3760,6 @@ <translation id="6040852767465482106">Anonieme identiteit</translation> <translation id="6041046205544295907"><ph name="BEGIN_PARAGRAPH1" />De locatieservice van Google gebruikt bronnen zoals wifi, mobiele netwerken en sensoren om de locatie van je apparaat te schatten.<ph name="END_PARAGRAPH1" /> <ph name="BEGIN_PARAGRAPH2" />Je kunt Locatie uitschakelen door de hoofdinstelling Locatie op je apparaat uit te schakelen. Je kunt het gebruik van wifi, mobiele netwerken en sensoren voor locatie ook uitschakelen via de locatie-instellingen.<ph name="END_PARAGRAPH2" /></translation> -<translation id="6041150002191391409"><ph name="ORIGIN" /> kan bestanden bekijken in <ph name="FOLDERNAME" /> totdat je alle tabbladen van <ph name="ORIGIN" /> sluit</translation> <translation id="6041155700700864984">Volledig scherm sluiten</translation> <translation id="604124094241169006">Automatisch</translation> <translation id="6042308850641462728">Meer</translation> @@ -4155,7 +4155,6 @@ <translation id="6561726789132298588">enter</translation> <translation id="656293578423618167">Het bestandspad of de bestandsnaam is te lang. Sla op met een kortere naam of op een andere locatie.</translation> <translation id="6563469144985748109">Je beheerder heeft dit nog niet goedgekeurd</translation> -<translation id="6567688344210276845">Kan pictogram '<ph name="ICON" />' voor pagina-actie niet laden.</translation> <translation id="6569934958368283244">Andere mensen</translation> <translation id="657402800789773160">&Laad pagina opnieuw</translation> <translation id="6577284282025554716">Download geannuleerd: <ph name="FILE_NAME" /></translation> @@ -4167,6 +4166,7 @@ <translation id="6586451623538375658">Primaire muisknop omwisselen</translation> <translation id="6586604979641883411">Er is ten minste <ph name="REQUIRED_SPACE" /> aan vrije schijfruimte vereist om Linux te upgraden. Maak ruimte vrij op je apparaat en probeer het opnieuw.</translation> <translation id="6588043302623806746">Beveiligde DNS gebruiken</translation> +<translation id="659005207229852190">Veiligheidscheck is afgerond.</translation> <translation id="6590458744723262880">Naam van map wijzigen</translation> <translation id="6592267180249644460">WebRTC-logboek vastgelegd op <ph name="WEBRTC_LOG_CAPTURE_TIME" /></translation> <translation id="6592808042417736307">Je vingerafdruk is geregistreerd</translation> @@ -4220,7 +4220,6 @@ <translation id="6659594942844771486">Tabblad</translation> <translation id="6664237456442406323">Je computer is geconfigureerd met een hardware-ID met een onjuiste notatie. Dit zorgt ervoor dat Chrome OS niet kan worden bijgewerkt met de nieuwste beveiligingsoplossingen, waardoor je computer <ph name="BEGIN_BOLD" />kwetsbaar kan zijn voor schadelijke aanvallen<ph name="END_BOLD" />.</translation> <translation id="6664774537677393800">Er is iets misgegaan bij het openen van je profiel. Log uit en log vervolgens weer in.</translation> -<translation id="6667776121818773738">Afbeelding gedeeld vanaf ander apparaat</translation> <translation id="6673391612973410118"><ph name="PRINTER_MAKE_OR_MODEL" /> (USB)</translation> <translation id="667517062706956822">Wil je dat Google deze pagina vertaalt van het <ph name="SOURCE_LANGUAGE" /> naar het <ph name="TARGET_LANGUAGE" />?</translation> <translation id="6675665718701918026">Aanwijsapparaat verbonden</translation> @@ -4841,7 +4840,6 @@ <translation id="7497981768003291373">Je hebt geen onlangs vastgelegde WebRTC-tekstlogboeken.</translation> <translation id="7502658306369382406">IPv6-adres</translation> <translation id="7503191893372251637">Type Netscape-certificaat</translation> -<translation id="7503821294401948377">Kan pictogram '<ph name="ICON" />' voor browseractie niet laden.</translation> <translation id="7503985202154027481">Er wordt een record van je bezoek aan deze site geregistreerd in je beveiligingssleutel.</translation> <translation id="7504293978434250212">Je organisatie kan bestanden tot 50 MB scannen. Probeer een kleiner bestand te uploaden.</translation> <translation id="750509436279396091">Map 'Downloads' openen</translation> @@ -5428,6 +5426,7 @@ <translation id="8249672078237421304">Aanbieden om pagina's te vertalen die in een voor jou onbekende taal zijn</translation> <translation id="8251441930213048644">Nu vernieuwen</translation> <translation id="8251578425305135684">Miniatuur verwijderd.</translation> +<translation id="825238165904109940">Altijd volledige URL's weergeven</translation> <translation id="8252569384384439529">Uploaden...</translation> <translation id="8253198102038551905">Kik op '+' om netwerkeigenschappen op te halen</translation> <translation id="8254954272268479918">Linux afsluiten (bèta)</translation> @@ -5643,7 +5642,6 @@ <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="8550165047974571882"><ph name="ORIGIN" /> kan bestanden bewerken in <ph name="FOLDERNAME" /> totdat je alle tabbladen van <ph name="ORIGIN" /> sluit</translation> <translation id="8551388862522347954">Licenties</translation> <translation id="8553342806078037065">Andere mensen beheren</translation> <translation id="8554899698005018844">Geen taal</translation>
diff --git a/chrome/app/resources/generated_resources_no.xtb b/chrome/app/resources/generated_resources_no.xtb index 4b721abb..45000ff 100644 --- a/chrome/app/resources/generated_resources_no.xtb +++ b/chrome/app/resources/generated_resources_no.xtb
@@ -1117,7 +1117,6 @@ <translation id="247949520305900375">Del lyd</translation> <translation id="2480868415629598489">endre data du kopierer og limer inn</translation> <translation id="2482878487686419369">Varsler</translation> -<translation id="2483610039979585156"><ph name="ORIGIN" /> kommer til å kunne redigere <ph name="FILENAME" /> frem til du lukker alle <ph name="ORIGIN" />-faner</translation> <translation id="2484959914739448251">For å slette nettleserdata på alle synkroniserte enheter og Google-kontoen din må du <ph name="BEGIN_LINK" />skrive inn passordfrasen din<ph name="END_LINK" />.</translation> <translation id="2485005079599453134">Passordet er lagret på enheten</translation> <translation id="2485422356828889247">Avinstaller</translation> @@ -1701,6 +1700,7 @@ <translation id="3264544094376351444">Uten seriffer</translation> <translation id="3264582393905923483">Kontekst</translation> <translation id="3265459715026181080">Lukk vindu</translation> +<translation id="3266274118485960573">Sikkerhetssjekken kjøres akkurat nå.</translation> <translation id="3267726687589094446">Tillat fortsatt automatiske nedlastinger av flere filer</translation> <translation id="3268451620468152448">Åpne faner</translation> <translation id="3269069891205016797">Informasjonen din fjernes fra enheten når du logger av.</translation> @@ -1722,7 +1722,6 @@ <translation id="3282568296779691940">Logg på Chrome</translation> <translation id="3285322247471302225">Ny &fane</translation> <translation id="328571385944182268">Vil du lagre passordene dine?</translation> -<translation id="328785681103589998"><ph name="ORIGIN" /> kommer til å kunne lese <ph name="FILENAME" /> frem til du lukker alle <ph name="ORIGIN" />-faner</translation> <translation id="3288047731229977326">Utvidelser som kjører i utviklermodus kan skade datamaskinen din. Hvis du ikke er utvikler, bør du deaktivere disse utvidelsene som kjører i utviklermodus, for å være på den sikre siden.</translation> <translation id="3289856944988573801">For å sjekke etter oppdateringer, kan du bruke Ethernet eller Wi-Fi.</translation> <translation id="3290356915286466215">Usikret</translation> @@ -1807,6 +1806,7 @@ <translation id="3412265149091626468">Gå til utvalg</translation> <translation id="3413122095806433232">Sertifiseringsinstanser: <ph name="LOCATION" /></translation> <translation id="3414952576877147120">Størrelse:</translation> +<translation id="3416468988018290825">Vis alltid fullstendige nettadresser</translation> <translation id="3420501302812554910">Den interne sikkerhetsnøkkelen må tilbakestilles</translation> <translation id="3421387094817716717">Offentlig nøkkel basert på elliptiske kurver</translation> <translation id="3422291238483866753">Spør når nettsteder vil lage 3D-kart av omgivelsene dine eller spore kameraposisjonen (anbefales)</translation> @@ -2409,6 +2409,7 @@ <translation id="4144218403971135344">Få video med bedre kvalitet og spar batteri. Videoen spilles kun av på den Cast-kompatible skjermen.</translation> <translation id="4146026355784316281">Åpne alltid med systemvisningsprogrammet</translation> <translation id="4146785383423576110">Tilbakestill og rydd opp</translation> +<translation id="4147897805161313378">Google Foto</translation> <translation id="4147911968024186208">Prøv på nytt. Hvis du ser denne feilen igjen, kan du kontakte brukerstøtterepresentanten din.</translation> <translation id="4150201353443180367">Skjerm</translation> <translation id="4152670763139331043">{NUM_TABS,plural, =1{1 fane}other{# faner}}</translation> @@ -2728,6 +2729,7 @@ <translation id="4633757335284074492">Sikkerhetskopiér til Google Disk. Gjenopprett data enkelt eller bytt enhet når som helst. Denne sikkerhetskopien inkluderer appdata. Sikkerhetskopier lastes opp til Google og krypteres med passordet for Google-kontoen til barnet ditt.</translation> <translation id="4634771451598206121">Logg på igjen</translation> <translation id="4635398712689569051"><ph name="PAGE_NAME" /> er ikke tilgjengelig for gjestebrukere.</translation> +<translation id="4636930964841734540">Info</translation> <translation id="4637083375689622795">Flere handlinger, <ph name="EMAIL" /></translation> <translation id="4638930039313743000">Slå på ADB-feilsøking</translation> <translation id="4641539339823703554">Chrome kunne ikke angi systemtiden. Sjekk tiden nedenfor, og korriger den om nødvendig.</translation> @@ -2807,7 +2809,6 @@ <translation id="4750394297954878236">Forslag</translation> <translation id="475088594373173692">Første bruker</translation> <translation id="4751476147751820511">Bevegelses- eller lyssensorer</translation> -<translation id="4756269098451810636"><ph name="DEVICE_NAME" /> har delt et bilde</translation> <translation id="4756378406049221019">Stopp / last inn på nytt</translation> <translation id="4756388243121344051">&Logg</translation> <translation id="4759238208242260848">Nedlastinger</translation> @@ -3754,7 +3755,6 @@ <translation id="6040852767465482106">Anonym identitet</translation> <translation id="6041046205544295907"><ph name="BEGIN_PARAGRAPH1" />Googles posisjonstjeneste bruker kilder som Wi-Fi, mobilnettverk og sensorer til å beregne enhetens posisjon.<ph name="END_PARAGRAPH1" /> <ph name="BEGIN_PARAGRAPH2" />Du kan slå av Posisjon ved å slå av hovedinnstillingen for Posisjon på enheten. Du kan også slå av bruken av Wi-Fi, mobilnettverk og sensorer for posisjon fra posisjonsinnstillingene.<ph name="END_PARAGRAPH2" /></translation> -<translation id="6041150002191391409"><ph name="ORIGIN" /> kommer til å kunne se filer i <ph name="FOLDERNAME" /> frem til du lukker alle <ph name="ORIGIN" />-faner</translation> <translation id="6041155700700864984">Avslutt fullskjermmodus</translation> <translation id="604124094241169006">Automatisk</translation> <translation id="6042308850641462728">Mer</translation> @@ -4150,7 +4150,6 @@ <translation id="6561726789132298588">enter</translation> <translation id="656293578423618167">Filbanen- eller -navnet er for langt. Lagre med et annet navn eller på et annet sted.</translation> <translation id="6563469144985748109">Administratoren din har ikke godkjent det ennå</translation> -<translation id="6567688344210276845">Kan ikke laste inn ikonet «<ph name="ICON" />» for sidehandling.</translation> <translation id="6569934958368283244">Andre personer</translation> <translation id="657402800789773160">&Last inn denne siden på nytt</translation> <translation id="6577284282025554716">Nedlasting avbrutt: <ph name="FILE_NAME" /></translation> @@ -4162,6 +4161,7 @@ <translation id="6586451623538375658">Bytt primær museknapp</translation> <translation id="6586604979641883411">Minst <ph name="REQUIRED_SPACE" /> ledig diskplass kreves for å oppgradere Linux. Frigjør litt plass på enheten, og prøv på nytt.</translation> <translation id="6588043302623806746">Bruk sikker DNS</translation> +<translation id="659005207229852190">Sikkerhetssjekken er fullført.</translation> <translation id="6590458744723262880">Gi mappen nytt navn</translation> <translation id="6592267180249644460">WebRTC-loggen ble lagret <ph name="WEBRTC_LOG_CAPTURE_TIME" /></translation> <translation id="6592808042417736307">Fingeravtrykket er registrert</translation> @@ -4215,7 +4215,6 @@ <translation id="6659594942844771486">Fane</translation> <translation id="6664237456442406323">Dessverre er datamaskinen konfigurert med en feilformatert maskinvare-ID. Dette hindrer Chrome OS fra å oppdatere til de siste sikkerhetsoppdateringene, og datamaskinen din <ph name="BEGIN_BOLD" />kan utsettes for skadelige angrep<ph name="END_BOLD" />.</translation> <translation id="6664774537677393800">Det oppsto en feil ved åpning av profilen din. Logg av og på igjen.</translation> -<translation id="6667776121818773738">En annen enhet har delt et bilde</translation> <translation id="6673391612973410118"><ph name="PRINTER_MAKE_OR_MODEL" /> (USB)</translation> <translation id="667517062706956822">Vil du at Google skal oversette denne siden fra <ph name="SOURCE_LANGUAGE" /> til <ph name="TARGET_LANGUAGE" />?</translation> <translation id="6675665718701918026">En pekeenhet er koblet til</translation> @@ -4836,7 +4835,6 @@ <translation id="7497981768003291373">Du har ingen nylig lagrede WebRTC-tekstlogger.</translation> <translation id="7502658306369382406">IPv6-adresse</translation> <translation id="7503191893372251637">Netscape sertifikattype</translation> -<translation id="7503821294401948377">Kan ikke laste inn ikonet «<ph name="ICON" />» for nettleserhandling.</translation> <translation id="7503985202154027481">Besøket ditt på dette nettstedet registreres på sikkerhetsnøkkelen.</translation> <translation id="7504293978434250212">Organisasjonen din kan skanne filer på opptil 50 MB. Prøv å laste opp en mindre fil.</translation> <translation id="750509436279396091">Åpne nedlastingsmappen</translation> @@ -5424,6 +5422,7 @@ <translation id="8249672078237421304">Tilby oversettelse av nettsider på språk du ikke kan lese</translation> <translation id="8251441930213048644">Last inn på nytt nå</translation> <translation id="8251578425305135684">Miniatyrbilde fjernet.</translation> +<translation id="825238165904109940">Vis alltid fullstendige nettadresser</translation> <translation id="8252569384384439529">Laster opp …</translation> <translation id="8253198102038551905">Klikk på «+» for å gå til nettverksegenskaper</translation> <translation id="8254954272268479918">Slå av Linux (beta)</translation> @@ -5639,7 +5638,6 @@ <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="8550165047974571882"><ph name="ORIGIN" /> kommer til å kunne redigere filer i <ph name="FOLDERNAME" /> frem til du lukker alle <ph name="ORIGIN" />-faner</translation> <translation id="8551388862522347954">Lisenser</translation> <translation id="8553342806078037065">Administrer andre</translation> <translation id="8554899698005018844">Ingen språk</translation>
diff --git a/chrome/app/resources/generated_resources_or.xtb b/chrome/app/resources/generated_resources_or.xtb index 8129ece..b48e8cd 100644 --- a/chrome/app/resources/generated_resources_or.xtb +++ b/chrome/app/resources/generated_resources_or.xtb
@@ -717,7 +717,7 @@ <translation id="1944528062465413897">ବ୍ଲୁଟୁଥ୍ ପେୟାରିଂ କୋଡ୍:</translation> <translation id="1944921356641260203">ଅପ୍ଡେଟ୍ ମିଳିଲା</translation> <translation id="1946577776959096882">ଆକାଉଣ୍ଟଗୁଡ଼ିକ ଦେଖନ୍ତୁ</translation> -<translation id="1951012854035635156">ସହାୟକ</translation> +<translation id="1951012854035635156">Assistant</translation> <translation id="1954813140452229842">ସେୟାର୍ ଖଞ୍ଜିବାରେ ତ୍ରୁଟି। ଦୟାକରି ଆପଣଙ୍କର କ୍ରେଡେନ୍ସିଆଲ୍ ଯାଞ୍ଚ କରନ୍ତୁ ଏବଂ ପୁଣି ଚେଷ୍ଟା କରନ୍ତୁ।</translation> <translation id="1956050014111002555">ଫାଇଲ୍ରେ ଅନେକ ସାର୍ଟିଫିକେଟ୍ ଅଛି, ଏଥିମଧ୍ୟରୁ କୌଣସିଟି ଇମ୍ପୋର୍ଟ ହୋଇନାହିଁ:</translation> <translation id="1956390763342388273">ଏହା "<ph name="FOLDER_PATH" />"ରୁ ସମସ୍ତ ଫାଇଲ୍କୁ ଅପ୍ଲୋଡ୍ କରିବ। ଆପଣ ଯଦି ସାଇଟ୍କୁ ବିଶ୍ଵାସ କରନ୍ତି, ତା'ହେଲେ ହିଁ ଏହା କରନ୍ତୁ।</translation> @@ -1115,7 +1115,6 @@ <translation id="247949520305900375">ଅଡିଓ ସେୟାର୍ କରନ୍ତୁ</translation> <translation id="2480868415629598489">ଆପଣ କପି ଏବଂ ପେଷ୍ଟ କରୁଥିବା ଡାଟା ସଂଶୋଧନ କରନ୍ତୁ</translation> <translation id="2482878487686419369">ବିଜ୍ଞପ୍ତିଗୁଡ଼ିକ</translation> -<translation id="2483610039979585156">ଆପଣ ସମସ୍ତ <ph name="ORIGIN" /> ଟାବ୍ ବନ୍ଦ ନକରିବା ପର୍ଯ୍ୟନ୍ତ <ph name="ORIGIN" /> <ph name="FILENAME" />ରେ ଏଡିଟ୍ କରିବାକୁ ସକ୍ଷମ ହେବ</translation> <translation id="2484959914739448251">ଆପଣଙ୍କର ସିଙ୍କ ହୋଇଥିବା ସମସ୍ତ ଡିଭାଇସ୍ ଏବଂ ଆପଣଙ୍କର Google ଆକାଉଣ୍ଟରୁ ବ୍ରାଉଜିଂ ଡାଟା ଖାଲି କରିବା ପାଇଁ, <ph name="BEGIN_LINK" />ଆପଣଙ୍କର ପାସଫ୍ରେଜ୍ ଲେଖନ୍ତୁ<ph name="END_LINK" />।</translation> <translation id="2485005079599453134">ଏହି ଡିଭାଇସ୍ରେ ପାସ୍ୱାର୍ଡ ସେଭ୍ କରାଯାଇଛି</translation> <translation id="2485422356828889247">ଅନ୍ଇନ୍ଷ୍ଟଲ୍ କରନ୍ତୁ</translation> @@ -1720,7 +1719,6 @@ <translation id="3282568296779691940">Chromeରେ ସାଇନ୍ ଇନ୍ କରନ୍ତୁ</translation> <translation id="3285322247471302225">ନୂଆ &ଟାବ୍</translation> <translation id="328571385944182268">ଆପଣଙ୍କର ପାସ୍ୱାର୍ଡଗୁଡ଼ିକୁ ସେଭ୍ କରିବେ?</translation> -<translation id="328785681103589998">ଆପଣ ସମସ୍ତ <ph name="ORIGIN" /> ଟାବ୍ ବନ୍ଦ ନକରିବା ପର୍ଯ୍ୟନ୍ତ <ph name="ORIGIN" /> <ph name="FILENAME" /> ଦେଖିବାକୁ ସକ୍ଷମ ହେବ</translation> <translation id="3288047731229977326">ଡେଭଲପର୍ ମୋଡ୍ରେ ଚାଲୁଥିବା ଏକ୍ସଟେନ୍ସନ୍ ଆପଣଙ୍କର କମ୍ପ୍ୟୁଟର୍ର କ୍ଷତି କରିପାରେ। ଯଦି ଆପଣ ଜଣେ ଡେଭଲପର୍ ନୁହଁନ୍ତି, ତେବେ ସୁରକ୍ଷିତ ରହିବା ପାଇଁ ଆପଣଙ୍କୁ ଡେଭଲପର୍ ମୋଡ୍ରେ ଚାଲୁଥିବା ଏହି ଏକ୍ସଟେନ୍ସନ୍ଗୁଡ଼ିକୁ ଅକ୍ଷମ କରିବା ଉଚିତ।</translation> <translation id="3289856944988573801">ଅପ୍ଡେଟ୍ଗୁଡ଼ିକୁ ଯାଞ୍ଚ କରିବା ପାଇଁ, ଦୟାକରି ଇଥର୍ନେଟ କିମ୍ବା ୱାଇ-ଫାଇ ବ୍ୟବହାର କରନ୍ତୁ।</translation> <translation id="3290356915286466215">ଅସୁରକ୍ଷିତ</translation> @@ -1748,7 +1746,7 @@ <translation id="3317459757438853210">ଦୁଇ-ତରଫା</translation> <translation id="3317678681329786349">କ୍ୟାମେରା ଏବଂ ମାଇକ୍ରୋଫୋନ୍ ବ୍ଲକ୍ ଅଛି</translation> <translation id="3319048459796106952">&ନୂତନ ଗୁପ୍ତ ୱିଣ୍ଡୋ</translation> -<translation id="3320630259304269485">ସେଫ୍ ବ୍ରାଉଜିଂ (ବିପଦଜନକ ସାଇଟଗୁଡ଼ିକ ଠାରୁ ସୁରକ୍ଷା) ଏବଂ ଅନ୍ୟ ସୁରକ୍ଷା ସେଟିଂସ୍</translation> +<translation id="3320630259304269485">ସେଫ୍ ବ୍ରାଉଜିଂ (ବିପଦଜନକ ସାଇଟଗୁଡ଼ିକରୁ ସୁରକ୍ଷା) ଏବଂ ଅନ୍ୟ ସୁରକ୍ଷା ସେଟିଂସ୍</translation> <translation id="3323521181261657960">ବୋନସ୍! ଆପଣ ଅଧିକ ସ୍କ୍ରିନ୍ ସମୟ ପାଇଛନ୍ତି</translation> <translation id="3325910708063135066">Mac ସିଷ୍ଟମ୍ ଅଗ୍ରାଧିକାରଗୁଡ଼ିକରେ କ୍ୟାମେରା ଏବଂ ମାଇକ୍ରୋଫୋନ୍ ବନ୍ଦ କରାଯାଇଛି</translation> <translation id="3328489342742826322">କୌଣସି ବ୍ୟାକ୍ଅପ୍ରୁ ରିଷ୍ଟୋର୍ କରିବା ଦ୍ୱାରା ଆପଣଙ୍କର Linux ଫାଇଲ୍ସ ଫୋଲ୍ଡର୍ରେ ପୂର୍ବରୁ ଥିବା Linux ଆପ୍ଲିକେସନ୍ସ ଏବଂ ଡାଟା ଡିଲିଟ୍ ହୋଇଯିବ।</translation> @@ -2408,6 +2406,7 @@ <translation id="4144218403971135344">ଉତ୍ତମ ଗୁଣବତ୍ତାର ଭିଡିଓ ପ୍ରାପ୍ତ କରନ୍ତୁ ଏବଂ ବ୍ୟାଟେରୀ ଜୀବନକାଳ ସଞ୍ଚୟ କରନ୍ତୁ। ଆପଣଙ୍କର କେବଳ କାଷ୍ଟ-ସକ୍ଷମ ଥିବା ସ୍କ୍ରିନ୍ରେ ଭିଡିଓ ଚାଲିବ।</translation> <translation id="4146026355784316281">ସର୍ବଦା ସିଷ୍ଟମ୍ ଭ୍ୟୁଅର୍ ସାହାଯ୍ୟରେ ଖୋଲନ୍ତୁ</translation> <translation id="4146785383423576110">ରିସେଟ୍ କରି ଖାଲି କରନ୍ତୁ</translation> +<translation id="4147897805161313378">Google Photos</translation> <translation id="4147911968024186208">ଦୟାକରି ପୁଣି ଚେଷ୍ଟା କରନ୍ତୁ। ଯଦି ଆପଣ ପୁଣି ଏହି ତ୍ରୁଟି ଦେଖନ୍ତି, ତେବେ ଆପଣଙ୍କ ସହଯୋଗ ପ୍ରତିନିଧିଙ୍କ ସହ ଯୋଗାଯୋଗ କରନ୍ତୁ।</translation> <translation id="4150201353443180367">ଡିସ୍ପ୍ଲେ</translation> <translation id="4152670763139331043">{NUM_TABS,plural, =1{1ଟି ଟାବ୍}other{#ଟି ଟାବ୍}}</translation> @@ -2727,6 +2726,7 @@ <translation id="4633757335284074492">Google Driveରେ ବ୍ୟାକଅପ୍ ନିଅନ୍ତୁ। ସହଜରେ ଡାଟା ରିଷ୍ଟୋର୍ କରନ୍ତୁ କିମ୍ୱା ଯେ କୌଣସି ସମୟରେ ଡିଭାଇସ୍ ସ୍ୱିଚ୍ କରନ୍ତୁ। ଏହି ବ୍ୟାକଅପ୍ ଆପ୍ ଡାଟା ଅନ୍ତର୍ଭୁକ୍ତ କରେ। ବ୍ୟାକଅପଗୁଡ଼ିକୁ Googleରେ ଅପଲୋଡ୍ କରାଯାଇଛି ଏବଂ ଆପଣଙ୍କ ପିଲାର Google ଆକାଉଣ୍ଟ ପାସୱାର୍ଡ ବ୍ୟବହାର କରି ଏନକ୍ରିପ୍ଟ କରାଯାଇଛି।</translation> <translation id="4634771451598206121">ପୁର୍ନବାର ସାଇନ୍ ଇନ୍ କରନ୍ତୁ...</translation> <translation id="4635398712689569051">ଅତିଥି ଉପଯୋଗକର୍ତ୍ତାଙ୍କ ପାଇଁ <ph name="PAGE_NAME" />ଉପଲବ୍ଧ ନାହିଁ।</translation> +<translation id="4636930964841734540">ସୂଚନା</translation> <translation id="4637083375689622795">ଅଧିକ ପଦକ୍ଷେପ, <ph name="EMAIL" /></translation> <translation id="4638930039313743000">ADB ଡିବଗିଂ ସକ୍ଷମ କରନ୍ତୁ</translation> <translation id="4641539339823703554">Chrome ସିଷ୍ଟମ୍ ସମୟ ସେଟ୍ କରିପାରିଲା ନାହିଁ। ଦୟାକରି ନିମ୍ନୋକ୍ତ ସମୟ ଯାଞ୍ଚ କରନ୍ତୁ ଏବଂ ଯଦି ଆବଶ୍ୟକ ଥାଏ ତେବେ ଏହାକୁ ପରିବର୍ତ୍ତନ କରନ୍ତୁ।</translation> @@ -2806,7 +2806,6 @@ <translation id="4750394297954878236">ପରାମର୍ଶ</translation> <translation id="475088594373173692">ପ୍ରଥମ ଉପଯୋଗକର୍ତ୍ତା</translation> <translation id="4751476147751820511">ମୋସନ୍ କିମ୍ବା ଲାଇଟ୍ ସେନ୍ସର୍</translation> -<translation id="4756269098451810636"><ph name="DEVICE_NAME" />ରୁ ସେୟାର୍ କରାଯାଇଥିବା ଛବି</translation> <translation id="4756378406049221019">ବନ୍ଦ/ପୁଣି ଲୋଡ୍ କରନ୍ତୁ</translation> <translation id="4756388243121344051">&ଇତିବୃତ୍ତି</translation> <translation id="4759238208242260848">ଡାଉନଲୋଡସମୂହ</translation> @@ -3528,7 +3527,7 @@ <translation id="5734362860645681824">ଯୋଗାଯୋଗ</translation> <translation id="5734697361979786483">ଫାଇଲ୍ ସେୟାର୍ ଯୋଗ କରନ୍ତୁ</translation> <translation id="5736796278325406685">ଦୟାକରି ଏକ ବୈଧ ଉପଯୋଗକର୍ତ୍ତାନାମ ଲେଖନ୍ତୁ</translation> -<translation id="5739017626473506901"><ph name="USER_NAME" /> ଏକ ସ୍କୁଲ୍ ଆକାଉଣ୍ଟ ଯୋଗ କରିବାରେ ସାହାଯ୍ୟ କରିବାକୁ ସାଇନ୍ ଇନ୍ କରନ୍ତୁ</translation> +<translation id="5739017626473506901">ଏକ ସ୍କୁଲ୍ ଆକାଉଣ୍ଟ ଯୋଗ କରିବାରେ <ph name="USER_NAME" />କୁ ସାହାଯ୍ୟ କରିବାକୁ ସାଇନ୍ ଇନ୍ କରନ୍ତୁ</translation> <translation id="5739235828260127894">ଯାଞ୍ଚକରଣ ପାଇଁ ଅପେକ୍ଷାରତ। <ph name="LINK_BEGIN" />ଅଧିକ ଜାଣନ୍ତୁ<ph name="LINK_END" /></translation> <translation id="5739458112391494395">ବହୁତ ବଡ଼</translation> <translation id="574209121243317957">ସ୍ୱରର ଉଚ୍ଚତା</translation> @@ -3753,7 +3752,6 @@ <translation id="6040852767465482106">ବେନାମୀ ପରିଚୟ</translation> <translation id="6041046205544295907"><ph name="BEGIN_PARAGRAPH1" />Googleର ଲୋକେସନ୍ ସେବା, ଆପଣଙ୍କ ଡିଭାଇସ୍ର ଲୋକେସନ୍ ଆକଳନ କରିବାରେ ସାହାଯ୍ୟ କରିବା ପାଇଁ ୱାଇ-ଫାଇ, ମୋବାଇଲ୍ ନେଟ୍ୱର୍କ ଓ ସେନ୍ସର୍ଗୁଡ଼ିକ ଭଳି ଉତ୍ସକୁ ବ୍ୟବହାର କରେ।<ph name="END_PARAGRAPH1" /> <ph name="BEGIN_PARAGRAPH2" />ଆପଣ ନିଜ ଡିଭାଇସ୍ରେ ମୁଖ୍ୟ ଲୋକେସନ୍ ସେଟିଂକୁ ବନ୍ଦ କରି ଲୋକେସନ୍କୁ ବନ୍ଦ କରିପାରିବେ। ଆପଣ ଲୋକେସନ୍ ସେଟିଂସ୍ରେ ୱାଇ-ଫାଇ, ମୋବାଇଲ୍ ନେଟ୍ୱର୍କ ଓ ଲୋକେସନ୍ ପାଇଁ ସେନ୍ସର୍ଗୁଡ଼ିକର ବ୍ୟବହାର ମଧ୍ୟ ବନ୍ଦ କରିପାରିବେ।<ph name="END_PARAGRAPH2" /></translation> -<translation id="6041150002191391409">ଆପଣ ସମସ୍ତ <ph name="ORIGIN" /> ଟାବ୍ ବନ୍ଦ ନ କରିବା ପର୍ଯ୍ୟନ୍ତ <ph name="ORIGIN" /> <ph name="FOLDERNAME" />ରେ ଫାଇଲଗୁଡ଼ିକ ଦେଖିବାକୁ ସକ୍ଷମ ହେବ</translation> <translation id="6041155700700864984">ଫୁଲ୍ସ୍କ୍ରିନ୍ରୁ ବାହାରି ଆସନ୍ତୁ</translation> <translation id="604124094241169006">ସ୍ୱଚାଳିତ</translation> <translation id="6042308850641462728">ଅଧିକ</translation> @@ -4150,7 +4148,6 @@ <translation id="6561726789132298588">ଏଣ୍ଟର୍</translation> <translation id="656293578423618167">ଫାଇଲ୍ର ପାଥ୍ କିମ୍ବା ନାମ ବହୁତ ଲମ୍ବା ଅଟେ। ଦୟାକରି ଛୋଟ ନାମରେ କିମ୍ବା ଅନ୍ୟ ଏକ ଲୋକେସନ୍ରେ ସେଭ୍ କରନ୍ତୁ।</translation> <translation id="6563469144985748109">ଏପର୍ଯ୍ୟନ୍ତସୁଦ୍ଧା ଆପଣଙ୍କର ପରିଚାଳକ ଏହାକୁ ଅନୁମୋଦିତ କରିନାହାନ୍ତି</translation> -<translation id="6567688344210276845">ପୃଷ୍ଠା କାର୍ଯକଳାପ ପାଇଁ ଆଇକନ୍ '<ph name="ICON" />' ଲୋଡ୍ କରାଯାଇପାରିଲା ନାହିଁ।</translation> <translation id="6569934958368283244">ଅନ୍ୟ ବ୍ୟକ୍ତି</translation> <translation id="657402800789773160">ଏହି ପୃଷ୍ଠାକୁ &ରିଲୋଡ୍ କରନ୍ତୁ</translation> <translation id="6577284282025554716">ଏହି ଫାଇଲ୍ ଡାଉନ୍ଲୋଡ୍ ବାତିଲ୍ ହେଲା: <ph name="FILE_NAME" /></translation> @@ -4216,7 +4213,6 @@ <translation id="6659594942844771486">ଟାବ୍</translation> <translation id="6664237456442406323">ଦୁର୍ଭାଗ୍ୟବଶତଃ, ଆପଣଙ୍କର କମ୍ପ୍ୟୁଟର୍ କୌଣସି ବିକୃତ ହାର୍ଡୱେର୍ ID ଦ୍ୱାରା କନ୍ଫିଗର୍ କରାଯାଇଛି। ଏହାଦ୍ୱାରା Chrome OSକୁ ନବୀନତମ ସୁରକ୍ଷା ସମାଧାନରୁ ଅପ୍ଡେଟ୍ ହେବାରେ ପ୍ରତିବନ୍ଧତା ହେଉଛି ଏବଂ ଆପଣଙ୍କର କମ୍ପ୍ୟୁଟର୍ <ph name="BEGIN_BOLD" />ବିଦ୍ୱେଷ ପ୍ରଣୋଦିତ ଆକ୍ରମଣଗୁଡ଼ିକର ସମ୍ଭାବନା ଥାଇପାରେ <ph name="END_BOLD" />।</translation> <translation id="6664774537677393800">ଆପଣଙ୍କର ପ୍ରୋଫାଇଲ୍ ଖୋଲିବା ସମୟରେ କିଛି ତ୍ରୁଟି ହୋଇଛି। ଦୟାକରି ସାଇନ୍ ଆଉଟ୍ କରିବା ପରେ ପୁଣିଥରେ ସାଇନ୍ ଇନ୍ କରନ୍ତୁ।</translation> -<translation id="6667776121818773738">ଅନ୍ୟ ଡିଭାଇସ୍ରୁ ସେୟାର୍ କରାଯାଇଥିବା ଛବି</translation> <translation id="6673391612973410118"><ph name="PRINTER_MAKE_OR_MODEL" /> (USB)</translation> <translation id="667517062706956822">ଆପଣ କ'ଣ ଚାହୁଁଛନ୍ତି ଯେ Google ଏହି ପୃଷ୍ଠାକୁ <ph name="SOURCE_LANGUAGE" /> ରୁ <ph name="TARGET_LANGUAGE" />କୁ ଅନୁବାଦ କରୁ?</translation> <translation id="6675665718701918026">ପଏଣ୍ଟିଂ ଡିଭାଇସ୍ ସଂଯୋଗ ହୋଇଛି</translation> @@ -4429,8 +4425,8 @@ <translation id="6965382102122355670">ଓକେ ବଟନ୍</translation> <translation id="6965648386495488594">ପୋର୍ଟ</translation> <translation id="6965978654500191972">ଡିଭାଇସ୍</translation> -<translation id="6966201992886493384">ଆପଣଙ୍କ ବ୍ରାଉଜିଂ ଅନୁଭୂତିକୁ ଉନ୍ନତ କରିବା ନିମନ୍ତେ, ଉଦାହରଣ ସ୍ୱରୂପ, ଆପଣଙ୍କୁ ସାଇନ୍ ଇନ୍ ରଖିବା କିମ୍ବା ଆପଣଙ୍କ ସପିଂ କାର୍ଟରେ ଥିବା ଆଇଟମଗୁଡ଼ିକୁ ମନେରଖିବା ପାଇଁ ସାଇଟଗୁଡ଼ିକ କୁକୀଗୁଡ଼ିକୁ ବ୍ୟବହାର କରିପାରିବ</translation> -<translation id="696780070563539690">ବିଭିନ୍ନ ସାଇଟରେ ଆପଣଙ୍କ ବ୍ରାଉଜିଂ କାର୍ଯ୍ୟକଳାପକୁ ଦେଖିବା ନିମନ୍ତେ, ଉଦାହରଣ ସ୍ୱରୂପ, ବିଜ୍ଞାପନଗୁଡ଼ିକୁ ବ୍ୟକ୍ତିଗତକୃତ କରିବା ପାଇଁ ସାଇଟଗୁଡ଼ିକ କୁକୀଗୁଡ଼ିକୁ ବ୍ୟବହାର କରିପାରିବ ନାହିଁ</translation> +<translation id="6966201992886493384">ଆପଣଙ୍କୁ ସାଇନ୍ ଇନ୍ ରଖିବା କିମ୍ବା ଆପଣଙ୍କ ସପିଂ କାର୍ଟରେ ଥିବା ଆଇଟମଗୁଡ଼ିକୁ ମନେରଖିବା ପରି ଆପଣଙ୍କ ବ୍ରାଉଜିଂ ଅନୁଭୂତିକୁ ଉନ୍ନତ କରିବା ନିମନ୍ତେ ସାଇଟଗୁଡ଼ିକ କୁକୀଗୁଡ଼ିକୁ ବ୍ୟବହାର କରିପାରିବ</translation> +<translation id="696780070563539690">ବିଜ୍ଞାପନଗୁଡ଼ିକୁ ବ୍ୟକ୍ତିଗତକୃତ କରିବା ପରି ବିଭିନ୍ନ ସାଇଟରେ ଆପଣଙ୍କ ବ୍ରାଉଜିଂ କାର୍ଯ୍ୟକଳାପକୁ ଦେଖିବା ନିମନ୍ତେ ସାଇଟଗୁଡ଼ିକ କୁକୀଗୁଡ଼ିକୁ ବ୍ୟବହାର କରିପାରିବ ନାହିଁ</translation> <translation id="6968288415730398122">ସ୍କ୍ରିନ୍ ଲକ୍କୁ କନ୍ଫିଗର୍ କରିବା ପାଇଁ ନିଜର ପାସ୍ୱାର୍ଡ ଲେଖନ୍ତୁ</translation> <translation id="6970480684834282392">ଷ୍ଟାର୍ଟଅପ୍ ପ୍ରକାର</translation> <translation id="6970856801391541997">ନିର୍ଦ୍ଧିଷ୍ଟ ପୃଷ୍ଠାଗୁଡ଼ିକୁ ପ୍ରିଣ୍ଟ କରନ୍ତୁ</translation> @@ -4837,7 +4833,6 @@ <translation id="7497981768003291373">ଆପଣଙ୍କ ପାଖରେ ନିକଟରେ କ୍ୟାପଚର୍ କରାଯାଇଥିବା କୌଣସି WebRTC ଇଭେଣ୍ଟ ଲଗ୍ ନାହିଁ।</translation> <translation id="7502658306369382406">IPv6 ଠିକଣା</translation> <translation id="7503191893372251637">Netscape ସାର୍ଟିଫିକେଟ୍ ପ୍ରକାର</translation> -<translation id="7503821294401948377">ବ୍ରାଉଜର୍ କାର୍ଯକଳାପ ପାଇଁ ଆଇକନ୍ '<ph name="ICON" />' ଲୋଡ୍ କରାଯାଇପାରିଲା ନାହିଁ।</translation> <translation id="7503985202154027481">ଏହି ସାଇଟ୍ରେ ଆପଣ ଭ୍ରମଣ କରିଥିବା ଏକ ରେକର୍ଡ ଆପଣଙ୍କର ସୁରକ୍ଷା କୀ'ରେ ରଖାଯିବ।</translation> <translation id="7504293978434250212">ଆପଣଙ୍କର ସଂସ୍ଥା 50 MB ପର୍ଯ୍ୟନ୍ତ ଫାଇଲଗୁଡ଼ିକୁ ସ୍କାନ୍ କରିପାରିବ। ଏକ ଛୋଟ ଫାଇଲ୍ ଅପଲୋଡ୍ କରିବାକୁ ଚେଷ୍ଟା କରନ୍ତୁ।</translation> <translation id="750509436279396091">ଡାଉନ୍ଲୋଡ୍ ଫୋଲ୍ଡର୍ ଖୋଲନ୍ତୁ</translation> @@ -4845,7 +4840,7 @@ <translation id="7507207699631365376">ଏହି ପ୍ରଦାନକାରୀଙ୍କର <ph name="BEGIN_LINK" />ଗୋପନୀୟତା ନୀତି<ph name="END_LINK" /> ଦେଖନ୍ତୁ</translation> <translation id="7507930499305566459">ସ୍ଥିତି ପ୍ରତିକ୍ରିୟାଦାତା ସାର୍ଟିଫିକେଟ୍</translation> <translation id="7508054832109420082">ପ୍ରିଣ୍ଟର୍ଗୁଡ଼ିକୁ ଆକ୍ସେସ୍ ଦିଅନ୍ତୁ</translation> -<translation id="751120035300339">ଆପଣଙ୍କ ବ୍ରାଉଜିଂ ଅନୁଭୂତିକୁ ଉନ୍ନତ କରିବା ନିମନ୍ତେ, ଉଦାହରଣ ସ୍ୱରୂପ, ଆପଣଙ୍କୁ ସାଇନ୍ ଇନ୍ ରଖିବା କିମ୍ବା ଆପଣଙ୍କ ସପିଂ କାର୍ଟରେ ଥିବା ଆଇଟମଗୁଡ଼ିକୁ ମନେରଖିବା ପାଇଁ ସାଇଟଗୁଡ଼ିକ କୁକୀଗୁଡ଼ିକୁ ବ୍ୟବହାର କରିପାରିବ ନାହିଁ</translation> +<translation id="751120035300339">ଆପଣଙ୍କୁ ସାଇନ୍ ଇନ୍ ରଖିବା କିମ୍ବା ଆପଣଙ୍କ ସପିଂ କାର୍ଟରେ ଥିବା ଆଇଟମଗୁଡ଼ିକୁ ମନେରଖିବା ପରି ଆପଣଙ୍କ ବ୍ରାଉଜିଂ ଅନୁଭୂତିକୁ ଉନ୍ନତ କରିବା ନିମନ୍ତେ ସାଇଟଗୁଡ଼ିକ କୁକୀଗୁଡ଼ିକୁ ବ୍ୟବହାର କରିପାରିବ ନାହିଁ</translation> <translation id="7513029293694390567">ଷ୍ଟୋର୍ ଥିବା ବିଶ୍ୱସନୀୟତା ବ୍ୟବହାର କରି ୱେବ୍ସାଇଟ୍ରେ ସ୍ୱଚାଳିତରୂପେ ସାଇନ୍ ଇନ୍ କରନ୍ତୁ। ଯଦି ଏହା ଅକ୍ଷମ କରାଯାଏ, ତେବେ ଏକ ୱେବ୍ସାଇଟ୍ରେ ସାଇନ୍ ଇନ୍ କରିବା ପୂର୍ବରୁ ପ୍ରତ୍ୟେକଥର ଆପଣଙ୍କୁ ସୁନିଶ୍ଚିତ କରିବା ପାଇଁ କୁହାଯିବ।</translation> <translation id="7514239104543605883">ଆପଣଙ୍କର ଡିଭାଇସ୍କୁ କପି କରନ୍ତୁ</translation> <translation id="7514365320538308">ଡାଉନ୍ଲୋଡ୍ କରନ୍ତୁ</translation> @@ -5480,7 +5475,7 @@ <translation id="8320459152843401447">ଆପଣଙ୍କର ସମ୍ପୂର୍ଣ୍ଣ ସ୍କ୍ରିନ୍</translation> <translation id="8322814362483282060">ଏହି ପୃଷ୍ଠାକୁ ଆପଣଙ୍କ ମାଇକ୍ରୋଫୋନ୍ ଆକ୍ସେସ୍ କରିବାରୁ ବ୍ଲକ୍ କରାଯାଇଛି।</translation> <translation id="8323167517179506834">URL ଟାଇପ୍ କରନ୍ତୁ</translation> -<translation id="8324784016256120271">ବିଭିନ୍ନ ସାଇଟରେ ଆପଣଙ୍କ ବ୍ରାଉଜିଂ କାର୍ଯ୍ୟକଳାପକୁ ଦେଖିବା ନିମନ୍ତେ, ଉଦାହରଣ ସ୍ୱରୂପ, ବିଜ୍ଞାପନଗୁଡ଼ିକୁ ବ୍ୟକ୍ତିଗତକୃତ କରିବା ପାଇଁ ସାଇଟଗୁଡ଼ିକ କୁକୀଗୁଡ଼ିକୁ ବ୍ୟବହାର କରିପାରିବ</translation> +<translation id="8324784016256120271">ବିଜ୍ଞାପନଗୁଡ଼ିକୁ ବ୍ୟକ୍ତିଗତକୃତ କରିବା ପରି ବିଭିନ୍ନ ସାଇଟରେ ଆପଣଙ୍କ ବ୍ରାଉଜିଂ କାର୍ଯ୍ୟକଳାପକୁ ଦେଖିବା ନିମନ୍ତେ ସାଇଟଗୁଡ଼ିକ କୁକୀଗୁଡ଼ିକୁ ବ୍ୟବହାର କରିପାରିବ</translation> <translation id="8326478304147373412">PKCS #7, ସାର୍ଟିଫିକେଟ୍ ଚେନ୍</translation> <translation id="8327039559959785305">Linux ଫାଇଲ୍ଗୁଡ଼ିକର ମାଉଣ୍ଟିଙ୍ଗରେ ତ୍ରୁଟି। ଦୟାକରି ପୁଣି ଚେଷ୍ଟା କରନ୍ତୁ।</translation> <translation id="8327676037044516220">ଅନୁମତି ଏବଂ ବିଷୟବସ୍ତୁ ସେଟିଂସ୍</translation> @@ -5536,7 +5531,7 @@ <translation id="8408068190360279472"><ph name="NETWORK_TYPE" /> ନେଟ୍ୱାର୍କ, ସଂଯୁକ୍ତ ହେଉଛି</translation> <translation id="8410775397654368139">Google Play</translation> <translation id="8413385045638830869">ପ୍ରଥମେ ପଚାରନ୍ତୁ (ସୁପାରିଶ କରାଯାଇଛି)</translation> -<translation id="8417548266957501132">ବାପାମା ସେଟିଂସ୍</translation> +<translation id="8417548266957501132">ବାପାମାଙ୍କ ପାସୱାର୍ଡ</translation> <translation id="8417573335434189196">ବିପଦଜନକ ୱେବସାଇଟ୍, ଡାଉନଲୋଡ୍ କିମ୍ବା ଏକ୍ସଟେନ୍ସନଗୁଡ଼ିକ ଠାରୁ ଆପଣଙ୍କୁ ରକ୍ଷା କରେ ନାହିଁ। Chrome ଏହି ସେଟିଂକୁ ସୁପାରିଶ କରେ ନାହିଁ।</translation> <translation id="8418445294933751433">&ଟ୍ୟାବ୍ ଭାବେ ଦେଖାନ୍ତୁ</translation> <translation id="8419098111404128271">'<ph name="SEARCH_TEXT" />' ପାଇଁ ସନ୍ଧାନ ଫଳାଫଳ</translation> @@ -5637,7 +5632,6 @@ <translation id="8546930481464505581">ସ୍ପର୍ଶ ବାର୍ କଷ୍ଟମାଇଜ୍ କରନ୍ତୁ</translation> <translation id="8547013269961688403">ସମ୍ପୂର୍ଣ୍ଣ ସ୍କ୍ରିନ୍ ମ୍ୟାଗ୍ନିଫାୟର୍ ସକ୍ଷମ କରନ୍ତୁ</translation> <translation id="85486688517848470">ଶୀର୍ଷ-ଧାଡିରେ ଥିବା କୀ'ଗୁଡ଼ିକର ଆଚରଣ ସ୍ୱିଚ୍ କରିବାକୁ ସନ୍ଧାନ କୀ'କୁ ଧରି ରଖନ୍ତୁ</translation> -<translation id="8550165047974571882">ଆପଣ ସମସ୍ତ <ph name="ORIGIN" /> ଟାବ୍ ବନ୍ଦ ନ କରିବା ପର୍ଯ୍ୟନ୍ତ <ph name="ORIGIN" /> <ph name="FOLDERNAME" />ରେ ଫାଇଲଗୁଡ଼ିକ ଏଡିଟ୍ କରିବାକୁ ସକ୍ଷମ ହେବ</translation> <translation id="8551388862522347954">ଲାଇସେନ୍ସ</translation> <translation id="8553342806078037065">ଅନ୍ୟ ଲୋକମାନଙ୍କୁ ପରିଚାଳନା କରନ୍ତୁ</translation> <translation id="8554899698005018844">କୌଣସି ଭାଷା ନାହିଁ</translation>
diff --git a/chrome/app/resources/generated_resources_pa.xtb b/chrome/app/resources/generated_resources_pa.xtb index 732f22a..c665ac5 100644 --- a/chrome/app/resources/generated_resources_pa.xtb +++ b/chrome/app/resources/generated_resources_pa.xtb
@@ -1119,7 +1119,6 @@ <translation id="247949520305900375">ਆਡੀਓ ਸਾਂਝੀ ਕਰੋ</translation> <translation id="2480868415629598489">ਤੁਹਾਡੇ ਵੱਲੋਂ ਕਾਪੀ ਅਤੇ ਪੇਸਟ ਕੀਤੇ ਗਏ ਡਾਟੇ ਨੂੰ ਸੋਧੋ</translation> <translation id="2482878487686419369">ਸੂਚਨਾਵਾਂ</translation> -<translation id="2483610039979585156"><ph name="ORIGIN" /> ਸਾਰੀਆਂ <ph name="ORIGIN" /> ਟੈਬਾਂ ਬੰਦ ਨਾ ਕੀਤੇ ਜਾਣ ਤੱਕ <ph name="FILENAME" /> ਦਾ ਸੰਪਾਦਨ ਕਰ ਸਕੇਗੀ</translation> <translation id="2484959914739448251">ਤੁਹਾਡੇ ਸਾਰੇ ਸਮਕਾਲੀਕਿਰਤ ਡੀਵਾਈਸਾਂ ਅਤੇ ਤੁਹਾਡੇ 'Google ਖਾਤੇ' ਵਿੱਚੋਂ ਬ੍ਰਾਊਜ਼ਿੰਗ ਡਾਟਾ ਕਲੀਅਰ ਕਰਨ ਲਈ, <ph name="BEGIN_LINK" />ਆਪਣਾ ਗੁਪਤ-ਵਾਕਾਂਸ਼ ਦਾਖਲ ਕਰੋ<ph name="END_LINK" />।</translation> <translation id="2485005079599453134">ਪਾਸਵਰਡ ਨੂੰ ਇਸ ਡੀਵਾਈਸ 'ਤੇ ਰੱਖਿਅਤ ਕੀਤਾ ਗਿਆ</translation> <translation id="2485422356828889247">ਅਣਸਥਾਪਤ ਕਰੋ</translation> @@ -1723,7 +1722,6 @@ <translation id="3282568296779691940">Chrome 'ਤੇ ਸਾਈਨ-ਇਨ ਕਰੋ</translation> <translation id="3285322247471302225">ਨਵੀਂ &ਟੈਬ</translation> <translation id="328571385944182268">ਕੀ ਆਪਣੇ ਪਾਸਵਰਡ ਰੱਖਿਅਤ ਕਰਨੇ ਹਨ?</translation> -<translation id="328785681103589998"><ph name="ORIGIN" /> ਸਾਰੀਆਂ <ph name="ORIGIN" /> ਟੈਬਾਂ ਬੰਦ ਨਾ ਕੀਤੇ ਜਾਣ ਤੱਕ <ph name="FILENAME" /> ਨੂੰ ਦੇਖ ਸਕੇਗੀ</translation> <translation id="3288047731229977326">ਵਿਕਾਸਕਾਰ ਮੋਡ ਵਿੱਚ ਚੱਲ ਰਹੀਆਂ ਐਕਸਟੈਂਸ਼ਨਾਂ ਤੁਹਾਡੇ ਕੰਪਿਊਟਰ ਨੂੰ ਨੁਕਸਾਨ ਪਹੁੰਚਾ ਸਕਦੀਆਂ ਹਨ। ਜੇਕਰ ਤੁਸੀਂ ਇੱਕ ਵਿਕਾਸਕਾਰ ਨਹੀਂ ਹੋ, ਤਾਂ ਤੁਹਾਨੂੰ ਸੁਰੱਖਿਅਤ ਰਹਿਣ ਲਈ ਵਿਕਾਸਕਾਰ ਮੋਡ ਵਿੱਚ ਚੱਲ ਰਹੀਆਂ ਇਹਨਾਂ ਐਕਸਟੈਂਸ਼ਨਾਂ ਨੂੰ ਬੰਦ ਕਰਨਾ ਚਾਹੀਦਾ ਹੈ।</translation> <translation id="3289856944988573801">ਅੱਪਡੇਟਾਂ ਦੀ ਜਾਂਚ ਕਰਨ ਲਈ, ਕਿਰਪਾ ਕਰਕੇ ਈਥਰਨੈਟ ਜਾਂ ਵਾਈ-ਫਾਈ ਵਰਤੋ।</translation> <translation id="3290356915286466215">ਅਸੁਰੱਖਿਅਤ</translation> @@ -2412,6 +2410,7 @@ <translation id="4144218403971135344">ਬਿਹਤਰ ਕੁਆਲਿਟੀ ਦਾ ਵੀਡੀਓ ਪ੍ਰਾਪਤ ਕਰਕੇ ਬੈਟਰੀ ਲਾਈਫ਼ ਬਚਾਓ। ਵੀਡੀਓ ਸਿਰਫ਼ ਤੁਹਾਡੀ Cast ਯੋਗ ਬਣਾਈ ਗਈ ਸਕ੍ਰੀਨ 'ਤੇ ਹੀ ਚਲਾਇਆ ਜਾਵੇਗਾ।</translation> <translation id="4146026355784316281">ਹਮੇਸ਼ਾਂ ਸਿਸਟਮ ਵਿਊਅਰ ਨਾਲ ਖੋਲ੍ਹੋ</translation> <translation id="4146785383423576110">ਰੀਸੈੱਟ ਕਰੋ ਅਤੇ ਸਾਫ਼ ਕਰੋ</translation> +<translation id="4147897805161313378">Google ਫ਼ੋਟੋਆਂ</translation> <translation id="4147911968024186208">ਕਿਰਪਾ ਕਰਕੇ ਮੁੜ-ਕੋਸ਼ਿਸ਼ ਕਰੋ। ਜੇਕਰ ਤੁਹਾਨੂੰ ਇਹ ਗੜਬੜ ਦੁਬਾਰਾ ਦਿਖਾਈ ਦਿੰਦੀ ਹੈ ਤਾਂ ਕਿਰਪਾ ਕਰਕੇ ਆਪਣੇ ਸਹਾਇਕ ਪ੍ਰਤੀਨਿਧੀ ਨੂੰ ਸੰਪਰਕ ਕਰੋ।</translation> <translation id="4150201353443180367">ਡਿਸਪਲੇ</translation> <translation id="4152670763139331043">{NUM_TABS,plural, =1{1 ਟੈਬ}one{# ਟੈਬਾਂ}other{# ਟੈਬਾਂ}}</translation> @@ -2731,6 +2730,7 @@ <translation id="4633757335284074492">'Google ਡਰਾਈਵ' ਵਿੱਚ ਬੈਕਅੱਪ ਲਓ। ਕਿਸੇ ਵੇਲੇ ਵੀ ਅਸਾਨੀ ਨਾਲ ਡਾਟਾ ਮੁੜ-ਬਹਾਲ ਕਰੋ ਜਾਂ ਡੀਵਾਈਸਾਂ ਵਿਚਾਲੇ ਅਦਲਾ-ਬਦਲੀ ਕਰੋ। ਇਸ ਬੈਕਅੱਪ ਵਿੱਚ ਐਪ ਡਾਟਾ ਸ਼ਾਮਲ ਹੈ। ਇਹ ਬੈਕਅੱਪ Google 'ਤੇ ਅੱਪਲੋਡ ਕੀਤੇ ਜਾਂਦੇ ਹਨ ਅਤੇ ਤੁਹਾਡੇ ਬੱਚੇ ਦੇ Google ਖਾਤੇ ਦੇ ਪਾਸਵਰਡ ਦੀ ਵਰਤੋਂ ਕਰਕੇ ਇਨਕ੍ਰਿਪਟ ਕੀਤੇ ਜਾਂਦੇ ਹਨ।</translation> <translation id="4634771451598206121">ਦੁਬਾਰਾ ਸਾਈਨ-ਇਨ ਕਰੋ…</translation> <translation id="4635398712689569051"><ph name="PAGE_NAME" /> ਮਹਿਮਾਨ ਵਰਤੋਂਕਾਰਾਂ ਲਈ ਉਪਲਬਧ ਨਹੀਂ ਹੈ।</translation> +<translation id="4636930964841734540">ਜਾਣਕਾਰੀ</translation> <translation id="4637083375689622795">ਹੋਰ ਕਾਰਵਾਈਆਂ, <ph name="EMAIL" /></translation> <translation id="4638930039313743000">ADB ਡੀਬੱਗਿੰਗ ਨੂੰ ਚਾਲੂ ਕਰੋ</translation> <translation id="4641539339823703554">Chrome ਸਿਸਟਮ ਸਮਾਂ ਸੈੱਟ ਨਹੀਂ ਕਰ ਸਕਿਆ। ਕਿਰਪਾ ਕਰਕੇ ਹੇਠਾਂ ਦਿੱਤਾ ਸਮਾਂ ਦੇਖੋ ਅਤੇ ਜੇਕਰ ਲੋੜ ਹੋਵੇ ਤਾਂ ਇਸਨੂੰ ਠੀਕ ਕਰੋ।</translation> @@ -2810,7 +2810,6 @@ <translation id="4750394297954878236">ਸੁਝਾਅ</translation> <translation id="475088594373173692">ਪਹਿਲਾ ਵਰਤੋਂਕਾਰ</translation> <translation id="4751476147751820511">ਗਤੀ ਜਾਂ ਰੋਸ਼ਨੀ ਦੇ ਸੈਂਸਰ</translation> -<translation id="4756269098451810636"><ph name="DEVICE_NAME" /> ਤੋਂ ਸਾਂਝਾ ਕੀਤਾ ਚਿੱਤਰ</translation> <translation id="4756378406049221019">ਬੰਦ ਕਰੋ/ਮੁੜ-ਲੋਡ ਕਰੋ</translation> <translation id="4756388243121344051">&ਇਤਿਹਾਸ</translation> <translation id="4759238208242260848">ਡਾਊਨਲੋਡਸ</translation> @@ -3757,7 +3756,6 @@ <translation id="6040852767465482106">ਅਨਾਮ ਪਛਾਣ</translation> <translation id="6041046205544295907"><ph name="BEGIN_PARAGRAPH1" />Google ਦੀ ਟਿਕਾਣਾ ਸੇਵਾ ਤੁਹਾਡੇ ਡੀਵਾਈਸ ਦੇ ਟਿਕਾਣੇ ਦਾ ਅੰਦਾਜ਼ਾ ਲਗਾਉਣ ਵਿੱਚ ਮਦਦ ਕਰਨ ਲਈ ਵਾਈ‑ਫਾਈ, ਮੋਬਾਈਲ ਨੈੱਟਵਰਕਾਂ ਅਤੇ ਸੈਂਸਰਾਂ ਵਰਗੇ ਸਰੋਤਾਂ ਦੀ ਵਰਤੋਂ ਕਰਦੀ ਹੈ।<ph name="END_PARAGRAPH1" /> <ph name="BEGIN_PARAGRAPH2" />ਤੁਸੀਂ ਆਪਣੇ ਡੀਵਾਈਸ 'ਤੇ ਮੁੱਖ ਟਿਕਾਣਾ ਸੈਟਿੰਗ ਨੂੰ ਬੰਦ ਕਰਕੇ ਟਿਕਾਣਾ ਜਾਣਕਾਰੀ ਨੂੰ ਬੰਦ ਕਰ ਸਕਦੇ ਹੋ। ਤੁਸੀਂ ਟਿਕਾਣਾ ਸੈਟਿੰਗਾਂ ਵਿੱਚ ਟਿਕਾਣਾ ਜਾਣਕਾਰੀ ਲਈ ਵਾਈ-ਫਾਈ, ਮੋਬਾਈਲ ਨੈੱਟਵਰਕਾਂ ਅਤੇ ਸੈਂਸਰਾਂ ਦੀ ਵਰਤੋਂ ਨੂੰ ਵੀ ਬੰਦ ਕਰ ਸਕਦੇ ਹੋ।<ph name="END_PARAGRAPH2" /></translation> -<translation id="6041150002191391409"><ph name="ORIGIN" /> ਸਾਰੀਆਂ <ph name="ORIGIN" /> ਟੈਬਾਂ ਬੰਦ ਨਾ ਕੀਤੇ ਜਾਣ ਤੱਕ <ph name="FOLDERNAME" /> ਵਿਚਲੀਆਂ ਫ਼ਾਈਲਾਂ ਨੂੰ ਦੇਖ ਸਕੇਗੀ</translation> <translation id="6041155700700864984">ਪੂਰੀ ਸਕ੍ਰੀਨ ਤੋਂ ਬਾਹਰ ਜਾਓ</translation> <translation id="604124094241169006">ਆਟੋਮੈਟਿਕ</translation> <translation id="6042308850641462728">ਹੋਰ</translation> @@ -4153,7 +4151,6 @@ <translation id="6561726789132298588">ਦਰਜ ਕਰੋ</translation> <translation id="656293578423618167">ਫਾਈਲ ਪਾਥ ਜਾਂ ਨਾਮ ਬਹੁਤ ਜ਼ਿਆਦਾ ਵੱਡਾ ਹੈ। ਕਿਰਪਾ ਕਰਕੇ ਇੱਕ ਛੋਟੇ ਨਾਮ ਨਾਲ ਜਾਂ ਦੂਜੇ ਨਿਰਧਾਰਿਤ ਟਿਕਾਣੇ ਵਿੱਚ ਰੱਖਿਅਤ ਕਰੋ।</translation> <translation id="6563469144985748109">ਤੁਹਾਡੇ ਪ੍ਰਬੰਧਕ ਨੇ ਹਾਲੇ ਇਸ ਦੀ ਮਨਜ਼ੂਰੀ ਨਹੀਂ ਦਿੱਤੀ ਹੈ</translation> -<translation id="6567688344210276845">ਪੰਨਾ ਕਾਰਵਾਈ ਲਈ ਪ੍ਰਤੀਕ <ph name="ICON" /> ਲੋਡ ਨਹੀਂ ਕਰ ਸਕਿਆ।</translation> <translation id="6569934958368283244">ਦੂਜੇ ਲੋਕ</translation> <translation id="657402800789773160">&ਇਹ ਸਫ਼ਾ ਰੀਲੋਡ ਕਰੋ</translation> <translation id="6577284282025554716">ਡਾਊਨਲੋਡ ਰੱਦ ਹੋਇਆ: <ph name="FILE_NAME" /></translation> @@ -4218,7 +4215,6 @@ <translation id="6659594942844771486">ਟੈਬ</translation> <translation id="6664237456442406323">ਅਫ਼ਸੋਸ, ਤੁਹਾਡਾ ਕੰਪਿਊਟਰ ਇੱਕ ਨੁਕਸਦਾਰ ਹਾਰਡਵੇਅਰ ਆਈਡੀ ਨਾਲ ਸੰਰੂਪਿਤ ਕੀਤਾ ਗਿਆ ਹੈ। ਇਹ Chrome OS ਨੂੰ ਨਵੀਆਂ ਸੁਰੱਖਿਆ ਸੁਧਾਈਆਂ ਨਾਲ ਅੱਪਡੇਟ ਕਰਨ ਤੋਂ ਰੋਕਦਾ ਹੈ ਅਤੇ ਤੁਹਾਡਾ ਕੰਪਿਊਟਰ <ph name="BEGIN_BOLD" />ਖਰਾਬ ਹਮਲਿਆਂ ਲਈ ਕਮਜ਼ੋਰ ਹੋ ਸਕਦਾ ਹੈ<ph name="END_BOLD" />।</translation> <translation id="6664774537677393800">ਤੁਹਾਡੇ ਪ੍ਰੋਫ਼ਾਈਲ ਨੂੰ ਖੋਲ੍ਹਣ ਦੌਰਾਨ ਕੋਈ ਗੜਬੜ ਹੋ ਗਈ ਸੀ। ਕਿਰਪਾ ਕਰਕੇ ਸਾਈਨ-ਆਊਟ ਹੋ ਕੇ ਫਿਰ ਦੁਬਾਰਾ ਸਾਈਨ-ਇਨ ਕਰੋ।</translation> -<translation id="6667776121818773738">ਕਿਸੇ ਹੋਰ ਡੀਵਾਈਸ ਤੋਂ ਸਾਂਝਾ ਕੀਤਾ ਚਿੱਤਰ</translation> <translation id="6673391612973410118"><ph name="PRINTER_MAKE_OR_MODEL" /> (USB)</translation> <translation id="667517062706956822">ਕੀ ਤੁਸੀਂ ਚਾਹੁੰਦੇ ਹੋ ਕਿ Google ਇਸ ਪੰਨੇ ਦਾ ਅਨੁਵਾਦ <ph name="SOURCE_LANGUAGE" /> ਤੋਂ <ph name="TARGET_LANGUAGE" /> ਵਿੱਚ ਕਰੇ?</translation> <translation id="6675665718701918026">ਪੁਆਇੰਟਰ ਵਾਲੀ ਡੀਵਾਈਸ ਕੀਤਾ ਗਿਆ</translation> @@ -4839,7 +4835,6 @@ <translation id="7497981768003291373">ਤੁਹਾਡੇ ਕੋਲ ਕੋਈ ਵੀ ਹਾਲੀਆ ਕੈਪਚਰ ਕੀਤੇ WebRTC ਲਿਖਤ ਲੌਗ ਨਹੀਂ ਹਨ।</translation> <translation id="7502658306369382406">IPv6 ਪਤਾ</translation> <translation id="7503191893372251637">Netscape ਪ੍ਰਮਾਣ-ਪੱਤਰ ਪ੍ਰਕਾਰ</translation> -<translation id="7503821294401948377">ਬ੍ਰਾਊਜ਼ਰ ਕਾਰਵਾਈ ਲਈ ਪ੍ਰਤੀਕ <ph name="ICON" /> ਲੋਡ ਨਹੀਂ ਕਰ ਸਕਿਆ।</translation> <translation id="7503985202154027481">ਇਸ ਸਾਈਟ 'ਤੇ ਤੁਹਾਡੇ ਜਾਣ ਦਾ ਰਿਕਾਰਡ ਤੁਹਾਡੀ ਸੁਰੱਖਿਆ ਕੁੰਜੀ ਵਿੱਚ ਰੱਖਿਆ ਜਾਵੇਗਾ।</translation> <translation id="7504293978434250212">ਤੁਹਾਡੀ ਸੰਸਥਾ 50 MB ਤੱਕ ਫ਼ਾਈਲਾਂ ਸਕੈਨ ਕਰ ਸਕਦੀ ਹੈ। ਛੋਟੀ ਫ਼ਾਈਲ ਅੱਪਲੋਡ ਕਰਨ ਦੀ ਕੋਸ਼ਿਸ਼ ਕਰੋ।</translation> <translation id="750509436279396091">ਡਾਊਨਲੋਡਸ ਫੋਲਡਰ ਖੋਲ੍ਹੋ</translation> @@ -5639,7 +5634,6 @@ <translation id="8546930481464505581">ਸਪੱਰਸ਼ ਪੱਟੀ ਨੂੰ ਵਿਉਂਤਬੱਧ ਕਰੋ</translation> <translation id="8547013269961688403">ਪੂਰੀ-ਸਕ੍ਰੀਨ ਵਿਸਤਾਰਕ ਚਾਲੂ ਕਰੋ</translation> <translation id="85486688517848470">ਚੋਟੀ ਦੀ ਕਤਾਰ ਦੀਆਂ ਕੁੰਜੀਆਂ ਦੇ ਵਤੀਰੇ ਦੀ ਅਦਲਾ-ਬਦਲੀ ਕਰਨ ਲਈ ਖੋਜ ਕੁੰਜੀ ਨੂੰ ਦਬਾਈ ਰੱਖੋ</translation> -<translation id="8550165047974571882"><ph name="ORIGIN" /> ਸਾਰੀਆਂ <ph name="ORIGIN" /> ਟੈਬਾਂ ਬੰਦ ਨਾ ਕੀਤੇ ਜਾਣ ਤੱਕ <ph name="FOLDERNAME" /> ਵਿਚਲੀਆਂ ਫ਼ਾਈਲਾਂ ਦਾ ਸੰਪਾਦਨ ਕਰ ਸਕੇਗੀ</translation> <translation id="8551388862522347954">ਲਸੰਸ</translation> <translation id="8553342806078037065">ਹੋਰਾਂ ਲੋਕਾਂ ਦਾ ਪ੍ਰਬੰਧਨ ਕਰੋ</translation> <translation id="8554899698005018844">ਕੋਈ ਭਾਸ਼ਾ ਨਹੀਂ</translation>
diff --git a/chrome/app/resources/generated_resources_pl.xtb b/chrome/app/resources/generated_resources_pl.xtb index a197782..35dbe221e 100644 --- a/chrome/app/resources/generated_resources_pl.xtb +++ b/chrome/app/resources/generated_resources_pl.xtb
@@ -392,7 +392,7 @@ <translation id="1524563461097350801">Nie, dziękuję</translation> <translation id="1525740877599838384">Do określania lokalizacji używaj tylko Wi-Fi</translation> <translation id="152629053603783244">Uruchom ponownie Linuksa</translation> -<translation id="1526335046150927198">Włącz szybkie działanie przewijania na touchpadzie</translation> +<translation id="1526335046150927198">Włącz szybkie przewijanie na touchpadzie</translation> <translation id="1526560967942511387">Dokument bez tytułu</translation> <translation id="1529891865407786369">Źródło zasilania</translation> <translation id="1530838837447122178">Otwórz ustawienia myszy i touchpada</translation> @@ -461,7 +461,7 @@ <translation id="1616206807336925449">To rozszerzenie nie wymaga specjalnych uprawnień.</translation> <translation id="1616298854599875024">Nie można zaimportować rozszerzenia „<ph name="IMPORT_NAME" />”, ponieważ nie jest to moduł udostępniany</translation> <translation id="1618268899808219593">C&entrum pomocy</translation> -<translation id="1620307519959413822">Nieprawidłowe hasło. Spróbuj ponownie lub kliknij Nie pamiętam hasła, by je zresetować.</translation> +<translation id="1620307519959413822">Nieprawidłowe hasło. Spróbuj ponownie lub kliknij „Nie pamiętasz hasła?”, by je zresetować.</translation> <translation id="1620510694547887537">Kamera</translation> <translation id="1623132449929929218">Obrazy są obecnie niedostępne. Aby zobaczyć kolekcje tapet, połącz się ponownie z internetem.</translation> <translation id="1627276047960621195">Deskryptory plików</translation> @@ -680,7 +680,7 @@ <translation id="1887850431809612466">Wersja sprzętu</translation> <translation id="1890674179660343635"><span>Identyfikator: </span><ph name="EXTENSION_ID" /></translation> <translation id="189210018541388520">Otwórz na pełnym ekranie</translation> -<translation id="1892341345406963517">Cześć <ph name="PARENT_NAME" /></translation> +<translation id="1892341345406963517">Cześć, <ph name="PARENT_NAME" /></translation> <translation id="189358972401248634">Inne języki</translation> <translation id="1895252664692693738">Jeszcze <ph name="TIME_LEFT" /></translation> <translation id="1895658205118569222">Wyłączenie</translation> @@ -1120,7 +1120,6 @@ <translation id="247949520305900375">Udostępnij dźwięk</translation> <translation id="2480868415629598489">Modyfikowanie danych, które kopiujesz i wklejasz</translation> <translation id="2482878487686419369">Powiadomienia</translation> -<translation id="2483610039979585156">Witryna <ph name="ORIGIN" /> będzie mogła edytować plik <ph name="FILENAME" />, dopóki nie zamkniesz wszystkich jej kart <ph name="ORIGIN" /></translation> <translation id="2484959914739448251">Aby wyczyścić dane przeglądania ze wszystkich swoich zsynchronizowanych urządzeń i z konta Google, <ph name="BEGIN_LINK" />wpisz hasło<ph name="END_LINK" />.</translation> <translation id="2485005079599453134">Zapisano hasło na tym urządzeniu</translation> <translation id="2485422356828889247">Odinstaluj</translation> @@ -1704,6 +1703,7 @@ <translation id="3264544094376351444">Czcionka bezszeryfowa</translation> <translation id="3264582393905923483">Kontekst</translation> <translation id="3265459715026181080">Zamknij okno</translation> +<translation id="3266274118485960573">Trwa potwierdzanie bezpieczeństwa.</translation> <translation id="3267726687589094446">Dalej zezwalaj na automatyczne pobieranie wielu plików</translation> <translation id="3268451620468152448">Otwarte karty</translation> <translation id="3269069891205016797">Gdy się wylogujesz, twoje dane zostaną usunięte z urządzenia.</translation> @@ -1725,7 +1725,6 @@ <translation id="3282568296779691940">Zaloguj się w Chrome</translation> <translation id="3285322247471302225">Nowa &karta</translation> <translation id="328571385944182268">Zapisywać Twoje hasła?</translation> -<translation id="328785681103589998">Witryna <ph name="ORIGIN" /> będzie mogła wyświetlać plik <ph name="FILENAME" />, dopóki nie zamkniesz wszystkich kart witryny <ph name="ORIGIN" /></translation> <translation id="3288047731229977326">Rozszerzenia działające w trybie dewelopera mogą uszkodzić Twój komputer. Jeśli nie jesteś deweloperem, wyłącz je dla bezpieczeństwa.</translation> <translation id="3289856944988573801">Jeśli chcesz sprawdzić aktualizacje, użyj Ethernetu lub Wi-Fi.</translation> <translation id="3290356915286466215">Niezabezpieczona</translation> @@ -1810,6 +1809,7 @@ <translation id="3412265149091626468">Przejdź do zaznaczenia</translation> <translation id="3413122095806433232">Wystawcy urzędu certyfikacji: <ph name="LOCATION" /></translation> <translation id="3414952576877147120">Rozmiar:</translation> +<translation id="3416468988018290825">Zawsze pokazuj całe adresy URL</translation> <translation id="3420501302812554910">Wymagane jest zresetowanie wewnętrznego klucza bezpieczeństwa</translation> <translation id="3421387094817716717">Kryptografia klucza publicznego oparta na krzywych eliptycznych</translation> <translation id="3422291238483866753">Pytaj, gdy strona chce tworzyć mapę 3D Twojego otoczenia lub śledzić pozycję kamery (zalecane)</translation> @@ -2169,7 +2169,7 @@ <translation id="3838486795898716504">Więcej o <ph name="PAGE_TITLE" /></translation> <translation id="3838543471119263078">Pliki cookie oraz inne dane witryn i wtyczek</translation> <translation id="383891835335927981">Żadna strona nie jest powiększana ani pomniejszana</translation> -<translation id="3839509547554145593">Włącz szybkie działanie przewijania kółkiem myszy</translation> +<translation id="3839509547554145593">Włącz szybkie przewijanie kółkiem myszy</translation> <translation id="3839516600093027468">Zawsze blokuj stronie <ph name="HOST" /> dostęp do schowka</translation> <translation id="3841964634449506551">Nieprawidłowe hasło</translation> <translation id="3842552989725514455">Czcionka szeryfowa</translation> @@ -2414,6 +2414,7 @@ <translation id="4144218403971135344">Lepsza jakość filmów i dłuższy czas pracy na baterii. Filmy będą odtwarzane tylko na ekranie obsługującym Cast.</translation> <translation id="4146026355784316281">Zawsze otwieraj w przeglądarce systemowej</translation> <translation id="4146785383423576110">Resetowanie komputera i czyszczenie danych</translation> +<translation id="4147897805161313378">Zdjęcia Google</translation> <translation id="4147911968024186208">Spróbuj jeszcze raz. Jeśli ten błąd pojawi się ponownie, skontaktuj się z przedstawicielem pomocy.</translation> <translation id="4150201353443180367">Wyświetlacz</translation> <translation id="4152670763139331043">{NUM_TABS,plural, =1{1 karta}few{# karty}many{# kart}other{# karty}}</translation> @@ -2733,6 +2734,7 @@ <translation id="4633757335284074492">Twórz kopie zapasowe na Dysku Google. W dowolnej chwili możesz w prosty sposób przywrócić dane lub używać ich na innym urządzeniu. Kopia zapasowa zawiera dane aplikacji. Kopie zapasowe są szyfrowane za pomocą hasła do konta Google Twojego dziecka i przesyłane do Google.</translation> <translation id="4634771451598206121">Zaloguj się ponownie</translation> <translation id="4635398712689569051">Strona <ph name="PAGE_NAME" /> jest niedostępna dla gości.</translation> +<translation id="4636930964841734540">Informacje</translation> <translation id="4637083375689622795">Więcej czynności, <ph name="EMAIL" /></translation> <translation id="4638930039313743000">Włącz debugowanie ADB</translation> <translation id="4641539339823703554">Chrome nie może ustawić czasu systemowego. Sprawdź i w razie potrzeby popraw godzinę poniżej.</translation> @@ -2812,7 +2814,6 @@ <translation id="4750394297954878236">Sugestie</translation> <translation id="475088594373173692">Pierwszy użytkownik</translation> <translation id="4751476147751820511">Czujniki ruchu lub światła</translation> -<translation id="4756269098451810636">Obraz udostępniony z urządzenia <ph name="DEVICE_NAME" /></translation> <translation id="4756378406049221019">Zatrzymaj / załaduj ponownie</translation> <translation id="4756388243121344051">&Historia</translation> <translation id="4759238208242260848">Pobrane pliki</translation> @@ -3759,7 +3760,6 @@ <translation id="6040852767465482106">Tożsamość anonimowa</translation> <translation id="6041046205544295907"><ph name="BEGIN_PARAGRAPH1" />Usługa lokalizacyjna Google używa takich źródeł jak sieci Wi-Fi, sieci komórkowe i czujniki, by łatwiej określać lokalizację Twojego urządzenia.<ph name="END_PARAGRAPH1" /> <ph name="BEGIN_PARAGRAPH2" />Aby wyłączyć tę usługę, wyłącz główne ustawienie Lokalizacja na urządzeniu. Możesz też wyłączyć w ustawieniach lokalizacji korzystanie z sieci Wi‑Fi, sieci komórkowych i czujników przy określaniu lokalizacji.<ph name="END_PARAGRAPH2" /></translation> -<translation id="6041150002191391409">Witryna <ph name="ORIGIN" /> będzie mogła wyświetlać pliki w folderze <ph name="FOLDERNAME" />, dopóki nie zamkniesz wszystkich kart witryny <ph name="ORIGIN" /></translation> <translation id="6041155700700864984">Zamknij pełny ekran</translation> <translation id="604124094241169006">Automatyczne</translation> <translation id="6042308850641462728">Więcej</translation> @@ -4155,7 +4155,6 @@ <translation id="6561726789132298588">wpisz</translation> <translation id="656293578423618167">Ścieżka do pliku lub jego nazwa jest zbyt długa. Zapisz pod krótszą nazwą lub w innej lokalizacji.</translation> <translation id="6563469144985748109">Twój menedżer jeszcze na to nie zezwolił</translation> -<translation id="6567688344210276845">Nie można wczytać ikony „<ph name="ICON" />” dla czynności wykonywanej na stronie.</translation> <translation id="6569934958368283244">Inne osoby</translation> <translation id="657402800789773160">&Załaduj ponownie tę stronę</translation> <translation id="6577284282025554716">Anulowano pobieranie: <ph name="FILE_NAME" /></translation> @@ -4167,6 +4166,7 @@ <translation id="6586451623538375658">Zamień główny przycisk myszy</translation> <translation id="6586604979641883411">Aby uaktualnić Linuksa, potrzeba co najmniej <ph name="REQUIRED_SPACE" /> wolnego miejsca na dysku. Zwolnij miejsce na urządzeniu i spróbuj ponownie.</translation> <translation id="6588043302623806746">Użyj bezpiecznego serwera DNS</translation> +<translation id="659005207229852190">Potwierdzenie bezpieczeństwa zostało wykonane.</translation> <translation id="6590458744723262880">Zmień nazwę folderu</translation> <translation id="6592267180249644460">Zapisany log WebRTC: <ph name="WEBRTC_LOG_CAPTURE_TIME" /></translation> <translation id="6592808042417736307">Twój odcisk został zarejestrowany</translation> @@ -4220,7 +4220,6 @@ <translation id="6659594942844771486">Karta</translation> <translation id="6664237456442406323">Twój komputer jest skonfigurowany przy użyciu błędnie sformatowanego identyfikatora sprzętu. Ta sytuacja uniemożliwia zaktualizowanie systemu operacyjnego Chrome za pomocą najnowszych poprawek zabezpieczeń, a komputer <ph name="BEGIN_BOLD" />może być narażony na złośliwe ataki<ph name="END_BOLD" />.</translation> <translation id="6664774537677393800">Podczas otwierania Twojego profilu coś poszło nie tak. Wyloguj się i ponownie zaloguj.</translation> -<translation id="6667776121818773738">Obraz udostępniony z innego urządzenia</translation> <translation id="6673391612973410118"><ph name="PRINTER_MAKE_OR_MODEL" /> (USB)</translation> <translation id="667517062706956822">Chcesz zobaczyć tłumaczenie Google tej strony z języka <ph name="SOURCE_LANGUAGE" /> na <ph name="TARGET_LANGUAGE" />?</translation> <translation id="6675665718701918026">Podłączono urządzenie wskazujące</translation> @@ -4841,7 +4840,6 @@ <translation id="7497981768003291373">Nie ma zapisanych ostatnio logów tekstowych WebRTC.</translation> <translation id="7502658306369382406">Adres IPv6</translation> <translation id="7503191893372251637">Typ certyfikatu firmy Netscape</translation> -<translation id="7503821294401948377">Nie można wczytać ikony „<ph name="ICON" />” dla czynności wykonywanej w przeglądarce.</translation> <translation id="7503985202154027481">Wizyta na tej stronie zostanie zarejestrowana na Twoim kluczu bezpieczeństwa.</translation> <translation id="7504293978434250212">Twoja organizacja może skanować pliki, których rozmiar nie przekracza 50 MB. Prześlij mniejszy plik.</translation> <translation id="750509436279396091">Otwórz folder pobierania</translation> @@ -5102,7 +5100,7 @@ <ph name="BEGIN_BOLD" />Uwaga:<ph name="END_BOLD" /> podczas tego procesu system uruchomi się ponownie.</translation> <translation id="7828731929332799387">Spowoduje to usunięcie wszystkich plików cookie i danych witryn dostępnych w kontekście witryn innych firm. Czy chcesz kontynuować?</translation> <translation id="7829298379596169484">Otwieram wejście audio</translation> -<translation id="7829877209233347340">Poproś rodzica, by się zalogował i zezwolił na utworzenie konta szkolnego.</translation> +<translation id="7829877209233347340">Poproś rodzica, by się zalogował i zezwolił na dodanie konta szkolnego</translation> <translation id="7830594666202422257">Podłącz do Linuksa</translation> <translation id="7831491651892296503">Podczas konfigurowania sieci wystąpił błąd</translation> <translation id="7831754656372780761"><ph name="TAB_TITLE" /> <ph name="EMOJI_MUTING" /></translation> @@ -5429,6 +5427,7 @@ <translation id="8249672078237421304">Proponuj tłumaczenie stron w obcych językach</translation> <translation id="8251441930213048644">Odśwież teraz</translation> <translation id="8251578425305135684">Usunięto miniaturę.</translation> +<translation id="825238165904109940">Zawsze pokazuj całe adresy URL</translation> <translation id="8252569384384439529">Przesyłam…</translation> <translation id="8253198102038551905">Kliknij „+”, by zobaczyć właściwości sieci</translation> <translation id="8254954272268479918">Wyłącz Linuksa (Beta)</translation> @@ -5644,7 +5643,6 @@ <translation id="8546930481464505581">Dostosuj pasek dotykowy</translation> <translation id="8547013269961688403">Włącz lupę pełnego ekranu</translation> <translation id="85486688517848470">Przytrzymaj klawisz wyszukiwania, by zmienić działanie klawiszy z górnego rzędu</translation> -<translation id="8550165047974571882">Witryna <ph name="ORIGIN" /> będzie mogła edytować pliki w folderze <ph name="FOLDERNAME" />, dopóki nie zamkniesz wszystkich jej kart <ph name="ORIGIN" /></translation> <translation id="8551388862522347954">Licencje</translation> <translation id="8553342806078037065">Zarządzaj innymi osobami</translation> <translation id="8554899698005018844">Brak języka</translation> @@ -6148,7 +6146,7 @@ <translation id="9203398526606335860">&Profilowanie włączone</translation> <translation id="9203904171912129171">Wybierz urządzenie</translation> <translation id="9203962528777363226">Administrator tego urządzenia wyłączył możliwość dodawania nowych użytkowników</translation> -<translation id="9209689095351280025">Strony nie mogą używać plików cookie śledzących, co robisz w sieci.</translation> +<translation id="9209689095351280025">Strony nie mogą używać plików cookie śledzących, co robisz w sieci</translation> <translation id="9211177926627870898">Wymagana aktualizacja</translation> <translation id="9214520840402538427">Upłynął limit czasu inicjowania atrybutów instalacyjnych. Skontaktuj się z przedstawicielem obsługi klienta.</translation> <translation id="9214695392875603905">Babeczka</translation>
diff --git a/chrome/app/resources/generated_resources_pt-BR.xtb b/chrome/app/resources/generated_resources_pt-BR.xtb index 12d9d51..613b90a 100644 --- a/chrome/app/resources/generated_resources_pt-BR.xtb +++ b/chrome/app/resources/generated_resources_pt-BR.xtb
@@ -1120,7 +1120,6 @@ <translation id="247949520305900375">Compartilhar áudio</translation> <translation id="2480868415629598489">Modificar os dados que você copia e cola</translation> <translation id="2482878487686419369">Notificações</translation> -<translation id="2483610039979585156"><ph name="ORIGIN" /> poderá editar <ph name="FILENAME" /> até que você feche todas as guias de <ph name="ORIGIN" /></translation> <translation id="2484959914739448251">Para limpar os dados de navegação de todos os dispositivos sincronizados e da sua Conta do Google, <ph name="BEGIN_LINK" />digite sua senha longa<ph name="END_LINK" />.</translation> <translation id="2485005079599453134">Senha salva neste dispositivo</translation> <translation id="2485422356828889247">Desinstalar</translation> @@ -1704,6 +1703,7 @@ <translation id="3264544094376351444">Fonte Sans-Serif</translation> <translation id="3264582393905923483">Contexto</translation> <translation id="3265459715026181080">Fechar janela</translation> +<translation id="3266274118485960573">A "confirmação de segurança" está sendo executada.</translation> <translation id="3267726687589094446">Continuar permitindo download automático de vários arquivos</translation> <translation id="3268451620468152448">Guias abertas</translation> <translation id="3269069891205016797">Suas informações serão removidas do dispositivo quando você sair da sua conta.</translation> @@ -1725,7 +1725,6 @@ <translation id="3282568296779691940">Fazer login no Google Chrome</translation> <translation id="3285322247471302225">Nova &guia</translation> <translation id="328571385944182268">Salvar senhas?</translation> -<translation id="328785681103589998"><ph name="ORIGIN" /> poderá ver <ph name="FILENAME" /> até que você feche todas as guias de <ph name="ORIGIN" /></translation> <translation id="3288047731229977326">Extensões executadas no modo de desenvolvedor podem prejudicar o computador. Se você não for desenvolvedor, para sua segurança, desative essas extensões que estão sendo executadas no modo de desenvolvedor.</translation> <translation id="3289856944988573801">Para verificar se há atualizações, utilize Ethernet ou Wi-Fi.</translation> <translation id="3290356915286466215">Não protegida</translation> @@ -1810,6 +1809,7 @@ <translation id="3412265149091626468">Ir para a seleção</translation> <translation id="3413122095806433232">Emissores de autoridades de certificação: <ph name="LOCATION" /></translation> <translation id="3414952576877147120">Tamanho:</translation> +<translation id="3416468988018290825">Sempre mostrar URLs completos</translation> <translation id="3420501302812554910">A chave de segurança interna precisa ser redefinida</translation> <translation id="3421387094817716717">Chave pública de curva elíptica</translation> <translation id="3422291238483866753">Perguntar quando um site quiser criar um mapa 3D dos seus arredores ou acompanhar a posição da câmera (recomendado)</translation> @@ -2414,6 +2414,7 @@ <translation id="4144218403971135344">Tenha uma melhor qualidade de vídeo e economize bateria. Os vídeos serão reproduzidos apenas na tela compatível com Cast.</translation> <translation id="4146026355784316281">Sempre abrir com visualizador do sistema</translation> <translation id="4146785383423576110">Redefinir e limpar</translation> +<translation id="4147897805161313378">Google Fotos</translation> <translation id="4147911968024186208">Tente novamente. Se o erro se repetir, entre em contato com seu representante de suporte.</translation> <translation id="4150201353443180367">Exibição</translation> <translation id="4152670763139331043">{NUM_TABS,plural, =1{1 guia}one{# guias}other{# guias}}</translation> @@ -2733,6 +2734,7 @@ <translation id="4633757335284074492">Fazer backup no Google Drive Restaure dados ou troque de dispositivo a qualquer momento com facilidade. O backup inclui dados do app. Os backups são enviados ao Google e criptografados usando a senha da Conta do Google da criança.</translation> <translation id="4634771451598206121">Fazer login novamente...</translation> <translation id="4635398712689569051"><ph name="PAGE_NAME" /> não está disponível para usuários visitantes.</translation> +<translation id="4636930964841734540">Informações</translation> <translation id="4637083375689622795">Mais ações, <ph name="EMAIL" /></translation> <translation id="4638930039313743000">Ativar depuração do adb</translation> <translation id="4641539339823703554">Não foi possível para o Google Chrome configurar a hora do sistema. Verifique a hora abaixo e corrija-a, se necessário.</translation> @@ -2812,7 +2814,6 @@ <translation id="4750394297954878236">Sugestões</translation> <translation id="475088594373173692">Primeiro usuário</translation> <translation id="4751476147751820511">Sensores de luz ou movimento</translation> -<translation id="4756269098451810636">Imagem compartilhada do <ph name="DEVICE_NAME" /></translation> <translation id="4756378406049221019">Parar/Recarregar</translation> <translation id="4756388243121344051">&Histórico</translation> <translation id="4759238208242260848">Downloads</translation> @@ -3760,7 +3761,6 @@ <translation id="6040852767465482106">Identidade anônima</translation> <translation id="6041046205544295907"><ph name="BEGIN_PARAGRAPH1" />O serviço de localização do Google usa fontes como redes móveis, Wi‑Fi e sensores para ajudar a estimar o local do seu dispositivo.<ph name="END_PARAGRAPH1" /> <ph name="BEGIN_PARAGRAPH2" />É possível desativar esse serviço desativando a configuração de localização principal no dispositivo. Nessa configuração, você também pode desativar o uso de redes móveis, Wi‑Fi e sensores de local.<ph name="END_PARAGRAPH2" /></translation> -<translation id="6041150002191391409"><ph name="ORIGIN" /> poderá ver os arquivos na pasta <ph name="FOLDERNAME" /> até que você feche todas as guias de <ph name="ORIGIN" /></translation> <translation id="6041155700700864984">Sair da Tela inteira</translation> <translation id="604124094241169006">Automático</translation> <translation id="6042308850641462728">Mais</translation> @@ -4157,7 +4157,6 @@ <translation id="6561726789132298588">enter</translation> <translation id="656293578423618167">O caminho ou nome do arquivo é muito longo. Salve com um nome mais curto ou em outro local.</translation> <translation id="6563469144985748109">Seu administrador ainda não o aprovou</translation> -<translation id="6567688344210276845">Não foi possível carregar o ícone "<ph name="ICON" />" para a ação da página.</translation> <translation id="6569934958368283244">Outras pessoas</translation> <translation id="657402800789773160">&Recarregar esta página</translation> <translation id="6577284282025554716">Download cancelado: <ph name="FILE_NAME" /></translation> @@ -4169,6 +4168,7 @@ <translation id="6586451623538375658">Trocar botão principal do mouse</translation> <translation id="6586604979641883411">É necessário ter pelo menos <ph name="REQUIRED_SPACE" /> de espaço livre em disco para fazer upgrade do Linux. Libere espaço no seu dispositivo e tente novamente.</translation> <translation id="6588043302623806746">Usar DNS seguro</translation> +<translation id="659005207229852190">A "confirmação de segurança" foi concluída.</translation> <translation id="6590458744723262880">Renomear pasta</translation> <translation id="6592267180249644460">Horário da captura do registro WebRTC: <ph name="WEBRTC_LOG_CAPTURE_TIME" /></translation> <translation id="6592808042417736307">Impressão digital capturada</translation> @@ -4222,7 +4222,6 @@ <translation id="6659594942844771486">Guia</translation> <translation id="6664237456442406323">Infelizmente, seu computador está configurado com um ID de hardware mal formado. Isso impede que o Chrome OS seja atualizado com as correções de segurança mais recentes e, por isso, seu computador <ph name="BEGIN_BOLD" />pode ficar vulnerável a ataques maliciosos<ph name="END_BOLD" />.</translation> <translation id="6664774537677393800">Ocorreu um erro ao abrir seu perfil. Saia da conta e faça login novamente.</translation> -<translation id="6667776121818773738">Imagem compartilhada de outro dispositivo</translation> <translation id="6673391612973410118"><ph name="PRINTER_MAKE_OR_MODEL" /> (USB)</translation> <translation id="667517062706956822">Quer que o Google traduza esta página de <ph name="SOURCE_LANGUAGE" /> para <ph name="TARGET_LANGUAGE" />?</translation> <translation id="6675665718701918026">Dispositivo apontador conectado</translation> @@ -4843,7 +4842,6 @@ <translation id="7497981768003291373">Você não tem nenhum registro de texto WebRTC capturado recentemente.</translation> <translation id="7502658306369382406">Endereço IPv6</translation> <translation id="7503191893372251637">Tipo de certificado do Netscape</translation> -<translation id="7503821294401948377">Não foi possível carregar o ícone "<ph name="ICON" />" para a ação do navegador.</translation> <translation id="7503985202154027481">Um registro da visita a este site será mantido na sua chave de segurança.</translation> <translation id="7504293978434250212">Sua organização pode verificar arquivos de até 50 MB. Tente fazer upload de um arquivo menor.</translation> <translation id="750509436279396091">Abrir pasta de downloads</translation> @@ -5431,6 +5429,7 @@ <translation id="8249672078237421304">Sugerir a tradução de páginas que não estão em um idioma que você conheça</translation> <translation id="8251441930213048644">Atualizar agora</translation> <translation id="8251578425305135684">Miniatura removida.</translation> +<translation id="825238165904109940">Sempre mostrar URLs completos</translation> <translation id="8252569384384439529">Fazendo upload…</translation> <translation id="8253198102038551905">Clique em "+" para ver as propriedades da rede</translation> <translation id="8254954272268479918">Desligar o Linux (Beta)</translation> @@ -5646,7 +5645,6 @@ <translation id="8546930481464505581">Personalizar barra de toque</translation> <translation id="8547013269961688403">Ativar lupa de tela cheia</translation> <translation id="85486688517848470">Mantenha pressionada a tecla "Pesquisar" para alternar o comportamento das teclas de função</translation> -<translation id="8550165047974571882"><ph name="ORIGIN" /> poderá editar arquivos na pasta <ph name="FOLDERNAME" /> até que você feche todas as guias de <ph name="ORIGIN" /></translation> <translation id="8551388862522347954">Licenças</translation> <translation id="8553342806078037065">Gerenciar outras pessoas</translation> <translation id="8554899698005018844">Sem idioma</translation>
diff --git a/chrome/app/resources/generated_resources_pt-PT.xtb b/chrome/app/resources/generated_resources_pt-PT.xtb index 71b57ccf..4776fad 100644 --- a/chrome/app/resources/generated_resources_pt-PT.xtb +++ b/chrome/app/resources/generated_resources_pt-PT.xtb
@@ -1119,7 +1119,6 @@ <translation id="247949520305900375">Partilhar áudio</translation> <translation id="2480868415629598489">Modificar os dados que copia e cola</translation> <translation id="2482878487686419369">Notificações</translation> -<translation id="2483610039979585156"><ph name="ORIGIN" /> poderá editar o ficheiro <ph name="FILENAME" /> até fechar todos os separadores de <ph name="ORIGIN" />.</translation> <translation id="2484959914739448251">Para limpar os dados de navegação de todos os seus dispositivos sincronizados e da sua Conta Google, <ph name="BEGIN_LINK" />introduza a sua frase de acesso<ph name="END_LINK" />.</translation> <translation id="2485005079599453134">Palavra-passe guardada neste dispositivo</translation> <translation id="2485422356828889247">Desinstalar</translation> @@ -1725,7 +1724,6 @@ <translation id="3282568296779691940">Iniciar sessão no Chrome</translation> <translation id="3285322247471302225">Novo &Separador</translation> <translation id="328571385944182268">Pretende guardar as suas palavras-passe?</translation> -<translation id="328785681103589998"><ph name="ORIGIN" /> poderá ver o ficheiro <ph name="FILENAME" /> até fechar todos os separadores de <ph name="ORIGIN" />.</translation> <translation id="3288047731229977326">As extensões que funcionam no modo de programador podem danificar o seu computador. Se não é programador, deverá desativar as extensões que sejam executadas neste modo para se manter protegido.</translation> <translation id="3289856944988573801">Para verificar se existem atualizações, utilize Ethernet ou Wi-Fi.</translation> <translation id="3290356915286466215">Não protegida</translation> @@ -2414,6 +2412,7 @@ <translation id="4144218403971135344">Obtenha uma melhor qualidade de vídeo e poupe autonomia da bateria. O vídeo é reproduzido apenas no seu ecrã compatível com o Cast.</translation> <translation id="4146026355784316281">Abrir sempre com o visualizador do sistema</translation> <translation id="4146785383423576110">Repor e limpar</translation> +<translation id="4147897805161313378">Google Fotos</translation> <translation id="4147911968024186208">Tente novamente. Se vir novamente este erro, contacte o seu representante do apoio técnico.</translation> <translation id="4150201353443180367">Visualização</translation> <translation id="4152670763139331043">{NUM_TABS,plural, =1{1 separador}other{# separadores}}</translation> @@ -2733,6 +2732,7 @@ <translation id="4633757335284074492">Faça uma cópia de segurança para o Google Drive. Restaure facilmente os dados ou troque de dispositivo em qualquer altura. Esta cópia de segurança inclui dados de apps. As cópias de segurança são carregadas para a Google e encriptadas com a palavra-passe da Conta Google da criança.</translation> <translation id="4634771451598206121">Iniciar sessão novamente...</translation> <translation id="4635398712689569051">A página <ph name="PAGE_NAME" /> não está disponível para os utilizadores convidados.</translation> +<translation id="4636930964841734540">Informações</translation> <translation id="4637083375689622795">Mais ações, <ph name="EMAIL" /></translation> <translation id="4638930039313743000">Ativar a depuração do adb</translation> <translation id="4641539339823703554">Não foi possível ao Chrome definir a hora do sistema. Verifique as horas abaixo e corrija se necessário.</translation> @@ -2812,7 +2812,6 @@ <translation id="4750394297954878236">Sugestões</translation> <translation id="475088594373173692">Primeiro utilizador</translation> <translation id="4751476147751820511">Sensores de movimento ou de luz</translation> -<translation id="4756269098451810636">Imagem partilhada a partir do <ph name="DEVICE_NAME" /></translation> <translation id="4756378406049221019">Parar/atualizar</translation> <translation id="4756388243121344051">&Histórico</translation> <translation id="4759238208242260848">Transferências</translation> @@ -3760,7 +3759,6 @@ <translation id="6040852767465482106">Identidade anónima</translation> <translation id="6041046205544295907"><ph name="BEGIN_PARAGRAPH1" />O serviço de localização da Google utiliza fontes como as redes Wi‑Fi, as redes móveis e os sensores para ajudar a calcular a localização do seu dispositivo.<ph name="END_PARAGRAPH1" /> <ph name="BEGIN_PARAGRAPH2" />Pode desativar a Localização ao desativar a definição de Localização principal no dispositivo. Também pode desativar a utilização das redes Wi-Fi, das redes móveis e dos sensores para fins de localização nas definições de localização.<ph name="END_PARAGRAPH2" /></translation> -<translation id="6041150002191391409"><ph name="ORIGIN" /> irá conseguir ver ficheiros na pasta <ph name="FOLDERNAME" /> até fechar todos os separadores de <ph name="ORIGIN" />.</translation> <translation id="6041155700700864984">Sair do ecrã inteiro</translation> <translation id="604124094241169006">Automático</translation> <translation id="6042308850641462728">Mais</translation> @@ -4156,7 +4154,6 @@ <translation id="6561726789132298588">introduzir</translation> <translation id="656293578423618167">O caminho ou nome do ficheiro é demasiado longo. Guarde com um nome mais curto ou noutra localização.</translation> <translation id="6563469144985748109">O seu gestor ainda não o aprovou</translation> -<translation id="6567688344210276845">Não foi possível carregar o ícone "<ph name="ICON" />" para a ação da página.</translation> <translation id="6569934958368283244">Outras pessoas</translation> <translation id="657402800789773160">&Recarregar esta página</translation> <translation id="6577284282025554716">Transferência cancelada: <ph name="FILE_NAME" /></translation> @@ -4221,7 +4218,6 @@ <translation id="6659594942844771486">Separador</translation> <translation id="6664237456442406323">Infelizmente, o seu computador está configurado com um ID de hardware formatado incorretamente. Este facto impede que o Chrome OS faça a atualização das últimas correções de segurança e o seu computador <ph name="BEGIN_BOLD" />pode estar vulnerável a ataques maliciosos<ph name="END_BOLD" />.</translation> <translation id="6664774537677393800">Ocorreu um erro ao abrir o seu perfil. Termine sessão e inicie-a novamente.</translation> -<translation id="6667776121818773738">Imagem partilhada a partir de outro dispositivo</translation> <translation id="6673391612973410118"><ph name="PRINTER_MAKE_OR_MODEL" /> (USB)</translation> <translation id="667517062706956822">Pretende que o Google traduza esta página de <ph name="SOURCE_LANGUAGE" /> para <ph name="TARGET_LANGUAGE" />?</translation> <translation id="6675665718701918026">Dispositivo apontador ligado</translation> @@ -4842,7 +4838,6 @@ <translation id="7497981768003291373">Não existem registos de textos WebRTC capturados recentemente.</translation> <translation id="7502658306369382406">Endereço IPv6</translation> <translation id="7503191893372251637">Tipo de certificado Netscape</translation> -<translation id="7503821294401948377">Não foi possível carregar o ícone "<ph name="ICON" />" para a ação do navegador.</translation> <translation id="7503985202154027481">É mantido um registo da sua visita a este site na sua chave de segurança.</translation> <translation id="7504293978434250212">A sua entidade pode analisar ficheiros até 50 MB. Experimente carregar um ficheiro mais pequeno.</translation> <translation id="750509436279396091">Abrir a pasta de transferências</translation> @@ -5644,7 +5639,6 @@ <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="8550165047974571882"><ph name="ORIGIN" /> irá conseguir editar ficheiros na pasta <ph name="FOLDERNAME" /> até fechar todos os separadores de <ph name="ORIGIN" />.</translation> <translation id="8551388862522347954">Licenças</translation> <translation id="8553342806078037065">Gerir outras pessoas</translation> <translation id="8554899698005018844">Nenhum idioma</translation>
diff --git a/chrome/app/resources/generated_resources_ro.xtb b/chrome/app/resources/generated_resources_ro.xtb index 38b5ee6a..26a9846c 100644 --- a/chrome/app/resources/generated_resources_ro.xtb +++ b/chrome/app/resources/generated_resources_ro.xtb
@@ -1120,7 +1120,6 @@ <translation id="247949520305900375">Trimite conținutul audio</translation> <translation id="2480868415629598489">Modifică datele pe care le copiezi și le inserezi</translation> <translation id="2482878487686419369">Notificări</translation> -<translation id="2483610039979585156"><ph name="ORIGIN" /> va putea edita <ph name="FILENAME" /> până când închizi toate filele <ph name="ORIGIN" /></translation> <translation id="2484959914739448251">Pentru a șterge datele de navigare de pe toate dispozitivele sincronizate și din Contul Google, <ph name="BEGIN_LINK" />introdu expresia de acces<ph name="END_LINK" />.</translation> <translation id="2485005079599453134">Parola s-a salvat pe acest dispozitiv</translation> <translation id="2485422356828889247">Dezinstalează</translation> @@ -1725,7 +1724,6 @@ <translation id="3282568296779691940">Conectează-te la Chrome</translation> <translation id="3285322247471302225">Filă &nouă</translation> <translation id="328571385944182268">Salvezi parolele?</translation> -<translation id="328785681103589998"><ph name="ORIGIN" /> va putea vedea <ph name="FILENAME" /> până când închizi toate filele <ph name="ORIGIN" /></translation> <translation id="3288047731229977326">Extensiile care rulează în modul pentru dezvoltatori pot afecta computerul. Dacă nu sunteți dezvoltator, se recomandă să dezactivați aceste extensii, pentru siguranță.</translation> <translation id="3289856944988573801">Pentru a verifica dacă există actualizări, utilizați Ethernet sau Wi-Fi.</translation> <translation id="3290356915286466215">Nesecurizată</translation> @@ -2414,6 +2412,7 @@ <translation id="4144218403971135344">Obține videoclipuri de o calitate mai bună și mărește autonomia bateriei. Videoclipul va fi redat numai pe un ecran compatibil cu Cast.</translation> <translation id="4146026355784316281">Deschide întotdeauna cu Utilitarul de vizualizare al sistemului</translation> <translation id="4146785383423576110">Resetează și curăță</translation> +<translation id="4147897805161313378">Google Foto</translation> <translation id="4147911968024186208">Reîncearcă. Dacă vezi această eroare din nou, contactează reprezentantul de asistență.</translation> <translation id="4150201353443180367">Ecran</translation> <translation id="4152670763139331043">{NUM_TABS,plural, =1{O filă}few{# file}other{# de file}}</translation> @@ -2733,6 +2732,7 @@ <translation id="4633757335284074492">Fă backup în Google Drive. Restabilește datele sau schimbă dispozitivul cu ușurință, în orice moment. Acest backup include datele aplicațiilor. Backupurile sunt încărcate pe serverele Google și sunt criptate folosind parola pentru Contul Google al copilului tău.</translation> <translation id="4634771451598206121">Conectați-vă din nou...</translation> <translation id="4635398712689569051"><ph name="PAGE_NAME" /> nu este disponibilă pentru utilizatorii invitați.</translation> +<translation id="4636930964841734540">Informații</translation> <translation id="4637083375689622795">Mai multe acțiuni, <ph name="EMAIL" /></translation> <translation id="4638930039313743000">Activează remedierea erorilor prin ADB</translation> <translation id="4641539339823703554">Chrome nu a reușit să seteze ora sistemului. Verificați ora de mai jos și corectați-o dacă este necesar.</translation> @@ -2812,7 +2812,6 @@ <translation id="4750394297954878236">Sugestii</translation> <translation id="475088594373173692">Primul utilizator</translation> <translation id="4751476147751820511">Senzori de mișcare sau de lumină</translation> -<translation id="4756269098451810636">Imagine trimisă de pe <ph name="DEVICE_NAME" /></translation> <translation id="4756378406049221019">Oprește/Reîncarcă</translation> <translation id="4756388243121344051">&Istoric</translation> <translation id="4759238208242260848">Descărcări</translation> @@ -3759,7 +3758,6 @@ <translation id="6040852767465482106">Identitate anonimă</translation> <translation id="6041046205544295907"><ph name="BEGIN_PARAGRAPH1" />Serviciul de localizare Google folosește surse precum rețelele Wi-Fi și mobile și senzori pentru a ajuta la estimarea locației dispozitivului tău.<ph name="END_PARAGRAPH1" /> <ph name="BEGIN_PARAGRAPH2" />Poți dezactiva Locația oprind setarea principală privind locația de pe dispozitivul tău. Poți dezactiva și folosirea Wi-Fi, a rețelelor mobile și a senzorilor pentru localizare din setările privind locația.<ph name="END_PARAGRAPH2" /></translation> -<translation id="6041150002191391409"><ph name="ORIGIN" /> va putea vedea fișierele din <ph name="FOLDERNAME" /> până când închizi toate filele <ph name="ORIGIN" /></translation> <translation id="6041155700700864984">Ieși din ecranul complet</translation> <translation id="604124094241169006">Automat</translation> <translation id="6042308850641462728">Mai multe</translation> @@ -4155,7 +4153,6 @@ <translation id="6561726789132298588">enter</translation> <translation id="656293578423618167">Calea sau numele fișierului sunt prea lungi. Salvați utilizând un nume mai scurt sau într-o altă locație.</translation> <translation id="6563469144985748109">Administratorul nu l-a aprobat încă</translation> -<translation id="6567688344210276845">Nu se poate încărca pictograma „<ph name="ICON" />” pentru acțiunea paginii.</translation> <translation id="6569934958368283244">Alte persoane</translation> <translation id="657402800789773160">&Reîncarcă această pagină</translation> <translation id="6577284282025554716">Descărcare anulată: <ph name="FILE_NAME" /></translation> @@ -4220,7 +4217,6 @@ <translation id="6659594942844771486">Filă</translation> <translation id="6664237456442406323">Din păcate, computerul dvs. este configurat cu un ID de hardware incorect. Acest lucru împiedică actualizarea sistemului de operare Chrome cu cele mai recente remedieri de securitate. În plus, computerul <ph name="BEGIN_BOLD" />ar putea fi vulnerabil la atacuri ale site-urilor web rău intenționate<ph name="END_BOLD" />.</translation> <translation id="6664774537677393800">A apărut o eroare la deschiderea profilului. Deconectează-te și conectează-te din nou.</translation> -<translation id="6667776121818773738">Imagine trimisă de pe alt dispozitiv</translation> <translation id="6673391612973410118"><ph name="PRINTER_MAKE_OR_MODEL" /> (USB)</translation> <translation id="667517062706956822">Dorești ca Google să traducă această pagină din <ph name="SOURCE_LANGUAGE" /> în <ph name="TARGET_LANGUAGE" />?</translation> <translation id="6675665718701918026">Dispozitivul de indicat este conectat</translation> @@ -4841,7 +4837,6 @@ <translation id="7497981768003291373">Nu ai jurnale text WebRTC înregistrate recent.</translation> <translation id="7502658306369382406">Adresă IPv6</translation> <translation id="7503191893372251637">Tip de certificat Netscape</translation> -<translation id="7503821294401948377">Nu se poate încărca pictograma „<ph name="ICON" />” pentru acțiunea browserului.</translation> <translation id="7503985202154027481">O înregistrare a vizitei site-ului va fi păstrată pe cheia ta de securitate.</translation> <translation id="7504293978434250212">Organizația ta poate scana fișiere de până la 50 MB. Încarcă un fișier mai mic.</translation> <translation id="750509436279396091">Deschideți dosarul de descărcări</translation> @@ -5644,7 +5639,6 @@ <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="8550165047974571882"><ph name="ORIGIN" /> va putea edita fișierele din <ph name="FOLDERNAME" /> până când închizi toate filele <ph name="ORIGIN" /></translation> <translation id="8551388862522347954">Licențe</translation> <translation id="8553342806078037065">Gestionează alte persoane</translation> <translation id="8554899698005018844">Nicio limbă</translation>
diff --git a/chrome/app/resources/generated_resources_ru.xtb b/chrome/app/resources/generated_resources_ru.xtb index c203b06a..2759967 100644 --- a/chrome/app/resources/generated_resources_ru.xtb +++ b/chrome/app/resources/generated_resources_ru.xtb
@@ -1118,7 +1118,6 @@ <translation id="247949520305900375">Общий доступ к аудио</translation> <translation id="2480868415629598489">Изменение копируемых и вставляемых данных</translation> <translation id="2482878487686419369">Уведомления</translation> -<translation id="2483610039979585156">Сайт <ph name="ORIGIN" /> сможет изменять файл "<ph name="FILENAME" />", пока вы не закроете все вкладки на сайте <ph name="ORIGIN" />.</translation> <translation id="2484959914739448251">Чтобы удалить данные о работе в браузере со всех синхронизированных устройств и из аккаунта Google, <ph name="BEGIN_LINK" />введите кодовую фразу<ph name="END_LINK" />.</translation> <translation id="2485005079599453134">Пароль сохранен на этом устройстве</translation> <translation id="2485422356828889247">Удалить</translation> @@ -1723,7 +1722,6 @@ <translation id="3282568296779691940">Войти в Chrome</translation> <translation id="3285322247471302225">Новая вкладка</translation> <translation id="328571385944182268">Сохранить пароли?</translation> -<translation id="328785681103589998">Сайт <ph name="ORIGIN" /> сможет просматривать файл "<ph name="FILENAME" />", пока вы не закроете все вкладки на сайте <ph name="ORIGIN" />.</translation> <translation id="3288047731229977326">Расширения, запущенные в режиме разработчика, могут причинить вред вашему компьютеру. Если вы не являетесь разработчиком, их следует отключить, чтобы обеспечить безопасность данных.</translation> <translation id="3289856944988573801">Чтобы проверить наличие обновлений, подключитесь через сеть Ethernet или Wi-Fi.</translation> <translation id="3290356915286466215">Не защищена</translation> @@ -2412,6 +2410,7 @@ <translation id="4144218403971135344">С помощью этой функции вы улучшите качество видео и продлите время работы от батареи. Видео будет воспроизводиться только на экранах с поддержкой Cast.</translation> <translation id="4146026355784316281">Всегда открывать в программе просмотра по умолчанию</translation> <translation id="4146785383423576110">Сброс настроек и удаление вредоносного ПО</translation> +<translation id="4147897805161313378">Google Фото</translation> <translation id="4147911968024186208">Повторите попытку. Если сообщение об ошибке появится снова, свяжитесь со службой поддержки.</translation> <translation id="4150201353443180367">Экран</translation> <translation id="4152670763139331043">{NUM_TABS,plural, =1{1 вкладка}one{# вкладка}few{# вкладки}many{# вкладок}other{# вкладки}}</translation> @@ -2731,6 +2730,7 @@ <translation id="4633757335284074492">Сохранение резервных копий на Google Диске. Позволяет в любой момент восстанавливать данные (в том числе из приложений) или переносить их с одного устройства на другое. Резервные копии загружаются в Google и шифруются с помощью пароля аккаунта Google вашего ребенка.</translation> <translation id="4634771451598206121">Войти снова</translation> <translation id="4635398712689569051">Страница "<ph name="PAGE_NAME" />" недоступна в гостевом режиме</translation> +<translation id="4636930964841734540">Информация</translation> <translation id="4637083375689622795">Другие действия в аккаунте <ph name="EMAIL" /></translation> <translation id="4638930039313743000">Включить отладку с ADB</translation> <translation id="4641539339823703554">Браузеру не удалось установить системное время. Проверьте, правильно ли оно указано, и исправьте при необходимости.</translation> @@ -2810,7 +2810,6 @@ <translation id="4750394297954878236">Предложения</translation> <translation id="475088594373173692">Первый пользователь</translation> <translation id="4751476147751820511">Датчики движения и освещенности</translation> -<translation id="4756269098451810636">Изображение с устройства "<ph name="DEVICE_NAME" />"</translation> <translation id="4756378406049221019">Остановить/Перезапустить</translation> <translation id="4756388243121344051">&История</translation> <translation id="4759238208242260848">Скачанные файлы</translation> @@ -3133,7 +3132,7 @@ <translation id="5213891612754844763">Показать настройки прокси-сервера</translation> <translation id="5215502535566372932">Выберите страну</translation> <translation id="521582610500777512">Фотография удалена.</translation> -<translation id="5222403284441421673">Скачивание небезопасного контента заблокировано</translation> +<translation id="5222403284441421673">Незащищенное скачивание заблокировано</translation> <translation id="5222676887888702881">Выйти</translation> <translation id="52232769093306234">Не удалось выполнить сжатие.</translation> <translation id="5225324770654022472">Показывать кнопку "Сервисы"</translation> @@ -3757,7 +3756,6 @@ <translation id="6040852767465482106">Анонимная идентификация</translation> <translation id="6041046205544295907"><ph name="BEGIN_PARAGRAPH1" />Когда геолокация Google включена, местоположение устройства определяется с помощью датчиков, Wi‑Fi и мобильных сетей.<ph name="END_PARAGRAPH1" /> <ph name="BEGIN_PARAGRAPH2" />При желании отключите эту функцию в настройках устройства. Там же вы можете запретить использование датчиков, Wi‑Fi и мобильных сетей для уточнения местоположения.<ph name="END_PARAGRAPH2" /></translation> -<translation id="6041150002191391409">Сайт <ph name="ORIGIN" /> сможет просматривать файлы в папке "<ph name="FOLDERNAME" />", пока вы не закроете все вкладки на сайте <ph name="ORIGIN" />.</translation> <translation id="6041155700700864984">Обычный режим</translation> <translation id="604124094241169006">Автоматически</translation> <translation id="6042308850641462728">Ещё</translation> @@ -4153,7 +4151,6 @@ <translation id="6561726789132298588">Войти</translation> <translation id="656293578423618167">Слишком длинное название файла или путь к нему. Выберите другое название или каталог.</translation> <translation id="6563469144985748109">Ещё не одобрено администратором</translation> -<translation id="6567688344210276845">Не удалось загрузить значок "<ph name="ICON" />" для действия страницы.</translation> <translation id="6569934958368283244">Другие пользователи</translation> <translation id="657402800789773160">&Обновить страницу</translation> <translation id="6577284282025554716">Скачивание файла <ph name="FILE_NAME" /> отменено</translation> @@ -4218,7 +4215,6 @@ <translation id="6659594942844771486">Вкладка</translation> <translation id="6664237456442406323">К сожалению, в настройках компьютера указан недействительный аппаратный код. Chrome OS не сможет устанавливать обновления для системы безопасности, и ваш компьютер <ph name="BEGIN_BOLD" />может подвергаться атакам вредоносных сайтов<ph name="END_BOLD" />.</translation> <translation id="6664774537677393800">Не удалось открыть профиль. Попробуйте выйти из аккаунта и войти снова.</translation> -<translation id="6667776121818773738">Изображение с другого устройства</translation> <translation id="6673391612973410118"><ph name="PRINTER_MAKE_OR_MODEL" /> (USB)</translation> <translation id="667517062706956822">Вы хотите, чтобы Google сделал перевод страницы: <ph name="SOURCE_LANGUAGE" /> >> <ph name="TARGET_LANGUAGE" />?</translation> <translation id="6675665718701918026">Подключено дополнительное устройство</translation> @@ -4839,7 +4835,6 @@ <translation id="7497981768003291373">Не обнаружено недавно сохраненных текстовых журналов WebRTC.</translation> <translation id="7502658306369382406">Адрес IPv6</translation> <translation id="7503191893372251637">Тип сертификата Netscape</translation> -<translation id="7503821294401948377">Не удалось загрузить значок "<ph name="ICON" />" для действия браузера.</translation> <translation id="7503985202154027481">На вашем электронном ключе останется запись о том, что вы посетили этот сайт.</translation> <translation id="7504293978434250212">В вашей организации можно сканировать файлы размером до 50 МБ. Загрузите файл меньшего размера.</translation> <translation id="750509436279396091">Открыть папку скачанных файлов</translation> @@ -5641,7 +5636,6 @@ <translation id="8546930481464505581">Настроить Touch Bar</translation> <translation id="8547013269961688403">Включить полноэкранную лупу</translation> <translation id="85486688517848470">Чтобы сменить режим клавиш верхнего ряда, удерживайте кнопку поиска</translation> -<translation id="8550165047974571882">Сайт <ph name="ORIGIN" /> сможет изменять файлы в папке "<ph name="FOLDERNAME" />", пока вы не закроете все вкладки на сайте <ph name="ORIGIN" />.</translation> <translation id="8551388862522347954">Лицензии</translation> <translation id="8553342806078037065">Другие пользователи</translation> <translation id="8554899698005018844">Язык не указан</translation>
diff --git a/chrome/app/resources/generated_resources_si.xtb b/chrome/app/resources/generated_resources_si.xtb index 5d0ec34..b3ef1739 100644 --- a/chrome/app/resources/generated_resources_si.xtb +++ b/chrome/app/resources/generated_resources_si.xtb
@@ -1117,7 +1117,6 @@ <translation id="247949520305900375">ශ්රව්ය බෙදාගන්න</translation> <translation id="2480868415629598489">ඔබ පිටපත් කරන සහ අලවන දත්ත වෙනස් කරන්න</translation> <translation id="2482878487686419369">දැනුම්දීම්</translation> -<translation id="2483610039979585156"><ph name="ORIGIN" /> හට ඔබ පටිති <ph name="ORIGIN" /> ම වසන තෙක් <ph name="FILENAME" /> සංස්කරණ කිරීමට හැකි වෙයි</translation> <translation id="2484959914739448251">ඔබේ සියලුම සමමුහුර්ත කළ උපාංගවලින් සහ ඔබේ Google ගිණුමෙන් බ්රවුස් කිරීමේ දත්ත හිස් කිරීමට, <ph name="BEGIN_LINK" />ඔබේ මුරවැකිකඩ ඇතුළත් කරන්න<ph name="END_LINK" />.</translation> <translation id="2485005079599453134">මුරපදය මෙම උපංගය මත සුරැකිණි</translation> <translation id="2485422356828889247">අස්ථාපනය</translation> @@ -1701,6 +1700,7 @@ <translation id="3264544094376351444">සංස්-සෙරිෆ් අකුරු</translation> <translation id="3264582393905923483">සන්දර්භය</translation> <translation id="3265459715026181080">කවුළුව වසන්න</translation> +<translation id="3266274118485960573">ආරක්ෂක පරීක්ෂාව ධාවන වෙයි.</translation> <translation id="3267726687589094446">ගොනු රාශියක ස්වයං බාගැනීමට අඛණ්ඩව ඉඩ දෙන්න</translation> <translation id="3268451620468152448">ටැබ විවෘත කරන්න</translation> <translation id="3269069891205016797">ඔබ වරන විට ඔබේ තොරතුරු උපාංගය වෙතින් ඉවත් කරනු ඇත.</translation> @@ -1722,7 +1722,6 @@ <translation id="3282568296779691940">Chrome වෙත පුරන්න</translation> <translation id="3285322247471302225">නව සහ ටැබ</translation> <translation id="328571385944182268">ඔබේ මුරපදය සුරකින්නද?</translation> -<translation id="328785681103589998"><ph name="ORIGIN" /> හට ඔබ පටිති <ph name="ORIGIN" /> ම වසන තෙක් <ph name="FILENAME" /> බැලීමට හැකි වෙයි</translation> <translation id="3288047731229977326">සංවර්ධක ප්රකාරය තුළ ධාවනය වන දිගු ඔබගේ පරිගණකයට හානි කළ හැක. ඔබ සංවර්ධකයකු නොවේ නම්, ආරක්ෂිතව සිටීමට ඔබ සංවර්ධක ප්රකාරය තුළ ධාවනය වන මෙම දිගු අබල කළ යුතුයි.</translation> <translation id="3289856944988573801">යාවත්කාල පරීක්ෂා කිරීමට, කරුණාකර ඊදර්නෙට් හෝ Wi-Fi භාවිතා කරන්න.</translation> <translation id="3290356915286466215">අනාරක්ෂිතයි</translation> @@ -1807,6 +1806,7 @@ <translation id="3412265149091626468">තෝරාගැනීමට පනින්න</translation> <translation id="3413122095806433232">CA නිකුත්කරුවන්: <ph name="LOCATION" /></translation> <translation id="3414952576877147120">ප්රමාණය:</translation> +<translation id="3416468988018290825">සැම විටම සම්පූර්ණ URL පෙන්වන්න</translation> <translation id="3420501302812554910">අභ්යන්තර ආරක්ෂක යතුර යළි සැකසීම අවශ්ය කරයි</translation> <translation id="3421387094817716717">ඉලිප්සාකාර වක්ර පොදු යතුර</translation> <translation id="3422291238483866753">වෙබ් අඩවියකට ඔබේ වටපිටාවේ ත්රිමාන සිතියමක් සෑදීමට හෝ කැමරා ස්ථානය හඹා යෑමට ඉඩ දීමට පෙර අසන්න (නිර්දේශිතයි)</translation> @@ -2412,6 +2412,7 @@ <translation id="4144218403971135344">වඩාත් හොඳ තත්ත්වයේ වීඩියෝ ලබා ගෙන බැටරි බලය සුරකින්න. ඔබේ විකාශ-සබලිත තිරවල පමණක් වීඩියෝ ධාවනය වනු ඇත.</translation> <translation id="4146026355784316281">සැමවිටම පද්ධති දර්ශකය සමග විවෘත කරන්න</translation> <translation id="4146785383423576110">යළි සකසා පිරිසිදු කරන්න</translation> +<translation id="4147897805161313378">Google ඡායාරූප</translation> <translation id="4147911968024186208">යළි උත්සාහ කරන්න. ඔබ නැවතත් මෙම දෝෂය දකින්නේ නම්, ඔබේ සහය නියෝජිතයා සම්බන්ධ කර ගන්න.</translation> <translation id="4150201353443180367">සංදර්ශකය</translation> <translation id="4152670763139331043">{NUM_TABS,plural, =1{පටිති 1}one{පටිති #}other{පටිති #}}</translation> @@ -2731,6 +2732,7 @@ <translation id="4633757335284074492">Google Drive වෙත උපස්ථ කරන්න. ඕනෑම වේලාවක දත්ත පහසුවෙන් නැවත සකසන්න හෝ උපාංග අතර මාරු වන්න. මෙම උපස්ථයට යෙදුම් දත්ත ඇතුළුයි. උපස්ථ Google වෙත උඩුගත කෙරෙන අතර ඔබේ දරුවාගේ Google ගිණුමේ මුරපදය භාවිත කර සංකේතන කෙරේ.</translation> <translation id="4634771451598206121">නැවත පිවිසෙන්න...</translation> <translation id="4635398712689569051"><ph name="PAGE_NAME" /> ආගන්තුක පරිශීලකයින්ට නොමැත.</translation> +<translation id="4636930964841734540">තතු</translation> <translation id="4637083375689622795">තවත් ක්රියා, <ph name="EMAIL" /></translation> <translation id="4638930039313743000">ADB නිදොස් කිරීම සබල කරන්න</translation> <translation id="4641539339823703554">Chrome ට පද්ධති වේලාව සැකසිය නොහැකි විය. කරුණාර පහත වේලාව පරීක්ෂා කර අවශ්ය නම් එය නිවැරදි කරන්න.</translation> @@ -2810,7 +2812,6 @@ <translation id="4750394297954878236">යෝජනා</translation> <translation id="475088594373173692">පළමු පරිශීලක</translation> <translation id="4751476147751820511">චලිත හෝ ආලෝක සංවේදක</translation> -<translation id="4756269098451810636"><ph name="DEVICE_NAME" /> වෙතින් බෙදා ගත් රූපය</translation> <translation id="4756378406049221019">නවතන්න/නැවත පූරණය කරන්න</translation> <translation id="4756388243121344051">&ඉතිහාසය</translation> <translation id="4759238208242260848">බාගැනීම්</translation> @@ -3758,7 +3759,6 @@ <translation id="6040852767465482106">නිර්නාමික අනන්යතාව</translation> <translation id="6041046205544295907"><ph name="BEGIN_PARAGRAPH1" />Google හි ස්ථාන සේවාව ඔබේ උපාංගයෙහි ස්ථානය තක්සේරු කිරීමට උදවු කිරීමට, Wi-Fi, ජංගම ජාල, සහ සංවේදක වැනි මූලාශ්ර භාවිතා කරයි.<ph name="END_PARAGRAPH1" /> <ph name="BEGIN_PARAGRAPH2" />ඔබේ උපාංගයෙහි ප්රධාන ස්ථාන සැකසීම ක්රියාවිරහිත කිරීමෙන් ඔබට ස්ථානය ක්රියාවිරහිත කළ හැකිය. ඔබට ස්ථානය සඳහා Wi‑Fi, ජංගම ජාල සහ සංවේදක භාවිතය ස්ථාන සැකසීම් තුළ ක්රියාවිරහිත කිරීමත් කළ හැකිය.<ph name="END_PARAGRAPH2" /></translation> -<translation id="6041150002191391409"><ph name="ORIGIN" /> හට ඔබ පටිති <ph name="ORIGIN" /> ම වසන තෙක් <ph name="FOLDERNAME" /> තුළ ඇති ගොනු බැලීමට හැකි වෙයි</translation> <translation id="6041155700700864984">පූර්ණ තිරයෙන් ඉවත් වන්න</translation> <translation id="604124094241169006">ස්වයංක්රීය</translation> <translation id="6042308850641462728">වැඩිදුර</translation> @@ -4152,7 +4152,6 @@ <translation id="6561726789132298588">ඇතුල් කරන්න</translation> <translation id="656293578423618167">ගොනු නම හෝ මඟ ඉතා දිගුයි. කරුණාකර වෙනත් ස්ථානයක් වෙත සුරකින්න නැතහොත් කෙටි නමක් යොදන්න.</translation> <translation id="6563469144985748109">ඔබේ කළමනාකරු තවම එය අනුමත කර නැත</translation> -<translation id="6567688344210276845">පිටු ක්රියා මාර්ගය සඳහා '<ph name="ICON" />' අයිකනය පැටවිය නොහැකි විය.</translation> <translation id="6569934958368283244">වෙනත් පුද්ගලයින්</translation> <translation id="657402800789773160">මෙම පිටුව නැවත පුරවන්න (&R)</translation> <translation id="6577284282025554716">බාගැනීම අවලංගු කරන ලදී: <ph name="FILE_NAME" /></translation> @@ -4164,6 +4163,7 @@ <translation id="6586451623538375658">ප්රාථමික මවුස බොත්තම මාරු කරන්න</translation> <translation id="6586604979641883411">ලිනක්ස් උත්ශ්රේණි කිරීමට අවම වශයෙන් <ph name="REQUIRED_SPACE" /> ක නිදහස් ඉඩක් අවශ්යයි. ඔබේ උපාංගය මත යම් ඉඩක් නිදහස් කර නැවත උත්සාහ කරන්න.</translation> <translation id="6588043302623806746">සුරක්ෂිත DNS භාවිත කරන්න</translation> +<translation id="659005207229852190">ආරක්ෂක පරීක්ෂාව සම්පූර්ණ කර ඇත.</translation> <translation id="6590458744723262880">ෆෝල්ඩරය යළි නම් කරන්න</translation> <translation id="6592267180249644460">WebRTC වාර්ථාව <ph name="WEBRTC_LOG_CAPTURE_TIME" /> ගන්නා ලදී</translation> <translation id="6592808042417736307">ඔබේ ඇඟිලි සලකුණ ග්රහණ කළා</translation> @@ -4217,7 +4217,6 @@ <translation id="6659594942844771486">ටැබ</translation> <translation id="6664237456442406323">අවාසනාවකට මෙන්, ඔබේ පරිගණකය විකෘති වූ දෘඪාංග ID එකකින් වින්යාසගත කර තිබේ. මෙමගින් Chrome OS fනවතම ආරක්ෂණ විසඳුම් මගින් යාවත්කාල වීම වැළකෙන අතර ඔබේ පරිගණකය <ph name="BEGIN_BOLD" />හානිකර ප්රහාරවලට ලක් වීමට ඉඩ තිබේ<ph name="END_BOLD" />.</translation> <translation id="6664774537677393800">ඔබේ පැතිකඩ විවෘත කරන විට යම් දෙයක් වැරදිණි. වරනය වී නැවත පුරන්න.</translation> -<translation id="6667776121818773738">අනෙකුත් උපාංගයෙන් බෙදා ගත් රූපය</translation> <translation id="6673391612973410118"><ph name="PRINTER_MAKE_OR_MODEL" /> (USB)</translation> <translation id="667517062706956822">ඔබට Google පරිවර්තනය මෙම පිටුව <ph name="SOURCE_LANGUAGE" /> සිට <ph name="TARGET_LANGUAGE" /> භාෂාවට පරිවර්තනය කිරීමට අවශ්යද?</translation> <translation id="6675665718701918026">දර්ශක උපාංගය සම්බන්ධ කරන ලදී</translation> @@ -4838,7 +4837,6 @@ <translation id="7497981768003291373">ඔබට මෑතකදී හසුකර ගත් WebRTC ලොග් නැත.</translation> <translation id="7502658306369382406">IPv6 ලිපිනය</translation> <translation id="7503191893372251637">Netscape සහතික වර්ගය</translation> -<translation id="7503821294401948377">බ්රව්සර ක්රියාමාර්ග සඳහා '<ph name="ICON" />' අයිකනය පැටවිය නොහැකි විය.</translation> <translation id="7503985202154027481">ඔබේ ආරක්ෂක යතුරේ මෙම වෙබ් අඩවිය වෙත ඔබේ පැමිණීමේ සටහනක් තබනු ලැබේ.</translation> <translation id="7504293978434250212">ඔබේ ආයතනයට 50 MB දක්වා ගොනු ස්කෑන් කළ හැක. කුඩා ගොනුවක් උඩුගත කිරීමට උත්සාහ කරන්න.</translation> <translation id="750509436279396091">බාගැනීම් ෆෝල්ඩරය විවෘත කරන්න</translation> @@ -5424,6 +5422,7 @@ <translation id="8249672078237421304">ඔබට කියවිය හැකි භාෂාවකින් නොවන පිටු පරිවර්තනය කිරීමට පිරිනමන්න</translation> <translation id="8251441930213048644">දැන් නැවුම් කරන්න</translation> <translation id="8251578425305135684">තම්බ්නේල් ඉවත් කරන ලදි.</translation> +<translation id="825238165904109940">සැම විටම සම්පූර්ණ URL පෙන්වන්න</translation> <translation id="8252569384384439529">උඩුගත කරමින්...</translation> <translation id="8253198102038551905">ජාල වත්කම් ලැබීමට '+' ක්ලික් කරන්න</translation> <translation id="8254954272268479918">ලිනක්ස් වසා දමන්න (බීටා)</translation> @@ -5639,7 +5638,6 @@ <translation id="8546930481464505581">ස්පර්ශ තීරුව අභිරුචිකරණය</translation> <translation id="8547013269961688403">පූර්ණ තිර විශාලකය සබල කරන්න</translation> <translation id="85486688517848470">ඉහළ පේළියේ යතුරු හැසිරීම මාරු කිරීමට සෙවීම් යතුර අල්ලාගෙන සිටින්න</translation> -<translation id="8550165047974571882"><ph name="ORIGIN" /> හට ඔබ පටිති <ph name="ORIGIN" /> ම වසන තෙක් <ph name="FOLDERNAME" /> තුළ ඇති ගොනු සංස්කරණ කිරීමට හැකි වෙයි</translation> <translation id="8551388862522347954">වරපත්</translation> <translation id="8553342806078037065">අනෙක් පුද්ගලයින් කළමනාකරණය කරන්න</translation> <translation id="8554899698005018844">භාෂාවක් නැත</translation>
diff --git a/chrome/app/resources/generated_resources_sk.xtb b/chrome/app/resources/generated_resources_sk.xtb index 373b0e8..23f0a52 100644 --- a/chrome/app/resources/generated_resources_sk.xtb +++ b/chrome/app/resources/generated_resources_sk.xtb
@@ -1119,7 +1119,6 @@ <translation id="247949520305900375">Zdieľať zvuk</translation> <translation id="2480868415629598489">Upravovať dáta, ktoré kopírujete a prilepujete</translation> <translation id="2482878487686419369">Upozornenia</translation> -<translation id="2483610039979585156">Web <ph name="ORIGIN" /> bude môcť upravovať súbor <ph name="FILENAME" />, dokým nezavriete všetky karty webu <ph name="ORIGIN" /></translation> <translation id="2484959914739448251">Ak chcete vymazať dáta prehliadania zo všetkých synchronizovaných zariadení a účtu Google, <ph name="BEGIN_LINK" />zadajte prístupovú frázu<ph name="END_LINK" />.</translation> <translation id="2485005079599453134">Heslo bolo uložené v tomto zariadení</translation> <translation id="2485422356828889247">Odinštalovať</translation> @@ -1724,7 +1723,6 @@ <translation id="3282568296779691940">Prihlásenie do prehliadača Chrome</translation> <translation id="3285322247471302225">Nová &karta</translation> <translation id="328571385944182268">Chcete ukladať heslá?</translation> -<translation id="328785681103589998"><ph name="ORIGIN" /> si bude môcť zobraziť súbor <ph name="FILENAME" />, dokým nezavriete všetky karty webu <ph name="ORIGIN" /></translation> <translation id="3288047731229977326">Rozšírenia spustené v režime pre vývojárov môžu poškodiť váš počítač. Ak nie ste vývojár, mali by ste v záujme bezpečnosti rozšírenia spustené v režime vývojára zakázať.</translation> <translation id="3289856944988573801">Ak chcete skontrolovať aktualizácie, použite sieť ethernet alebo Wi‑Fi.</translation> <translation id="3290356915286466215">Nezabezpečené</translation> @@ -2413,6 +2411,7 @@ <translation id="4144218403971135344">Získajte kvalitnejšie video a predĺžte výdrž batérie. Video sa bude prehrávať iba na obrazovke podporujúcej Cast.</translation> <translation id="4146026355784316281">Vždy otvárať pomocou systémového zobrazovača</translation> <translation id="4146785383423576110">Resetovať a vyčistiť</translation> +<translation id="4147897805161313378">Fotky Google</translation> <translation id="4147911968024186208">Skúste to znova. Ak sa vám znova zobrazí táto chyba, kontaktujte zástupcu podpory.</translation> <translation id="4150201353443180367">Displej</translation> <translation id="4152670763139331043">{NUM_TABS,plural, =1{1 karta}few{# karty}many{# karty}other{# kariet}}</translation> @@ -2732,6 +2731,7 @@ <translation id="4633757335284074492">Zálohovanie na Disk Google. Jednoducho kedykoľvek obnovte údaje alebo prejdite na iné zariadenie. Táto záloha zahrnuje dáta aplikácií. Zálohy sa nahrajú do Googlu a zašifrujú pomocou hesla účtu Google vášho dieťaťa.</translation> <translation id="4634771451598206121">Znova prihlásiť...</translation> <translation id="4635398712689569051">Stránka <ph name="PAGE_NAME" /> nie je k dispozícii pre hostí.</translation> +<translation id="4636930964841734540">Informácie</translation> <translation id="4637083375689622795">Ďalšie akcie, <ph name="EMAIL" /></translation> <translation id="4638930039313743000">Aktivovať ladenie ADB</translation> <translation id="4641539339823703554">Prehliadaču Chrome sa nepodarilo nastaviť čas systému. Skontrolujte čas nižšie a v prípade potreby ho opravte.</translation> @@ -2811,7 +2811,6 @@ <translation id="4750394297954878236">Návrhy</translation> <translation id="475088594373173692">Prvý používateľ</translation> <translation id="4751476147751820511">Senzory pohybu alebo svetla</translation> -<translation id="4756269098451810636">Obrázok zdieľaný zo zariadenia <ph name="DEVICE_NAME" /></translation> <translation id="4756378406049221019">Zastaviť / znova načítať</translation> <translation id="4756388243121344051">&História</translation> <translation id="4759238208242260848">Stiahnuté</translation> @@ -3533,7 +3532,7 @@ <translation id="5734362860645681824">Komunikácia</translation> <translation id="5734697361979786483">Pridať zdieľanie súboru</translation> <translation id="5736796278325406685">Zadajte platné používateľské meno</translation> -<translation id="5739017626473506901">Ak chce <ph name="USER_NAME" /> pomôcť pridať školský účet, prihláste sa</translation> +<translation id="5739017626473506901">Ak chce dieťaťu <ph name="USER_NAME" /> pomôcť pridať školský účet, prihláste sa</translation> <translation id="5739235828260127894">Čaká sa na overenie. <ph name="LINK_BEGIN" />Ďalšie informácie<ph name="LINK_END" /></translation> <translation id="5739458112391494395">Veľmi veľké</translation> <translation id="574209121243317957">Výška hlasu</translation> @@ -3758,7 +3757,6 @@ <translation id="6040852767465482106">Anonymná identita</translation> <translation id="6041046205544295907"><ph name="BEGIN_PARAGRAPH1" />Služba určovania polohy od Googlu používa na presnejšie odhadnutie polohy tohto zariadenia zdroje, ako sú Wi-Fi, mobilné siete a senzory.<ph name="END_PARAGRAPH1" /> <ph name="BEGIN_PARAGRAPH2" />Nastavenie Poloha môžete deaktivovať vypnutím hlavného nastavenia Poloha v tomto zariadení. V nastaveniach polohy môžete tiež vypnúť určovanie polohy pomocou siete Wi‑Fi, mobilnej siete a senzorov.<ph name="END_PARAGRAPH2" /></translation> -<translation id="6041150002191391409">Web <ph name="ORIGIN" /> bude môcť zobraziť súbory v priečinku <ph name="FOLDERNAME" />, dokým nezavriete všetky karty webu <ph name="ORIGIN" /></translation> <translation id="6041155700700864984">Ukončiť režim celej obrazovky</translation> <translation id="604124094241169006">Automatické</translation> <translation id="6042308850641462728">Viac</translation> @@ -4154,7 +4152,6 @@ <translation id="6561726789132298588">enter</translation> <translation id="656293578423618167">Názov súboru alebo cesta má veľa znakov. Uložte súbor pod kratším názvom alebo inde.</translation> <translation id="6563469144985748109">Váš správca to zatiaľ neschválil</translation> -<translation id="6567688344210276845">Nepodarilo sa načítať ikonu „<ph name="ICON" />“ akcie stránky.</translation> <translation id="6569934958368283244">Iné osoby</translation> <translation id="657402800789773160">&Obnoviť túto stránku</translation> <translation id="6577284282025554716">Sťahovanie bolo zrušené: <ph name="FILE_NAME" /></translation> @@ -4219,7 +4216,6 @@ <translation id="6659594942844771486">Karta</translation> <translation id="6664237456442406323">Váš počítač je žiaľ nakonfigurovaný pomocou poškodeného ID hardvéru. Systému Chrome OS to zabraňuje získať aktualizácie s najnovšími opravami zabezpečenia a váš počítač <ph name="BEGIN_BOLD" />môže byť zraniteľný voči škodlivým útokom<ph name="END_BOLD" />.</translation> <translation id="6664774537677393800">Pri pokuse o otvorenie profilu sa vyskytla chyba. Odhláste sa a potom sa znova prihláste.</translation> -<translation id="6667776121818773738">Obrázok zdieľaný z iného zariadenia</translation> <translation id="6673391612973410118"><ph name="PRINTER_MAKE_OR_MODEL" /> (USB)</translation> <translation id="667517062706956822">Chcete, aby Google preložil túto stránku z jazyka <ph name="SOURCE_LANGUAGE" /> do jazyka <ph name="TARGET_LANGUAGE" />?</translation> <translation id="6675665718701918026">Bolo pripojené ukazovacie zariadenie</translation> @@ -4840,7 +4836,6 @@ <translation id="7497981768003291373">Nemáte žiadne nedávno zaznamenané textové denníky WebRTC.</translation> <translation id="7502658306369382406">Adresa IPv6</translation> <translation id="7503191893372251637">Netscape – typ certifikátu </translation> -<translation id="7503821294401948377">Nepodarilo sa načítať ikonu „<ph name="ICON" />“ akcie prehliadača.</translation> <translation id="7503985202154027481">V bezpečnostnom kľúči sa uchová záznam vašej návštevy tohto webu.</translation> <translation id="7504293978434250212">Vaša organizácia môže kontrolovať súbory do 50 MB. Skúste nahrať menší súbor.</translation> <translation id="750509436279396091">Otvoriť priečinok stiahnutých súborov</translation> @@ -5642,7 +5637,6 @@ <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="8550165047974571882">Web <ph name="ORIGIN" /> bude môcť upravovať súbory v priečinku <ph name="FOLDERNAME" />, dokým nezavriete všetky karty webu <ph name="ORIGIN" /></translation> <translation id="8551388862522347954">Licencie</translation> <translation id="8553342806078037065">Spravovať ďalšie osoby</translation> <translation id="8554899698005018844">Žiadny jazyk</translation>
diff --git a/chrome/app/resources/generated_resources_sl.xtb b/chrome/app/resources/generated_resources_sl.xtb index 3f61a62..75d0c8f 100644 --- a/chrome/app/resources/generated_resources_sl.xtb +++ b/chrome/app/resources/generated_resources_sl.xtb
@@ -1120,7 +1120,6 @@ <translation id="247949520305900375">Skupna raba zvoka</translation> <translation id="2480868415629598489">Spreminjanje podatkov, ki jih kopirate in prilepite</translation> <translation id="2482878487686419369">Obvestila</translation> -<translation id="2483610039979585156">Spletno mesto <ph name="ORIGIN" /> lahko ureja datoteko <ph name="FILENAME" />, dokler ne zaprete vseh zavihkov spletnega mesta <ph name="ORIGIN" /></translation> <translation id="2484959914739448251">Če želite izbrisati podatke brskanja iz vseh sinhroniziranih naprav in Google Računa, <ph name="BEGIN_LINK" />vnesite geslo<ph name="END_LINK" />.</translation> <translation id="2485005079599453134">Geslo je shranjeno v tej napravi</translation> <translation id="2485422356828889247">Odmeščanje</translation> @@ -1704,6 +1703,7 @@ <translation id="3264544094376351444">Neserifna pisava</translation> <translation id="3264582393905923483">Kontekst</translation> <translation id="3265459715026181080">Zapri okno</translation> +<translation id="3266274118485960573">Varnostno preverjanje se izvaja.</translation> <translation id="3267726687589094446">Še naprej dovoli samodejni prenos več datotek</translation> <translation id="3268451620468152448">Odprti zavihki</translation> <translation id="3269069891205016797">Vaši podatki bodo izbrisani iz naprave, ko se odjavite.</translation> @@ -1725,7 +1725,6 @@ <translation id="3282568296779691940">Prijava v Chrome</translation> <translation id="3285322247471302225">Nov &zavihek</translation> <translation id="328571385944182268">Želite shranjevati gesla?</translation> -<translation id="328785681103589998">Spletno mesto <ph name="ORIGIN" /> si lahko ogleda datoteko <ph name="FILENAME" />, dokler ne zaprete vseh zavihkov spletnega mesta <ph name="ORIGIN" /></translation> <translation id="3288047731229977326">Razširitve, ki se izvajajo v razvijalskem načinu, lahko škodijo vašemu računalniku. Če niste razvijalec, zaradi varnosti onemogočite razširitve, ki se izvajajo v razvijalskem načinu.</translation> <translation id="3289856944988573801">Če želite preveriti, ali so na voljo posodobitve, uporabite ethernet ali Wi-Fi.</translation> <translation id="3290356915286466215">Ni varno</translation> @@ -1810,6 +1809,7 @@ <translation id="3412265149091626468">Skoči na izbor</translation> <translation id="3413122095806433232">Izdajatelji overiteljev potrdil: <ph name="LOCATION" /></translation> <translation id="3414952576877147120">Velikost:</translation> +<translation id="3416468988018290825">Vedno pokaži celotne URL-je</translation> <translation id="3420501302812554910">Notranji varnostni ključ je treba ponastaviti</translation> <translation id="3421387094817716717">Javni ključ z eliptično krivuljo</translation> <translation id="3422291238483866753">Vprašaj, ko želi spletno mesto ustvariti 3D-zemljevid vaše okolice ali spremljati položaj kamere (priporočljivo)</translation> @@ -2414,6 +2414,7 @@ <translation id="4144218403971135344">Boljša kakovost videoposnetkov in prihranek energije v akumulatorju. Videoposnetki se bodo predvajali samo na zaslonu, ki podpira Google Cast.</translation> <translation id="4146026355784316281">Vedno odpri s sistemskim pregledovalnikom</translation> <translation id="4146785383423576110">Ponastavitev in čiščenje</translation> +<translation id="4147897805161313378">Google Foto</translation> <translation id="4147911968024186208">Poskusite znova. Če se ta napaka spet prikaže, se obrnite na zastopnika za podporo.</translation> <translation id="4150201353443180367">Prikaz</translation> <translation id="4152670763139331043">{NUM_TABS,plural, =1{1 zavihek}one{# zavihek}two{# zavihka}few{# zavihki}other{# zavihkov}}</translation> @@ -2733,6 +2734,7 @@ <translation id="4633757335284074492">Varnostno kopiranje v Google Drive. Kadar koli lahko preprosto obnovite podatke v napravi ali zamenjate napravo z drugo. Te varnostne kopije vključujejo podatke aplikacij. Varnostne kopije so naložene v Google in šifrirane z geslom za račun Google otroka.</translation> <translation id="4634771451598206121">Prijavite se znova ...</translation> <translation id="4635398712689569051"><ph name="PAGE_NAME" /> ni na voljo gostom.</translation> +<translation id="4636930964841734540">Informacije</translation> <translation id="4637083375689622795">Več dejanj, <ph name="EMAIL" /></translation> <translation id="4638930039313743000">Omogočanje mostu za odpravljanje težav s sistemom Android (ADB)</translation> <translation id="4641539339823703554">Chrome ni mogel nastaviti sistemskega časa. Preverite spodaj navedeni čas in ga po potrebi popravite.</translation> @@ -2812,7 +2814,6 @@ <translation id="4750394297954878236">Predlogi</translation> <translation id="475088594373173692">Prvi uporabnik</translation> <translation id="4751476147751820511">Tipala za gibanje in svetlobo</translation> -<translation id="4756269098451810636">Slika, deljena iz naprave <ph name="DEVICE_NAME" /></translation> <translation id="4756378406049221019">Ustavi/znova naloži</translation> <translation id="4756388243121344051">&Zgodovina</translation> <translation id="4759238208242260848">Prenosi</translation> @@ -3761,7 +3762,6 @@ <translation id="6040852767465482106">Anonimna identiteta</translation> <translation id="6041046205544295907"><ph name="BEGIN_PARAGRAPH1" />Googlova lokacijska storitev si pri določanju lokacije naprave pomaga z viri, kot so omrežja Wi‑Fi, mobilna omrežja in tipala.<ph name="END_PARAGRAPH1" /> <ph name="BEGIN_PARAGRAPH2" />Lokacijo lahko izklopite tako, da izklopite glavno nastavitev lokacije v napravi. V nastavitvah lokacije lahko izklopite tudi uporabo omrežij Wi‑Fi, mobilnih omrežij in tipal za zaznavanje lokacije.<ph name="END_PARAGRAPH2" /></translation> -<translation id="6041150002191391409">Spletno mesto <ph name="ORIGIN" /> si lahko ogleda datoteke v mapi <ph name="FOLDERNAME" />, dokler ne zaprete vseh zavihkov spletnega mesta <ph name="ORIGIN" /></translation> <translation id="6041155700700864984">Zapri celozaslonski način</translation> <translation id="604124094241169006">Samodejno</translation> <translation id="6042308850641462728">Več</translation> @@ -4157,7 +4157,6 @@ <translation id="6561726789132298588">enter</translation> <translation id="656293578423618167">Pot datoteke ali ime je predolgo. Shranite s krajšim imenom ali na drugo mesto.</translation> <translation id="6563469144985748109">Skrbnik še ni odobril</translation> -<translation id="6567688344210276845">Ikone »<ph name="ICON" />« za dejanje strani ni bilo mogoče naložiti.</translation> <translation id="6569934958368283244">Drugi</translation> <translation id="657402800789773160">Znov&a naloži to stran</translation> <translation id="6577284282025554716">Prenos preklican: <ph name="FILE_NAME" /></translation> @@ -4169,6 +4168,7 @@ <translation id="6586451623538375658">Zamenjaj primarni gumb miške</translation> <translation id="6586604979641883411">Če želite nadgraditi Linux, potrebujete najmanj <ph name="REQUIRED_SPACE" /> nezasedenega prostora na disku. Sprostite nekaj prostora v napravi in poskusite znova.</translation> <translation id="6588043302623806746">Uporaba varnega DNS-ja</translation> +<translation id="659005207229852190">Varnostno preverjanje je dokončano.</translation> <translation id="6590458744723262880">Preimenovanje mape</translation> <translation id="6592267180249644460">Dnevnik za WebRTC zajet <ph name="WEBRTC_LOG_CAPTURE_TIME" /></translation> <translation id="6592808042417736307">Prstni odtis je bil zabeležen</translation> @@ -4222,7 +4222,6 @@ <translation id="6659594942844771486">Tabulator</translation> <translation id="6664237456442406323">Vaš računalnik je konfiguriran s popačenim ID-jem strojne opreme. Zaradi tega Chrome OS ne more namestiti najnovejših varnostnih popravkov in vaš računalnik <ph name="BEGIN_BOLD" />je lahko še bolj izpostavljen zlonamernim napadom<ph name="END_BOLD" />.</translation> <translation id="6664774537677393800">Pri odpiranju profila je prišlo do težave. Odjavite se in se znova prijavite.</translation> -<translation id="6667776121818773738">Slika, deljena iz druge naprave</translation> <translation id="6673391612973410118"><ph name="PRINTER_MAKE_OR_MODEL" /> (USB)</translation> <translation id="667517062706956822">Ali želite, da Google prevede to stran iz jezika <ph name="SOURCE_LANGUAGE" /> v jezik <ph name="TARGET_LANGUAGE" />?</translation> <translation id="6675665718701918026">Priključena je kazalna naprava</translation> @@ -4843,7 +4842,6 @@ <translation id="7497981768003291373">Nimate nedavno zajetih besedilnih dnevnikov za WebRTC.</translation> <translation id="7502658306369382406">Naslov IPv6</translation> <translation id="7503191893372251637">Vrsta Netscapeovega potrdila</translation> -<translation id="7503821294401948377">Ikone »<ph name="ICON" />« za dejanje brskalnika ni bilo mogoče naložiti.</translation> <translation id="7503985202154027481">Na varnostnem ključu se bo zabeležil obisk tega spletnega mesta.</translation> <translation id="7504293978434250212">Vaša organizacija lahko pregleda datoteke velikosti do 50 MB. Poskusite naložiti manjšo datoteko.</translation> <translation id="750509436279396091">Odpiranje mape s prenosi</translation> @@ -5431,6 +5429,7 @@ <translation id="8249672078237421304">Ponudi prevajanje strani, ki niso v vašem jeziku</translation> <translation id="8251441930213048644">Osveži zdaj</translation> <translation id="8251578425305135684">Sličica je odstranjena.</translation> +<translation id="825238165904109940">Vedno pokaži celotne URL-je</translation> <translation id="8252569384384439529">Nalaganje …</translation> <translation id="8253198102038551905">Kliknite »+«, če želite prikazati omrežne nastavitve</translation> <translation id="8254954272268479918">Izklopi Linux (beta)</translation> @@ -5646,7 +5645,6 @@ <translation id="8546930481464505581">Prilagajanje vrstice za dotik</translation> <translation id="8547013269961688403">Omogoči celozaslonsko lupo</translation> <translation id="85486688517848470">Če želite spremeniti delovanje tipk v zgornji vrstici, pridržite tipko za iskanje</translation> -<translation id="8550165047974571882">Spletno mesto <ph name="ORIGIN" /> lahko ureja datoteke v mapi <ph name="FOLDERNAME" />, dokler ne zaprete vseh zavihkov spletnega mesta <ph name="ORIGIN" /></translation> <translation id="8551388862522347954">Licence</translation> <translation id="8553342806078037065">Upravljanje drugih oseb</translation> <translation id="8554899698005018844">Brez jezika</translation>
diff --git a/chrome/app/resources/generated_resources_sq.xtb b/chrome/app/resources/generated_resources_sq.xtb index 5bceb68..0ef685bf 100644 --- a/chrome/app/resources/generated_resources_sq.xtb +++ b/chrome/app/resources/generated_resources_sq.xtb
@@ -1117,7 +1117,6 @@ <translation id="247949520305900375">Ndaj audion</translation> <translation id="2480868415629598489">Modifiko të dhënat që kopjon dhe ngjit</translation> <translation id="2482878487686419369">Njoftimet</translation> -<translation id="2483610039979585156"><ph name="ORIGIN" /> do të mund ta modifikojë <ph name="FILENAME" /> deri sa t'i mbyllësh të gjitha skedat e <ph name="ORIGIN" /></translation> <translation id="2484959914739448251">Për të pastruar të dhënat e shfletimit nga të gjitha pajisjet e tua të sinkronizuara dhe nga "Llogaria e Google", <ph name="BEGIN_LINK" />fut frazën e kalimit<ph name="END_LINK" />.</translation> <translation id="2485005079599453134">Fjalëkalimi është ruajtur në këtë pajisje</translation> <translation id="2485422356828889247">Çinstalo</translation> @@ -1722,7 +1721,6 @@ <translation id="3282568296779691940">Identifikohu në Chrome</translation> <translation id="3285322247471302225">&Skedë e re</translation> <translation id="328571385944182268">Ruaj fjalëkalimet e tua</translation> -<translation id="328785681103589998"><ph name="ORIGIN" /> do të mund ta shikojë <ph name="FILENAME" /> deri sa t'i mbyllësh të gjitha skedat e <ph name="ORIGIN" /></translation> <translation id="3288047731229977326">Shtesat që ekzekutohen në modalitetin e zhvilluesit mund ta dëmtojnë kompjuterin tënd. Nëse nuk je zhvillues, duhet t'i çaktivizosh këto shtesa që ekzekutohen në modalitetin "si zhvillues" për të qenë i sigurt.</translation> <translation id="3289856944988573801">Për të kontrolluar për përditësime, përdor rrjetin Ethernet ose Wi-Fi.</translation> <translation id="3290356915286466215">I pasiguruar</translation> @@ -2411,6 +2409,7 @@ <translation id="4144218403971135344">Merr video me cilësi më të mirë dhe kurse kohëzgjatjen e baterisë. Videoja do të luhet vetëm në ekranin që mbështet transmetime.</translation> <translation id="4146026355784316281">Hape gjithmonë me shikuesin e sistemit</translation> <translation id="4146785383423576110">Rivendos dhe pastro</translation> +<translation id="4147897805161313378">Fotografitë e Google</translation> <translation id="4147911968024186208">Provo përsëri. Nëse e shikon përsëri këtë gabim, kontakto me përfaqësuesin e shërbimit të mbështetjes.</translation> <translation id="4150201353443180367">Ekrani</translation> <translation id="4152670763139331043">{NUM_TABS,plural, =1{1 skedë}other{# skeda}}</translation> @@ -2730,6 +2729,7 @@ <translation id="4633757335284074492">Rezervo në "Diskun e Google". Restauro të dhënat ose ndërro me lehtësi pajisjen në çdo kohë. Rezervimi yt përfshin të dhënat e aplikacioneve. Rezervimet ngarkohen në Google dhe enkriptohen duke përdorur fjalëkalimin e "Llogarisë së Google" të fëmijës tënd.</translation> <translation id="4634771451598206121">Identifikohu sërish...</translation> <translation id="4635398712689569051"><ph name="PAGE_NAME" /> nuk ofrohet për përdoruesit vizitorë.</translation> +<translation id="4636930964841734540">Informacion</translation> <translation id="4637083375689622795">Më shumë veprime, <ph name="EMAIL" /></translation> <translation id="4638930039313743000">Aktivizo korrigjimin e ADB-së</translation> <translation id="4641539339823703554">Chrome nuk mund të caktonte kohën e sistemit. Kontrollo kohën më poshtë dhe korrigjoje nëse duhet.</translation> @@ -2809,7 +2809,6 @@ <translation id="4750394297954878236">Sugjerime</translation> <translation id="475088594373173692">Përdoruesi i parë</translation> <translation id="4751476147751820511">Sensorët e lëvizjes ose të dritës</translation> -<translation id="4756269098451810636">Imazh i ndarë nga <ph name="DEVICE_NAME" /></translation> <translation id="4756378406049221019">Ndalo/Ringarko</translation> <translation id="4756388243121344051">&Historiku</translation> <translation id="4759238208242260848">Shkarkimet</translation> @@ -3756,7 +3755,6 @@ <translation id="6040852767465482106">Identiteti anonim</translation> <translation id="6041046205544295907"><ph name="BEGIN_PARAGRAPH1" />Shërbimi i vendndodhjes i Google përdor burime si Wi-Fi, rrjetet celulare dhe sensorët, për të ndihmuar në përllogaritjen e vendndodhjes së pajisjes sate.<ph name="END_PARAGRAPH1" /> <ph name="BEGIN_PARAGRAPH2" />Mund ta çaktivizosh "Vendndodhjen" duke çaktivizuar cilësimin kryesor të "Vendndodhjes" në pajisje. Mund dhe të çaktivizosh përdorimin e Wi-Fi, rrjeteve celulare dhe sensorëve për vendndodhjen te cilësimet e vendndodhjes.<ph name="END_PARAGRAPH2" /></translation> -<translation id="6041150002191391409"><ph name="ORIGIN" /> do të mund t'i shikojë skedarët në <ph name="FOLDERNAME" /> deri sa t'i mbyllësh të gjitha skedat e <ph name="ORIGIN" /></translation> <translation id="6041155700700864984">Dil nga ekrani i plotë</translation> <translation id="604124094241169006">Automatike</translation> <translation id="6042308850641462728">Më shumë</translation> @@ -4152,7 +4150,6 @@ <translation id="6561726789132298588">enter</translation> <translation id="656293578423618167">Shtegu ose emri i skedarit është tepër i gjatë. Ruaje me një emër më të shkurtër ose në një vendndodhje tjetër.</translation> <translation id="6563469144985748109">Menaxheri yt nuk e ka miratuar ende</translation> -<translation id="6567688344210276845">Nuk mundi të ngarkonte ikonën "<ph name="ICON" />" për veprimin e faqes.</translation> <translation id="6569934958368283244">Njerëz të tjerë</translation> <translation id="657402800789773160">&Ringarkoje këtë faqe</translation> <translation id="6577284282025554716">Shkarkimi u anulua: <ph name="FILE_NAME" /></translation> @@ -4217,7 +4214,6 @@ <translation id="6659594942844771486">Skeda</translation> <translation id="6664237456442406323">Fatkeqësisht, kompjuteri yt është konfiguruar me një ID hardueri të keqformuar. Kjo parandalon përditësimin e sistemit operaitv Chrome me rregullimet më të fundit të sigurisë dhe kompjuteri yt <ph name="BEGIN_BOLD" />mund të jetë i cenueshëm ndaj sulmeve keqdashëse<ph name="END_BOLD" />.</translation> <translation id="6664774537677393800">Ndodhi një gabim gjatë hapjes së profilit tënd. Dil dhe më pas identifikohu përsëri.</translation> -<translation id="6667776121818773738">Imazh i ndarë nga një pajisje tjetër</translation> <translation id="6673391612973410118"><ph name="PRINTER_MAKE_OR_MODEL" /> (USB)</translation> <translation id="667517062706956822">Dëshiron që Google ta përkthejë këtë faqe gjuha <ph name="SOURCE_LANGUAGE" /> në <ph name="TARGET_LANGUAGE" />?</translation> <translation id="6675665718701918026">Është lidhur pajisja treguese</translation> @@ -4838,7 +4834,6 @@ <translation id="7497981768003291373">Nuk ke evidenca teksti WebRTC të regjistruara së fundi.</translation> <translation id="7502658306369382406">Adresa IPv6</translation> <translation id="7503191893372251637">Lloji i certifikatës Netscape</translation> -<translation id="7503821294401948377">Nuk mundi të ngarkonte ikonën "<ph name="ICON" />" për veprimin e shfletuesit.</translation> <translation id="7503985202154027481">Një regjistrim i vizitës sate në këtë sajt do të ruhet në çelësin tënd të sigurisë.</translation> <translation id="7504293978434250212">Organizata jote mund të skanojë skedarë deri në 50 MB. Provo të ngarkosh një skedar më të vogël.</translation> <translation id="750509436279396091">Hap dosjen e shkarkimeve</translation> @@ -5639,7 +5634,6 @@ <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="8550165047974571882"><ph name="ORIGIN" /> do të mund t'i modifikojë skedarët në <ph name="FOLDERNAME" /> deri sa t'i mbyllësh të gjitha skedat e <ph name="ORIGIN" /></translation> <translation id="8551388862522347954">Licencat</translation> <translation id="8553342806078037065">Menaxho kontaktet e tjera</translation> <translation id="8554899698005018844">Nuk ka gjuhë</translation>
diff --git a/chrome/app/resources/generated_resources_sr.xtb b/chrome/app/resources/generated_resources_sr.xtb index 2015ffe..0718713 100644 --- a/chrome/app/resources/generated_resources_sr.xtb +++ b/chrome/app/resources/generated_resources_sr.xtb
@@ -1117,7 +1117,6 @@ <translation id="247949520305900375">Дели звук</translation> <translation id="2480868415629598489">Мењање података које прекопирате</translation> <translation id="2482878487686419369">Обавештења</translation> -<translation id="2483610039979585156"><ph name="ORIGIN" /> ће моћи да мења датотеку <ph name="FILENAME" /> док не затворите све картице сајта <ph name="ORIGIN" /></translation> <translation id="2484959914739448251">Да бисте обрисали податке прегледања са свих синхронизованих уређаја и са Google налога, <ph name="BEGIN_LINK" />унесите приступну фразу<ph name="END_LINK" />.</translation> <translation id="2485005079599453134">Лозинка је сачувана на овом уређају</translation> <translation id="2485422356828889247">Деинсталирај</translation> @@ -1701,6 +1700,7 @@ <translation id="3264544094376351444">Фонт Sans-serif</translation> <translation id="3264582393905923483">Контекст</translation> <translation id="3265459715026181080">Затвори прозор</translation> +<translation id="3266274118485960573">Безбедносна провера је покренута.</translation> <translation id="3267726687589094446">Настави да дозвољаваш аутоматска преузимања више датотека</translation> <translation id="3268451620468152448">Отворене картице</translation> <translation id="3269069891205016797">Ваше информације ће се уклонити са уређаја кад се одјавите.</translation> @@ -1722,7 +1722,6 @@ <translation id="3282568296779691940">Пријављивање у Chrome</translation> <translation id="3285322247471302225">Нова &картица</translation> <translation id="328571385944182268">Желите ли да сачувате лозинке?</translation> -<translation id="328785681103589998"><ph name="ORIGIN" /> ће моћи да прегледа датотеку <ph name="FILENAME" /> док не затворите све картице сајта <ph name="ORIGIN" /></translation> <translation id="3288047731229977326">Додаци покренути у режиму програмера могу да нашкоде рачунару. Ако нисте програмер, требало би да онемогућите ове додатке покренуте у режиму програмера да бисте се заштитили.</translation> <translation id="3289856944988573801">Да бисте потражили ажурирања, користите етернет или Wi-Fi.</translation> <translation id="3290356915286466215">Незаштићено</translation> @@ -1807,6 +1806,7 @@ <translation id="3412265149091626468">Пређи на избор</translation> <translation id="3413122095806433232">CA издаваоци: <ph name="LOCATION" /></translation> <translation id="3414952576877147120">Величина:</translation> +<translation id="3416468988018290825">Увек приказуј URL-ове у целости</translation> <translation id="3420501302812554910">Интерни безбедносни кључ захтева ресетовање</translation> <translation id="3421387094817716717">Јавни кључ елиптичне криве</translation> <translation id="3422291238483866753">Питај када сајт жели да прави 3D мапу окружења или да прати положај камере (препоручено)</translation> @@ -2411,6 +2411,7 @@ <translation id="4144218403971135344">Пронађите видео садржај бољег квалитета и продужите трајање батерије. Видео ће се пуштати само на екрану који подржава Cast.</translation> <translation id="4146026355784316281">Увек отварај помоћу системског приказивача</translation> <translation id="4146785383423576110">Ресетовање и чишћење</translation> +<translation id="4147897805161313378">Google слике</translation> <translation id="4147911968024186208">Пробајте поново. Ако се ова грешка поново прикаже, контактирајте представника подршке.</translation> <translation id="4150201353443180367">Екран</translation> <translation id="4152670763139331043">{NUM_TABS,plural, =1{1 картица}one{# картица}few{# картице}other{# картица}}</translation> @@ -2730,6 +2731,7 @@ <translation id="4633757335284074492">Правите резервне копије на Google диску. Лако вратите податке или пређите на други уређај у било ком тренутку. Ова резервна копија укључује податке апликација. Резервне копије се отпремају на Google и шифрују лозинком за Google налог детета.</translation> <translation id="4634771451598206121">Пријави ме поново...</translation> <translation id="4635398712689569051">Страница <ph name="PAGE_NAME" /> није доступна корисницима у режиму госта.</translation> +<translation id="4636930964841734540">Информације</translation> <translation id="4637083375689622795">Још радњи, <ph name="EMAIL" /></translation> <translation id="4638930039313743000">Омогући ADB отклањање грешака</translation> <translation id="4641539339823703554">Chrome није могао да подеси системско време. Проверите време у наставку и исправите га ако је потребно.</translation> @@ -2809,7 +2811,6 @@ <translation id="4750394297954878236">Предлози</translation> <translation id="475088594373173692">Први корисник</translation> <translation id="4751476147751820511">Сензори за покрет или светло</translation> -<translation id="4756269098451810636">Слика се дели са уређаја <ph name="DEVICE_NAME" /></translation> <translation id="4756378406049221019">Заустави/поново учитај</translation> <translation id="4756388243121344051">&Историја</translation> <translation id="4759238208242260848">Преузимања</translation> @@ -3757,7 +3758,6 @@ <translation id="6040852767465482106">Непознати идентитет</translation> <translation id="6041046205544295907"><ph name="BEGIN_PARAGRAPH1" />Google услуга локације користи изворе као што су Wi‑Fi мреже, мобилне мреже и сензори да би одредила приближну локацију уређаја.<ph name="END_PARAGRAPH1" /> <ph name="BEGIN_PARAGRAPH2" />Локацију можете да искључите ако искључите главно подешавање Локација на уређају. У подешавањима локације можете да искључите и коришћење Wi‑Fi мрежа, мобилних мрежа и сензора за локацију.<ph name="END_PARAGRAPH2" /></translation> -<translation id="6041150002191391409"><ph name="ORIGIN" /> ће моћи да прегледа датотеке у директоријуму <ph name="FOLDERNAME" /> док не затворите све картице сајта <ph name="ORIGIN" /></translation> <translation id="6041155700700864984">Изађи из целог екрана</translation> <translation id="604124094241169006">Аутоматски</translation> <translation id="6042308850641462728">Још</translation> @@ -4153,7 +4153,6 @@ <translation id="6561726789132298588">enter</translation> <translation id="656293578423618167">Путања или назив датотеке су предугачки. Сачувајте са краћим називом или на другој локацији.</translation> <translation id="6563469144985748109">Менаџер га још увек није одобрио</translation> -<translation id="6567688344210276845">Није могуће учитати икону „<ph name="ICON" />“ за радњу странице.</translation> <translation id="6569934958368283244">Други људи</translation> <translation id="657402800789773160">&Reload This Page (Поново учитај ову страницу)</translation> <translation id="6577284282025554716">Преузимање је отказано: <ph name="FILE_NAME" /></translation> @@ -4165,6 +4164,7 @@ <translation id="6586451623538375658">Замени примарни тастер миша</translation> <translation id="6586604979641883411">Треба вам најмање <ph name="REQUIRED_SPACE" /> слободног простора на диску да бисте надоградили Linux. Ослободите простор на уређају и пробајте поново.</translation> <translation id="6588043302623806746">Користи безбедни DNS</translation> +<translation id="659005207229852190">Безбедносна провера је довршена.</translation> <translation id="6590458744723262880">Промените назив директоријума</translation> <translation id="6592267180249644460">WebRTC евиденција је снимљена <ph name="WEBRTC_LOG_CAPTURE_TIME" /></translation> <translation id="6592808042417736307">Отисак прста је снимљен</translation> @@ -4218,7 +4218,6 @@ <translation id="6659594942844771486">Картица</translation> <translation id="6664237456442406323">Нажалост, рачунар је конфигурисан помоћу погрешно направљеног ИД-а хардвера. То спречава Chrome ОС да се ажурира најновијим безбедносним исправкама и рачунар је <ph name="BEGIN_BOLD" />можда подложан злонамерним нападима<ph name="END_BOLD" />.</translation> <translation id="6664774537677393800">Дошло је до проблема при отварању профила. Одјавите се, па се поново пријавите.</translation> -<translation id="6667776121818773738">Слика се дели са другог уређаја</translation> <translation id="6673391612973410118"><ph name="PRINTER_MAKE_OR_MODEL" /> (USB)</translation> <translation id="667517062706956822">Желите ли да Google преведе ову страницу са језика <ph name="SOURCE_LANGUAGE" /> на <ph name="TARGET_LANGUAGE" />?</translation> <translation id="6675665718701918026">Показивачки уређај је повезан</translation> @@ -4839,7 +4838,6 @@ <translation id="7497981768003291373">Нисте недавно снимили ниједну WebRTC евиденцију текста.</translation> <translation id="7502658306369382406">IPv6 адреса</translation> <translation id="7503191893372251637">Тип Netscape сертификата</translation> -<translation id="7503821294401948377">Није могуће учитати икону „<ph name="ICON" />“ за радњу прегледача.</translation> <translation id="7503985202154027481">Посета овом сајту ће бити забележена на безбедносном кључу.</translation> <translation id="7504293978434250212">Организација може да скенира датотеке величине до 50 MB. Пробајте да отпремите мању датотеку.</translation> <translation id="750509436279396091">Отвори директоријум Преузимања</translation> @@ -5427,6 +5425,7 @@ <translation id="8249672078237421304">Нуди превод страница које нису на језику који читам</translation> <translation id="8251441930213048644">Освежи</translation> <translation id="8251578425305135684">Сличица је уклоњена.</translation> +<translation id="825238165904109940">Увек приказуј URL-ове у целости</translation> <translation id="8252569384384439529">Отпрема се...</translation> <translation id="8253198102038551905">Кликните на „+“ да бисте видели својства мреже</translation> <translation id="8254954272268479918">Искључи Linux (бета)</translation> @@ -5642,7 +5641,6 @@ <translation id="8546930481464505581">Прилагоди додирну траку</translation> <translation id="8547013269961688403">Омогући лупу за цео екран</translation> <translation id="85486688517848470">Задржите тастер за претрагу да бисте променили понашање тастера у горњем реду</translation> -<translation id="8550165047974571882"><ph name="ORIGIN" /> ће моћи да мења датотеке у директоријуму <ph name="FOLDERNAME" /> док не затворите све картице сајта <ph name="ORIGIN" /></translation> <translation id="8551388862522347954">Лиценце</translation> <translation id="8553342806078037065">Управљање другим људима</translation> <translation id="8554899698005018844">Без језика</translation>
diff --git a/chrome/app/resources/generated_resources_sv.xtb b/chrome/app/resources/generated_resources_sv.xtb index 8a3ca79d..834af3d 100644 --- a/chrome/app/resources/generated_resources_sv.xtb +++ b/chrome/app/resources/generated_resources_sv.xtb
@@ -1120,7 +1120,6 @@ <translation id="247949520305900375">Dela ljud</translation> <translation id="2480868415629598489">Ändra data som du kopierar och klistrar in</translation> <translation id="2482878487686419369">Aviseringar</translation> -<translation id="2483610039979585156"><ph name="ORIGIN" /> får redigeringsbehörighet till <ph name="FILENAME" /> tills du stänger alla flikar för <ph name="ORIGIN" /></translation> <translation id="2484959914739448251"><ph name="BEGIN_LINK" />Ange din lösenfras<ph name="END_LINK" /> om du vill rensa webbinformation från alla synkroniserade enheter och ditt Google-konto.</translation> <translation id="2485005079599453134">Lösenord som har sparats på den här enheten</translation> <translation id="2485422356828889247">Avinstallera</translation> @@ -1725,7 +1724,6 @@ <translation id="3282568296779691940">Logga in i Chrome</translation> <translation id="3285322247471302225">Ny &flik</translation> <translation id="328571385944182268">Vill du spara lösenorden?</translation> -<translation id="328785681103589998"><ph name="ORIGIN" /> kan visa <ph name="FILENAME" /> tills du stänger alla flikar för <ph name="ORIGIN" /></translation> <translation id="3288047731229977326">Tillägg som körs i utvecklarläge kan skada datorn. Om du inte är en utvecklare bör du inaktivera tillägg som körs i utvecklarläge för att skydda dig.</translation> <translation id="3289856944988573801">Använd Ethernet eller Wi-Fi om du vill söka efter uppdateringar.</translation> <translation id="3290356915286466215">Inte skyddat</translation> @@ -2414,6 +2412,7 @@ <translation id="4144218403971135344">Få bättre videokvalitet och spara på batteriet. Videor spelas bara upp på den Cast-kompatibla skärmen.</translation> <translation id="4146026355784316281">Öppna alltid med systemets visningsprogram</translation> <translation id="4146785383423576110">Återställ och rensa</translation> +<translation id="4147897805161313378">Google Foto</translation> <translation id="4147911968024186208">Försök igen. Kontakta supporten om det här felet återkommer.</translation> <translation id="4150201353443180367">Skärm</translation> <translation id="4152670763139331043">{NUM_TABS,plural, =1{1 flik}other{# flikar}}</translation> @@ -2733,6 +2732,7 @@ <translation id="4633757335284074492">Säkerhetskopiera på Google Drive. Återställ data eller byt enkelt enhet när du vill. Säkerhetskopian innehåller appdata. Säkerhetskopiorna krypteras med hjälp av lösenordet till barnets Google-konto och laddas upp på Google.</translation> <translation id="4634771451598206121">Logga in igen ...</translation> <translation id="4635398712689569051">Sidan <ph name="PAGE_NAME" /> är inte tillgänglig för gästanvändare.</translation> +<translation id="4636930964841734540">Info</translation> <translation id="4637083375689622795">Fler åtgärder, <ph name="EMAIL" /></translation> <translation id="4638930039313743000">Aktivera felsökning med ADB</translation> <translation id="4641539339823703554">Systemtiden kunde inte anges i Chrome. Kontrollera tiden nedan och korrigera den om det behövs.</translation> @@ -2812,7 +2812,6 @@ <translation id="4750394297954878236">Förslag</translation> <translation id="475088594373173692">Första användare</translation> <translation id="4751476147751820511">Rörelse- eller ljussensorer</translation> -<translation id="4756269098451810636">Bild delad från <ph name="DEVICE_NAME" /></translation> <translation id="4756378406049221019">Stoppa inläsningen/läs in igen</translation> <translation id="4756388243121344051">&Historik</translation> <translation id="4759238208242260848">Nedladdningar</translation> @@ -3759,7 +3758,6 @@ <translation id="6040852767465482106">Anonym identitet</translation> <translation id="6041046205544295907"><ph name="BEGIN_PARAGRAPH1" />Med Googles platstjänst används källor som Wi-Fi, mobilnätverk och sensorer för att avgöra enhetens plats.<ph name="END_PARAGRAPH1" /> <ph name="BEGIN_PARAGRAPH2" />Du kan inaktivera tjänsten genom att inaktivera huvudinställningen för Plats på enheten. Du kan även inaktivera användningen av Wi-Fi, mobilnätverk och sensorer för plats i platsinställningarna.<ph name="END_PARAGRAPH2" /></translation> -<translation id="6041150002191391409"><ph name="ORIGIN" /> får visningsbehörighet till filer i <ph name="FOLDERNAME" /> tills du stänger alla flikar för <ph name="ORIGIN" /></translation> <translation id="6041155700700864984">Avsluta helskärmsläget</translation> <translation id="604124094241169006">Automatisk</translation> <translation id="6042308850641462728">Mer</translation> @@ -4155,7 +4153,6 @@ <translation id="6561726789132298588">retur</translation> <translation id="656293578423618167">För lång sökväg eller för långt filnamn. Spara med ett kortare namn eller på en annan plats.</translation> <translation id="6563469144985748109">Den ansvarige har inte godkänt den ännu</translation> -<translation id="6567688344210276845">Det gick inte att läsa in ikonen <ph name="ICON" /> för sidåtgärden.</translation> <translation id="6569934958368283244">Andra personer</translation> <translation id="657402800789773160">&Hämta sidan igen</translation> <translation id="6577284282025554716">Nedladdningen avbröts: <ph name="FILE_NAME" /></translation> @@ -4220,7 +4217,6 @@ <translation id="6659594942844771486">Flik</translation> <translation id="6664237456442406323">Tyvärr är din dator konfigurerad med ett felaktigt maskinvaru-ID. Detta förhindrar att Chrome OS uppdateras med de senaste säkerhetskorrigeringarna och datorn <ph name="BEGIN_BOLD" />kan vara utsatt för skadlig programvara<ph name="END_BOLD" />.</translation> <translation id="6664774537677393800">Något gick snett när profilen skulle öppnas. Logga ut och sedan in igen.</translation> -<translation id="6667776121818773738">Bild delad från en annan enhet</translation> <translation id="6673391612973410118"><ph name="PRINTER_MAKE_OR_MODEL" /> (USB)</translation> <translation id="667517062706956822">Vill du att Google ska översätta sidan från <ph name="SOURCE_LANGUAGE" /> till <ph name="TARGET_LANGUAGE" />?</translation> <translation id="6675665718701918026">Pekdon har anslutits</translation> @@ -4841,7 +4837,6 @@ <translation id="7497981768003291373">Du har inga nyligen registrerade WebRTC-textloggar.</translation> <translation id="7502658306369382406">IPv6-adress</translation> <translation id="7503191893372251637">Certifieringstyp för Netscape</translation> -<translation id="7503821294401948377">Det gick inte att läsa in ikonen <ph name="ICON" /> för webbläsaråtgärden.</translation> <translation id="7503985202154027481">Ditt besök på webbplatsen sparas i säkerhetsnyckeln.</translation> <translation id="7504293978434250212">Organisationen kan genomsöka filer som är upp till 50 MB stora. Testa att ladda upp en mindre fil.</translation> <translation id="750509436279396091">Öppna mappen för nedladdningar</translation> @@ -5644,7 +5639,6 @@ <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="8550165047974571882"><ph name="ORIGIN" /> får redigeringsbehörighet till filer i <ph name="FOLDERNAME" /> tills du stänger alla flikar för <ph name="ORIGIN" /></translation> <translation id="8551388862522347954">Licenser</translation> <translation id="8553342806078037065">Hantera andra personer</translation> <translation id="8554899698005018844">Inget språk</translation>
diff --git a/chrome/app/resources/generated_resources_sw.xtb b/chrome/app/resources/generated_resources_sw.xtb index 067c8a6..4d3e43f 100644 --- a/chrome/app/resources/generated_resources_sw.xtb +++ b/chrome/app/resources/generated_resources_sw.xtb
@@ -458,7 +458,7 @@ <translation id="1616206807336925449">Kiendelezi hiki hakihitaji ruhusa maalum.</translation> <translation id="1616298854599875024">Imeshindwa kupakia kiendelezi "<ph name="IMPORT_NAME" />" kwa sababu si sehemu iliyoshirikiwa</translation> <translation id="1618268899808219593">Kituo cha Usaidizi</translation> -<translation id="1620307519959413822">Nenosiri si sahihi. Jaribu tena au ubofye 'Nimesahau nenosiri' ili uliweke upya.</translation> +<translation id="1620307519959413822">Nenosiri si sahihi. Jaribu tena au ubofye 'Nimesahau nenosiri' ili uweke jipya.</translation> <translation id="1620510694547887537">Kamera</translation> <translation id="1623132449929929218">Picha hizi hazipatikani kwa sasa. Tafadhali unganisha tena kwenye intaneti ili uone mikusanyiko ya mandhari.</translation> <translation id="1627276047960621195">Vifafanuzi Faili</translation> @@ -1117,7 +1117,6 @@ <translation id="247949520305900375">Shiriki sauti</translation> <translation id="2480868415629598489">Badilisha data unayonakili na kubandika</translation> <translation id="2482878487686419369">Arifa</translation> -<translation id="2483610039979585156"><ph name="ORIGIN" /> itaweza kubadilisha <ph name="FILENAME" /> hadi ufunge vichupo vyote vya <ph name="ORIGIN" /></translation> <translation id="2484959914739448251">Ili ufute data ya kuvinjari kwenye vifaa vyako vyote vilivyosawazishwa na Akaunti yako ya Google, <ph name="BEGIN_LINK" />weka kauli yako ya siri<ph name="END_LINK" />.</translation> <translation id="2485005079599453134">Nenosiri limehifadhiwa kwenye kifaa hiki</translation> <translation id="2485422356828889247">Ondoa</translation> @@ -1701,6 +1700,7 @@ <translation id="3264544094376351444">Fonti ya Sans-serif</translation> <translation id="3264582393905923483">Muktadha</translation> <translation id="3265459715026181080">Funga Dirisha</translation> +<translation id="3266274118485960573">Inafanya ukaguzi wa usalama.</translation> <translation id="3267726687589094446">Endelea kuruhusu upakuaji otomatiki wa faili nyingi</translation> <translation id="3268451620468152448">Fungua Vichupo</translation> <translation id="3269069891205016797">Maelezo yako yataondolewa kwenye kifaa hiki ukiondoka kwenye akaunti.</translation> @@ -1722,7 +1722,6 @@ <translation id="3282568296779691940">Ingia katika Chrome</translation> <translation id="3285322247471302225">Kichupo &Kipya</translation> <translation id="328571385944182268">Ungependa kuhifadhi manenosiri yako?</translation> -<translation id="328785681103589998"><ph name="ORIGIN" /> itaweza kuona <ph name="FILENAME" /> hadi ufunge vichupo vyote vya <ph name="ORIGIN" /></translation> <translation id="3288047731229977326">Viendelezi vinavyoendeshwa katika hali ya msanidi programu vinaweza vikadhuru kompyuta yako. Kama wewe si msanidi programu, unapaswa kuzima viendelezi hivi vinavyoendeshwa katika hali ya msanidi programu ili ukae salama.</translation> <translation id="3289856944988573801">Ili kuangalia sasisho, tafadhali tumia Ethernet au Wi-Fi.</translation> <translation id="3290356915286466215">Haulindwi</translation> @@ -1807,6 +1806,7 @@ <translation id="3412265149091626468">Ruka hadi Iliyochaguliwa</translation> <translation id="3413122095806433232">Watoaji Vyeti wa Kati:<ph name="LOCATION" /></translation> <translation id="3414952576877147120">Ukubwa:</translation> +<translation id="3416468988018290825">Onyesha URL kamili kila wakati</translation> <translation id="3420501302812554910">Unatakiwa kubadilisha ufunguo wa usalama wa ndani</translation> <translation id="3421387094817716717">Ufunguo wa Umma wa Kizingo cha Mviringo</translation> <translation id="3422291238483866753">Uliza wakati tovuti inataka kubuni ramani ya 3D ya mazingira yako na kufuatilia mkao wa kamera (inapendekezwa)</translation> @@ -2409,6 +2409,7 @@ <translation id="4144218403971135344">Pata video bora na uokoe muda wa matumizi ya betri. Video itacheza tu kwenye skrini inayoweza kutumia Google Cast.</translation> <translation id="4146026355784316281">Fungua Ukitumia Kitazamaji Cha Mfumo Wakati Wowote</translation> <translation id="4146785383423576110">Weka mipangilio upya na ufute programu hatari</translation> +<translation id="4147897805161313378">Picha kwenye Google</translation> <translation id="4147911968024186208">Tafadhali jaribu tena. Ukiona hitilafu hii tena, tafadhali wasiliana na mwakilishi wako wa kutoa usaidizi.</translation> <translation id="4150201353443180367">Onyesho</translation> <translation id="4152670763139331043">{NUM_TABS,plural, =1{Kichupo 1}other{Vichupo #}}</translation> @@ -2728,6 +2729,7 @@ <translation id="4633757335284074492">Hifadhi nakala kwenye Hifadhi ya Google. Rejesha data kwa urahisi au ubadilishe kifaa wakati wowote. Nakala inajumuisha data ya programu. Nakala hupakiwa kwenye Google na kusimbwa kwa njia fiche kwa kutumia nenosiri la Akaunti ya Google ya mtoto wako.</translation> <translation id="4634771451598206121">Ingia tena...</translation> <translation id="4635398712689569051"><ph name="PAGE_NAME" /> haipatikani kwa watumiaji Wageni</translation> +<translation id="4636930964841734540">Maelezo</translation> <translation id="4637083375689622795">Vitendo zaidi, <ph name="EMAIL" /></translation> <translation id="4638930039313743000">Washa utatuzi wa ADB</translation> <translation id="4641539339823703554">Chrome haikuweza kuweka saa ya mfumo. Tafadhali angalia saa iliyo hapa chini na uirekebishe ikiwa inahitajika.</translation> @@ -2807,7 +2809,6 @@ <translation id="4750394297954878236">Mapendekezo</translation> <translation id="475088594373173692">Mtumiaji wa kwanza</translation> <translation id="4751476147751820511">Vitambuzi vya mwendo au mwangaza</translation> -<translation id="4756269098451810636">Picha imeshirikiwa kutoka <ph name="DEVICE_NAME" /></translation> <translation id="4756378406049221019">Simamisha/Pakia upya</translation> <translation id="4756388243121344051">&Historia</translation> <translation id="4759238208242260848">Vipakuliwa</translation> @@ -3754,7 +3755,6 @@ <translation id="6040852767465482106">Kitambulisho Hakijulikani</translation> <translation id="6041046205544295907"><ph name="BEGIN_PARAGRAPH1" />Huduma ya Google ya utambuzi wa mahali hutumia vyanzo kama vile Wi-Fi, mitandao ya simu na vitambuzi ili kusaidia kukadiria mahali kilipo kifaa chako.<ph name="END_PARAGRAPH1" /> <ph name="BEGIN_PARAGRAPH2" />Unaweza kuzima huduma ya Mahali kwa kuzima mipangilio ya msingi ya Mahali kwenye kifaa chako. Pia, unaweza kuzima utumiaji wa Wi-Fi, mitandao ya simu na vitambuzi vya mahali katika mipangilio ya mahali.<ph name="END_PARAGRAPH2" /></translation> -<translation id="6041150002191391409"><ph name="ORIGIN" /> itaweza kuona faili katika <ph name="FOLDERNAME" /> hadi ufunge vichupo vyote vya <ph name="ORIGIN" /></translation> <translation id="6041155700700864984">Ondoka kwenye Skrini Nzima</translation> <translation id="604124094241169006">Otomatiki</translation> <translation id="6042308850641462728">Zaidi</translation> @@ -4150,7 +4150,6 @@ <translation id="6561726789132298588">ingiza</translation> <translation id="656293578423618167">Njia ya faili au jina ni ndefu mno. Tafadhali hifadhi ikiwa na jina fupi au kwenye eneo jingine.</translation> <translation id="6563469144985748109">Msimamizi wako bado hajaiidhinisha</translation> -<translation id="6567688344210276845">Aikoni '<ph name="ICON" />' haikuweza kupakiwa kwa kitendo cha ukurasa.</translation> <translation id="6569934958368283244">Watu wengine</translation> <translation id="657402800789773160">&Pakia Ukurasa Huu Upya</translation> <translation id="6577284282025554716">Imeghairi kupakua: <ph name="FILE_NAME" /></translation> @@ -4162,6 +4161,7 @@ <translation id="6586451623538375658">Badilisha kitufe msingi cha kipanya</translation> <translation id="6586604979641883411">Unahitaji angalau <ph name="REQUIRED_SPACE" /> ya nafasi ambayo haijatumika katika diski ili upate toleo jipya la Linux. Tafadhali futa ili upate nafasi kwenye kifaa chako na ujaribu tena.</translation> <translation id="6588043302623806746">Tumia DNS salama</translation> +<translation id="659005207229852190">Imekamilisha ukaguzi wa usalama</translation> <translation id="6590458744723262880">Badilisha jina la folda</translation> <translation id="6592267180249644460">Kumbukumbu ya WebRTC ilipigwa picha <ph name="WEBRTC_LOG_CAPTURE_TIME" /></translation> <translation id="6592808042417736307">Imenasa alama yako ya kidole</translation> @@ -4215,7 +4215,6 @@ <translation id="6659594942844771486">Kichupo</translation> <translation id="6664237456442406323">Kwa bahati mbaya, kompyuta yako imesanidiwa na kitambulisho cha maunzi kilichoharibika. Hii inazuia Chrome OS isisasishe na sasisho za usalama za hivi karibuni na kompyuta yako <ph name="BEGIN_BOLD" />inaweza ikawa hatarini kutokana na mashambulizi hasidi<ph name="END_BOLD" />.</translation> <translation id="6664774537677393800">Hitilafu imetokea wakati wa kufungua wasifu wako. Tafadhali ondoka na uingie katika akaunti tena.</translation> -<translation id="6667776121818773738">Picha ilishirikiwa kutoka kifaa kingine</translation> <translation id="6673391612973410118"><ph name="PRINTER_MAKE_OR_MODEL" /> (USB)</translation> <translation id="667517062706956822">Je, ungependa Google itafsiri ukurasa huu kutoka <ph name="SOURCE_LANGUAGE" /> hadi <ph name="TARGET_LANGUAGE" />?</translation> <translation id="6675665718701918026">Kifaa cha kuonyeshea kimeunganishwa</translation> @@ -4836,7 +4835,6 @@ <translation id="7497981768003291373">Huna kumbukumbu za maandishi ya WebRTC uliyorekodi hivi majuzi.</translation> <translation id="7502658306369382406">Anwani ya IPv6</translation> <translation id="7503191893372251637">Aina ya Cheti cha Netscape</translation> -<translation id="7503821294401948377">Aikoni '<ph name="ICON" />' haikuweza kupakiwa kwa kitendo cha kivinjari.</translation> <translation id="7503985202154027481">Rekodi ya ulivyotembelea tovuti hii itahifadhiwa kwenye ufunguo wako wa usalama.</translation> <translation id="7504293978434250212">Shirika lako linaweza kuchanganua faili za hadi MB 50. Jaribu kupakia faili ndogo.</translation> <translation id="750509436279396091">Fungua folda ya vipakuliwa</translation> @@ -5426,6 +5424,7 @@ <translation id="8249672078237421304">Jitolee kutafsiri kurasa ambazo haziko katika lugha unayoisoma</translation> <translation id="8251441930213048644">Onyesha upya sasa</translation> <translation id="8251578425305135684">Kijipicha kimeondolewa.</translation> +<translation id="825238165904109940">Onyesha URL Kamili Kila Wakati</translation> <translation id="8252569384384439529">Inapakia...</translation> <translation id="8253198102038551905">Bonyeza '+' ili kupata sifa za mtandao</translation> <translation id="8254954272268479918">Zima Linux (Beta)</translation> @@ -5641,7 +5640,6 @@ <translation id="8546930481464505581">Badilisha Upau Mguso Utakavyo</translation> <translation id="8547013269961688403">Washa kikuzaji cha skrini nzima</translation> <translation id="85486688517848470">Shikilia kitufe cha Utafutaji ili ubadilishe tabia ya vitufe vya juu vya safu mlalo</translation> -<translation id="8550165047974571882"><ph name="ORIGIN" /> itaweza kubadilisha faili katika <ph name="FOLDERNAME" /> hadi ufunge vichupo vyote vya <ph name="ORIGIN" /></translation> <translation id="8551388862522347954">Leseni</translation> <translation id="8553342806078037065">Dhibiti watumiaji wengine</translation> <translation id="8554899698005018844">Hakuna lugha</translation>
diff --git a/chrome/app/resources/generated_resources_ta.xtb b/chrome/app/resources/generated_resources_ta.xtb index 3f2b875..56f606a 100644 --- a/chrome/app/resources/generated_resources_ta.xtb +++ b/chrome/app/resources/generated_resources_ta.xtb
@@ -704,7 +704,7 @@ <translation id="1944528062465413897">புளூடூத் இணைத்தல் குறியீடு:</translation> <translation id="1944921356641260203">புதுப்பிப்பு உள்ளது</translation> <translation id="1946577776959096882">கணக்குகளைக் காட்டு</translation> -<translation id="1951012854035635156">அசிஸ்டண்ட்</translation> +<translation id="1951012854035635156">Assistant</translation> <translation id="1954813140452229842">பகிர்வை ஏற்றுவதில் பிழை. உங்கள் அனுமதிச் சான்றுகளைச் சரிபார்த்து, மீண்டும் முயலவும்.</translation> <translation id="1956050014111002555">இந்தக் கோப்பில் பல சான்றிதழ்கள் உள்ளன, அவற்றில் எதுவும் இறக்குமதி செய்யப்படவில்லை:</translation> <translation id="1956390763342388273">இதைச் செய்தால், "<ph name="FOLDER_PATH" />" இல் உள்ள அனைத்துக் கோப்புகளும் பதிவேற்றப்படும். தளத்தை நம்பினால் மட்டுமே இதைச் செய்யவும்.</translation> @@ -1095,7 +1095,6 @@ <translation id="247949520305900375">ஆடியோவைப் பகிர்</translation> <translation id="2480868415629598489">நீங்கள் நகலெடுத்து ஒட்டும் தரவைத் திருத்தலாம்</translation> <translation id="2482878487686419369">அறிவிப்புகள்</translation> -<translation id="2483610039979585156"><ph name="ORIGIN" /> தளத்தின் தாவல்கள் அனைத்தையும் மூடும் வரை <ph name="FILENAME" /> கோப்பினை <ph name="ORIGIN" /> தளத்தால் திருத்த முடியும்</translation> <translation id="2484959914739448251">உங்கள் ஒத்திசைக்கப்பட்ட சாதனங்கள் அனைத்திலிருந்தும் Google கணக்கிலிருந்தும் உலாவல் தரவை முழுமையாக அழிக்க, <ph name="BEGIN_LINK" />உங்கள் கடவுச்சொற்றொடரை உள்ளிடவும்<ph name="END_LINK" />.</translation> <translation id="2485005079599453134">இந்தச் சாதனத்தில் கடவுச்சொல் சேமிக்கப்பட்டது</translation> <translation id="2485422356828889247">நிறுவல் நீக்கு</translation> @@ -1692,7 +1691,6 @@ <translation id="3282568296779691940">Chrome இல் உள்நுழைக</translation> <translation id="3285322247471302225">புதிய &தாவல்</translation> <translation id="328571385944182268">உங்கள் கடவுச்சொற்களைச் சேமிக்க வேண்டுமா?</translation> -<translation id="328785681103589998">அனைத்து <ph name="ORIGIN" /> தாவல்களையும் மூடும் வரை <ph name="FILENAME" /> ஐ <ph name="ORIGIN" /> பார்க்க முடியும்</translation> <translation id="3288047731229977326">டெவெலப்பர் பயன்முறையில் இயங்கிக்கொண்டிருக்கும் நீட்டிப்புகள் உங்கள் கம்ப்யூட்டருக்குத் தீங்கு விளைவிக்கலாம். நீங்கள் டெவெலப்பர் இல்லையென்றால், பாதுகாப்பு காரணமாக டெவெலப்பர் பயன்முறையில் இயங்கிக்கொண்டிருக்கும் இந்த நீட்டிப்புகளை முடக்க வேண்டும்.</translation> <translation id="3289856944988573801">புதுப்பிப்புகளைப் பார்க்க, ஈத்தர்நெட் அல்லது வைஃபை ஐப் பயன்படுத்தவும்.</translation> <translation id="3290356915286466215">பாதுகாப்பற்ற வைஃபை நெட்வொர்க்</translation> @@ -2368,6 +2366,7 @@ <translation id="4144218403971135344">மேலும் தரமான வீடியோக்களைப் பெறலாம், பேட்டரி நிலையை நீட்டிக்கலாம். Cast வசதியுள்ள திரையில் மட்டுமே வீடியோக்கள் இயக்கப்படும்.</translation> <translation id="4146026355784316281">எப்போதும் சிஸ்டம் வியூவரைக் கொண்டு திற</translation> <translation id="4146785383423576110">இயல்பு அமைப்புகளுக்கு மீட்டமைத்து, தீங்கிழைக்கும் மென்பொருளை அகற்று</translation> +<translation id="4147897805161313378">Google Photos</translation> <translation id="4147911968024186208">மீண்டும் முயலவும். இந்தப் பிழை மீண்டும் ஏற்பட்டால், உங்கள் உதவி மையப் பிரதிநிதியைத் தொடர்பு கொள்ளவும்.</translation> <translation id="4150201353443180367">திரை</translation> <translation id="4152670763139331043">{NUM_TABS,plural, =1{1 தாவல்}other{# தாவல்கள்}}</translation> @@ -2680,6 +2679,7 @@ <translation id="4633757335284074492">Google Driveவிற்குக் காப்புப் பிரதி எடுக்கவும். எப்போது வேண்டுமானாலும் தரவை எளிதாக மீட்டெடுக்கலாம் அல்லது சாதனத்தை மாற்றலாம். ஆப்ஸ் தரவும் இந்தக் காப்புப் பிரதியில் அடங்கும். காப்புப்பிரதிகள் Googleளுக்குப் பதிவேற்றப்பட்டு பிள்ளையின் Google கணக்கின் கடவுச்சொல்லைப் பயன்படுத்தி என்க்ரிப்ஷன் செய்யப்படுகின்றன.</translation> <translation id="4634771451598206121">மீண்டும் உள்நுழைக...</translation> <translation id="4635398712689569051">கெஸ்ட் பயனர்களுக்கு <ph name="PAGE_NAME" /> கிடைக்காது.</translation> +<translation id="4636930964841734540">தகவல்</translation> <translation id="4637083375689622795">கூடுதல் செயல்கள், <ph name="EMAIL" /></translation> <translation id="4638930039313743000">ADB பிழைதிருத்தத்தை இயக்கு</translation> <translation id="4641539339823703554">Chrome ஆல் கணினி நேரத்தை அமைக்க முடியவில்லை. கீழே நேரத்தைச் சரிபார்த்து, தேவைப்பட்டால் சரிசெய்யவும்.</translation> @@ -2756,7 +2756,6 @@ <translation id="4750394297954878236">பரிந்துரைகள்</translation> <translation id="475088594373173692">முதல் பயனர்</translation> <translation id="4751476147751820511">நகர்வு அல்லது ஒளி உணர்விகள்</translation> -<translation id="4756269098451810636"><ph name="DEVICE_NAME" /> சாதனத்திலிருந்து படம் பகிரப்பட்டுள்ளது</translation> <translation id="4756378406049221019">நிறுத்து/ரெஃப்ரெஷ் செய்</translation> <translation id="4756388243121344051">&வரலாறு</translation> <translation id="4759238208242260848">பதிவிறக்கங்கள்</translation> @@ -3687,7 +3686,6 @@ <translation id="6040852767465482106">அநாமதேய அடையாளம்</translation> <translation id="6041046205544295907"><ph name="BEGIN_PARAGRAPH1" />உங்கள் சாதனத்தின் இருப்பிடத்தைக் கணிப்பதற்காக வைஃபை, மொபைல் நெட்வொர்க்குகள், சென்சார்கள் போன்றவற்றை Googleளின் இருப்பிடச் சேவை பயன்படுத்துகிறது.<ph name="END_PARAGRAPH1" /> <ph name="BEGIN_PARAGRAPH2" />உங்கள் சாதனத்தில் முதன்மை இருப்பிட அமைப்பை முடக்குவதன் மூலம் ‘இருப்பிடச் சேவையை’ முடக்கலாம். இருப்பிடத்திற்கு வைஃபை, மொபைல் நெட்வொர்க்குகள் மற்றும் சென்சார்களைப் பயன்படுத்துவதையும் இருப்பிட அமைப்புகளில் முடக்கலாம்.<ph name="END_PARAGRAPH2" /></translation> -<translation id="6041150002191391409"><ph name="ORIGIN" /> தளத்தின் தாவல்கள் அனைத்தையும் முடும் வரை <ph name="FOLDERNAME" /> கோப்புறையில் உள்ள கோப்புகளை <ph name="ORIGIN" /> தளத்தால் பார்க்க முடியும்</translation> <translation id="6041155700700864984">முழுத்திரையிலிருந்து வெளியேறு</translation> <translation id="604124094241169006">தானியங்கு</translation> <translation id="6042308850641462728">மேலும்</translation> @@ -4077,7 +4075,6 @@ <translation id="6561726789132298588">எண்டர்</translation> <translation id="656293578423618167">கோப்பு பாதை அல்லது பெயர் மிக நீளமாக உள்ளது. பெயரைச் சுருக்கியோ அல்லது மற்றொரு இடத்திலோ சேமிக்கவும்.</translation> <translation id="6563469144985748109">இன்னும் உங்கள் நிர்வாகி அனுமதிக்கவில்லை</translation> -<translation id="6567688344210276845">பக்கச் செயல்பாட்டிற்காக படவுரு '<ph name="ICON" />' ஐ ஏற்ற முடியவில்லை.</translation> <translation id="6569934958368283244">பிறர்</translation> <translation id="657402800789773160">&இந்த பக்கத்தை மீண்டும் ஏற்றுக</translation> <translation id="6577284282025554716">பதிவிறக்கம் ரத்துசெய்யப்பட்டது: <ph name="FILE_NAME" /></translation> @@ -4142,7 +4139,6 @@ <translation id="6659594942844771486">தாவல்</translation> <translation id="6664237456442406323">எதிர்பாராதவிதமாக, உங்கள் கம்ப்யூட்டர் ஒரு தவறான வன்பொருள் ஐடியுடன் உள்ளமைக்கப்பட்டது. இது சமீபத்திய பாதுகாப்பு திருத்தங்களைக் கொண்டு Chrome OSஸைப் புதுப்பிப்பதிலிருந்து தடுக்கும், உங்கள் கம்ப்யூட்டர் <ph name="BEGIN_BOLD" />தீங்கிழைக்கும் தாக்குதல்களின்<ph name="END_BOLD" /> மூலம் பாதிக்கப்படலாம்.</translation> <translation id="6664774537677393800">சுயவிவரத்தைத் திறக்கும் போது, ஏதோ தவறாகிவிட்டது. வெளியேறி, மீண்டும் உள்நுழையவும்.</translation> -<translation id="6667776121818773738">மற்றொரு சாதனத்திலிருந்து படம் பகிரப்பட்டுள்ளது</translation> <translation id="6673391612973410118"><ph name="PRINTER_MAKE_OR_MODEL" /> (USB)</translation> <translation id="667517062706956822">இந்தப் பக்கத்தை <ph name="SOURCE_LANGUAGE" /> மொழியிலிருந்து <ph name="TARGET_LANGUAGE" /> மொழிக்கு Google மொழிபெயர்க்க வேண்டும் என விரும்புகிறீர்களா?</translation> <translation id="6675665718701918026">சுட்டும் சாதனம் இணைக்கப்பட்டது</translation> @@ -4750,7 +4746,6 @@ <translation id="7497981768003291373">சமீபத்தில் எடுக்கப்பட்ட WebRTC உரைப் பதிவுகள் எதுவும் இல்லை.</translation> <translation id="7502658306369382406">IPv6 முகவரி</translation> <translation id="7503191893372251637">Netscape சான்றிதழ் வகை</translation> -<translation id="7503821294401948377">உலாவிச் செயல்பாட்டிற்காக படவுரு '<ph name="ICON" />' ஐ ஏற்ற முடியவில்லை.</translation> <translation id="7503985202154027481">நீங்கள் இந்த வலைதளத்தைப் பார்வையிட்டது தொடர்பான விவரங்கள் உங்கள் பாதுகாப்பு விசையில் பதிவுசெய்யப்படும்.</translation> <translation id="7504293978434250212">50 மெ.பை. வரையுள்ள கோப்புகளை உங்கள் நிறுவனம் ஸ்கேன் செய்ய முடியும். சிறிய கோப்பினைப் பதிவேற்றவும்.</translation> <translation id="750509436279396091">பதிவிறக்கங்கள் கோப்புறையைத் திற</translation> @@ -5540,7 +5535,6 @@ <translation id="8546930481464505581">டச் பாரைத் தனிப்படுத்து</translation> <translation id="8547013269961688403">முழுத்திரைப் பெரிதாக்கியை இயக்கு</translation> <translation id="85486688517848470">மேல் வரிசையில் உள்ள விசைகளின் செயல்பாட்டை மாற்ற, தேடல் விசையைப் பிடித்திருக்கவும்</translation> -<translation id="8550165047974571882"><ph name="ORIGIN" /> தளத்தின் தாவல்கள் அனைத்தையும் மூடும் வரை <ph name="FOLDERNAME" /> கோப்புறையில் உள்ள கோப்புகளை <ph name="ORIGIN" /> தளத்தால் திருத்த முடியும்</translation> <translation id="8551388862522347954">உரிமங்கள்</translation> <translation id="8553342806078037065">பிற பயனர்களை நிர்வகி</translation> <translation id="8554899698005018844">மொழி இல்லை</translation>
diff --git a/chrome/app/resources/generated_resources_te.xtb b/chrome/app/resources/generated_resources_te.xtb index fcabc499..437c9e2 100644 --- a/chrome/app/resources/generated_resources_te.xtb +++ b/chrome/app/resources/generated_resources_te.xtb
@@ -524,7 +524,7 @@ <translation id="1697686431566694143">ఎడిటింగ్ను అనుమతించు</translation> <translation id="1698122934742150150">ప్రస్తుత అజ్ఞాత సెషన్కు మాత్రమే</translation> <translation id="1698650002254827833">యాప్ల జాబితాను లోడ్ చేయడం సాధ్యపడలేదు. దయచేసి మళ్లీ ప్రయత్నించండి.</translation> -<translation id="1700079447639026019">కుక్కీలను ఎప్పుడూ ఉపయోగించని సైట్లు</translation> +<translation id="1700079447639026019">కుక్కీలను ఉపయోగించే అనుమతి ఎప్పటికీ లేని సైట్లు</translation> <translation id="1701062906490865540">ఈ వ్యక్తిని తీసివేయి</translation> <translation id="1703331064825191675">మీ పాస్వర్డ్ల గురించి ఎప్పుడూ చింతించకండి</translation> <translation id="1704970325597567340">భద్రతా తనిఖీ <ph name="DATE" /> తేదీన రన్ చేయబడింది</translation> @@ -613,7 +613,7 @@ <translation id="1805822111539868586">వీక్షణలను పరిశీలించండి</translation> <translation id="1805888043020974594">ప్రింట్ సర్వర్</translation> <translation id="1805967612549112634">పిన్ను నిర్ధారించండి</translation> -<translation id="1806335016774576568">మరొక తెరిచి ఉన్న యాప్కు మారండి</translation> +<translation id="1806335016774576568">తెరిచి ఉన్న మరొక యాప్కు మారండి</translation> <translation id="1809734401532861917">నా బుక్మార్క్లు, చరిత్ర, పాస్వర్డ్లు మరియు ఇతర సెట్టింగ్లను <ph name="USER_EMAIL_ADDRESS" />కి జోడించు</translation> <translation id="1813278315230285598">సేవలు</translation> <translation id="18139523105317219">EDI వేడుక పేరు</translation> @@ -721,7 +721,7 @@ <translation id="1944528062465413897">బ్లూటూత్ పెయిరింగ్ కోడ్:</translation> <translation id="1944921356641260203">అప్డేట్ కనుగొనబడింది</translation> <translation id="1946577776959096882">ఖాతాలను చూడండి</translation> -<translation id="1951012854035635156">సహాయకం</translation> +<translation id="1951012854035635156">Assistant</translation> <translation id="1954813140452229842">షేర్ను మౌంట్ చేయడంలో ఎర్రర్ ఏర్పడింది. దయచేసి మీ ఆధారాలను సరిచూసుకుని, మళ్లీ ప్రయత్నించండి.</translation> <translation id="1956050014111002555">ఫైల్ బహుళ ప్రమాణపత్రాలను కలిగి ఉంది, వీటిలో ఏది దిగుమతి చెయ్యబడింది:</translation> <translation id="1956390763342388273">ఇది "<ph name="FOLDER_PATH" />" నుండి అన్ని ఫైల్లను అప్లోడ్ చేస్తుంది. మీరు సైట్ను విశ్వసిస్తే మాత్రమే దీనిని చేయండి.</translation> @@ -1120,7 +1120,6 @@ <translation id="247949520305900375">ఆడియోను భాగస్వామ్యం చేయి</translation> <translation id="2480868415629598489">మీరు కాపీ చేసి, అతికించే డేటాను సవరించడం</translation> <translation id="2482878487686419369">ప్రకటనలు</translation> -<translation id="2483610039979585156">మీరు అన్ని <ph name="ORIGIN" /> ట్యాబ్లను మూసివేసే వరకు <ph name="ORIGIN" /> <ph name="FILENAME" />ను ఎడిట్ చేయగలదు</translation> <translation id="2484959914739448251">మీ అన్ని సమకాలీకరించబడుతున్న పరికరాలతో సహా, మీ Google ఖాతా నుండి బ్రౌజింగ్ డేటాను తీసివేయడానికి, <ph name="BEGIN_LINK" />మీ రహస్య పదబంధాన్ని నమోదు చేయండి<ph name="END_LINK" />.</translation> <translation id="2485005079599453134">ఈ పరికరంలో పాస్వర్డ్ సేవ్ చేయబడింది</translation> <translation id="2485422356828889247">అన్ఇన్స్టాల్ చేయి</translation> @@ -1725,7 +1724,6 @@ <translation id="3282568296779691940">Chromeకు సైన్ ఇన్ చేయండి</translation> <translation id="3285322247471302225">కొత్త &టాబ్</translation> <translation id="328571385944182268">మీ పాస్వర్డ్లను సేవ్ చేయాలా?</translation> -<translation id="328785681103589998">మీరు అన్ని <ph name="ORIGIN" /> ట్యాబ్లను మూసివేసే వరకు <ph name="ORIGIN" /> <ph name="FILENAME" />ను చూడగలదు</translation> <translation id="3288047731229977326">డెవలపర్ మోడ్లో అమలవుతున్న ఎక్స్టెన్షన్లు మీ కంప్యూటర్కు హాని కలిగించవచ్చు. మీరు డెవలపర్ కాకపోతే, సురక్షితంగా ఉంచడానికి డెవలపర్ మోడ్లో అమలవుతున్న ఈ ఎక్స్టెన్షన్లను నిలిపివేయాలి.</translation> <translation id="3289856944988573801">అప్డేట్ల కోసం తనిఖీ చేయడానికి, దయచేసి ఈథర్నెట్ లేదా Wi-Fiని ఉపయోగించండి.</translation> <translation id="3290356915286466215">అసురక్షితమైనది</translation> @@ -1753,7 +1751,7 @@ <translation id="3317459757438853210">రెండు-వైపులా ఉండేది</translation> <translation id="3317678681329786349">కెమెరా మరియు మైక్రోఫోన్ బ్లాక్ చేయబడ్డాయి</translation> <translation id="3319048459796106952">కొత్త &అజ్ఞాత విండో</translation> -<translation id="3320630259304269485">సురక్షిత బ్రౌజింగ్ (హానికరమైన సైట్ల నుండి రక్షణ), ఇతర భద్రత సెట్టింగ్లు</translation> +<translation id="3320630259304269485">సురక్షిత బ్రౌజింగ్ (హానికరమైన సైట్ల నుండి రక్షణ), ఇతర భద్రతా సెట్టింగ్లు</translation> <translation id="3323521181261657960">బోనస్! మీరు మరింత స్క్రీన్ వినియోగ సమయం పొందారు</translation> <translation id="3325910708063135066">Mac సిస్టమ్ ప్రాధాన్యతలలో కెమెరా మరియు మైక్రోఫోన్ ఆపివేయబడతాయి</translation> <translation id="3328489342742826322">బ్యాకప్ నుండి పునరుద్ధరించడం వలన మీ Linux ఫైల్ల ఫోల్డర్లో ప్రస్తుతం ఉన్న Linux అప్లికేషన్లు, డేటా తొలగించబడతాయి.</translation> @@ -2414,6 +2412,7 @@ <translation id="4144218403971135344">మెరుగైన నాణ్యత గల వీడియోను పొందండి మరియు బ్యాటరీ జీవితకాలాన్ని పెంపొందించండి. వీడియో మీ ప్రసార అనుకూల స్క్రీన్లో మాత్రమే ప్లే అవుతుంది.</translation> <translation id="4146026355784316281">ఎల్లప్పుడూ సిస్టమ్ వ్యూయర్తో తెరువు</translation> <translation id="4146785383423576110">రీసెట్ చేసి హానికరమైన వాటిని తీసివేయండి</translation> +<translation id="4147897805161313378">Google ఫోటోలు</translation> <translation id="4147911968024186208">దయచేసి మళ్లీ ప్రయత్నించండి. మీకు ఈ ఎర్రర్ మళ్లీ కనిపిస్తే, దయచేసి మీ మద్దతు ప్రతినిధిని సంప్రదించండి.</translation> <translation id="4150201353443180367">డిస్ప్లే</translation> <translation id="4152670763139331043">{NUM_TABS,plural, =1{1 ట్యాబ్}other{# ట్యాబ్లు}}</translation> @@ -2661,7 +2660,7 @@ <translation id="4534661889221639075">మళ్లీ ప్రయత్నించండి.</translation> <translation id="4535127706710932914">డిఫాల్ట్ ప్రొఫైల్</translation> <translation id="4535767533210902251">మీ కీబోర్డ్లో పైన కుడివైపు గల కీపై వేలిముద్ర సెన్సార్ ఉంది. ఏదైనా వేలితో దానిపై మెల్లగా తాకండి.</translation> -<translation id="4536140153723794651">ఎల్లప్పుడూ కుక్కీలను ఉపయోగించే సైట్లు</translation> +<translation id="4536140153723794651">కుక్కీలను ఉపయోగించే అనుమతి ఎల్లప్పుడూ ఉన్న సైట్లు</translation> <translation id="4538417792467843292">పదాన్ని తొలగించు</translation> <translation id="4538684596480161368"><ph name="HOST" />లో ఎల్లప్పుడూ శాండ్బాక్స్ చేయని ప్లగిన్లను బ్లాక్ చేయి</translation> <translation id="4538792345715658285">వ్యాపార విధానం ద్వారా ఇన్స్టాల్ చేయబడింది.</translation> @@ -2733,6 +2732,7 @@ <translation id="4633757335284074492">Google డిస్క్లో బ్యాకప్ చేయండి. సులభంగా డేటాను పునరుద్ధరించండి లేదా ఏ సమయంలో అయినా పరికరాన్ని మార్చండి. ఈ బ్యాకప్లో యాప్ డేటా కూడా ఉంటుంది. బ్యాకప్లు Googleకు అప్లోడ్ అవుతాయి, మీ చిన్నారి Google ఖాతా పాస్వర్డ్ను ఉపయోగించి ఎన్క్రిప్ట్ చేయబడతాయి.</translation> <translation id="4634771451598206121">మళ్ళీ సైన్ ఇన్ చేయండి...</translation> <translation id="4635398712689569051">అతిథి వినియోగదారులకు <ph name="PAGE_NAME" /> అందుబాటులో లేదు.</translation> +<translation id="4636930964841734540">సమాచారం</translation> <translation id="4637083375689622795">మరిన్ని చర్యలు, <ph name="EMAIL" /></translation> <translation id="4638930039313743000">ADB డీబగ్గింగ్ను ఎనేబుల్ చేయండి</translation> <translation id="4641539339823703554">Chrome సిస్టమ్ సమయాన్ని సెట్ చేయలేకపోయింది. దయచేసి దిగువ సమయాన్ని తనిఖీ చేసి, అవసరమైతే సరిదిద్దండి.</translation> @@ -2812,7 +2812,6 @@ <translation id="4750394297954878236">సూచనలు</translation> <translation id="475088594373173692">మొదటి వినియోగదారు</translation> <translation id="4751476147751820511">కదలిక లేదా కాంతి సెన్సార్లు</translation> -<translation id="4756269098451810636"><ph name="DEVICE_NAME" /> నుండి చిత్రం షేర్ చేయబడింది</translation> <translation id="4756378406049221019">ఆపండి/మళ్లీ లోడ్ చేయండి</translation> <translation id="4756388243121344051">&చరిత్ర</translation> <translation id="4759238208242260848">డౌన్లోడ్లు</translation> @@ -3759,7 +3758,6 @@ <translation id="6040852767465482106">అనామక గుర్తింపు</translation> <translation id="6041046205544295907"><ph name="BEGIN_PARAGRAPH1" />మీ పరికర స్థానాన్ని అంచనా వేయడంలో సహాయపడటానికి Wi‑Fi, మొబైల్ నెట్వర్క్లు మరియు సెన్సార్ల వంటి మూలాధారాలను Google స్థాన సేవ ఉపయోగిస్తుంది.<ph name="END_PARAGRAPH1" /> <ph name="BEGIN_PARAGRAPH2" />మీరు మీ పరికరంలో ప్రధాన స్థాన సెట్టింగ్ని ఆఫ్ చేయడం ద్వారా స్థానాన్ని ఆఫ్ చేయవచ్చు. మీరు స్థాన సెట్టింగ్లలో స్థానం కోసం Wi‑Fi, మొబైల్ నెట్వర్క్లు మరియు సెన్సార్ల వినియోగాన్ని కూడా ఆఫ్ చేయవచ్చు.<ph name="END_PARAGRAPH2" /></translation> -<translation id="6041150002191391409">మీరు అన్ని <ph name="ORIGIN" /> ట్యాబ్లను మూసివేసే వరకు <ph name="ORIGIN" /> <ph name="FOLDERNAME" />లో ఉన్న ఫైల్స్ను చూడగలదు</translation> <translation id="6041155700700864984">పూర్తి స్క్రీన్ నుండి నిష్క్రమించు</translation> <translation id="604124094241169006">స్వయంచాలకంగా</translation> <translation id="6042308850641462728">మరింత</translation> @@ -4155,7 +4153,6 @@ <translation id="6561726789132298588">enter</translation> <translation id="656293578423618167">ఫైల్ పాత్ లేదా పేరు చాలా పొడవుగా ఉంది. దయచేసి చిన్న పేరుతో, లేదా మరొక స్థానానికి సేవ్ చేయండి.</translation> <translation id="6563469144985748109">మీ నిర్వాహకుడు దీన్ని ఇంకా ఆమోదించలేదు</translation> -<translation id="6567688344210276845">పేజీ చర్య కోసం '<ph name="ICON" />' చిహ్నాన్ని లోడ్ చేయడం సాధ్యపడలేదు.</translation> <translation id="6569934958368283244">ఇతర వ్యక్తులు</translation> <translation id="657402800789773160">ఈ పేజీని &రీలోడ్ చెయ్యి</translation> <translation id="6577284282025554716">డౌన్లోడ్ రద్దు చేయబడింది: <ph name="FILE_NAME" /></translation> @@ -4220,7 +4217,6 @@ <translation id="6659594942844771486">ట్యాబ్</translation> <translation id="6664237456442406323">దురదృష్టవశాత్తూ, తప్పుగా ఫార్మాట్ చేయబడిన హార్డ్వేర్ IDతో మీ కంప్యూటర్ కాన్ఫిగర్ చేయబడింది. Chrome OSను తాజా భద్రతా పరిష్కారాలతో అప్డేట్ అవ్వకుండా ఇది నిరోధిస్తుంది, తద్వారా మీ కంప్యూటర్ <ph name="BEGIN_BOLD" />హానికరమైన దాడులకు గురి కావచ్చు<ph name="END_BOLD" />.</translation> <translation id="6664774537677393800">మీ ప్రొఫైల్ను తెరుస్తున్నప్పుడు ఏదో తప్పు జరిగింది. దయచేసి సైన్ అవుట్ చేసి, మళ్లీ సైన్ ఇన్ చేయండి.</translation> -<translation id="6667776121818773738">ఇతర పరికరం నుండి చిత్రం షేర్ చేయబడింది</translation> <translation id="6673391612973410118"><ph name="PRINTER_MAKE_OR_MODEL" /> (USB)</translation> <translation id="667517062706956822">ఈ పేజీని Google <ph name="SOURCE_LANGUAGE" /> నుండి <ph name="TARGET_LANGUAGE" />కి అనువదించాలని మీరు కోరుకుంటున్నారా?</translation> <translation id="6675665718701918026">కర్సర్ను నియంత్రించే పరికరం కనెక్ట్ చేయబడింది</translation> @@ -4841,7 +4837,6 @@ <translation id="7497981768003291373">మీ వద్ద ఇటీవల క్యాప్చర్ చేయబడిన WebRTC వచన లాగ్లు ఏవీ లేవు.</translation> <translation id="7502658306369382406">IPv6 చిరునామా</translation> <translation id="7503191893372251637">Netscape సర్టిఫికెట్ రకం</translation> -<translation id="7503821294401948377">బ్రౌజర్ చర్య కోసం '<ph name="ICON" />' చిహ్నాన్ని లోడ్ చేయడం సాధ్యపడలేదు.</translation> <translation id="7503985202154027481">ఈ సైట్కు మీ సందర్శన గురించిన సమాచారం మీ సెక్యూరిటీ కీలో రికార్డ్ చేయబడుతుంది.</translation> <translation id="7504293978434250212">మీ సంస్థ గరిష్ఠంగా 50 MB దాకా ఉండే ఫైల్లను స్కాన్ చేయగలదు. కొద్దిగా తక్కువ సైజ్ ఉండే ఫైల్ను అప్లోడ్ చేసి, ప్రయత్నించండి.</translation> <translation id="750509436279396091">డౌన్లోడ్ల ఫోల్డర్ తెరువు</translation> @@ -5483,7 +5478,7 @@ <translation id="8320459152843401447">మీ పూర్తి స్క్రీన్</translation> <translation id="8322814362483282060">మీ మైక్రోఫోన్ను ప్రాప్యత చేయనీయకుండా ఈ పేజీ బ్లాక్ చేయబడింది.</translation> <translation id="8323167517179506834">URLను టైప్ చేయండి</translation> -<translation id="8324784016256120271">వివిధ సైట్లలో మీ బ్రౌజింగ్ కార్యకలాపం కనిపించడానికి సైట్లు కుక్కీలను ఉపయోగించవచ్చు, ఉదాహరణకు, యాడ్లను వ్యక్తిగతీకరించడానికి</translation> +<translation id="8324784016256120271">వివిధ సైట్లలో మీ బ్రౌజింగ్ కార్యకలాపాన్ని చూడటానికి, సైట్లు కుక్కీలను ఉపయోగించవచ్చు, ఉదాహరణకు, యాడ్లను వ్యక్తిగతీకరించడానికి</translation> <translation id="8326478304147373412">PKCS #7, సర్టిఫికెట్ చైన్</translation> <translation id="8327039559959785305">Linux ఫైల్లను మౌంట్ చేయడంలో ఎర్రర్ ఏర్పడింది. దయచేసి మళ్లీ ప్రయత్నించండి.</translation> <translation id="8327676037044516220">అనుమతులు, కంటెంట్ సెట్టింగ్లు</translation> @@ -5640,7 +5635,6 @@ <translation id="8546930481464505581">టచ్ బార్ని అనుకూలీకరించండి</translation> <translation id="8547013269961688403">పూర్తి స్క్రీన్ మాగ్నిఫయర్ను ప్రారంభించండి</translation> <translation id="85486688517848470">ఎగువ-అడ్డు వరుసలోని కీల ప్రవర్తనను మార్చడానికి శోధన కీని నొక్కి ఉంచండి</translation> -<translation id="8550165047974571882">మీరు అన్ని <ph name="ORIGIN" /> ట్యాబ్లను మూసివేసే వరకు <ph name="ORIGIN" /> <ph name="FOLDERNAME" />లో ఉన్న ఫైల్స్ను ఎడిట్ చేయగలదు</translation> <translation id="8551388862522347954">లైసెన్స్లు</translation> <translation id="8553342806078037065">ఇతర వ్యక్తులను నిర్వహించు</translation> <translation id="8554899698005018844">భాష లేదు</translation> @@ -5708,7 +5702,7 @@ <translation id="8643443571868262066"><ph name="FILE_NAME" /> ప్రమాదకరమైనది కావచ్చు. స్కాన్ చేయడానికి Google అధునాతన రక్షణకు పంపాలా?</translation> <translation id="8644655801811752511">ఈ సెక్యూరిటీ కీని రీసెట్ చేయలేకపోయింది. కీని ఇన్సర్ట్ చేసిన తక్షణం రీసెట్ చేయడానికి ప్రయత్నించండి.</translation> <translation id="8645354835496065562">సెన్సార్ యాక్సెన్ను అనుమతించడం కొనసాగించు</translation> -<translation id="8645920082661222035">ప్రమాదకరమైన సంఘటనలు జరగడానికి ముందే, వాటి గురించి ఊహించి, మిమ్మల్ని హెచ్చరిస్తుంది</translation> +<translation id="8645920082661222035">ప్రమాదకరమైన సంఘటనలు జరగడానికి ముందే, వాటిని పసిగట్టి మిమ్మల్ని హెచ్చరిస్తుంది</translation> <translation id="8647834505253004544">వెబ్ చిరునామా చెల్లదు</translation> <translation id="8648252583955599667"><ph name="GET_HELP_LINK" /> లేదా <ph name="RE_SCAN_LINK" /></translation> <translation id="8650543407998814195">మీరు మీ పాత ప్రొఫైల్ను ఇప్పుడు యాక్సెస్ చేయలేకపోయినప్పటికీ, మీరు దాన్ని ఇప్పటికీ తీసివేయగలరు.</translation>
diff --git a/chrome/app/resources/generated_resources_th.xtb b/chrome/app/resources/generated_resources_th.xtb index e52b8aaf..e327de6 100644 --- a/chrome/app/resources/generated_resources_th.xtb +++ b/chrome/app/resources/generated_resources_th.xtb
@@ -1120,7 +1120,6 @@ <translation id="247949520305900375">แชร์เสียง</translation> <translation id="2480868415629598489">แก้ไขข้อมูลที่คุณคัดลอกและวาง</translation> <translation id="2482878487686419369">การแจ้งเตือน</translation> -<translation id="2483610039979585156"><ph name="ORIGIN" /> จะยังแก้ไข <ph name="FILENAME" /> ได้อยู่จนกว่าคุณจะปิดแท็บ <ph name="ORIGIN" /> ทั้งหมด</translation> <translation id="2484959914739448251"><ph name="BEGIN_LINK" />ป้อนรหัสผ่าน<ph name="END_LINK" />เพื่อล้างข้อมูลการท่องเว็บในอุปกรณ์ทุกเครื่องที่ซิงค์และบัญชี Google</translation> <translation id="2485005079599453134">รหัสผ่านที่บันทึกในอุปกรณ์นี้</translation> <translation id="2485422356828889247">ถอนการติดตั้ง</translation> @@ -1725,7 +1724,6 @@ <translation id="3282568296779691940">ลงชื่อเข้าใช้ Chrome</translation> <translation id="3285322247471302225">แ&ท็บใหม่</translation> <translation id="328571385944182268">บันทึกรหัสผ่านไหม</translation> -<translation id="328785681103589998"><ph name="ORIGIN" /> จะยังดู <ph name="FILENAME" /> ได้อยู่จนกว่าคุณจะปิดแท็บ <ph name="ORIGIN" /> ทั้งหมด</translation> <translation id="3288047731229977326">ส่วนขยายที่ทำงานอยู่ในโหมดนักพัฒนาซอฟต์แวร์อาจเป็นอันตรายต่อคอมพิวเตอร์ของคุณ หากคุณไม่ใช่นักพัฒนาซอฟต์แวร์ คุณควรปิดส่วนขยายที่ทำงานอยู่ในโหมดนักพัฒนาซอฟต์แวร์เพื่อรักษาความปลอดภัย</translation> <translation id="3289856944988573801">ในการตรวจหาการอัปเดต โปรดใช้อีเทอร์เน็ตหรือ WiFi</translation> <translation id="3290356915286466215">ไม่มีการรักษาความปลอดภัย</translation> @@ -2414,6 +2412,7 @@ <translation id="4144218403971135344">ดูวิดีโอคุณภาพดีขึ้นและยืดอายุการใช้งานแบตเตอรี่ วิดีโอจะเล่นเฉพาะในหน้าจอที่พร้อมใช้งาน Cast</translation> <translation id="4146026355784316281">เปิดด้วยโปรแกรมดูของระบบทุกครั้ง</translation> <translation id="4146785383423576110">รีเซ็ตและล้างข้อมูล</translation> +<translation id="4147897805161313378">Google Photos</translation> <translation id="4147911968024186208">โปรดลองอีกครั้ง หากพบข้อผิดพลาดนี้อีก ให้ติดต่อตัวแทนฝ่ายสนับสนุน</translation> <translation id="4150201353443180367">การแสดงผล</translation> <translation id="4152670763139331043">{NUM_TABS,plural, =1{1 แท็บ}other{# แท็บ}}</translation> @@ -2733,6 +2732,7 @@ <translation id="4633757335284074492">สำรองข้อมูลไปที่ Google ไดรฟ์ กู้คืนข้อมูลหรือเปลี่ยนอุปกรณ์ได้ง่ายๆ ทุกเมื่อ ข้อมูลสำรองนี้มีข้อมูลแอปอยู่ด้วย ข้อมูลสำรองจะอัปโหลดขึ้น Google และเข้ารหัสโดยใช้รหัสผ่านบัญชี Google ของบุตรหลาน</translation> <translation id="4634771451598206121">ลงชื่อเข้าใช้อีกครั้ง...</translation> <translation id="4635398712689569051">ผู้ใช้ที่เป็นผู้มาเยือนไม่สามารถใช้ <ph name="PAGE_NAME" /></translation> +<translation id="4636930964841734540">ข้อมูล</translation> <translation id="4637083375689622795">การทำงานเพิ่มเติม <ph name="EMAIL" /></translation> <translation id="4638930039313743000">เปิดใช้การแก้ไขข้อบกพร่อง ADB</translation> <translation id="4641539339823703554">Chrome ไม่สามารถตั้งเวลาระบบได้ โปรดตรวจสอบเวลาด้านล่างและแก้ไขให้ถูกต้องหากจำเป็น</translation> @@ -2812,7 +2812,6 @@ <translation id="4750394297954878236">คำแนะนำ</translation> <translation id="475088594373173692">ผู้ใช้แรก</translation> <translation id="4751476147751820511">เซ็นเซอร์จับความเคลื่อนไหวหรือเซ็นเซอร์แสง</translation> -<translation id="4756269098451810636">รูปภาพที่แชร์จาก <ph name="DEVICE_NAME" /></translation> <translation id="4756378406049221019">หยุด/โหลดซ้ำ</translation> <translation id="4756388243121344051">&ประวัติการเข้าชม</translation> <translation id="4759238208242260848">ดาวน์โหลด</translation> @@ -3759,7 +3758,6 @@ <translation id="6040852767465482106">ข้อมูลประจำตัวที่ไม่ระบุตัวตน</translation> <translation id="6041046205544295907"><ph name="BEGIN_PARAGRAPH1" />บริการตำแหน่งของ Google ใช้แหล่งที่มาต่างๆ เช่น Wi‑Fi, เครือข่ายมือถือ และเซ็นเซอร์เพื่อช่วยคาดคะเนตำแหน่งอุปกรณ์ของคุณ<ph name="END_PARAGRAPH1" /> <ph name="BEGIN_PARAGRAPH2" />คุณปิดตำแหน่งได้ด้วยการปิดการตั้งค่าตำแหน่งหลักในอุปกรณ์ และปิดการใช้ Wi‑Fi, เครือข่ายมือถือ และเซ็นเซอร์สำหรับการบอกตำแหน่งในการตั้งค่าตำแหน่งได้ด้วย<ph name="END_PARAGRAPH2" /></translation> -<translation id="6041150002191391409"><ph name="ORIGIN" /> จะยังดูไฟล์ใน <ph name="FOLDERNAME" /> ได้อยู่จนกว่าคุณจะปิดแท็บ <ph name="ORIGIN" /> ทั้งหมด</translation> <translation id="6041155700700864984">ออกจากโหมดเต็มหน้าจอ</translation> <translation id="604124094241169006">อัตโนมัติ</translation> <translation id="6042308850641462728">เพิ่มเติม</translation> @@ -4155,7 +4153,6 @@ <translation id="6561726789132298588">ป้อน</translation> <translation id="656293578423618167">เส้นทางหรือชื่อของไฟล์ยาวเกินไป โปรดบันทึกด้วยชื่อที่สั้นกว่านี้หรือบันทึกลงในตำแหน่งอื่น</translation> <translation id="6563469144985748109">ผู้จัดการยังไม่ได้อนุมัติเว็บไซต์นี้</translation> -<translation id="6567688344210276845">ไม่สามารถโหลดไอคอน "<ph name="ICON" />" เพื่อให้เกิดการทำงานบนหน้าเว็บ</translation> <translation id="6569934958368283244">บุคคลอื่น</translation> <translation id="657402800789773160">&โหลดหน้านี้ใหม่</translation> <translation id="6577284282025554716">ยกเลิกการดาวน์โหลดแล้ว: <ph name="FILE_NAME" /></translation> @@ -4220,7 +4217,6 @@ <translation id="6659594942844771486">แท็บ</translation> <translation id="6664237456442406323">น่าเสียดายที่คอมพิวเตอร์ของคุณถูกกำหนดค่าด้วย ID ฮาร์ดแวร์ที่มีรูปแบบที่ไม่ถูกต้อง ซึ่งจะป้องกันไม่ให้ Chrome OS อัปเดตการแก้ใขปัญหาความปลอดภัยล่าสุดได้ และคอมพิวเตอร์ของคุณ <ph name="BEGIN_BOLD" />อาจเสี่ยงต่อการโจมตีที่เป็นอันตราย<ph name="END_BOLD" /></translation> <translation id="6664774537677393800">เกิดข้อผิดพลาดขณะเปิดโปรไฟล์ของคุณ โปรดออกจากระบบแล้วลงชื่อเข้าใช้อีกครั้ง</translation> -<translation id="6667776121818773738">รูปภาพที่แชร์จากอุปกรณ์อื่น</translation> <translation id="6673391612973410118"><ph name="PRINTER_MAKE_OR_MODEL" /> (USB)</translation> <translation id="667517062706956822">คุณต้องการให้ Google แปลหน้านี้จากภาษา<ph name="SOURCE_LANGUAGE" />เป็นภาษา<ph name="TARGET_LANGUAGE" />ไหม</translation> <translation id="6675665718701918026">เชื่อมต่ออุปกรณ์ชี้ตำแหน่งแล้ว</translation> @@ -4841,7 +4837,6 @@ <translation id="7497981768003291373">คุณไม่มีบันทึกข้อความ WebRTC ที่จับภาพเมื่อเร็วๆ นี้</translation> <translation id="7502658306369382406">ที่อยู่ IPv6</translation> <translation id="7503191893372251637">ประเภทใบรับรองของ Netscape </translation> -<translation id="7503821294401948377">ไม่สามารถโหลดไอคอน "<ph name="ICON" />" เพื่อให้เกิดการทำงานของเบราว์เซอร์</translation> <translation id="7503985202154027481">ระบบจะเก็บบันทึกการเข้าชมเว็บไซต์นี้ไว้ในคีย์ความปลอดภัย</translation> <translation id="7504293978434250212">องค์กรสแกนไฟล์ได้เฉพาะที่มีขนาดไม่เกิน 50 MB ลองอัปโหลดไฟล์ที่เล็กกว่านี้</translation> <translation id="750509436279396091">เปิดโฟลเดอร์ดาวน์โหลด</translation> @@ -5644,7 +5639,6 @@ <translation id="8546930481464505581">ปรับแต่ง Touch Bar</translation> <translation id="8547013269961688403">เปิดใช้แว่นขยายทั้งหน้าจอ</translation> <translation id="85486688517848470">กดแป้น "ค้นหา" ค้างไว้เพื่อเปลี่ยนการทำงานของแป้นแถวบนสุด</translation> -<translation id="8550165047974571882"><ph name="ORIGIN" /> จะยังแก้ไขไฟล์ใน <ph name="FOLDERNAME" /> ได้อยู่จนกว่าคุณจะปิดแท็บ <ph name="ORIGIN" /> ทั้งหมด</translation> <translation id="8551388862522347954">ใบอนุญาต</translation> <translation id="8553342806078037065">จัดการบุคคลอื่นๆ</translation> <translation id="8554899698005018844">ไม่มีภาษา</translation>
diff --git a/chrome/app/resources/generated_resources_tr.xtb b/chrome/app/resources/generated_resources_tr.xtb index 81263fde..63b3597 100644 --- a/chrome/app/resources/generated_resources_tr.xtb +++ b/chrome/app/resources/generated_resources_tr.xtb
@@ -1120,7 +1120,6 @@ <translation id="247949520305900375">Sesi paylaş</translation> <translation id="2480868415629598489">Kopyaladığınız ve yapıştırdığınız verileri değiştirme</translation> <translation id="2482878487686419369">Bildirimler</translation> -<translation id="2483610039979585156"><ph name="ORIGIN" /> sitesi, siz tüm <ph name="ORIGIN" /> sekmelerini kapatana kadar <ph name="FILENAME" /> dosyasını düzenleyebilecek</translation> <translation id="2484959914739448251">Tarama verilerini senkronize edilmiş tüm cihazlarınızdan ve Google Hesabınızdan temizlemek için <ph name="BEGIN_LINK" />parolanızı girin<ph name="END_LINK" />.</translation> <translation id="2485005079599453134">Şifre bu cihaza kaydedildi</translation> <translation id="2485422356828889247">Yüklemeyi Kaldır</translation> @@ -1725,7 +1724,6 @@ <translation id="3282568296779691940">Chrome'da oturum aç</translation> <translation id="3285322247471302225">Yeni &Sekme</translation> <translation id="328571385944182268">Şifreleriniz kaydedilsin mi?</translation> -<translation id="328785681103589998"><ph name="ORIGIN" /> sitesi, siz tüm <ph name="ORIGIN" /> sekmelerini kapatana kadar <ph name="FILENAME" /> dosyasını görüntüleyebilecek</translation> <translation id="3288047731229977326">Geliştirici modunda çalışan uzantılar bilgisayarınıza zarar verebilir. Geliştirici değilseniz, geliştirici modundayken güvende olmak için bu uzantıların çalışmasını devre dışı bırakmanız gerekir.</translation> <translation id="3289856944988573801">Güncellemeleri kontrol etmek için lütfen Ethernet veya Kablosuz kullanın.</translation> <translation id="3290356915286466215">Güvenli değil</translation> @@ -2414,6 +2412,7 @@ <translation id="4144218403971135344">Daha iyi video kalitesi elde edin ve pil ömründen tasarruf edin. Video yalnızca Cast uyumlu ekranınızda oynatılır.</translation> <translation id="4146026355784316281">Her Zaman Sistem Görüntüleyici ile Aç</translation> <translation id="4146785383423576110">Sıfırla ve temizle</translation> +<translation id="4147897805161313378">Google Fotoğraflar</translation> <translation id="4147911968024186208">Lütfen yeniden deneyin. Bu hatayı tekrar görürseniz lütfen destek temsilcinizle iletişime geçin.</translation> <translation id="4150201353443180367">Ekran</translation> <translation id="4152670763139331043">{NUM_TABS,plural, =1{1 sekme}other{# sekme}}</translation> @@ -2733,6 +2732,7 @@ <translation id="4633757335284074492">Google Drive'a yedekle. Verileri istediğiniz zaman kolayca geri yükleyin veya cihazlar arasında geçiş yapın. Bu yedekleme, uygulama verilerini içerir. Yedek veriler Google'a yüklenir ve çocuğunuzun Google Hesabının şifresi kullanılarak şifrelenir.</translation> <translation id="4634771451598206121">Tekrar oturum açın...</translation> <translation id="4635398712689569051"><ph name="PAGE_NAME" />, Davetli kullanıcılar için geçerli değildir.</translation> +<translation id="4636930964841734540">Bilgi</translation> <translation id="4637083375689622795">Diğer işlemler, <ph name="EMAIL" /></translation> <translation id="4638930039313743000">ADB hata ayıklama işlevini etkinleştir</translation> <translation id="4641539339823703554">Chrome sistem saatini ayarlayamadı. Lütfen aşağıdaki saati kontrol edin ve gerekiyorsa düzeltin.</translation> @@ -2812,7 +2812,6 @@ <translation id="4750394297954878236">Öneriler</translation> <translation id="475088594373173692">İlk kullanıcı</translation> <translation id="4751476147751820511">Hareket veya ışık sensörleri</translation> -<translation id="4756269098451810636"><ph name="DEVICE_NAME" /> adlı cihazdan paylaşılan resim</translation> <translation id="4756378406049221019">Durdur/Tekrar yükle</translation> <translation id="4756388243121344051">&Geçmiş</translation> <translation id="4759238208242260848">İndirilenler</translation> @@ -3535,7 +3534,7 @@ <translation id="5734362860645681824">İletişim</translation> <translation id="5734697361979786483">Dosya paylaşımı ekle</translation> <translation id="5736796278325406685">Lütfen geçerli bir kullanıcı adı girin</translation> -<translation id="5739017626473506901"><ph name="USER_NAME" /> adlı çocuğun okul hesabı eklemesine yardımcı olmak için oturum açın</translation> +<translation id="5739017626473506901"><ph name="USER_NAME" /> kullanıcısının okul hesabı eklemesine yardımcı olmak için oturum açın</translation> <translation id="5739235828260127894">Doğrulama bekleniyor. <ph name="LINK_BEGIN" />Daha fazla bilgi<ph name="LINK_END" /></translation> <translation id="5739458112391494395">Çok büyük</translation> <translation id="574209121243317957">Ses Kalınlığı</translation> @@ -3760,7 +3759,6 @@ <translation id="6040852767465482106">Anonim Kimlik</translation> <translation id="6041046205544295907"><ph name="BEGIN_PARAGRAPH1" />Google’ın konum hizmetleri, cihazınızın konumunu tahmin etmesine yardımcı olması için kablosuz, mobil ağlar ve sensörler gibi kaynakları kullanır.<ph name="END_PARAGRAPH1" /> <ph name="BEGIN_PARAGRAPH2" />Konum özelliğini, cihazınızın ana Konum ayarını kapatarak devre dışı bırakabilirsiniz. Ayrıca konum ayarlarından kablosuz, mobil ağlar ve konum sensörlerinin kullanılmasını da devre dışı bırakabilirsiniz.<ph name="END_PARAGRAPH2" /></translation> -<translation id="6041150002191391409"><ph name="ORIGIN" /> sitesi, siz tüm <ph name="ORIGIN" /> sekmelerini kapatana kadar <ph name="FOLDERNAME" /> klasöründeki dosyaları görüntüleyebilecek</translation> <translation id="6041155700700864984">Tam Ekran modundan çık</translation> <translation id="604124094241169006">Otomatik</translation> <translation id="6042308850641462728">Daha fazla</translation> @@ -4156,7 +4154,6 @@ <translation id="6561726789132298588">enter</translation> <translation id="656293578423618167">Dosya yolu veya adı çok uzun. Lütfen daha kısa bir adla veya başka bir konuma kaydedin.</translation> <translation id="6563469144985748109">Yöneticiniz henüz onaylamadı</translation> -<translation id="6567688344210276845">Sayfa işlemine ilişkin '<ph name="ICON" />' simgesi yüklenemedi.</translation> <translation id="6569934958368283244">Diğer kişiler</translation> <translation id="657402800789773160">Bu &Sayfayı Tekrar Yükle</translation> <translation id="6577284282025554716">İndirme işlemi iptal edildi: <ph name="FILE_NAME" /></translation> @@ -4221,7 +4218,6 @@ <translation id="6659594942844771486">Sekme</translation> <translation id="6664237456442406323">Maalesef bilgisayarınız, hatalı oluşturulmuş bir donanım kimliğiyle yapılandırılmış. Bu durum Chrome OS'nin en son güvenlik düzeltmeleriyle güncellenmesini engeller ve bilgisayarınız <ph name="BEGIN_BOLD" />kötü niyetli saldırılara<ph name="END_BOLD" /> açık duruma gelebilir.</translation> <translation id="6664774537677393800">Profiliniz açılırken bir sorun oluştu. Lütfen oturumu kapatıp sonra tekrar oturum açın.</translation> -<translation id="6667776121818773738">Diğer cihazdan paylaşılan resim</translation> <translation id="6673391612973410118"><ph name="PRINTER_MAKE_OR_MODEL" /> (USB)</translation> <translation id="667517062706956822">Google'ın bu sayfayı <ph name="SOURCE_LANGUAGE" /> dilinden <ph name="TARGET_LANGUAGE" /> diline çevirmesini istiyor musunuz?</translation> <translation id="6675665718701918026">İşaretleme cihazı bağlı</translation> @@ -4842,7 +4838,6 @@ <translation id="7497981768003291373">Yakın zamanda yakalanmış herhangi bir WebRTC metin günlüğünüz yok.</translation> <translation id="7502658306369382406">IPv6 adresi</translation> <translation id="7503191893372251637">Netscape Sertifika Türü</translation> -<translation id="7503821294401948377">Tarayıcı işlemine ilişkin '<ph name="ICON" />' simgesi yüklenemedi.</translation> <translation id="7503985202154027481">Bu siteye ziyaretinizin bir kaydı güvenlik anahtarınızda tutulacak.</translation> <translation id="7504293978434250212">Kuruluşunuz 50 MB'a kadar dosya tarayabilir. Daha küçük bir dosya yüklemeyi deneyin.</translation> <translation id="750509436279396091">İndirilenler klasörünü aç</translation> @@ -5644,7 +5639,6 @@ <translation id="8546930481464505581">Dokunmatik Çubuğu Özelleştir</translation> <translation id="8547013269961688403">Tam ekran büyüteci etkinleştir</translation> <translation id="85486688517848470">Üst satırdaki tuşların davranışını değiştirmek için Arama tuşunu basılı tutun</translation> -<translation id="8550165047974571882"><ph name="ORIGIN" /> sitesi, siz tüm <ph name="ORIGIN" /> sekmelerini kapatana kadar <ph name="FOLDERNAME" /> klasöründeki dosyaları düzenleyebilecek</translation> <translation id="8551388862522347954">Lisanslar</translation> <translation id="8553342806078037065">Diğer kişileri yönet</translation> <translation id="8554899698005018844">Dil yok</translation>
diff --git a/chrome/app/resources/generated_resources_uk.xtb b/chrome/app/resources/generated_resources_uk.xtb index 021f47a..8b5b863b 100644 --- a/chrome/app/resources/generated_resources_uk.xtb +++ b/chrome/app/resources/generated_resources_uk.xtb
@@ -1120,7 +1120,6 @@ <translation id="247949520305900375">Поділитись аудіо</translation> <translation id="2480868415629598489">Змінювати дані, які копіюються</translation> <translation id="2482878487686419369">Сповіщення</translation> -<translation id="2483610039979585156">Сайт <ph name="ORIGIN" /> зможе змінювати файл "<ph name="FILENAME" />", доки ви не закриєте всі вкладки <ph name="ORIGIN" /></translation> <translation id="2484959914739448251">Щоб очистити дані веб-перегляду на всіх синхронізованих пристроях і в обліковому записі Google, <ph name="BEGIN_LINK" />введіть парольну фразу<ph name="END_LINK" />.</translation> <translation id="2485005079599453134">Пароль збережено на цьому пристрої</translation> <translation id="2485422356828889247">Видалити</translation> @@ -1725,7 +1724,6 @@ <translation id="3282568296779691940">Вхід у Chrome</translation> <translation id="3285322247471302225">Нова &вкладка</translation> <translation id="328571385944182268">Зберігати паролі?</translation> -<translation id="328785681103589998">Сайт <ph name="ORIGIN" /> зможе переглядати файл "<ph name="FILENAME" />", доки ви не закриєте всі вкладки <ph name="ORIGIN" /></translation> <translation id="3288047731229977326">Розширення, які працюють у режимі розробника, можуть пошкодити ваш комп’ютер. Якщо ви не розробник, вимкніть їх заради безпеки.</translation> <translation id="3289856944988573801">Щоб перевірити наявність оновлень, скористайтеся мережею Ethernet чи Wi-Fi.</translation> <translation id="3290356915286466215">Не захищено</translation> @@ -2414,6 +2412,7 @@ <translation id="4144218403971135344">Покращуйте якість відео й заощаджуйте час роботи акумулятора. Відео відтворюватиметься лише на екрані з підтримкою Google Cast.</translation> <translation id="4146026355784316281">Завжди відкривати за допомогою системного переглядача</translation> <translation id="4146785383423576110">Скинути налаштування й очистити</translation> +<translation id="4147897805161313378">Google Фото</translation> <translation id="4147911968024186208">Повторіть спробу. Якщо повідомлення про помилку з’явиться знову, зв’яжіться з представником служби підтримки.</translation> <translation id="4150201353443180367">Екран</translation> <translation id="4152670763139331043">{NUM_TABS,plural, =1{1 вкладка}one{# вкладка}few{# вкладки}many{# вкладок}other{# вкладки}}</translation> @@ -2733,6 +2732,7 @@ <translation id="4633757335284074492">Створювати резервні копії на Google Диску. Легко відновлюйте дані чи переносьте їх на інші пристрої. Ця резервна копія містить дані додатків. Резервні копії завантажуються в Google і шифруються за допомогою пароля облікового запису Google вашої дитини.</translation> <translation id="4634771451598206121">Увійти знову...</translation> <translation id="4635398712689569051">Сторінка "<ph name="PAGE_NAME" />" недоступна гостям.</translation> +<translation id="4636930964841734540">Інформація</translation> <translation id="4637083375689622795">Інші дії, <ph name="EMAIL" /></translation> <translation id="4638930039313743000">Увімкнути налагодження ADB</translation> <translation id="4641539339823703554">Chrome не вдалося встановити час системи. Перевірте вказаний нижче час і за потреби виправте його.</translation> @@ -2812,7 +2812,6 @@ <translation id="4750394297954878236">Пропозиції</translation> <translation id="475088594373173692">Перший користувач</translation> <translation id="4751476147751820511">Датчики руху та світла</translation> -<translation id="4756269098451810636">Зображення, надіслане з пристрою <ph name="DEVICE_NAME" /></translation> <translation id="4756378406049221019">Зупинити/оновити</translation> <translation id="4756388243121344051">&Історія</translation> <translation id="4759238208242260848">Завантаження</translation> @@ -3759,7 +3758,6 @@ <translation id="6040852767465482106">Анонімна ідентифікація</translation> <translation id="6041046205544295907"><ph name="BEGIN_PARAGRAPH1" />Служба локації Google використовує такі джерела, як Wi-Fi, мобільні мережі та датчики, щоб визначати місцезнаходження вашого пристрою.<ph name="END_PARAGRAPH1" /> <ph name="BEGIN_PARAGRAPH2" />Щоб вимкнути її, дезактивуйте основну функцію "Доступ до моїх геоданих". Ви також можете вимкнути визначення місцезнаходження за допомогою Wi-Fi, мобільних мереж і датчиків у меню "Доступ до моїх геоданих".<ph name="END_PARAGRAPH2" /></translation> -<translation id="6041150002191391409">Сайт <ph name="ORIGIN" /> зможе переглядати всі файли в папці "<ph name="FOLDERNAME" />", доки ви не закриєте всі вкладки <ph name="ORIGIN" /></translation> <translation id="6041155700700864984">Вийти з повноекранного режиму</translation> <translation id="604124094241169006">Автоматично</translation> <translation id="6042308850641462728">Більше</translation> @@ -4155,7 +4153,6 @@ <translation id="6561726789132298588">enter</translation> <translation id="656293578423618167">Шлях файлу чи назва файлу задовгі. Збережіть з коротшою назвою чи в іншому місці.</translation> <translation id="6563469144985748109">Адміністратор ще не схвалив його</translation> -<translation id="6567688344210276845">Не вдалося завантажити піктограму "<ph name="ICON" />" для роботи сторінки.</translation> <translation id="6569934958368283244">Інші люди</translation> <translation id="657402800789773160">&Перезавантажити цю сторінку</translation> <translation id="6577284282025554716">Завантаження файлу "<ph name="FILE_NAME" />" скасовано</translation> @@ -4220,7 +4217,6 @@ <translation id="6659594942844771486">Вкладка</translation> <translation id="6664237456442406323">На жаль, ваш комп’ютер налаштовано за допомогою ідентифікатора апаратного забезпечення з невірною структурою. Це перешкоджає оновленню ОС Chrome найновішими виправленнями системи безпеки, а тому ваш комп’ютер <ph name="BEGIN_BOLD" />може бути вразливим до зловмисних атак<ph name="END_BOLD" />.</translation> <translation id="6664774537677393800">Не вдалося відкрити профіль. Вийдіть і знову ввійдіть.</translation> -<translation id="6667776121818773738">Зображення, яким поділилися з іншого пристрою</translation> <translation id="6673391612973410118"><ph name="PRINTER_MAKE_OR_MODEL" /> (USB)</translation> <translation id="667517062706956822">Перекласти цю сторінку (<ph name="SOURCE_LANGUAGE" />) такою мовою: <ph name="TARGET_LANGUAGE" />?</translation> <translation id="6675665718701918026">Маніпулятор підключено</translation> @@ -4841,7 +4837,6 @@ <translation id="7497981768003291373">Немає нещодавно створених текстових журналів WebRTC.</translation> <translation id="7502658306369382406">Адреса IPv6</translation> <translation id="7503191893372251637">Тип сертифіката Netscape</translation> -<translation id="7503821294401948377">Не вдалося завантажити піктограму "<ph name="ICON" />" для роботи веб-переглядача.</translation> <translation id="7503985202154027481">На ключі безпеки збережеться запис, що ви відвідували цей сайт.</translation> <translation id="7504293978434250212">Ваша організація може сканувати файли розміром до 50 МБ. Завантажте менший файл.</translation> <translation id="750509436279396091">Відкрити папку завантажень</translation> @@ -5644,7 +5639,6 @@ <translation id="8546930481464505581">Налаштувати Touch Bar</translation> <translation id="8547013269961688403">Увімкнути лупу для всього екрана</translation> <translation id="85486688517848470">Утримуйте клавішу пошуку, щоб змінити функції клавіш угорі клавіатури</translation> -<translation id="8550165047974571882">Сайт <ph name="ORIGIN" /> зможе змінювати файли в папці "<ph name="FOLDERNAME" />", доки ви не закриєте всі вкладки <ph name="ORIGIN" /></translation> <translation id="8551388862522347954">Ліцензії</translation> <translation id="8553342806078037065">Керувати іншими користувачами</translation> <translation id="8554899698005018844">Мову не вибрано</translation>
diff --git a/chrome/app/resources/generated_resources_ur.xtb b/chrome/app/resources/generated_resources_ur.xtb index 346723e..864f4f5 100644 --- a/chrome/app/resources/generated_resources_ur.xtb +++ b/chrome/app/resources/generated_resources_ur.xtb
@@ -1121,7 +1121,6 @@ <translation id="247949520305900375">آڈیو کا اشتراک کریں</translation> <translation id="2480868415629598489">آپ جو ڈیٹا کاپی اور پیسٹ کرتے ہیں اس میں ترمیم کریں</translation> <translation id="2482878487686419369">اطلاعات</translation> -<translation id="2483610039979585156">آپ کے سبھی <ph name="ORIGIN" /> ٹیبز کو بند کرنے تک <ph name="ORIGIN" /> <ph name="FILENAME" /> میں ترمیم کر سکے گا</translation> <translation id="2484959914739448251">اپنے سبھی مطابقت پذیر آلات اور اپنے Google اکاؤنٹ سے براؤزنگ ڈیٹا صاف کرنے کیلئے، <ph name="BEGIN_LINK" />اپنا پاس فریز درج کریں<ph name="END_LINK" />۔</translation> <translation id="2485005079599453134">پاس ورڈ اس آلے پر محفوظ کیا گیا</translation> <translation id="2485422356828889247">ان انسٹال کریں</translation> @@ -1726,7 +1725,6 @@ <translation id="3282568296779691940">Chrome میں سائن ان کریں</translation> <translation id="3285322247471302225">نیا &ٹیب</translation> <translation id="328571385944182268">آپ کے پاس ورڈز محفوظ کریں؟</translation> -<translation id="328785681103589998">جب تک آپ سبھی <ph name="ORIGIN" /> ٹیبز کو بند نہیں کرتے،<ph name="ORIGIN" /> <ph name="FILENAME" /> کو دیکھ سکے گا</translation> <translation id="3288047731229977326">ڈیولپر وضع میں چلنے والی ایکسٹینشنز آپ کے کمپیوٹر کو نقصان پہنچا سکتی ہیں۔ اگر آپ ایک ڈیولپر نہیں ہیں تو محفوظ رہنے کیلئے آپ کو ڈیولپر وضع میں چلنے والی ان ایکسٹینشنز کو غیر فعال کر دینا چاہیے۔</translation> <translation id="3289856944988573801">اپ ڈیٹس چیک کرنے کیلئے، براہ کرم ایتھرنیٹ یا Wi-Fi کا استعمال کریں۔</translation> <translation id="3290356915286466215">غیر محفوظ</translation> @@ -2415,6 +2413,7 @@ <translation id="4144218403971135344">بہتر معیار کی ویڈیو حاصل کریں اور بیٹری لائف کی بچت کریں۔ ویڈیو صرف آپ کی اس اسکرین پر چلے گی جس پر Cast فعال ہے۔</translation> <translation id="4146026355784316281">ہمیشہ سسٹم ناظر کے ساتھ کھولیں</translation> <translation id="4146785383423576110">ری سیٹ کریں اور صاف کریں</translation> +<translation id="4147897805161313378">Google تصاویر</translation> <translation id="4147911968024186208">براہ کرم دوبارہ کوشش کریں۔ اگر یہ خرابی دوبارہ پیش آتی ہے تو براہ کرم اپنے سپورٹ کے نمائندے سے رابطہ کریں۔</translation> <translation id="4150201353443180367">ڈسپلے</translation> <translation id="4152670763139331043">{NUM_TABS,plural, =1{1 ٹیب}other{# ٹیبز}}</translation> @@ -2734,6 +2733,7 @@ <translation id="4633757335284074492">Google Drive میں بیک اپ لیں۔ آسانی سے ڈیٹا بحال کریں یا کسی بھی وقت آلہ کو سوئچ کریں۔ اس بیک اپ میں ایپ ڈیٹا شامل ہے۔ بیک اپس کو Google پر اپ لوڈ کیا جاتا ہے اور آپ کے بچے کے Google اکاؤنٹ کا پاس ورڈ استعمال کر کے انہیں مرموز کیا جاتا ہے۔</translation> <translation id="4634771451598206121">دوبارہ سائن ان کریں…</translation> <translation id="4635398712689569051"><ph name="PAGE_NAME" /> مہمان صارفین کے لئے دستیاب نہیں ہے۔</translation> +<translation id="4636930964841734540">معلومات</translation> <translation id="4637083375689622795">مزید کارروائیاں، <ph name="EMAIL" /></translation> <translation id="4638930039313743000">ADB ڈیبگنگ فعال کریں</translation> <translation id="4641539339823703554">Chrome سسٹم کا وقت سیٹ کرنے سے قاصر تھا۔ براہ کرم ذيل میں وقت کو چیک کریں اور ضرورت پڑنے پر اسے درست کریں۔</translation> @@ -2813,7 +2813,6 @@ <translation id="4750394297954878236">تجاویز</translation> <translation id="475088594373173692">پہلا صارف</translation> <translation id="4751476147751820511">موشن یا لائٹ سینسرز</translation> -<translation id="4756269098451810636"><ph name="DEVICE_NAME" /> سے اشتراک کردہ تصویر</translation> <translation id="4756378406049221019">بند کریں/دوبارہ لوڈ کریں</translation> <translation id="4756388243121344051">&سرگزشت</translation> <translation id="4759238208242260848">ڈاؤن لوڈز</translation> @@ -3760,7 +3759,6 @@ <translation id="6040852767465482106">گمنام شناخت</translation> <translation id="6041046205544295907"><ph name="BEGIN_PARAGRAPH1" />آپ کے آلہ کے مقام کا اندازہ لگانے میں مدد کرنے کے لیے، Google کی مقام کی سروس Wi‑Fi، موبائل نیٹ ورکس اور سینسرز جیسے ذرائع کا استعمال کرتی ہے۔<ph name="END_PARAGRAPH1" /> <ph name="BEGIN_PARAGRAPH2" />آپ اپنے آلہ پر 'مقام' کی مرکزی ترتیب کو آف کر کے 'مقام' کو آف کر سکتے ہیں۔ آپ مقام کی ترتیبات میں مقام کے لیے Wi‑Fi، موبائل نیٹ ورکس اور سینسرز کے استعمال کو بھی آف کر سکتے ہیں۔<ph name="END_PARAGRAPH2" /></translation> -<translation id="6041150002191391409">آپ کے سبھی <ph name="ORIGIN" /> ٹیبز کو بند کرنے تک <ph name="ORIGIN" /> <ph name="FOLDERNAME" /> میں فائلز دیکھ سکے گا</translation> <translation id="6041155700700864984">پوری اسکرین سے باہر نکلیں</translation> <translation id="604124094241169006">خود کار</translation> <translation id="6042308850641462728">مزید</translation> @@ -4156,7 +4154,6 @@ <translation id="6561726789132298588">انٹر</translation> <translation id="656293578423618167">فائل کا پاتھ یا نام کافی طویل ہیں۔ براہ کرم ایک چھوٹے نام کے ساتھ یا کسی دوسرے مقام میں محفوظ کریں۔</translation> <translation id="6563469144985748109">آپ کے مینیجر نے ابھی تک اسے منظور نہیں کیا ہے</translation> -<translation id="6567688344210276845">صفحہ کی کارروائی کیلئے آئیکن '<ph name="ICON" />' لوڈ نہیں کیا جا سکا۔</translation> <translation id="6569934958368283244">دیگر لوگ</translation> <translation id="657402800789773160">یہ صفحہ &دوبارہ لوڈ کریں</translation> <translation id="6577284282025554716">ڈاؤن لوڈ منسوخ ہو گیا: <ph name="FILE_NAME" /></translation> @@ -4221,7 +4218,6 @@ <translation id="6659594942844771486">ٹیب</translation> <translation id="6664237456442406323">بدقسمتی سے، آپ کا کمپیوٹر بدوضع ہارڈ ویئر ID کے ساتھ کنفیگر کیا ہوا ہے۔ یہ Chrome OS کو تازہ ترین سیکیورٹی فکسز کے ساتھ اپ ڈیٹ ہونے سے روکتا ہے اور آپ کے کمپیوٹر کو <ph name="BEGIN_BOLD" />نقصان دہ حملوں سے خطرہ ہو سکتا ہے<ph name="END_BOLD" />۔</translation> <translation id="6664774537677393800">آپ کے پروفائل کو کھولتے وقت کچھ غلط ہوگیا۔ براہ کرم سائن آؤٹ کر کے دوبارہ سائن ان کریں۔</translation> -<translation id="6667776121818773738">دیگر آلہ سے اشتراک کردہ تصویر</translation> <translation id="6673391612973410118"><ph name="PRINTER_MAKE_OR_MODEL" /> (USB)</translation> <translation id="667517062706956822">کیا آپ چاہتے ہیں کہ Google اس صفحہ کا <ph name="SOURCE_LANGUAGE" /> سے <ph name="TARGET_LANGUAGE" /> میں ترجمہ کرے؟</translation> <translation id="6675665718701918026">پوائنٹنگ آلہ منسلک ہو گیا</translation> @@ -4842,7 +4838,6 @@ <translation id="7497981768003291373">آپ کے پاس حالیہ کیپچر کردہ کوئی WebRTC ٹیکسٹ لاگ نہیں ہے۔</translation> <translation id="7502658306369382406">IPv6 پتہ</translation> <translation id="7503191893372251637">Netscape سرٹیفیکیٹ کی قسم</translation> -<translation id="7503821294401948377">براؤزر کی کارروائی کیلئے آئیکن '<ph name="ICON" />' لوڈ نہیں ہو سکا۔</translation> <translation id="7503985202154027481">آپ کی سیکیورٹی کلید پر آپ کے اس سائٹ کو ملاحظہ کرنے کا ریکارڈ رکھا جائے گا۔</translation> <translation id="7504293978434250212">آپ کی تنظیم 50 MB تک کی فائلز کو اسکین کر سکتی ہے۔ چھوٹی فائل اپ لوڈ کرنے کی کوشش کریں۔</translation> <translation id="750509436279396091">ڈاؤن لوڈز کا فولڈر کھولیں</translation> @@ -5645,7 +5640,6 @@ <translation id="8546930481464505581">ٹچ بار کو حسب ضرورت بنائيں</translation> <translation id="8547013269961688403">پوری اسکرین مکبّر کو فعال کریں</translation> <translation id="85486688517848470">سر فہرست قطار کی کلیدوں کے برتاؤ کو سوئچ کرنے کیلئے تلاش کی کلید کو دبائے رہیں</translation> -<translation id="8550165047974571882">آپ کے سبھی <ph name="ORIGIN" /> ٹیبز کو بند کرنے تک <ph name="ORIGIN" /> <ph name="FOLDERNAME" /> میں فائلز میں ترمیم کر سکے گا</translation> <translation id="8551388862522347954">لائسنسز</translation> <translation id="8553342806078037065">دوسرے لوگوں کا نظم کریں</translation> <translation id="8554899698005018844">کوئی زبان نہیں</translation>
diff --git a/chrome/app/resources/generated_resources_uz.xtb b/chrome/app/resources/generated_resources_uz.xtb index 691016a..f119bacb 100644 --- a/chrome/app/resources/generated_resources_uz.xtb +++ b/chrome/app/resources/generated_resources_uz.xtb
@@ -1118,7 +1118,6 @@ <translation id="247949520305900375">Audioga umumiy ruxsat</translation> <translation id="2480868415629598489">Nusxalab joylanadigan ma’lumotlarni tahrirlash</translation> <translation id="2482878487686419369">Bildirishnomalar</translation> -<translation id="2483610039979585156">Barcha <ph name="ORIGIN" /> varaqlari yopilmaguncha <ph name="ORIGIN" /> sayti <ph name="FILENAME" /> faylini tahrirlay oladi</translation> <translation id="2484959914739448251">Brauzer tarixini Google hisobingizga sinxronlangan barcha qurilmalardan tozalash uchun <ph name="BEGIN_LINK" />kodli iborani kiriting<ph name="END_LINK" />.</translation> <translation id="2485005079599453134">Parol shu qurilmaga saqlandi</translation> <translation id="2485422356828889247">O‘chirib tashlash</translation> @@ -1723,7 +1722,6 @@ <translation id="3282568296779691940">Chrome hisobiga kirish</translation> <translation id="3285322247471302225">Yangi &ichki oyna</translation> <translation id="328571385944182268">Parollaringiz saqlansinmi?</translation> -<translation id="328785681103589998">Barcha <ph name="ORIGIN" /> varaqlari yopilmaguncha <ph name="ORIGIN" /> sayti <ph name="FILENAME" /> faylini ocha oladi</translation> <translation id="3288047731229977326">Dasturchi rejimida ishga tushirilgan kengaytmalar kompyuteringizga ziyon yetkazishi mumkin. Agar dasturchi bo‘lmasangiz xavfsizlik maqsadlarida ularni o‘chirib qo‘yishingiz kerak.</translation> <translation id="3289856944988573801">Mavjud yangilanishlarni tekshirish uchun Ethernet yoki Wi-Fi orqali ulaning.</translation> <translation id="3290356915286466215">Himoyalanmagan</translation> @@ -2412,6 +2410,7 @@ <translation id="4144218403971135344">Bu funksiya yordamida video sifati yaxshilanadi va batareya davomiyligi oshiriladi. Video faqat Cast xizmatiga mos ekranlarda namoyish etiladi.</translation> <translation id="4146026355784316281">Doim tizimdagi birlamchi ko‘rish dasturida ochish</translation> <translation id="4146785383423576110">Ilk sozlamalarni tiklash va zararli fayllarni tozalash</translation> +<translation id="4147897805161313378">Google Photos</translation> <translation id="4147911968024186208">Qaytadan urining. Muammo qaytarilsa, mijozlar xizmatiga murojaat qiling.</translation> <translation id="4150201353443180367">Ekran</translation> <translation id="4152670763139331043">{NUM_TABS,plural, =1{1 ta ichki oyna}other{# ta ichki oyna}}</translation> @@ -2731,6 +2730,7 @@ <translation id="4633757335284074492">Google Drive omboriga zaxiralash. Axborotlaringizni osongina tiklashingiz yoki qurilmangizni xohlagan vaqtda almashtirishingiz mumkin. Zaxira ichida ilova maʼlumotlari ham bor. Zaxiralar Google serverlariga yuklanadi va farzandingizning Google hisobingiz paroli bilan shifrlanadi.</translation> <translation id="4634771451598206121">Qaytadan kirish...</translation> <translation id="4635398712689569051"><ph name="PAGE_NAME" /> sahifasi mehmon foydalanuvchilarga ko‘rinmaydi.</translation> +<translation id="4636930964841734540">Ma’lumot</translation> <translation id="4637083375689622795">Boshqa amallar, <ph name="EMAIL" /></translation> <translation id="4638930039313743000">ADB tuzatish vositasini yoqish</translation> <translation id="4641539339823703554">Brauzer tizim vaqtini o‘rnata olmadi. Vaqtni tekshiring va kerak bo‘lsa to‘g‘irlab qo‘ying.</translation> @@ -2810,7 +2810,6 @@ <translation id="4750394297954878236">Takliflar</translation> <translation id="475088594373173692">Birinchi foydalanuvchi</translation> <translation id="4751476147751820511">Harakat va yorug‘lik sensorlari</translation> -<translation id="4756269098451810636"><ph name="DEVICE_NAME" /> qurilmasidan ulashilgan tasvir</translation> <translation id="4756378406049221019">To‘xtatish/Yangilash</translation> <translation id="4756388243121344051">&Tarix</translation> <translation id="4759238208242260848">Yuklanmalar</translation> @@ -3757,7 +3756,6 @@ <translation id="6040852767465482106">Anonim:</translation> <translation id="6041046205544295907"><ph name="BEGIN_PARAGRAPH1" />Google joylashuvni aniqlash xizmati bu qurilmaning joylashuvini bilish uchun Wi-Fi, mobil tarmoqlar va sensorlar kabi manbalardan foydalanadi.<ph name="END_PARAGRAPH1" /> <ph name="BEGIN_PARAGRAPH2" />Bu qurilmada asosiy Joylashuv sozlamasini faolsizlantirish orqali Joylashuvni aniqlash xizmatini faolsizlantirish mumkin. Shuningdek, joylashuv parametri orqali joylashuv axboroti uchun Wi-Fi va mobil tarmoqlardan foydalanish hamda sensorlarni ham faolsizlantirish mumkin.<ph name="END_PARAGRAPH2" /></translation> -<translation id="6041150002191391409">Barcha <ph name="ORIGIN" /> varaqlari yopilmaguncha <ph name="ORIGIN" /> sayti <ph name="FOLDERNAME" /> jildidagi fayllarni ocha oladi</translation> <translation id="6041155700700864984">To‘liq ekran rejimidan chiqish</translation> <translation id="604124094241169006">Avtomatik</translation> <translation id="6042308850641462728">Yana</translation> @@ -4153,7 +4151,6 @@ <translation id="6561726789132298588">enter</translation> <translation id="656293578423618167">Fayl nomi yoki joylashuvi juda uzun. Boshqa nom yoki jild tanlang.</translation> <translation id="6563469144985748109">Administrator tomonidan hali tasdiqlanmagan</translation> -<translation id="6567688344210276845">Sahifadagi amal uchun “<ph name="ICON" />” ikonkasini yuklab bo‘lmadi.</translation> <translation id="6569934958368283244">Boshqalar</translation> <translation id="657402800789773160">&Sahifani yangilash</translation> <translation id="6577284282025554716">Yuklanma bekor qilindi: <ph name="FILE_NAME" /></translation> @@ -4218,7 +4215,6 @@ <translation id="6659594942844771486">Varaq</translation> <translation id="6664237456442406323">Afsuski, kompyuteringiz noto‘g‘ri tuzilgan apparat identifikatori bilan sozlangan. Buning natijasida Chrome OS xavfsizlikka oid so‘nggi tuzatishlar bilan yangilanmaydi va kompyuteringiz <ph name="BEGIN_BOLD" />zararli hujumlarga ochiq qolishi mumkin<ph name="END_BOLD" />.</translation> <translation id="6664774537677393800">Profilni ochib bo‘lmadi. Tizimdan chiqing va qaytadan kiring.</translation> -<translation id="6667776121818773738">Boshqa qurilmadagi tasvir</translation> <translation id="6673391612973410118"><ph name="PRINTER_MAKE_OR_MODEL" /> (USB)</translation> <translation id="667517062706956822">Ushbu sahifani Google <ph name="SOURCE_LANGUAGE" /> tilidan <ph name="TARGET_LANGUAGE" /> tiliga tarjima qilsinmi?</translation> <translation id="6675665718701918026">Qo‘shimcha qurilma ulandi</translation> @@ -4839,7 +4835,6 @@ <translation id="7497981768003291373">Yaqinda yozilgan WebRTC matnli jurnallari topilmadi.</translation> <translation id="7502658306369382406">IPv6 manzil</translation> <translation id="7503191893372251637">Netscape sertifikati turi</translation> -<translation id="7503821294401948377">Brauzer amali uchun “<ph name="ICON" />” ikonkasini yuklab bo‘lmadi.</translation> <translation id="7503985202154027481">Joriy saytga tashrifingiz haqidagi axborot elektron kalitga saqlanadi.</translation> <translation id="7504293978434250212">Tashkilotingiz faqat 50 MB gacha fayllarni tekshira oladi. Kichikroq hajmdagi faylni yuklang.</translation> <translation id="750509436279396091">Yuklamalar jildini ochish</translation> @@ -5640,7 +5635,6 @@ <translation id="8546930481464505581">Tegish panelini sozlash</translation> <translation id="8547013269961688403">Lupani butun ekranda ochish</translation> <translation id="85486688517848470">Yuqori qatordagi tugmalar rejimni almashtirish uchun qidiruv tugmasini bosib turing</translation> -<translation id="8550165047974571882">Barcha <ph name="ORIGIN" /> varaqlari yopilmaguncha <ph name="ORIGIN" /> sayti <ph name="FOLDERNAME" /> jildidagi fayllarni tahrirlay oladi</translation> <translation id="8551388862522347954">Litsenziyalar</translation> <translation id="8553342806078037065">Boshqa foydalanuvchilarni boshqarish</translation> <translation id="8554899698005018844">Til tanlanmagan</translation>
diff --git a/chrome/app/resources/generated_resources_vi.xtb b/chrome/app/resources/generated_resources_vi.xtb index a52e365..d01b6cb 100644 --- a/chrome/app/resources/generated_resources_vi.xtb +++ b/chrome/app/resources/generated_resources_vi.xtb
@@ -1120,7 +1120,6 @@ <translation id="247949520305900375">Chia sẻ âm thanh</translation> <translation id="2480868415629598489">Sửa đổi dữ liệu bạn sao chép và dán</translation> <translation id="2482878487686419369">Thông báo</translation> -<translation id="2483610039979585156"><ph name="ORIGIN" /> vẫn có thể chỉnh sửa <ph name="FILENAME" /> cho đến khi bạn đóng hết tất cả các thẻ <ph name="ORIGIN" /></translation> <translation id="2484959914739448251">Để xóa dữ liệu duyệt web khỏi tất cả các thiết bị đã đồng bộ hóa và Tài khoản Google của bạn, hãy <ph name="BEGIN_LINK" />nhập cụm mật khẩu<ph name="END_LINK" />.</translation> <translation id="2485005079599453134">Đã lưu mật khẩu trên thiết bị này</translation> <translation id="2485422356828889247">Gỡ cài đặt</translation> @@ -1725,7 +1724,6 @@ <translation id="3282568296779691940">Đăng nhập vào Chrome</translation> <translation id="3285322247471302225">&Tab Mới</translation> <translation id="328571385944182268">Lưu mật khẩu của bạn?</translation> -<translation id="328785681103589998"><ph name="ORIGIN" /> sẽ có thể xem <ph name="FILENAME" /> cho đến khi bạn đóng hết tất cả các thẻ <ph name="ORIGIN" /></translation> <translation id="3288047731229977326">Tiện ích chạy ở chế độ nhà phát triển có thể gây hại cho máy tính của bạn. Nếu bạn không phải là nhà phát triển, bạn nên vô hiệu hóa các tiện ích này chạy trong chế độ nhà phát triển để giữ an toàn.</translation> <translation id="3289856944988573801">Để kiểm tra các cập nhật, hãy sử dụng kết nối Ethernet hoặc Wi-Fi.</translation> <translation id="3290356915286466215">Không bảo mật</translation> @@ -2414,6 +2412,7 @@ <translation id="4144218403971135344">Trải nhiệm chất lượng video tốt hơn và tiết kiệm pin. Video sẽ chỉ phát trên màn hình có hỗ trợ tính năng Truyền.</translation> <translation id="4146026355784316281">Luôn mở bằng trình xem hệ thống</translation> <translation id="4146785383423576110">Đặt lại và dọn dẹp</translation> +<translation id="4147897805161313378">Google Photos</translation> <translation id="4147911968024186208">Vui lòng thử lại. Nếu bạn vẫn thấy lỗi này, vui lòng liên hệ với người đại diện hỗ trợ của bạn.</translation> <translation id="4150201353443180367">Hiển thị</translation> <translation id="4152670763139331043">{NUM_TABS,plural, =1{1 tab}other{# tab}}</translation> @@ -2733,6 +2732,7 @@ <translation id="4633757335284074492">Sao lưu vào Google Drive. Dễ dàng khôi phục dữ liệu hoặc chuyển đổi thiết bị bất cứ lúc nào. Bản sao lưu này bao gồm cả dữ liệu ứng dụng. Các bản sao lưu được tải lên Google và mã hóa bằng mật khẩu Tài khoản Google của con bạn.</translation> <translation id="4634771451598206121">Đăng nhập lại...</translation> <translation id="4635398712689569051">Người dùng khách không thể sử dụng <ph name="PAGE_NAME" />.</translation> +<translation id="4636930964841734540">Thông tin</translation> <translation id="4637083375689622795">Thao tác khác, <ph name="EMAIL" /></translation> <translation id="4638930039313743000">Bật tùy chọn gỡ lỗi ADB</translation> <translation id="4641539339823703554">Chrome đã không thể đặt giờ hệ thống. Vui lòng kiểm tra giờ bên dưới và sửa giờ nếu cần thiết.</translation> @@ -2812,7 +2812,6 @@ <translation id="4750394297954878236">Đề xuất</translation> <translation id="475088594373173692">Người dùng đầu tiên</translation> <translation id="4751476147751820511">Cảm biến chuyển động hoặc ánh sáng</translation> -<translation id="4756269098451810636">Hình ảnh chia sẻ từ <ph name="DEVICE_NAME" /></translation> <translation id="4756378406049221019">Dừng/Tải lại</translation> <translation id="4756388243121344051">&Lịch sử</translation> <translation id="4759238208242260848">Tệp đã tải xuống</translation> @@ -3759,7 +3758,6 @@ <translation id="6040852767465482106">Danh tính ẩn danh</translation> <translation id="6041046205544295907"><ph name="BEGIN_PARAGRAPH1" />Dịch vụ vị trí của Google sử dụng các nguồn như mạng Wi-Fi, mạng di động và cảm biến để giúp ước đoán vị trí thiết bị của bạn.<ph name="END_PARAGRAPH1" /> <ph name="BEGIN_PARAGRAPH2" />Bạn có thể tắt Vị trí bằng cách tắt tùy chọn cài đặt Vị trí chính trên thiết bị. Ngoài ra, bạn có thể tắt tùy chọn sử dụng mạng Wi-Fi, mạng di động và cảm biến cho vị trí trong mục cài đặt vị trí.<ph name="END_PARAGRAPH2" /></translation> -<translation id="6041150002191391409"><ph name="ORIGIN" /> vẫn có thể xem các tệp trong <ph name="FOLDERNAME" /> cho đến khi bạn đóng hết tất cả các thẻ <ph name="ORIGIN" /></translation> <translation id="6041155700700864984">Thoát chế độ toàn màn hình</translation> <translation id="604124094241169006">Tự động</translation> <translation id="6042308850641462728">Xem thêm</translation> @@ -4155,7 +4153,6 @@ <translation id="6561726789132298588">enter</translation> <translation id="656293578423618167">Tên hoặc đường dẫn của tệp quá dài. Hãy lưu với tên ngắn hơn hoặc lưu vào một vị trí khác.</translation> <translation id="6563469144985748109">Người quản lý của bạn chưa phê duyệt trang web</translation> -<translation id="6567688344210276845">Không thể tải biểu tượng '<ph name="ICON" />' cho tác vụ trang.</translation> <translation id="6569934958368283244">Người khác</translation> <translation id="657402800789773160">&Tải lại trang này</translation> <translation id="6577284282025554716">Đã hủy tải xuống: <ph name="FILE_NAME" /></translation> @@ -4220,7 +4217,6 @@ <translation id="6659594942844771486">Thẻ</translation> <translation id="6664237456442406323">Rất tiếc, máy tính của bạn được định cấu hình bằng ID phần cứng không đúng định dạng. Điều này ngăn Chrome OS cập nhật các bản vá bảo mật mới nhất và máy tính của bạn <ph name="BEGIN_BOLD" />có thể bị các cuộc tấn công làm hại<ph name="END_BOLD" />.</translation> <translation id="6664774537677393800">Đã xảy ra sự cố khi mở hồ sơ của bạn. Vui lòng đăng xuất rồi đăng nhập lại.</translation> -<translation id="6667776121818773738">Hình ảnh chia sẻ từ thiết bị khác</translation> <translation id="6673391612973410118"><ph name="PRINTER_MAKE_OR_MODEL" /> (USB)</translation> <translation id="667517062706956822">Bạn có muốn Google dịch trang này từ <ph name="SOURCE_LANGUAGE" /> sang <ph name="TARGET_LANGUAGE" /> không?</translation> <translation id="6675665718701918026">Đã kết nối thiết bị trỏ</translation> @@ -4841,7 +4837,6 @@ <translation id="7497981768003291373">Bạn không ghi nhật ký văn bản WebRTC nào gần đây.</translation> <translation id="7502658306369382406">Địa chỉ IPv6</translation> <translation id="7503191893372251637">Loại Chứng chỉ Netscape</translation> -<translation id="7503821294401948377">Không thể tải biểu tượng '<ph name="ICON" />' cho tác vụ của trình duyệt.</translation> <translation id="7503985202154027481">Khóa bảo mật sẽ lưu giữ bản ghi lượt truy cập của bạn vào trang web này.</translation> <translation id="7504293978434250212">Tổ chức của bạn có thể quét tệp có dung lượng tối đa là 50 MB. Hãy thử tải một tệp nhỏ hơn lên.</translation> <translation id="750509436279396091">Mở thư mục tệp đã tải xuống</translation> @@ -5644,7 +5639,6 @@ <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="8550165047974571882"><ph name="ORIGIN" /> vẫn có thể chỉnh sửa các tệp trong <ph name="FOLDERNAME" /> cho đến khi bạn đóng hết tất cả các thẻ <ph name="ORIGIN" /></translation> <translation id="8551388862522347954">Giấy phép</translation> <translation id="8553342806078037065">Quản lý những người khác</translation> <translation id="8554899698005018844">Không có ngôn ngữ nào</translation>
diff --git a/chrome/app/resources/generated_resources_zh-CN.xtb b/chrome/app/resources/generated_resources_zh-CN.xtb index a32a367d..427df8ac 100644 --- a/chrome/app/resources/generated_resources_zh-CN.xtb +++ b/chrome/app/resources/generated_resources_zh-CN.xtb
@@ -1116,7 +1116,6 @@ <translation id="247949520305900375">分享音频</translation> <translation id="2480868415629598489">修改您复制和粘贴的数据</translation> <translation id="2482878487686419369">通知</translation> -<translation id="2483610039979585156"><ph name="ORIGIN" /> 将能够修改“<ph name="FILENAME" />”中的内容,除非您关闭所有 <ph name="ORIGIN" /> 标签页</translation> <translation id="2484959914739448251">要想清除您的所有已同步设备中的浏览数据以及您的 Google 帐号中的浏览数据,请<ph name="BEGIN_LINK" />输入您的密码<ph name="END_LINK" />。</translation> <translation id="2485005079599453134">密码已保存在此设备上</translation> <translation id="2485422356828889247">卸载</translation> @@ -1721,7 +1720,6 @@ <translation id="3282568296779691940">登录 Chrome</translation> <translation id="3285322247471302225">打开新的标签页(&T)</translation> <translation id="328571385944182268">保存您的密码?</translation> -<translation id="328785681103589998"><ph name="ORIGIN" /> 将能够查看“<ph name="FILENAME" />”,直到您关闭所有 <ph name="ORIGIN" /> 标签页</translation> <translation id="3288047731229977326">以开发者模式运行的扩展程序可能会损害您的计算机。如果您不是开发者,那么,为安全起见,应停用以开发者模式运行的扩展程序。</translation> <translation id="3289856944988573801">要检查是否有更新,请使用以太网或 WLAN。</translation> <translation id="3290356915286466215">未受到安全保护</translation> @@ -2409,6 +2407,7 @@ <translation id="4144218403971135344">获取更优质的视频并减少耗电量。视频仅会在支持 Cast 的屏幕上播放。</translation> <translation id="4146026355784316281">始终使用系统查看器打开</translation> <translation id="4146785383423576110">重置并清理</translation> +<translation id="4147897805161313378">Google 相册</translation> <translation id="4147911968024186208">请重试。如果系统仍提示此错误,请与您的支持代表联系。</translation> <translation id="4150201353443180367">显示</translation> <translation id="4152670763139331043">{NUM_TABS,plural, =1{1 个标签页}other{# 个标签页}}</translation> @@ -2728,6 +2727,7 @@ <translation id="4633757335284074492">备份到 Google 云端硬盘。您随时可以轻松地恢复数据或更换设备。此类备份内容包含应用数据。备份内容将上传到 Google 并使用您孩子的 Google 帐号密码进行加密。</translation> <translation id="4634771451598206121">重新登录...</translation> <translation id="4635398712689569051">访客用户无法使用“<ph name="PAGE_NAME" />”页面。</translation> +<translation id="4636930964841734540">信息</translation> <translation id="4637083375689622795">更多操作,<ph name="EMAIL" /></translation> <translation id="4638930039313743000">启用 ADB 调试</translation> <translation id="4641539339823703554">Chrome无法设置系统时间。请检查下面的时间,并在必要时进行更正。</translation> @@ -2807,7 +2807,6 @@ <translation id="4750394297954878236">建议</translation> <translation id="475088594373173692">第 1 位用户</translation> <translation id="4751476147751820511">动态传感器或光传感器</translation> -<translation id="4756269098451810636">从<ph name="DEVICE_NAME" />分享的图片</translation> <translation id="4756378406049221019">停止/重新加载</translation> <translation id="4756388243121344051">历史记录(&H)</translation> <translation id="4759238208242260848">下载内容</translation> @@ -3754,7 +3753,6 @@ <translation id="6040852767465482106">匿名身份</translation> <translation id="6041046205544295907"><ph name="BEGIN_PARAGRAPH1" />Google 的位置信息服务会使用 WLAN、移动网络和传感器等来源协助估测您设备所在的位置。<ph name="END_PARAGRAPH1" /> <ph name="BEGIN_PARAGRAPH2" />您可以通过关闭相应设备上的主要“位置信息”设置来关闭位置信息服务。此外,您还可以在“位置信息”设置中关闭那些使用 WLAN、移动网络和传感器来获取位置信息的功能。<ph name="END_PARAGRAPH2" /></translation> -<translation id="6041150002191391409"><ph name="ORIGIN" /> 将能够查看“<ph name="FOLDERNAME" />”内的文件,除非您关闭所有 <ph name="ORIGIN" /> 标签页</translation> <translation id="6041155700700864984">退出全屏</translation> <translation id="604124094241169006">自动</translation> <translation id="6042308850641462728">更多</translation> @@ -4150,7 +4148,6 @@ <translation id="6561726789132298588">Enter</translation> <translation id="656293578423618167">该文件的路径或名称过长。请以较短的名称保存或保存到其他位置。</translation> <translation id="6563469144985748109">您的管理员尚未批准此网站</translation> -<translation id="6567688344210276845">无法加载网页操作的“<ph name="ICON" />”图标。</translation> <translation id="6569934958368283244">其他人</translation> <translation id="657402800789773160">重新加载此页(&R)</translation> <translation id="6577284282025554716">已取消下载“<ph name="FILE_NAME" />”</translation> @@ -4215,7 +4212,6 @@ <translation id="6659594942844771486">标签页</translation> <translation id="6664237456442406323">很遗憾,您的计算机配置了格式错误的硬件 ID。这导致 Chrome 操作系统无法使用最新的安全修正程序进行更新,以致您的计算机<ph name="BEGIN_BOLD" />很容易遭到恶意攻击<ph name="END_BOLD" />。</translation> <translation id="6664774537677393800">打开您的个人资料时出了点问题。请先退出,然后重新登录。</translation> -<translation id="6667776121818773738">从其他设备分享的图片</translation> <translation id="6673391612973410118"><ph name="PRINTER_MAKE_OR_MODEL" /> (USB)</translation> <translation id="667517062706956822">您希望 Google 将此网页的内容从<ph name="SOURCE_LANGUAGE" />翻译为<ph name="TARGET_LANGUAGE" />吗?</translation> <translation id="6675665718701918026">已连接指针设备</translation> @@ -4836,7 +4832,6 @@ <translation id="7497981768003291373">您最近未记录 WebRTC 文本日志。</translation> <translation id="7502658306369382406">IPv6 地址</translation> <translation id="7503191893372251637">Netscape 证书类型</translation> -<translation id="7503821294401948377">无法加载浏览器操作的“<ph name="ICON" />”图标。</translation> <translation id="7503985202154027481">您对该网站的访问记录将保留在安全密钥上。</translation> <translation id="7504293978434250212">贵组织只能扫描不超过 50 MB 的文件。请尝试上传一个较小的文件。</translation> <translation id="750509436279396091">打开下载内容文件夹</translation> @@ -5638,7 +5633,6 @@ <translation id="8546930481464505581">自定义触摸栏</translation> <translation id="8547013269961688403">启用全屏放大镜</translation> <translation id="85486688517848470">按住搜索键可切换顶行键的行为</translation> -<translation id="8550165047974571882"><ph name="ORIGIN" /> 将能够修改“<ph name="FOLDERNAME" />”内的文件,除非您关闭所有 <ph name="ORIGIN" /> 标签页</translation> <translation id="8551388862522347954">许可</translation> <translation id="8553342806078037065">管理其他用户</translation> <translation id="8554899698005018844">无语言</translation>
diff --git a/chrome/app/resources/generated_resources_zh-HK.xtb b/chrome/app/resources/generated_resources_zh-HK.xtb index d332eb2..f712e7c 100644 --- a/chrome/app/resources/generated_resources_zh-HK.xtb +++ b/chrome/app/resources/generated_resources_zh-HK.xtb
@@ -1119,7 +1119,6 @@ <translation id="247949520305900375">分享音效檔案</translation> <translation id="2480868415629598489">修改您複製並貼上的資料</translation> <translation id="2482878487686419369">通知</translation> -<translation id="2483610039979585156"><ph name="ORIGIN" /> 在您關閉所有 <ph name="ORIGIN" /> 分頁前都能編輯「<ph name="FILENAME" />」</translation> <translation id="2484959914739448251">如要從所有已同步的裝置和 Google 帳戶中清除瀏覽資料,請<ph name="BEGIN_LINK" />輸入密碼短語<ph name="END_LINK" />。</translation> <translation id="2485005079599453134">已在此裝置上儲存密碼</translation> <translation id="2485422356828889247">解除安裝</translation> @@ -1723,7 +1722,6 @@ <translation id="3282568296779691940">登入 Chrome</translation> <translation id="3285322247471302225">新分頁(&T)</translation> <translation id="328571385944182268">要儲存密碼嗎?</translation> -<translation id="328785681103589998"><ph name="ORIGIN" /> 在您關閉所有 <ph name="ORIGIN" /> 分頁前都能查看「<ph name="FILENAME" />」</translation> <translation id="3288047731229977326">在開發人員模式中執行擴充功能可能會損害您的電腦。如果您不是開發人員,最好在開發人員模式中停用這些擴充功能,以策安全。</translation> <translation id="3289856944988573801">如要檢查更新,請使用以太網絡或 Wi-Fi。</translation> <translation id="3290356915286466215">不安全</translation> @@ -2412,6 +2410,7 @@ <translation id="4144218403971135344">觀看更高品質的影片並延長電池壽命。影片只會在支援 Cast 的螢幕上播放。</translation> <translation id="4146026355784316281">一律使用系統檢視器開啟</translation> <translation id="4146785383423576110">重設並清理</translation> +<translation id="4147897805161313378">Google 相片</translation> <translation id="4147911968024186208">請重試。如果出現同樣問題,請聯絡您的支援代表。</translation> <translation id="4150201353443180367">顯示屏</translation> <translation id="4152670763139331043">{NUM_TABS,plural, =1{1 個分頁}other{# 個分頁}}</translation> @@ -2731,6 +2730,7 @@ <translation id="4633757335284074492">備份至「Google 雲端硬碟」。您可隨時輕鬆還原資料或改用其他裝置。備份包含應用程式資料。備份會上載至 Google,並使用您子女的 Google 帳戶密碼加密。</translation> <translation id="4634771451598206121">重新登入…</translation> <translation id="4635398712689569051">訪客使用者無法瀏覽「<ph name="PAGE_NAME" />」。</translation> +<translation id="4636930964841734540">資訊</translation> <translation id="4637083375689622795">更多操作,<ph name="EMAIL" /></translation> <translation id="4638930039313743000">啟用 ADB 偵錯</translation> <translation id="4641539339823703554">Chrome 無法設定系統時間。請檢查下方的時間,並按需要修正。</translation> @@ -2810,7 +2810,6 @@ <translation id="4750394297954878236">建議</translation> <translation id="475088594373173692">第一位使用者</translation> <translation id="4751476147751820511">動態或光線感應器</translation> -<translation id="4756269098451810636">由「<ph name="DEVICE_NAME" />」分享的圖片</translation> <translation id="4756378406049221019">停止/重新載入</translation> <translation id="4756388243121344051">記錄(&H)</translation> <translation id="4759238208242260848">下載</translation> @@ -3757,7 +3756,6 @@ <translation id="6040852767465482106">匿名身分</translation> <translation id="6041046205544295907"><ph name="BEGIN_PARAGRAPH1" />Google 的定位服務會使用 Wi-Fi、流動網絡和感應器等來源,以便估計您的裝置的所在位置。<ph name="END_PARAGRAPH1" /> <ph name="BEGIN_PARAGRAPH2" />關閉裝置的主要位置資訊設定,即可關閉定位服務。您也可以在位置資訊設定中關閉使用 Wi‑Fi、流動網絡和感應器確定位置的功能。<ph name="END_PARAGRAPH2" /></translation> -<translation id="6041150002191391409"><ph name="ORIGIN" /> 在您關閉所有 <ph name="ORIGIN" /> 分頁前都能查看「<ph name="FOLDERNAME" />」中的檔案</translation> <translation id="6041155700700864984">關閉全螢幕模式</translation> <translation id="604124094241169006">自動</translation> <translation id="6042308850641462728">更多選項</translation> @@ -4153,7 +4151,6 @@ <translation id="6561726789132298588">Enter 鍵</translation> <translation id="656293578423618167">檔案路徑或名稱太長。請選用較短的名稱或將其儲存至其他位置。</translation> <translation id="6563469144985748109">您的管理員尚未批准瀏覽此網站</translation> -<translation id="6567688344210276845">無法載入網頁動作的圖示「<ph name="ICON" />」。</translation> <translation id="6569934958368283244">其他人</translation> <translation id="657402800789773160">重新載入這個網頁(&R)</translation> <translation id="6577284282025554716"><ph name="FILE_NAME" /> 已經取消下載</translation> @@ -4218,7 +4215,6 @@ <translation id="6659594942844771486">分頁</translation> <translation id="6664237456442406323">抱歉,您的電腦是由格式錯誤的硬件 ID 所設定。這樣會防止 Chrome 作業系統更新最新的安全性修復,您的電腦也可能<ph name="BEGIN_BOLD" />容易被惡意攻擊<ph name="END_BOLD" />。</translation> <translation id="6664774537677393800">開啟您的設定檔時發生錯誤,請先登出,然後再次登入。</translation> -<translation id="6667776121818773738">由其他裝置分享的圖片</translation> <translation id="6673391612973410118"><ph name="PRINTER_MAKE_OR_MODEL" /> (USB)</translation> <translation id="667517062706956822">您想 Google 將此網頁的內容由<ph name="SOURCE_LANGUAGE" />翻譯成<ph name="TARGET_LANGUAGE" />嗎?</translation> <translation id="6675665718701918026">已連接指標裝置</translation> @@ -4839,7 +4835,6 @@ <translation id="7497981768003291373">您最近並未擷取 WebRTC 文字記錄。</translation> <translation id="7502658306369382406">IPv6 位址</translation> <translation id="7503191893372251637">Netscape 憑證類型</translation> -<translation id="7503821294401948377">無法載入瀏覽器動作的圖示「<ph name="ICON" />」。</translation> <translation id="7503985202154027481">您的安全密鑰會保留您瀏覽此網站的記錄。</translation> <translation id="7504293978434250212">您機構可掃瞄的檔案大小上限為 50 MB。請嘗試上載較小的檔案。</translation> <translation id="750509436279396091">開啟下載檔案資料夾</translation> @@ -5641,7 +5636,6 @@ <translation id="8546930481464505581">自訂 Touch Bar</translation> <translation id="8547013269961688403">啟用全螢幕放大鏡</translation> <translation id="85486688517848470">按住搜尋鍵即可切換最上排按鍵的執行動作</translation> -<translation id="8550165047974571882"><ph name="ORIGIN" /> 在您關閉所有 <ph name="ORIGIN" /> 分頁前都能編輯「<ph name="FOLDERNAME" />」中的檔案</translation> <translation id="8551388862522347954">授權</translation> <translation id="8553342806078037065">管理其他使用者</translation> <translation id="8554899698005018844">未選取語言</translation>
diff --git a/chrome/app/resources/generated_resources_zh-TW.xtb b/chrome/app/resources/generated_resources_zh-TW.xtb index 8f86a0f..2e4e350 100644 --- a/chrome/app/resources/generated_resources_zh-TW.xtb +++ b/chrome/app/resources/generated_resources_zh-TW.xtb
@@ -192,7 +192,7 @@ <translation id="1243314992276662751">上傳</translation> <translation id="1244265436519979884">目前正在執行 Linux 還原作業</translation> <translation id="1244303850296295656">擴充功能錯誤</translation> -<translation id="1246158006305844142">當你使用 Google 帳戶登入後,你的應用程式和設定會在所有 Chrome 作業系統裝置上保持同步。如要查看瀏覽器同步處理選項,請前往 <ph name="LINK_BEGIN" />Chrome 設定<ph name="LINK_END" />。</translation> +<translation id="1246158006305844142">當你使用 Google 帳戶登入後,所有 Chrome 作業系統裝置上的應用程式和設定都會保持同步。如要查看瀏覽器同步處理選項,請前往 <ph name="LINK_BEGIN" />Chrome 設定<ph name="LINK_END" />。</translation> <translation id="1246905108078336582">要從剪貼簿中移除建議嗎?</translation> <translation id="1249643471736608405">「<ph name="PLUGIN_NAME" />」因已淘汰而遭封鎖</translation> <translation id="1251366534849411931">缺少左大括弧:<ph name="ERROR_LINE" /></translation> @@ -1119,7 +1119,6 @@ <translation id="247949520305900375">分享音訊</translation> <translation id="2480868415629598489">修改你複製和貼上的資料</translation> <translation id="2482878487686419369">通知</translation> -<translation id="2483610039979585156">在你關閉所有 <ph name="ORIGIN" /> 分頁前,<ph name="ORIGIN" /> 都可以編輯「<ph name="FILENAME" />」</translation> <translation id="2484959914739448251">如要從所有同步的裝置和 Google 帳戶中清除瀏覽資料,請<ph name="BEGIN_LINK" />輸入通關密語<ph name="END_LINK" />。</translation> <translation id="2485005079599453134">已將密碼儲存在這個裝置上</translation> <translation id="2485422356828889247">解除安裝</translation> @@ -1724,7 +1723,6 @@ <translation id="3282568296779691940">登入 Chrome</translation> <translation id="3285322247471302225">新增分頁(&T)</translation> <translation id="328571385944182268">要儲存密碼嗎?</translation> -<translation id="328785681103589998">在你關閉所有 <ph name="ORIGIN" /> 分頁前,<ph name="ORIGIN" /> 都可以讀取「<ph name="FILENAME" />」</translation> <translation id="3288047731229977326">在開發人員模式中執行擴充功能可能會損害你的電腦。如果你不是開發人員,最好在開發人員模式中停用這些擴充功能,以策安全。</translation> <translation id="3289856944988573801">如要檢查更新,請使用乙太網路或 Wi-Fi。</translation> <translation id="3290356915286466215">不安全</translation> @@ -2412,6 +2410,7 @@ <translation id="4144218403971135344">取得畫質更高的影片,並降低耗電量。只能透過支援 Cast 的螢幕播放影片。</translation> <translation id="4146026355784316281">一律使用系統檢視器開啟</translation> <translation id="4146785383423576110">重設與清理</translation> +<translation id="4147897805161313378">Google 相簿</translation> <translation id="4147911968024186208">請再試一次。如果這個錯誤再次發生,請與你的產品支援代表聯絡。</translation> <translation id="4150201353443180367">顯示設定</translation> <translation id="4152670763139331043">{NUM_TABS,plural, =1{1 個分頁}other{# 個分頁}}</translation> @@ -2731,6 +2730,7 @@ <translation id="4633757335284074492">使用 Google 雲端硬碟備份你的資料。你隨時可以輕鬆還原資料或切換裝置。這個備份項目包含應用程式資料。備份內容會上傳到 Google,並使用貴子女的 Google 帳戶密碼加密。</translation> <translation id="4634771451598206121">重新登入...</translation> <translation id="4635398712689569051">訪客使用者無法使用<ph name="PAGE_NAME" />。</translation> +<translation id="4636930964841734540">資訊</translation> <translation id="4637083375689622795">更多動作 (<ph name="EMAIL" />)</translation> <translation id="4638930039313743000">啟用 ADB 偵錯</translation> <translation id="4641539339823703554">Chrome 無法設定系統時間。請檢查下方的時間,並視需要予以修正。</translation> @@ -2810,7 +2810,6 @@ <translation id="4750394297954878236">建議</translation> <translation id="475088594373173692">第一位使用者</translation> <translation id="4751476147751820511">動作或光源感應器</translation> -<translation id="4756269098451810636">透過「<ph name="DEVICE_NAME" />」分享的圖片</translation> <translation id="4756378406049221019">停止/重新載入</translation> <translation id="4756388243121344051">記錄(&H)</translation> <translation id="4759238208242260848">下載</translation> @@ -3757,7 +3756,6 @@ <translation id="6040852767465482106">匿名身分</translation> <translation id="6041046205544295907"><ph name="BEGIN_PARAGRAPH1" />Google 的定位服務會使用 Wi‑Fi、行動網路和感應器等來源,推測出你的裝置的所在位置。<ph name="END_PARAGRAPH1" /> <ph name="BEGIN_PARAGRAPH2" />關閉裝置的主要「定位」設定即可關閉「定位」服務。你也可以前往位置資訊設定,將使用 Wi‑Fi、行動網路和感應器的定位功能關閉。<ph name="END_PARAGRAPH2" /></translation> -<translation id="6041150002191391409">在你關閉所有 <ph name="ORIGIN" /> 分頁前,<ph name="ORIGIN" /> 都可以查看「<ph name="FOLDERNAME" />」中的檔案</translation> <translation id="6041155700700864984">結束全螢幕</translation> <translation id="604124094241169006">自動</translation> <translation id="6042308850641462728">更多</translation> @@ -4153,7 +4151,6 @@ <translation id="6561726789132298588">Enter 鍵</translation> <translation id="656293578423618167">檔案路徑或檔案名稱過長。請縮短檔案名稱或選擇其他儲存位置。</translation> <translation id="6563469144985748109">你的管理員尚未核准這個網站</translation> -<translation id="6567688344210276845">無法載入網頁動作的圖示「<ph name="ICON" />」。</translation> <translation id="6569934958368283244">其他人</translation> <translation id="657402800789773160">重新載入這個網頁(&R)</translation> <translation id="6577284282025554716">已取消下載:<ph name="FILE_NAME" /></translation> @@ -4218,7 +4215,6 @@ <translation id="6659594942844771486">分頁</translation> <translation id="6664237456442406323">抱歉,你的電腦是由格式錯誤的硬體 ID 所設定。這樣會防止 Chrome 作業系統更新最新的安全性修復,你的電腦也可能<ph name="BEGIN_BOLD" />容易遭受惡意攻擊<ph name="END_BOLD" />。</translation> <translation id="6664774537677393800">開啟你的設定檔時發生錯誤。請先登出,然後再次登入。</translation> -<translation id="6667776121818773738">透過其他裝置分享的圖片</translation> <translation id="6673391612973410118"><ph name="PRINTER_MAKE_OR_MODEL" /> (USB)</translation> <translation id="667517062706956822">您要讓 Google 將這個網頁的內容從<ph name="SOURCE_LANGUAGE" />翻譯成<ph name="TARGET_LANGUAGE" />嗎?</translation> <translation id="6675665718701918026">已連上指標裝置</translation> @@ -4839,7 +4835,6 @@ <translation id="7497981768003291373">你最近並未擷取 WebRTC 文字記錄。</translation> <translation id="7502658306369382406">IPv6 位址</translation> <translation id="7503191893372251637">Netscape 憑證類型</translation> -<translation id="7503821294401948377">無法載入瀏覽器動作的圖示「<ph name="ICON" />」。</translation> <translation id="7503985202154027481">你的安全金鑰會保留你造訪這個網站的記錄。</translation> <translation id="7504293978434250212">貴機構可掃描的檔案大小上限為 50 MB。請上傳較小的檔案。</translation> <translation id="750509436279396091">開啟下載內容資料夾</translation> @@ -5641,7 +5636,6 @@ <translation id="8546930481464505581">自訂 Touch Bar</translation> <translation id="8547013269961688403">啟用全螢幕放大鏡</translation> <translation id="85486688517848470">按住搜尋鍵即可切換最上排按鍵的行為</translation> -<translation id="8550165047974571882">在你關閉所有 <ph name="ORIGIN" /> 分頁前,<ph name="ORIGIN" /> 都可以編輯「<ph name="FOLDERNAME" />」中的檔案</translation> <translation id="8551388862522347954">授權</translation> <translation id="8553342806078037065">管理其他使用者</translation> <translation id="8554899698005018844">未指定語言</translation>
diff --git a/chrome/app/resources/generated_resources_zu.xtb b/chrome/app/resources/generated_resources_zu.xtb index c50aae7..1692404 100644 --- a/chrome/app/resources/generated_resources_zu.xtb +++ b/chrome/app/resources/generated_resources_zu.xtb
@@ -1118,7 +1118,6 @@ <translation id="247949520305900375">Yabelana ngomsindo</translation> <translation id="2480868415629598489">Shintsha idatha oyikopishayo futhi uyinamathisele</translation> <translation id="2482878487686419369">Izaziso</translation> -<translation id="2483610039979585156">I-<ph name="ORIGIN" /> izokwazi ukuhlela i-<ph name="FILENAME" /> kuze kube yilapho uvala wonke amathebhu e-<ph name="ORIGIN" /></translation> <translation id="2484959914739448251">Ukuze usule idatha yokuphequlula kusuka kuwo wonke amadivayisi akho avumelanisiwe ne-akhawunti yakho ye-Google, <ph name="BEGIN_LINK" />faka umshwana wakho wokudlua<ph name="END_LINK" />.</translation> <translation id="2485005079599453134">Iphasiwedi ilondolozwe kule divayisi</translation> <translation id="2485422356828889247">Khipha</translation> @@ -1723,7 +1722,6 @@ <translation id="3282568296779691940">Ngena ngemvume ku-Chrome</translation> <translation id="3285322247471302225">Ithebhu entsha</translation> <translation id="328571385944182268">Londoloza amaphasiwedi akho?</translation> -<translation id="328785681103589998">I-<ph name="ORIGIN" /> izokwazi ukubuka i-<ph name="FILENAME" /> kuze kube yilapho uvala wonke amathebhu we-<ph name="ORIGIN" /></translation> <translation id="3288047731229977326">Izandiso ezisebenza kumodi yonjiniyela zingalimaza ikhompyutha yakho. Uma ungeyena unjiniyela, kuzomele ukhubaze lezi zandiso ezisebenza kumodi yonjiniyela ukuze uhlale uvikelekile.</translation> <translation id="3289856944988573801">Ukuze uhlolele izibuyekezo, sicela usebenzise i-Ethernet noma i-Wi-Fi.</translation> <translation id="3290356915286466215">Okungaphephanga</translation> @@ -2411,6 +2409,7 @@ <translation id="4144218403971135344">Thola ividiyo yekhwalithi engcono futhi ulondoloze impilo yebhethri. Ividiyo izodlala kuphela ezikrinini ezivunyelwe ukusakaza.</translation> <translation id="4146026355784316281">Ihlala ivuliwe ngesibukeli sesistimu</translation> <translation id="4146785383423576110">Setha kabusha uphinde uhlanzisise</translation> +<translation id="4147897805161313378">Izithombe ze-Google</translation> <translation id="4147911968024186208">Sicela uzame futhi. Uma ubona leli phutha futhi sicela uxhumane nommeli wakho wosekelo.</translation> <translation id="4150201353443180367">Isiboniso</translation> <translation id="4152670763139331043">{NUM_TABS,plural, =1{1 ithebhu}one{# amathebhu}other{# amathebhu}}</translation> @@ -2730,6 +2729,7 @@ <translation id="4633757335284074492">Yenza isipele ku-Google Drayivu. Buyisa kalula idatha noma ushintshe idivayisi noma kunini. Lesi sipele sihlanganisa nedatha yohlelo lokusebenza. Izipele zilayishwa ku-Google futhi zibethelwe kusetshenziswa iphasiwedi ye-Akhawunti ye-Google yengane yakho.</translation> <translation id="4634771451598206121">Ngena ngemvume futhi...</translation> <translation id="4635398712689569051">I-<ph name="PAGE_NAME" /> ayitholakali kubasebenzisi abayisihambeli.</translation> +<translation id="4636930964841734540">Ulwazi</translation> <translation id="4637083375689622795">Izenzo eziningi, <ph name="EMAIL" /></translation> <translation id="4638930039313743000">Nika amandla ukulungisa amaphutha kwe-ADB</translation> <translation id="4641539339823703554">I-Chrome ayikwazanga ukusetha isikhathi sesistimu. Sicela uhlole isikhathi ngezansi uphinde ulungise uma ngabe kudingeka.</translation> @@ -2809,7 +2809,6 @@ <translation id="4750394297954878236">Iziphakamiso</translation> <translation id="475088594373173692">Umsebenzisi wokuqala</translation> <translation id="4751476147751820511">Izinzwa zokunyakaza noma zokukhanya</translation> -<translation id="4756269098451810636">Isithombe sabiwe kusukela ku-<ph name="DEVICE_NAME" /></translation> <translation id="4756378406049221019">Misa/Layisha kabusha</translation> <translation id="4756388243121344051">Umlando</translation> <translation id="4759238208242260848">Ukulanda</translation> @@ -3759,7 +3758,6 @@ <translation id="6040852767465482106">Ubunikazi bokungaziwa</translation> <translation id="6041046205544295907"><ph name="BEGIN_PARAGRAPH1" />Isevisi yendawo ye-Google isebenzisa imithombo efana ne-Wi-Fi, amanethiwekhi eselula, nezinzwa ukuze kusizwe ukulinganiselwa kwendawo yedivayisi yakho.<ph name="END_PARAGRAPH1" /> <ph name="BEGIN_PARAGRAPH2" />Ungavala indawo ngokuvala isilungiselelo esikhulu sendawo sedivayisi yakho. Ungaphinda uvale ukusetshenziswa kwe-Wi-Fi, amanethiwekhi eselula, nezinzwa zendawo kuzilungiselelo zendawo.<ph name="END_PARAGRAPH2" /></translation> -<translation id="6041150002191391409">I-<ph name="ORIGIN" /> izokwazi ukubheka amafayela aku-<ph name="FOLDERNAME" /> kuze kube yilapho uvala wonke amathebhu e-<ph name="ORIGIN" /></translation> <translation id="6041155700700864984">Phuma Kusikrini Esigcwele</translation> <translation id="604124094241169006">Okuzenzakalelayo</translation> <translation id="6042308850641462728">Okuningi</translation> @@ -4155,7 +4153,6 @@ <translation id="6561726789132298588">i-enter</translation> <translation id="656293578423618167">Indlela yefayela noma igama lide kakhulu. Sicela ulondoloze ngegama elifushane noma kwenye indawo.</translation> <translation id="6563469144985748109">Umphathi wakho akayivumanga okwamanje</translation> -<translation id="6567688344210276845">Ayikwazanga ukulayisha isithonjana se-'<ph name="ICON" />' sesenzo sekhasi.</translation> <translation id="6569934958368283244">Abanye abantu</translation> <translation id="657402800789773160">Phinda ulayishe leli khasi</translation> <translation id="6577284282025554716">Ukulanda kukhanseliwe: <ph name="FILE_NAME" /></translation> @@ -4220,7 +4217,6 @@ <translation id="6659594942844771486">Ithebhu</translation> <translation id="6664237456442406323">Ngeshwa, ikhompyutha yakho ilungiselelwe nge-ID yezingxenyekazi zekhompyutha ezingekho kahle. Lokhu kuvimbela i-Chrome OS kusukela ekubuyekezeni ngokulungiswa kwakamuva kwezokuvikela futhi ikhompyutha yakho <ph name="BEGIN_BOLD" />ingaba sengcupheni yokuhlaselwa okuyingozo<ph name="END_BOLD" />.</translation> <translation id="6664774537677393800">Kukhona okungahambanga kahle ngenkathi kuvulwa iphrofayela yakho. Sicela uphume ngemvume bese uphinda ungena ngemvume.</translation> -<translation id="6667776121818773738">Isithombe sabiwe kusukela kwenye idivayisi</translation> <translation id="6673391612973410118"><ph name="PRINTER_MAKE_OR_MODEL" /> (USB)</translation> <translation id="667517062706956822">Ingabe ufuna i-Google ukuthi ihumushe leli khasi kusukela kusi-<ph name="SOURCE_LANGUAGE" /> ukuya kusi-<ph name="TARGET_LANGUAGE" />?</translation> <translation id="6675665718701918026">Ikhomba idivayisi exhunyiwe</translation> @@ -4841,7 +4837,6 @@ <translation id="7497981768003291373">Awunawo amalogi ombhalo athathwa kamuva we-WebRTC.</translation> <translation id="7502658306369382406">Ikheli le-IPv^</translation> <translation id="7503191893372251637">Uhlobo lwesitifiketi se-Netscape</translation> -<translation id="7503821294401948377">Ayikwazanga ukulayisha isithonjana se-'<ph name="ICON" />' ngesenzo sesiphequluli.</translation> <translation id="7503985202154027481">Irekhodi lokuvakasha kwakho kuleli sayithi lizogcinwa kukhiye wakho wokuqinisekisa ubunikazi</translation> <translation id="7504293978434250212">Inhlangano yakho ingaskena amafayela kufikela kokungu-50 MB. Zama ukulayisha ifayela elincane.</translation> <translation id="750509436279396091">Vula ifolda yokulandwa</translation> @@ -5643,7 +5638,6 @@ <translation id="8546930481464505581">Yenza ngezifiso ibha yokuthinta</translation> <translation id="8547013269961688403">Nika amandla isikhulisi sesikrini esigcwele</translation> <translation id="85486688517848470">Bamba ukhiye we-Usesho ukuze ushintshe impatho yokhiye abakurowu eliphezulu</translation> -<translation id="8550165047974571882">I-<ph name="ORIGIN" /> izokwazi ukuhlela amafayela ku-<ph name="FOLDERNAME" /> kuze kube yilapho uvala wonke amathebhu e-<ph name="ORIGIN" /></translation> <translation id="8551388862522347954">Amalayisense</translation> <translation id="8553342806078037065">Phatha abanye abantu</translation> <translation id="8554899698005018844">Akunalimi</translation>
diff --git a/chrome/browser/BUILD.gn b/chrome/browser/BUILD.gn index 78717c9..43221a9 100644 --- a/chrome/browser/BUILD.gn +++ b/chrome/browser/BUILD.gn
@@ -5453,7 +5453,10 @@ "vr/xr_runtime_manager_statics.h", ] - deps += [ "//chrome/browser/vr:vr_common" ] + deps += [ + "//chrome/browser/vr:vr_common", + "//device/vr", + ] } if (enable_wayland_server) {
diff --git a/chrome/browser/about_flags.cc b/chrome/browser/about_flags.cc index 0050c5ca..321a91a 100644 --- a/chrome/browser/about_flags.cc +++ b/chrome/browser/about_flags.cc
@@ -4815,14 +4815,6 @@ FEATURE_VALUE_TYPE( content_settings::kImprovedCookieControlsForThirdPartyCookieBlocking)}, -#if !defined(OS_ANDROID) - {"accessibility-internals-page-improvements", - flag_descriptions::kAccessibilityInternalsPageImprovementsName, - flag_descriptions::kAccessibilityInternalsPageImprovementsDescription, - kOsDesktop, - FEATURE_VALUE_TYPE(features::kAccessibilityInternalsPageImprovements)}, -#endif - {"autofill-always-return-cloud-tokenized-card", flag_descriptions::kAutofillAlwaysReturnCloudTokenizedCardName, flag_descriptions::kAutofillAlwaysReturnCloudTokenizedCardDescription, @@ -5130,11 +5122,14 @@ flag_descriptions::kColorProviderRedirectionDescription, kOsDesktop, FEATURE_VALUE_TYPE(features::kColorProviderRedirection)}, + {"trust-tokens", flag_descriptions::kTrustTokensName, + flag_descriptions::kTrustTokensDescription, kOsAll, + FEATURE_VALUE_TYPE(network::features::kTrustTokens)}, + // 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 // AboutFlagsHistogramTest unit test to verify this process). - }; class FlagsStateSingleton : public flags_ui::FlagsState::Delegate {
diff --git a/chrome/browser/android/autofill_assistant/generic_ui_controller_android.cc b/chrome/browser/android/autofill_assistant/generic_ui_controller_android.cc index 42a82e7..4674cf69 100644 --- a/chrome/browser/android/autofill_assistant/generic_ui_controller_android.cc +++ b/chrome/browser/android/autofill_assistant/generic_ui_controller_android.cc
@@ -18,7 +18,7 @@ namespace { -// Forward declaration to allow recursive calls. +// Forward declarations to allow recursive calls. base::android::ScopedJavaGlobalRef<jobject> CreateJavaView( JNIEnv* env, const base::android::ScopedJavaLocalRef<jobject>& jcontext, @@ -26,6 +26,12 @@ const ViewProto& proto, std::map<std::string, base::android::ScopedJavaGlobalRef<jobject>>* views); +// Creates all implicit interactions for the views defined in |proto|. Returns +// true on success, false on failure. +bool CreateImplicitInteractionsForView( + const ViewProto& proto, + InteractionHandlerAndroid* interaction_handler); + base::android::ScopedJavaLocalRef<jobject> CreateJavaDrawable( JNIEnv* env, const base::android::ScopedJavaLocalRef<jobject>& jcontext, @@ -210,9 +216,10 @@ proto.vertical_expander_view(), views); break; } - case ViewProto::kTextInputView: + case ViewProto::kTextInputView: { if (proto.text_input_view().model_identifier().empty()) { - VLOG(1) << "Failed to create text input view: model_identifier not set"; + VLOG(1) << "Failed to create text input view '" << proto.identifier() + << "': model_identifier not set"; return nullptr; } jview = Java_AssistantViewFactory_createTextInputView( @@ -223,6 +230,7 @@ base::android::ConvertUTF8ToJavaString( env, proto.text_input_view().model_identifier())); break; + } case ViewProto::VIEW_NOT_SET: NOTREACHED(); return nullptr; @@ -277,6 +285,72 @@ return jview_global_ref; } +bool CreateImplicitInteractionsForView( + const ViewProto& proto, + InteractionHandlerAndroid* interaction_handler) { + switch (proto.view_case()) { + case ViewProto::kTextInputView: { + // Auto-update the text of the view whenever the corresponding value in + // the model changes. + InteractionProto implicit_set_text_interaction; + implicit_set_text_interaction.mutable_trigger_event() + ->mutable_on_value_changed() + ->set_model_identifier(proto.text_input_view().model_identifier()); + SetTextProto set_text_callback; + set_text_callback.set_model_identifier( + proto.text_input_view().model_identifier()); + set_text_callback.set_view_identifier(proto.identifier()); + *implicit_set_text_interaction.add_callbacks()->mutable_set_text() = + set_text_callback; + + if (!interaction_handler->AddInteractionsFromProto( + implicit_set_text_interaction)) { + VLOG(1) << "Failed to create implicit SetText interaction for " + << proto.identifier(); + return false; + } + break; + } + case ViewProto::kVerticalExpanderView: + if (proto.vertical_expander_view().has_title_view() && + !CreateImplicitInteractionsForView( + proto.vertical_expander_view().title_view(), + interaction_handler)) { + return false; + } + if (proto.vertical_expander_view().has_collapsed_view() && + !CreateImplicitInteractionsForView( + proto.vertical_expander_view().collapsed_view(), + interaction_handler)) { + return false; + } + if (proto.vertical_expander_view().has_expanded_view() && + !CreateImplicitInteractionsForView( + proto.vertical_expander_view().expanded_view(), + interaction_handler)) { + return false; + } + break; + case ViewProto::kViewContainer: + for (const auto& child : proto.view_container().views()) { + if (!CreateImplicitInteractionsForView(child, interaction_handler)) { + return false; + } + } + break; + case ViewProto::kTextView: + case ViewProto::kDividerView: + case ViewProto::kImageView: + // Nothing to do, no implicit interactions necessary. + break; + case ViewProto::VIEW_NOT_SET: + NOTREACHED(); + return false; + } + + return true; +} + } // namespace GenericUiControllerAndroid::GenericUiControllerAndroid( @@ -303,9 +377,9 @@ UserModel* user_model, BasicInteractions* basic_interactions) { // Create view layout. - JNIEnv* env = base::android::AttachCurrentThread(); auto views = std::make_unique< std::map<std::string, base::android::ScopedJavaGlobalRef<jobject>>>(); + JNIEnv* env = base::android::AttachCurrentThread(); auto jroot_view = proto.has_root_view() ? CreateJavaView(env, @@ -313,14 +387,23 @@ jdelegate, proto.root_view(), views.get()) : nullptr; - // Create proto interactions (i.e., native -> java). + // Create implicit interactions. auto interaction_handler = std::make_unique<InteractionHandlerAndroid>( event_handler, user_model, basic_interactions, views.get(), jcontext, jdelegate); - if (!interaction_handler->AddInteractionsFromProto(proto.interactions())) { + if (proto.has_root_view() && + !CreateImplicitInteractionsForView(proto.root_view(), + interaction_handler.get())) { return nullptr; } + // Create proto interactions (i.e., native -> java). + for (const auto& interaction : proto.interactions().interactions()) { + if (!interaction_handler->AddInteractionsFromProto(interaction)) { + return nullptr; + } + } + // Create java listeners (i.e., java -> native). if (!android_events::CreateJavaListenersFromProto(env, views.get(), jdelegate, proto.interactions())) {
diff --git a/chrome/browser/android/autofill_assistant/interaction_handler_android.cc b/chrome/browser/android/autofill_assistant/interaction_handler_android.cc index 066984f7..ab3b527 100644 --- a/chrome/browser/android/autofill_assistant/interaction_handler_android.cc +++ b/chrome/browser/android/autofill_assistant/interaction_handler_android.cc
@@ -36,7 +36,6 @@ base::Optional<EventHandler::EventKey> CreateEventKeyFromProto( const EventProto& proto, - JNIEnv* env, std::map<std::string, base::android::ScopedJavaGlobalRef<jobject>>* views, base::android::ScopedJavaGlobalRef<jobject> jdelegate) { switch (proto.kind_case()) { @@ -243,39 +242,33 @@ } bool InteractionHandlerAndroid::AddInteractionsFromProto( - const InteractionsProto& proto) { + const InteractionProto& proto) { if (is_listening_) { NOTREACHED() << "Interactions can not be added while listening to events!"; return false; } - JNIEnv* env = base::android::AttachCurrentThread(); - for (const auto& interaction_proto : proto.interactions()) { - auto key = CreateEventKeyFromProto(interaction_proto.trigger_event(), env, - views_, jdelegate_); - if (!key) { - VLOG(1) << "Invalid trigger event for interaction"; + auto key = CreateEventKeyFromProto(proto.trigger_event(), views_, jdelegate_); + if (!key) { + VLOG(1) << "Invalid trigger event for interaction"; + return false; + } + + for (const auto& callback_proto : proto.callbacks()) { + auto callback = CreateInteractionCallbackFromProto( + callback_proto, user_model_, basic_interactions_, views_, jcontext_, + jdelegate_); + if (!callback) { + VLOG(1) << "Invalid callback for interaction"; return false; } - - for (const auto& callback_proto : interaction_proto.callbacks()) { - auto callback = CreateInteractionCallbackFromProto( - callback_proto, user_model_, basic_interactions_, views_, jcontext_, - jdelegate_); - if (!callback) { - VLOG(1) << "Invalid callback for interaction"; - return false; - } - // Wrap callback in condition handler if necessary. - if (callback_proto.has_condition_model_identifier()) { - callback = - base::Optional<InteractionHandlerAndroid::InteractionCallback>( - base::BindRepeating(&TryRunConditionalCallback, - basic_interactions_->GetWeakPtr(), - callback_proto.condition_model_identifier(), - *callback)); - } - AddInteraction(*key, *callback); + // Wrap callback in condition handler if necessary. + if (callback_proto.has_condition_model_identifier()) { + callback = base::Optional<InteractionHandlerAndroid::InteractionCallback>( + base::BindRepeating( + &TryRunConditionalCallback, basic_interactions_->GetWeakPtr(), + callback_proto.condition_model_identifier(), *callback)); } + AddInteraction(*key, *callback); } return true; }
diff --git a/chrome/browser/android/autofill_assistant/interaction_handler_android.h b/chrome/browser/android/autofill_assistant/interaction_handler_android.h index 17b126e..7a27ef1 100644 --- a/chrome/browser/android/autofill_assistant/interaction_handler_android.h +++ b/chrome/browser/android/autofill_assistant/interaction_handler_android.h
@@ -46,9 +46,9 @@ void StartListening(); void StopListening(); - // Creates callbacks for each interaction in |proto|. Returns false if |proto| - // is invalid. - bool AddInteractionsFromProto(const InteractionsProto& proto); + // Creates interaction callbacks as specified by |proto|. Returns false if + // |proto| is invalid. + bool AddInteractionsFromProto(const InteractionProto& proto); // Overrides autofill_assistant::EventHandler::Observer. void OnEvent(const EventHandler::EventKey& key) override;
diff --git a/chrome/browser/android/vr/arcore_device/arcore_anchor_manager.cc b/chrome/browser/android/vr/arcore_device/arcore_anchor_manager.cc index 2b3fac47..c4a7ece 100644 --- a/chrome/browser/android/vr/arcore_device/arcore_anchor_manager.cc +++ b/chrome/browser/android/vr/arcore_device/arcore_anchor_manager.cc
@@ -44,6 +44,10 @@ ArAnchor_getPose(arcore_session_, anchor.get(), ar_pose_.get()); mojom::Pose pose = GetMojomPoseFromArPose(arcore_session_, ar_pose_.get()); + DVLOG(3) << __func__ << ": anchor id: " << anchor_id.GetUnsafeValue() + << ", position=" << pose.position.ToString() + << ", orientation=" << pose.orientation.ToString(); + updated_anchors.push_back(mojom::XRAnchorData::New( anchor_id.GetUnsafeValue(), device::mojom::Pose::New(pose))); } @@ -74,7 +78,7 @@ continue; } - fn(std::move(anchor)); + fn(std::move(anchor), tracking_state); } } @@ -87,12 +91,18 @@ ForEachArCoreAnchor(arcore_anchors_.get(), [this, &updated_anchor_ids]( device::internal:: ScopedArCoreObject< - ArAnchor*> ar_anchor) { + ArAnchor*> ar_anchor, + ArTrackingState + tracking_state) { // ID AnchorId anchor_id; bool created; std::tie(anchor_id, created) = CreateOrGetAnchorId(ar_anchor.get()); + DVLOG(3) << __func__ + << ": anchor updated, anchor id=" << anchor_id.GetUnsafeValue() + << ", tracking state=" << tracking_state; + DCHECK(!created) << "Anchor creation is app-initiated - we should never encounter an " "anchor that was created outside of `ArCoreImpl::CreateAnchor()`."; @@ -114,12 +124,18 @@ &anchor_id_to_anchor_object]( device::internal:: ScopedArCoreObject< - ArAnchor*> ar_anchor) { + ArAnchor*> ar_anchor, + ArTrackingState + tracking_state) { // ID AnchorId anchor_id; bool created; std::tie(anchor_id, created) = CreateOrGetAnchorId(ar_anchor.get()); + DVLOG(3) << __func__ + << ": anchor present, anchor id=" << anchor_id.GetUnsafeValue() + << ", tracking state=" << tracking_state; + DCHECK(!created) << "Anchor creation is app-initiated - we should never encounter an " "anchor that was created outside of `ArCoreImpl::CreateAnchor()`.";
diff --git a/chrome/browser/android/vr/arcore_device/arcore_anchor_manager.h b/chrome/browser/android/vr/arcore_device/arcore_anchor_manager.h index b3ea688..59c969a9 100644 --- a/chrome/browser/android/vr/arcore_device/arcore_anchor_manager.h +++ b/chrome/browser/android/vr/arcore_device/arcore_anchor_manager.h
@@ -51,7 +51,7 @@ private: // Executes |fn| for each still tracked, anchor present in |arcore_anchors|. // |fn| will receive a `device::internal::ScopedArCoreObject<ArAnchor*>` that - // can be stored. + // can be stored, as well as ArTrackingState of the passed in anchor. template <typename FunctionType> void ForEachArCoreAnchor(ArAnchorList* arcore_anchors, FunctionType fn);
diff --git a/chrome/browser/android/vr/arcore_device/arcore_gl.cc b/chrome/browser/android/vr/arcore_device/arcore_gl.cc index 96480c23..e61c3294 100644 --- a/chrome/browser/android/vr/arcore_device/arcore_gl.cc +++ b/chrome/browser/android/vr/arcore_device/arcore_gl.cc
@@ -426,6 +426,10 @@ } // Create the frame data to return to the renderer. + if (!pose) { + DVLOG(1) << __func__ << ": pose unavailable!"; + } + frame_data->pose = std::move(pose); frame_data->time_delta = now - base::TimeTicks(); @@ -828,7 +832,8 @@ mojom::XRFrameDataRequestOptionsPtr options, mojom::XRFrameDataPtr frame_data, mojom::XRFrameDataProvider::GetFrameDataCallback callback) { - DVLOG(3) << __func__ << " frame=" << frame_data->frame_id; + DVLOG(3) << __func__ << " frame=" << frame_data->frame_id << ", pose valid? " + << (frame_data->pose ? true : false); DCHECK(IsOnGlThread()); DCHECK(is_initialized_);
diff --git a/chrome/browser/android/vr/arcore_device/arcore_plane_manager.cc b/chrome/browser/android/vr/arcore_device/arcore_plane_manager.cc index 530092f..9f57adbc 100644 --- a/chrome/browser/android/vr/arcore_device/arcore_plane_manager.cc +++ b/chrome/browser/android/vr/arcore_device/arcore_plane_manager.cc
@@ -122,7 +122,7 @@ } // Pass the ownership of the |trackable| to the |fn|, along with the // |ar_plane| that points to the |trackable| but with appropriate type. - fn(std::move(trackable), ar_plane); + fn(std::move(trackable), ar_plane, tracking_state); } } @@ -140,14 +140,15 @@ arcore_planes_.get(), [this, &updated_plane_ids]( internal::ScopedArCoreObject<ArTrackable*> trackable, - ArPlane* ar_plane) { + ArPlane* ar_plane, ArTrackingState tracking_state) { // ID PlaneId plane_id; bool created; std::tie(plane_id, created) = CreateOrGetPlaneId(ar_plane); DVLOG(3) << "Previously detected plane found, id=" << plane_id - << ", created?=" << created; + << ", created?=" << created + << ", tracking_state=" << tracking_state; updated_plane_ids.insert(plane_id); }); @@ -168,7 +169,7 @@ arcore_planes_.get(), [this, &plane_id_to_plane_object]( internal::ScopedArCoreObject<ArTrackable*> trackable, - ArPlane* ar_plane) { + ArPlane* ar_plane, ArTrackingState tracking_state) { // ID PlaneId plane_id; bool created;
diff --git a/chrome/browser/android/vr/arcore_device/arcore_plane_manager.h b/chrome/browser/android/vr/arcore_device/arcore_plane_manager.h index c9de122..e7223ce 100644 --- a/chrome/browser/android/vr/arcore_device/arcore_plane_manager.h +++ b/chrome/browser/android/vr/arcore_device/arcore_plane_manager.h
@@ -64,9 +64,9 @@ private: // Executes |fn| for each still tracked, non-subsumed plane present in - // |arcore_planes|. |fn| will receive 2 parameters, an owning - // `ScopedArCoreObject<ArAnchor*>`, and, for convenience, the non-owning - // ArPlane* typecast from the first parameter. + // |arcore_planes|. |fn| will receive 3 parameters - a + // `ScopedArCoreObject<ArAnchor*>` that can be stored, the non-owning ArPlane* + // typecast from the first parameter, and ArTrackingState. template <typename FunctionType> void ForEachArCorePlane(ArTrackableList* arcore_planes, FunctionType fn);
diff --git a/chrome/browser/chrome_find_request_manager_browsertest.cc b/chrome/browser/chrome_find_request_manager_browsertest.cc index a962a74..9fee155a 100644 --- a/chrome/browser/chrome_find_request_manager_browsertest.cc +++ b/chrome/browser/chrome_find_request_manager_browsertest.cc
@@ -101,17 +101,19 @@ ASSERT_TRUE(pdf_extension_test_util::EnsurePDFHasLoaded(contents())); auto options = blink::mojom::FindOptions::New(); - options->run_synchronously_for_testing = true; Find("result", options.Clone()); + delegate()->MarkNextReply(); + delegate()->WaitForNextReply(); + options->find_next = true; Find("result", options.Clone()); + delegate()->MarkNextReply(); + delegate()->WaitForNextReply(); + Find("result", options.Clone()); - LOG(INFO) << "Wait for final reply."; delegate()->WaitForFinalReply(); - LOG(INFO) << "Wait complete."; FindResults results = delegate()->GetFindResults(); - LOG(INFO) << "Results fetched."; EXPECT_EQ(last_request_id(), results.request_id); EXPECT_EQ(5, results.number_of_matches); EXPECT_EQ(3, results.active_match_ordinal); @@ -230,7 +232,6 @@ // Verify that find-in-page works fine. auto options = blink::mojom::FindOptions::New(); - options->run_synchronously_for_testing = true; Find("FXCMAP_CMap", options.Clone()); options->find_next = true; Find("FXCMAP_CMap", options.Clone()); @@ -277,7 +278,6 @@ ASSERT_TRUE(pdf_extension_test_util::EnsurePDFHasLoaded(contents())); auto options = blink::mojom::FindOptions::New(); - options->run_synchronously_for_testing = true; Find("missing", options.Clone()); delegate()->WaitForFinalReply(); @@ -296,7 +296,6 @@ ASSERT_TRUE(pdf_extension_test_util::EnsurePDFHasLoaded(contents())); auto options = blink::mojom::FindOptions::New(); - options->run_synchronously_for_testing = true; Find("r", options.Clone()); delegate()->MarkNextReply(); delegate()->WaitForNextReply();
diff --git a/chrome/browser/data_saver/subresource_redirect_browsertest.cc b/chrome/browser/data_saver/subresource_redirect_browsertest.cc index 37980e2..3bf15da 100644 --- a/chrome/browser/data_saver/subresource_redirect_browsertest.cc +++ b/chrome/browser/data_saver/subresource_redirect_browsertest.cc
@@ -1066,9 +1066,11 @@ // Tests CSS background image coverage metrics is recorded but not redirected, // when redirect is disabled. -IN_PROC_BROWSER_TEST_F( - RedirectDisabledSubresourceRedirectBrowserTest, - DISABLE_ON_WIN_MAC_CHROMEOS(TestCSSBackgroundImageRedirect)) { +// Disabling for all as it was already Disabled on Mac, Win and ChromeOS and it +// now seems to be flaky on Linux +// Disabled due to flakes. See https://crbug.com/1063736. +IN_PROC_BROWSER_TEST_F(RedirectDisabledSubresourceRedirectBrowserTest, + DISABLED_TestCSSBackgroundImageRedirect) { EnableDataSaver(true); CreateUkmRecorder(); SetUpPublicImageURLPaths("/load_image/css_background_image.html",
diff --git a/chrome/browser/extensions/forced_extensions/installation_tracker.cc b/chrome/browser/extensions/forced_extensions/installation_tracker.cc index b2d52c1..5e85c08 100644 --- a/chrome/browser/extensions/forced_extensions/installation_tracker.cc +++ b/chrome/browser/extensions/forced_extensions/installation_tracker.cc
@@ -188,7 +188,7 @@ content::BrowserContext* browser_context, const Extension* extension) { ChangeExtensionStatus(extension->id(), ExtensionStatus::LOADED); - if (pending_extensions_counter_ == 0) + if (loaded_ && pending_extensions_counter_ == 0) ReportResults(); } @@ -196,7 +196,7 @@ const ExtensionId& extension_id, InstallationReporter::FailureReason reason) { ChangeExtensionStatus(extension_id, ExtensionStatus::FAILED); - if (pending_extensions_counter_ == 0) + if (loaded_ && pending_extensions_counter_ == 0) ReportResults(); }
diff --git a/chrome/browser/extensions/forced_extensions/installation_tracker_unittest.cc b/chrome/browser/extensions/forced_extensions/installation_tracker_unittest.cc index db59f44..4a596ba2 100644 --- a/chrome/browser/extensions/forced_extensions/installation_tracker_unittest.cc +++ b/chrome/browser/extensions/forced_extensions/installation_tracker_unittest.cc
@@ -35,6 +35,7 @@ // The extension ids used here should be valid extension ids. constexpr char kExtensionId1[] = "abcdefghijklmnopabcdefghijklmnop"; constexpr char kExtensionId2[] = "bcdefghijklmnopabcdefghijklmnopa"; +constexpr char kExtensionId3[] = "cdefghijklmnopqrstuvwxyzabcdefgh"; constexpr char kExtensionName1[] = "name1"; constexpr char kExtensionName2[] = "name2"; constexpr char kExtensionUpdateUrl[] = @@ -189,6 +190,28 @@ } TEST_F(ForcedExtensionsInstallationTrackerTest, + ForcedExtensionsAddedAfterManualExtensions) { + SetupEmptyForceList(); + // Report failure for an extension which is not in forced list. + installation_reporter_->ReportFailure( + kExtensionId3, InstallationReporter::FailureReason::INVALID_ID); + // InstallationTracker should keep running as the forced extensions are still + // not loaded. + EXPECT_TRUE(fake_timer_->IsRunning()); + SetupForceList(); + + auto ext = ExtensionBuilder(kExtensionName1).SetID(kExtensionId1).Build(); + tracker_->OnExtensionLoaded(&profile_, ext.get()); + installation_reporter_->ReportFailure( + kExtensionId2, InstallationReporter::FailureReason::INVALID_ID); + // InstallationTracker shuts down timer because kExtensionId1 was loaded and + // kExtensionId2 was failed. + EXPECT_FALSE(fake_timer_->IsRunning()); + histogram_tester_.ExpectBucketCount( + kFailureReasonsCWS, InstallationReporter::FailureReason::INVALID_ID, 1); +} + +TEST_F(ForcedExtensionsInstallationTrackerTest, ExtensionsInstallationTimedOutDifferentReasons) { SetupForceList(); installation_reporter_->ReportFailure(
diff --git a/chrome/browser/flag-metadata.json b/chrome/browser/flag-metadata.json index bb5f84a..8a6749d 100644 --- a/chrome/browser/flag-metadata.json +++ b/chrome/browser/flag-metadata.json
@@ -29,11 +29,6 @@ [ { - "name": "accessibility-internals-page-improvements", - "owners": [ "abigailbklein@google.com" ], - "expiry_milestone": 82 - }, - { "name": "account-consistency", "owners": [ "droger", "msarda" ], "expiry_milestone": 80 @@ -3904,6 +3899,11 @@ "expiry_milestone": 85 }, { + "name": "trust-tokens", + "owners": [ "davidvc", "privacy-sandbox-dev" ], + "expiry_milestone": 86 + }, + { "name": "try-supported-channel-layouts", "owners": [ "dalecurtis" ], "expiry_milestone": 76
diff --git a/chrome/browser/flag_descriptions.cc b/chrome/browser/flag_descriptions.cc index cfd54e56..ad84155 100644 --- a/chrome/browser/flag_descriptions.cc +++ b/chrome/browser/flag_descriptions.cc
@@ -34,11 +34,6 @@ "Expose 'display: none' nodes that have an HTML ID to the browser process " "accessibility tree."; -const char kAccessibilityInternalsPageImprovementsName[] = - "Accessibility internals page improvements"; -const char kAccessibilityInternalsPageImprovementsDescription[] = - "Improvements to the chrome://accessibility page."; - const char kAccountIdMigrationName[] = "Account ID migration"; const char kAccountIdMigrationDescription[] = "Migrate to use Gaia ID instead of the email as the account identifer for " @@ -1992,6 +1987,11 @@ "code), where the final download origin or any origin in the redirect " "chain is insecure if the originating page is secure."; +const char kTrustTokensName[] = "Enable Trust Tokens"; +const char kTrustTokensDescription[] = + "Enables the prototype Trust Token API " + "(https://github.com/wicg/trust-token-api)."; + const char kTrySupportedChannelLayoutsName[] = "Causes audio output streams to check if channel layouts other than the " "default hardware layout are available.";
diff --git a/chrome/browser/flag_descriptions.h b/chrome/browser/flag_descriptions.h index 7059147..31fd57bc7 100644 --- a/chrome/browser/flag_descriptions.h +++ b/chrome/browser/flag_descriptions.h
@@ -57,9 +57,6 @@ extern const char kAccessibilityExposeDisplayNoneName[]; extern const char kAccessibilityExposeDisplayNoneDescription[]; -extern const char kAccessibilityInternalsPageImprovementsName[]; -extern const char kAccessibilityInternalsPageImprovementsDescription[]; - extern const char kAccountIdMigrationName[]; extern const char kAccountIdMigrationDescription[]; @@ -1151,6 +1148,9 @@ extern const char kTreatUnsafeDownloadsAsActiveName[]; extern const char kTreatUnsafeDownloadsAsActiveDescription[]; +extern const char kTrustTokensName[]; +extern const char kTrustTokensDescription[]; + extern const char kTrySupportedChannelLayoutsName[]; extern const char kTrySupportedChannelLayoutsDescription[];
diff --git a/chrome/browser/flags/android/chrome_feature_list.cc b/chrome/browser/flags/android/chrome_feature_list.cc index 8e68629..ad61373 100644 --- a/chrome/browser/flags/android/chrome_feature_list.cc +++ b/chrome/browser/flags/android/chrome_feature_list.cc
@@ -96,6 +96,7 @@ &feature_engagement::kIPHChromeDuetTabSwitcherFeature, &feed::kInterestFeedContentSuggestions, &feed::kInterestFeedFeedback, + &feed::kReportFeedUserActions, &kAdjustWebApkInstallationSpace, &kAllowNewIncognitoTabIntents, &kAllowRemoteContextForNotifications,
diff --git a/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/flags/ChromeFeatureList.java b/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/flags/ChromeFeatureList.java index 9cf243e..bf6c270 100644 --- a/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/flags/ChromeFeatureList.java +++ b/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/flags/ChromeFeatureList.java
@@ -371,6 +371,7 @@ public static final String REMOVE_NAVIGATION_HISTORY = "RemoveNavigationHistory"; public static final String REORDER_BOOKMARKS = "ReorderBookmarks"; public static final String RELATED_SEARCHES = "RelatedSearches"; + public static final String REPORT_FEED_USER_ACTIONS = "ReportFeedUserActions"; public static final String REVAMPED_CONTEXT_MENU = "RevampedContextMenu"; public static final String SAME_SITE_BY_DEFAULT_COOKIES = "SameSiteByDefaultCookies"; public static final String SCROLL_TO_EXPAND_PAYMENT_HANDLER = "ScrollToExpandPaymentHandler";
diff --git a/chrome/browser/performance_manager/background_tab_loading_policy_browsertest.cc b/chrome/browser/performance_manager/background_tab_loading_policy_browsertest.cc new file mode 100644 index 0000000..65af7f9 --- /dev/null +++ b/chrome/browser/performance_manager/background_tab_loading_policy_browsertest.cc
@@ -0,0 +1,91 @@ +// 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/graph/policies/background_tab_loading_policy.h" + +#include "base/test/scoped_feature_list.h" +#include "chrome/browser/performance_manager/graph/policies/policy_features.h" +#include "chrome/browser/ui/browser.h" +#include "chrome/browser/ui/browser_commands.h" +#include "chrome/browser/ui/browser_list.h" +#include "chrome/test/base/in_process_browser_test.h" +#include "chrome/test/base/ui_test_utils.h" +#include "content/public/browser/notification_types.h" + +namespace performance_manager { + +class BackgroundTabLoadingBrowserTest : public InProcessBrowserTest { + public: + BackgroundTabLoadingBrowserTest() { + base::test::ScopedFeatureList features; + features.InitAndEnableFeature( + performance_manager::features:: + kBackgroundTabLoadingFromPerformanceManager); + url_ = ui_test_utils::GetTestUrl( + base::FilePath().AppendASCII("session_history"), + base::FilePath().AppendASCII("bot1.html")); + } + ~BackgroundTabLoadingBrowserTest() override = default; + + protected: + // Adds tabs to the given browser, all navigated to |url_|. + void AddNTabsToBrowser(Browser* browser, int number_of_tabs_to_add) { + int starting_tab_count = browser->tab_strip_model()->count(); + + for (int i = 0; i < number_of_tabs_to_add; ++i) { + ui_test_utils::NavigateToURLWithDisposition( + browser, url_, WindowOpenDisposition::NEW_FOREGROUND_TAB, + ui_test_utils::BROWSER_TEST_WAIT_FOR_LOAD_STOP); + } + int tab_count = browser->tab_strip_model()->count(); + EXPECT_EQ(starting_tab_count + number_of_tabs_to_add, tab_count); + } + + void EnsureTabFinishedRestoring(content::WebContents* tab) { + content::NavigationController* controller = &tab->GetController(); + // If tab content is not in a loading state and doesn't need reload. + if (!controller->NeedsReload() && !controller->GetPendingEntry() && + !controller->GetWebContents()->IsLoading()) { + return; + } + + EXPECT_TRUE(content::WaitForLoadStop(tab)); + } + + GURL url_; +}; + +#if BUILDFLAG(ENABLE_SESSION_SERVICE) +IN_PROC_BROWSER_TEST_F(BackgroundTabLoadingBrowserTest, RestoreTab) { + ui_test_utils::NavigateToURLWithDisposition( + browser(), url_, WindowOpenDisposition::NEW_WINDOW, + ui_test_utils::BROWSER_TEST_WAIT_FOR_BROWSER); + Browser* restored_browser = BrowserList::GetInstance()->get(1); + + // Add tabs and close browser. + const int kDesiredNumberOfTabs = 3; + AddNTabsToBrowser( + restored_browser, + kDesiredNumberOfTabs - restored_browser->tab_strip_model()->count()); + EXPECT_EQ(kDesiredNumberOfTabs, restored_browser->tab_strip_model()->count()); + CloseBrowserSynchronously(restored_browser); + + // Restore recently closed window. + chrome::OpenWindowWithRestoredTabs(browser()->profile()); + ASSERT_EQ(2U, BrowserList::GetInstance()->size()); + restored_browser = BrowserList::GetInstance()->get(1); + + EXPECT_EQ(kDesiredNumberOfTabs, restored_browser->tab_strip_model()->count()); + EXPECT_EQ(kDesiredNumberOfTabs - 1, + restored_browser->tab_strip_model()->active_index()); + + // All tabs should be loaded by BackgroundTabLoadingPolicy. + for (int i = 0; i < kDesiredNumberOfTabs; i++) { + EnsureTabFinishedRestoring( + restored_browser->tab_strip_model()->GetWebContentsAt(i)); + } +} +#endif + +} // namespace performance_manager
diff --git a/chrome/browser/performance_manager/browser_child_process_watcher.cc b/chrome/browser/performance_manager/browser_child_process_watcher.cc index 9a48cab..522fcf0 100644 --- a/chrome/browser/performance_manager/browser_child_process_watcher.cc +++ b/chrome/browser/performance_manager/browser_child_process_watcher.cc
@@ -101,12 +101,8 @@ DCHECK(PerformanceManagerImpl::IsAvailable()); PerformanceManagerImpl::CallOnGraphImpl( - FROM_HERE, base::BindOnce( - [](ProcessNodeImpl* process_node, int32_t exit_code, - GraphImpl* graph) { - process_node->SetProcessExitStatus(exit_code); - }, - process_node, exit_code)); + FROM_HERE, base::BindOnce(&ProcessNodeImpl::SetProcessExitStatus, + base::Unretained(process_node), exit_code)); } } @@ -126,13 +122,9 @@ DCHECK(PerformanceManagerImpl::IsAvailable()); PerformanceManagerImpl::CallOnGraphImpl( - FROM_HERE, base::BindOnce( - [](ProcessNodeImpl* process_node, base::Process process, - base::Time launch_time, GraphImpl* graph) { - process_node->SetProcess(std::move(process), - launch_time); - }, - process_node, process.Duplicate(), launch_time)); + FROM_HERE, base::BindOnce(&ProcessNodeImpl::SetProcess, + base::Unretained(process_node), + process.Duplicate(), launch_time)); } } // namespace performance_manager
diff --git a/chrome/browser/performance_manager/chrome_browser_main_extra_parts_performance_manager.cc b/chrome/browser/performance_manager/chrome_browser_main_extra_parts_performance_manager.cc index ca81f89..d6f11728 100644 --- a/chrome/browser/performance_manager/chrome_browser_main_extra_parts_performance_manager.cc +++ b/chrome/browser/performance_manager/chrome_browser_main_extra_parts_performance_manager.cc
@@ -15,6 +15,7 @@ #include "chrome/browser/performance_manager/decorators/helpers/page_live_state_decorator_helper.h" #include "chrome/browser/performance_manager/decorators/page_aggregator.h" #include "chrome/browser/performance_manager/decorators/process_metrics_decorator.h" +#include "chrome/browser/performance_manager/graph/policies/background_tab_loading_policy.h" #include "chrome/browser/performance_manager/graph/policies/high_pmf_memory_pressure_policy.h" #include "chrome/browser/performance_manager/graph/policies/policy_features.h" #include "chrome/browser/performance_manager/graph/policies/urgent_page_discarding_policy.h" @@ -106,6 +107,14 @@ std::make_unique< performance_manager::policies::UrgentPageDiscardingPolicy>()); } + + if (base::FeatureList::IsEnabled( + performance_manager::features:: + kBackgroundTabLoadingFromPerformanceManager)) { + graph->PassToGraph( + std::make_unique< + performance_manager::policies::BackgroundTabLoadingPolicy>()); + } #endif // !defined(OS_ANDROID) graph->PassToGraph(
diff --git a/chrome/browser/performance_manager/chrome_content_browser_client_performance_manager_part.cc b/chrome/browser/performance_manager/chrome_content_browser_client_performance_manager_part.cc index 82fab40d..146f908 100644 --- a/chrome/browser/performance_manager/chrome_content_browser_client_performance_manager_part.cc +++ b/chrome/browser/performance_manager/chrome_content_browser_client_performance_manager_part.cc
@@ -34,15 +34,9 @@ DCHECK(performance_manager::PerformanceManagerImpl::IsAvailable()); performance_manager::PerformanceManagerImpl::CallOnGraphImpl( - FROM_HERE, - base::BindOnce( - [](performance_manager::ProcessNodeImpl* process_node, - mojo::PendingReceiver< - performance_manager::mojom::ProcessCoordinationUnit> receiver, - performance_manager::GraphImpl* graph) { - process_node->Bind(std::move(receiver)); - }, - user_data->process_node(), std::move(receiver))); + FROM_HERE, base::BindOnce(&performance_manager::ProcessNodeImpl::Bind, + base::Unretained(user_data->process_node()), + std::move(receiver))); } } // namespace
diff --git a/chrome/browser/performance_manager/graph/page_node_impl_browsertest.cc b/chrome/browser/performance_manager/graph/page_node_impl_browsertest.cc index e21ba2a..f7712283 100644 --- a/chrome/browser/performance_manager/graph/page_node_impl_browsertest.cc +++ b/chrome/browser/performance_manager/graph/page_node_impl_browsertest.cc
@@ -210,8 +210,7 @@ base::RunLoop run_loop; auto quit_closure = run_loop.QuitClosure(); PerformanceManagerImpl::CallOnGraphImpl( - FROM_HERE, - base::BindLambdaForTesting([&](performance_manager::GraphImpl* graph) { + FROM_HERE, base::BindLambdaForTesting([&]() { auto ot_change_count = ot_change_counter->GetCount(); EXPECT_GE(expected_ot_change_count, ot_change_count); if (ot_change_count == expected_ot_change_count)
diff --git a/chrome/browser/performance_manager/graph/policies/background_tab_loading_policy.cc b/chrome/browser/performance_manager/graph/policies/background_tab_loading_policy.cc index 9051d67..31aaedc 100644 --- a/chrome/browser/performance_manager/graph/policies/background_tab_loading_policy.cc +++ b/chrome/browser/performance_manager/graph/policies/background_tab_loading_policy.cc
@@ -6,20 +6,60 @@ #include "chrome/browser/performance_manager/mechanisms/page_loader.h" #include "components/performance_manager/public/decorators/tab_properties_decorator.h" +#include "components/performance_manager/public/graph/policies/background_tab_loading_policy.h" +#include "components/performance_manager/public/performance_manager.h" namespace performance_manager { namespace policies { +namespace { +BackgroundTabLoadingPolicy* g_background_tab_loading_policy = nullptr; +} // namespace + +void ScheduleLoadForRestoredTabs( + std::vector<content::WebContents*> web_contents_vector) { + std::vector<base::WeakPtr<PageNode>> weakptr_page_nodes; + weakptr_page_nodes.reserve(web_contents_vector.size()); + for (auto* content : web_contents_vector) { + weakptr_page_nodes.push_back( + PerformanceManager::GetPageNodeForWebContents(content)); + } + performance_manager::PerformanceManager::CallOnGraph( + FROM_HERE, base::BindOnce( + [](std::vector<base::WeakPtr<PageNode>> weakptr_page_nodes, + performance_manager::Graph* graph) { + std::vector<PageNode*> page_nodes; + page_nodes.reserve(weakptr_page_nodes.size()); + for (auto page_node : weakptr_page_nodes) { + // If the PageNode has been deleted before + // BackgroundTabLoading starts restoring it, then there + // is no need to restore it. + if (PageNode* raw_page = page_node.get()) + page_nodes.push_back(raw_page); + } + BackgroundTabLoadingPolicy::GetInstance() + ->ScheduleLoadForRestoredTabs(std::move(page_nodes)); + }, + std::move(weakptr_page_nodes))); +} + BackgroundTabLoadingPolicy::BackgroundTabLoadingPolicy() - : page_loader_(std::make_unique<mechanism::PageLoader>()) {} -BackgroundTabLoadingPolicy::~BackgroundTabLoadingPolicy() = default; + : page_loader_(std::make_unique<mechanism::PageLoader>()) { + DCHECK(!g_background_tab_loading_policy); + g_background_tab_loading_policy = this; +} + +BackgroundTabLoadingPolicy::~BackgroundTabLoadingPolicy() { + DCHECK_EQ(this, g_background_tab_loading_policy); + g_background_tab_loading_policy = nullptr; +} void BackgroundTabLoadingPolicy::OnPassedToGraph(Graph* graph) {} void BackgroundTabLoadingPolicy::OnTakenFromGraph(Graph* graph) {} -void BackgroundTabLoadingPolicy::RestoreTabs( +void BackgroundTabLoadingPolicy::ScheduleLoadForRestoredTabs( std::vector<PageNode*> page_nodes) { for (auto* page_node : page_nodes) { DCHECK( @@ -33,6 +73,10 @@ page_loader_ = std::move(loader); } +BackgroundTabLoadingPolicy* BackgroundTabLoadingPolicy::GetInstance() { + return g_background_tab_loading_policy; +} + } // namespace policies } // namespace performance_manager
diff --git a/chrome/browser/performance_manager/graph/policies/background_tab_loading_policy.h b/chrome/browser/performance_manager/graph/policies/background_tab_loading_policy.h index c8ad748..dec4c92e 100644 --- a/chrome/browser/performance_manager/graph/policies/background_tab_loading_policy.h +++ b/chrome/browser/performance_manager/graph/policies/background_tab_loading_policy.h
@@ -34,10 +34,13 @@ void OnTakenFromGraph(Graph* graph) override; // Schedules the PageNodes in |page_nodes| to be loaded when appropriate. - void RestoreTabs(std::vector<PageNode*> page_nodes); + void ScheduleLoadForRestoredTabs(std::vector<PageNode*> page_nodes); void SetMockLoaderForTesting(std::unique_ptr<mechanism::PageLoader> loader); + // Returns the instance of BackgroundTabLoadingPolicy within the graph. + static BackgroundTabLoadingPolicy* GetInstance(); + private: std::unique_ptr<performance_manager::mechanism::PageLoader> page_loader_; };
diff --git a/chrome/browser/performance_manager/graph/policies/background_tab_loading_policy_unittest.cc b/chrome/browser/performance_manager/graph/policies/background_tab_loading_policy_unittest.cc index dfc205a..66b0c89 100644 --- a/chrome/browser/performance_manager/graph/policies/background_tab_loading_policy_unittest.cc +++ b/chrome/browser/performance_manager/graph/policies/background_tab_loading_policy_unittest.cc
@@ -62,7 +62,7 @@ MockPageLoader* mock_loader_; }; -TEST_F(BackgroundTabLoadingPolicyTest, RestoreTabs) { +TEST_F(BackgroundTabLoadingPolicyTest, ScheduleLoadForRestoredTabs) { std::vector< performance_manager::TestNodeWrapper<performance_manager::PageNodeImpl>> page_nodes; @@ -75,11 +75,11 @@ EXPECT_CALL(*loader(), LoadPageNode(raw_page_nodes.back())); // Set |is_tab| property as this is a requirement to pass the PageNode to - // RestoreTabs(). + // ScheduleLoadForRestoredTabs(). TabPropertiesDecorator::SetIsTabForTesting(raw_page_nodes.back(), true); } - policy()->RestoreTabs(raw_page_nodes); + policy()->ScheduleLoadForRestoredTabs(raw_page_nodes); } } // namespace policies
diff --git a/chrome/browser/performance_manager/graph/policies/policy_features.cc b/chrome/browser/performance_manager/graph/policies/policy_features.cc index 90a3be9ef..6a9c5a3 100644 --- a/chrome/browser/performance_manager/graph/policies/policy_features.cc +++ b/chrome/browser/performance_manager/graph/policies/policy_features.cc
@@ -87,6 +87,10 @@ const base::Feature kUrgentDiscardingFromPerformanceManager{ "UrgentDiscardingFromPerformanceManager", base::FEATURE_DISABLED_BY_DEFAULT}; + +const base::Feature kBackgroundTabLoadingFromPerformanceManager{ + "BackgroundTabLoadingFromPerformanceManager", + base::FEATURE_DISABLED_BY_DEFAULT}; #endif const base::Feature kHighPMFMemoryPressureSignals{
diff --git a/chrome/browser/performance_manager/graph/policies/policy_features.h b/chrome/browser/performance_manager/graph/policies/policy_features.h index b5eaafb..dc6c73e 100644 --- a/chrome/browser/performance_manager/graph/policies/policy_features.h +++ b/chrome/browser/performance_manager/graph/policies/policy_features.h
@@ -84,6 +84,10 @@ // Enables urgent discarding of pages directly from PerformanceManager rather // than via TabManager. extern const base::Feature kUrgentDiscardingFromPerformanceManager; + +// Enable background tab loading of pages (restored via session restore) +// directly from Performance Manager rather than via TabLoader. +extern const base::Feature kBackgroundTabLoadingFromPerformanceManager; #endif // Feature that controls whether or not memory pressure signals will be emitted
diff --git a/chrome/browser/performance_manager/persistence/site_data/site_data_cache_facade.cc b/chrome/browser/performance_manager/persistence/site_data/site_data_cache_facade.cc index 80cc636..1741b527 100644 --- a/chrome/browser/performance_manager/persistence/site_data/site_data_cache_facade.cc +++ b/chrome/browser/performance_manager/persistence/site_data/site_data_cache_facade.cc
@@ -4,7 +4,9 @@ #include "chrome/browser/performance_manager/persistence/site_data/site_data_cache_facade.h" +#include <string> #include <utility> +#include <vector> #include "base/bind.h" #include "base/run_loop.h" @@ -59,8 +61,7 @@ PerformanceManager::CallOnGraph( FROM_HERE, base::BindOnce( [](base::OnceClosure quit_closure, - const std::string& browser_context_id, - Graph* graph_unused) { + const std::string& browser_context_id) { auto* cache = SiteDataCacheFactory::GetInstance() ->GetDataCacheForBrowserContext( browser_context_id); @@ -79,7 +80,7 @@ const history::DeletionInfo& deletion_info) { if (deletion_info.IsAllHistory()) { auto clear_all_site_data_cb = base::BindOnce( - [](const std::string& browser_context_id, Graph* graph_unused) { + [](const std::string& browser_context_id) { auto* cache = SiteDataCacheFactory::GetInstance() ->GetDataCacheForBrowserContext(browser_context_id); static_cast<SiteDataCacheImpl*>(cache)->ClearAllSiteData(); @@ -105,8 +106,7 @@ auto clear_site_data_cb = base::BindOnce( [](const std::string& browser_context_id, - const std::vector<url::Origin>& origins_to_remove, - Graph* graph_unused) { + const std::vector<url::Origin>& origins_to_remove) { auto* cache = SiteDataCacheFactory::GetInstance() ->GetDataCacheForBrowserContext(browser_context_id); static_cast<SiteDataCacheImpl*>(cache)->ClearSiteDataForOrigins(
diff --git a/chrome/browser/performance_manager/persistence/site_data/site_data_cache_facade_unittest.cc b/chrome/browser/performance_manager/persistence/site_data/site_data_cache_facade_unittest.cc index cb431e5a0..8930699e 100644 --- a/chrome/browser/performance_manager/persistence/site_data/site_data_cache_facade_unittest.cc +++ b/chrome/browser/performance_manager/persistence/site_data/site_data_cache_facade_unittest.cc
@@ -127,8 +127,7 @@ auto quit_closure = run_loop.QuitClosure(); auto browser_context_id = profile()->UniqueId(); PerformanceManagerImpl::CallOnGraphImpl( - FROM_HERE, - base::BindLambdaForTesting([&](performance_manager::GraphImpl* graph) { + FROM_HERE, base::BindLambdaForTesting([&]() { auto mock_cache = std::make_unique<MockSiteDataCache>(browser_context_id); mock_cache_raw = mock_cache.get();
diff --git a/chrome/browser/performance_manager/persistence/site_data/site_data_cache_factory.cc b/chrome/browser/performance_manager/persistence/site_data/site_data_cache_factory.cc index 079bb5f..f57bf91 100644 --- a/chrome/browser/performance_manager/persistence/site_data/site_data_cache_factory.cc +++ b/chrome/browser/performance_manager/persistence/site_data/site_data_cache_factory.cc
@@ -56,15 +56,8 @@ parent_context_id = parent_context->UniqueId(); } PerformanceManagerImpl::CallOnGraphImpl( - FROM_HERE, base::BindOnce( - [](SiteDataCacheFactory* factory, - const std::string& browser_context_id, - const base::FilePath& context_path, - base::Optional<std::string> parent_context_id, - GraphImpl* graph_unused) { - factory->OnBrowserContextCreated( - browser_context_id, context_path, parent_context_id); - }, + FROM_HERE, + base::BindOnce(&SiteDataCacheFactory::OnBrowserContextCreated, base::Unretained(factory), browser_context->UniqueId(), browser_context->GetPath(), parent_context_id)); } @@ -76,12 +69,8 @@ DCHECK_CURRENTLY_ON(content::BrowserThread::UI); DCHECK(factory); PerformanceManagerImpl::CallOnGraphImpl( - FROM_HERE, base::BindOnce( - [](SiteDataCacheFactory* factory, - const std::string& browser_context_id, - performance_manager::GraphImpl* graph_unused) { - factory->OnBrowserContextDestroyed(browser_context_id); - }, + FROM_HERE, + base::BindOnce(&SiteDataCacheFactory::OnBrowserContextDestroyed, base::Unretained(factory), browser_context->UniqueId())); } @@ -122,16 +111,16 @@ base::OnceCallback<void(bool)> cb) { DCHECK_CURRENTLY_ON(content::BrowserThread::UI); PerformanceManagerImpl::CallOnGraphImpl( - FROM_HERE, - base::BindOnce( - [](SiteDataCacheFactory* factory, - const std::string& browser_context_id, - base::OnceCallback<void(bool)> cb, GraphImpl* graph_unused) { - auto it = factory->data_cache_map_.find(browser_context_id); - CHECK(it != factory->data_cache_map_.end()); - std::move(cb).Run(it->second->IsRecordingForTesting()); - }, - this, browser_context_id, std::move(cb))); + FROM_HERE, base::BindOnce( + [](SiteDataCacheFactory* factory, + const std::string& browser_context_id, + base::OnceCallback<void(bool)> cb) { + auto it = + factory->data_cache_map_.find(browser_context_id); + CHECK(it != factory->data_cache_map_.end()); + std::move(cb).Run(it->second->IsRecordingForTesting()); + }, + this, browser_context_id, std::move(cb))); } void SiteDataCacheFactory::ReplaceCacheForTesting(
diff --git a/chrome/browser/performance_manager/persistence/site_data/site_data_cache_factory_unittest.cc b/chrome/browser/performance_manager/persistence/site_data/site_data_cache_factory_unittest.cc index ad317104..2497e2ff 100644 --- a/chrome/browser/performance_manager/persistence/site_data/site_data_cache_factory_unittest.cc +++ b/chrome/browser/performance_manager/persistence/site_data/site_data_cache_factory_unittest.cc
@@ -46,8 +46,7 @@ base::BindOnce( [](SiteDataCacheFactory* factory, const std::string& browser_context_id, - base::OnceClosure quit_closure, - performance_manager::GraphImpl* graph_unused) { + base::OnceClosure quit_closure) { DCHECK_NE(nullptr, factory->GetDataCacheForBrowserContext( browser_context_id)); DCHECK_NE(nullptr, factory->GetInspectorForBrowserContext( @@ -68,8 +67,7 @@ base::BindOnce( [](SiteDataCacheFactory* factory, const std::string& browser_context_id, - base::OnceClosure quit_closure, - performance_manager::GraphImpl* graph_unused) { + base::OnceClosure quit_closure) { DCHECK_EQ(nullptr, factory->GetDataCacheForBrowserContext( browser_context_id)); DCHECK_EQ(nullptr, factory->GetInspectorForBrowserContext(
diff --git a/chrome/browser/performance_manager/render_process_host_proxy_unittest.cc b/chrome/browser/performance_manager/render_process_host_proxy_unittest.cc index de2b983c..f422e7a 100644 --- a/chrome/browser/performance_manager/render_process_host_proxy_unittest.cc +++ b/chrome/browser/performance_manager/render_process_host_proxy_unittest.cc
@@ -111,8 +111,7 @@ PerformanceManagerImpl::CallOnGraphImpl( FROM_HERE, base::BindLambdaForTesting( - [&deref_proxy, process_node, - quit_loop = run_loop.QuitClosure()](GraphImpl* graph) { + [&deref_proxy, process_node, quit_loop = run_loop.QuitClosure()]() { base::PostTask( FROM_HERE, {content::BrowserThread::UI}, base::BindOnce(deref_proxy, @@ -131,8 +130,8 @@ PerformanceManagerImpl::CallOnGraphImpl( FROM_HERE, base::BindLambdaForTesting([&rph_factory, &deref_proxy, process_node, - host, quit_loop = run_loop.QuitClosure()]( - GraphImpl* graph) { + host, + quit_loop = run_loop.QuitClosure()]() { base::PostTask( FROM_HERE, {content::BrowserThread::UI}, base::BindLambdaForTesting([&rph_factory, host]() {
diff --git a/chrome/browser/performance_manager/tab_properties_decorator_browsertest.cc b/chrome/browser/performance_manager/tab_properties_decorator_browsertest.cc index 29ab4834..889168e 100644 --- a/chrome/browser/performance_manager/tab_properties_decorator_browsertest.cc +++ b/chrome/browser/performance_manager/tab_properties_decorator_browsertest.cc
@@ -27,7 +27,7 @@ // Get data from the PageNode and verify the tab properties. base::RunLoop run_loop; - auto call_on_graph_cb = base::BindLambdaForTesting([&](Graph* unused) { + auto call_on_graph_cb = base::BindLambdaForTesting([&]() { EXPECT_TRUE(page_node); EXPECT_TRUE(TabPropertiesDecorator::Data::FromPageNode(page_node.get()) ->IsInTabStrip());
diff --git a/chrome/browser/policy/managed_bookmarks_policy_handler.cc b/chrome/browser/policy/managed_bookmarks_policy_handler.cc index a80fde7..b3eb239 100644 --- a/chrome/browser/policy/managed_bookmarks_policy_handler.cc +++ b/chrome/browser/policy/managed_bookmarks_policy_handler.cc
@@ -33,10 +33,10 @@ const PolicyMap& policies, PrefValueMap* prefs) { std::unique_ptr<base::Value> value; - if (!CheckAndGetValue(policies, NULL, &value)) + if (!CheckAndGetValue(policies, nullptr, &value)) return; - base::ListValue* list = NULL; + base::ListValue* list = nullptr; if (!value || !value->GetAsList(&list)) return; @@ -51,7 +51,7 @@ ManagedBookmarksPolicyHandler::GetFolderName(const base::ListValue& list) { // Iterate over the list, and try to find the FolderName. for (const auto& el : list) { - const base::DictionaryValue* dict = NULL; + const base::DictionaryValue* dict = nullptr; if (!el.GetAsDictionary(&dict)) continue; @@ -69,34 +69,34 @@ // Remove any non-conforming values found. auto it = list->begin(); while (it != list->end()) { - base::DictionaryValue* dict = NULL; + base::DictionaryValue* dict = nullptr; if (!it->GetAsDictionary(&dict)) { - it = list->Erase(it, NULL); + it = list->Erase(it, nullptr); continue; } std::string name; std::string url; - base::ListValue* children = NULL; + base::ListValue* children = nullptr; // Every bookmark must have a name, and then either a URL of a list of // child bookmarks. if (!dict->GetString(ManagedBookmarksTracker::kName, &name) || (!dict->GetList(ManagedBookmarksTracker::kChildren, &children) && !dict->GetString(ManagedBookmarksTracker::kUrl, &url))) { - it = list->Erase(it, NULL); + it = list->Erase(it, nullptr); continue; } if (children) { // Ignore the URL if this bookmark has child nodes. - dict->Remove(ManagedBookmarksTracker::kUrl, NULL); + dict->Remove(ManagedBookmarksTracker::kUrl, nullptr); FilterBookmarks(children); } else { // Make sure the URL is valid before passing a bookmark to the pref. - dict->Remove(ManagedBookmarksTracker::kChildren, NULL); + dict->Remove(ManagedBookmarksTracker::kChildren, nullptr); GURL gurl = url_formatter::FixupURL(url, std::string()); if (!gurl.is_valid()) { - it = list->Erase(it, NULL); + it = list->Erase(it, nullptr); continue; } dict->SetString(ManagedBookmarksTracker::kUrl, gurl.spec());
diff --git a/chrome/browser/policy/managed_bookmarks_policy_handler_unittest.cc b/chrome/browser/policy/managed_bookmarks_policy_handler_unittest.cc index 2a411b0..75082cc 100644 --- a/chrome/browser/policy/managed_bookmarks_policy_handler_unittest.cc +++ b/chrome/browser/policy/managed_bookmarks_policy_handler_unittest.cc
@@ -35,7 +35,7 @@ #if BUILDFLAG(ENABLE_EXTENSIONS) TEST_F(ManagedBookmarksPolicyHandlerTest, ApplyPolicySettings) { - EXPECT_FALSE(store_->GetValue(bookmarks::prefs::kManagedBookmarks, NULL)); + EXPECT_FALSE(store_->GetValue(bookmarks::prefs::kManagedBookmarks, nullptr)); PolicyMap policy; policy.Set( @@ -80,13 +80,13 @@ "]"), nullptr); UpdateProviderPolicy(policy); - const base::Value* pref_value = NULL; + const base::Value* pref_value = nullptr; EXPECT_TRUE( store_->GetValue(bookmarks::prefs::kManagedBookmarks, &pref_value)); ASSERT_TRUE(pref_value); // Make sure the kManagedBookmarksFolderName pref is set correctly. - const base::Value* folder_value = NULL; + const base::Value* folder_value = nullptr; std::string folder_name; EXPECT_TRUE(store_->GetValue(bookmarks::prefs::kManagedBookmarksFolderName, &folder_value)); @@ -142,7 +142,7 @@ #if BUILDFLAG(ENABLE_EXTENSIONS) TEST_F(ManagedBookmarksPolicyHandlerTest, ApplyPolicySettingsNoTitle) { - EXPECT_FALSE(store_->GetValue(bookmarks::prefs::kManagedBookmarks, NULL)); + EXPECT_FALSE(store_->GetValue(bookmarks::prefs::kManagedBookmarks, nullptr)); PolicyMap policy; policy.Set(key::kManagedBookmarks, POLICY_LEVEL_MANDATORY, POLICY_SCOPE_USER, @@ -155,13 +155,13 @@ "]"), nullptr); UpdateProviderPolicy(policy); - const base::Value* pref_value = NULL; + const base::Value* pref_value = nullptr; EXPECT_TRUE( store_->GetValue(bookmarks::prefs::kManagedBookmarks, &pref_value)); ASSERT_TRUE(pref_value); // Make sure the kManagedBookmarksFolderName pref is set correctly. - const base::Value* folder_value = NULL; + const base::Value* folder_value = nullptr; std::string folder_name; EXPECT_TRUE(store_->GetValue(bookmarks::prefs::kManagedBookmarksFolderName, &folder_value)); @@ -194,7 +194,7 @@ "]"), nullptr); UpdateProviderPolicy(policy); - EXPECT_FALSE(store_->GetValue(bookmarks::prefs::kManagedBookmarks, NULL)); + EXPECT_FALSE(store_->GetValue(bookmarks::prefs::kManagedBookmarks, nullptr)); } #if BUILDFLAG(ENABLE_EXTENSIONS) @@ -212,7 +212,7 @@ "]"), nullptr); UpdateProviderPolicy(policy); - const base::Value* pref_value = NULL; + const base::Value* pref_value = nullptr; EXPECT_TRUE( store_->GetValue(bookmarks::prefs::kManagedBookmarks, &pref_value)); ASSERT_TRUE(pref_value);
diff --git a/chrome/browser/preferences/android/README.md b/chrome/browser/preferences/android/README.md new file mode 100644 index 0000000..9368c8d --- /dev/null +++ b/chrome/browser/preferences/android/README.md
@@ -0,0 +1,58 @@ +# Storing preferences + +This guide is intended for developers of Chrome for Android who need to read +and/or write small amounts of data from Java to a persistent key-value store. + +## SharedPreferencesManager + +[`SharedPreferencesManager`][0] is a lightweight wrapper around Android +[SharedPreferences][1] to handle additional key management logic in Chrome. It +supports reading and writing simple key-value pairs to a file that is saved +across app sessions. + +## PrefServiceBridge + +[`PrefServiceBridge`][2] is a JNI bridge providing access to the native Chrome +[PrefService][3] instance associated with the active user profile. This +interface can be used to read and write prefs once they're registered through +the `PrefRegistry` and added to the [`@Pref` enum][4]. + +## FAQ + +**Should I use SharedPreferences or PrefService?** + +Ask yourself the following questions about the preference to be stored: + +* Will the preference need to be accessed from native C++ code? +* Should the preference be configured as syncable, so that its state can be + managed by Chrome Sync at Backup and Restore? +* Does the preference need a managed policy setting? + +If the answer to one or more of the above questions is Yes, then the preference +should be stored in PrefService. If the answer to all of the above questions is +No, then SharedPreferences should be preferred. + +**What if the PrefService type I need to access is not supported by +PrefServiceBridge (i.e. double, Time, etc.)?** + +If a base value type is supported by PrefService, then PrefServiceBridge should +be extended to support it once it's needed. + +**How do I access a PrefService pref associated with local state rather than +browser profile?** + +Most Chrome for Android preferences should be associated with a specific +profile. If your preference should instead be associated with [local state][6] +(for example, if it is related to the First Run Experience), then you should not +use PrefServiceBridge and should instead create your own feature-specific JNI +bridge to access the correct PrefService instance (see +[`first_run_utils.cc`][7]). + +[0]: https://source.chromium.org/chromium/chromium/src/+/master:chrome/browser/preferences/android/java/src/org/chromium/chrome/browser/preferences/SharedPreferencesManager.java +[1]: https://developer.android.com/reference/android/content/SharedPreferences +[2]: https://source.chromium.org/chromium/chromium/src/+/master:chrome/browser/preferences/android/java/src/org/chromium/chrome/browser/preferences/PrefServiceBridge.java +[3]: https://chromium.googlesource.com/chromium/src/+/master/services/preferences/README.md +[4]: https://source.chromium.org/chromium/chromium/src/+/master:chrome/browser/android/preferences/prefs.h +[5]: https://source.chromium.org/chromium/chromium/src/+/master:chrome/browser/preferences/OWNERS +[6]: https://www.chromium.org/developers/design-documents/preferences#TOC-Introduction +[7]: https://source.chromium.org/chromium/chromium/src/+/master:chrome/browser/first_run/android/first_run_utils.cc
diff --git a/chrome/browser/resource_coordinator/tab_lifecycle_unit_source.cc b/chrome/browser/resource_coordinator/tab_lifecycle_unit_source.cc index a7da8a0..0e7f99f0 100644 --- a/chrome/browser/resource_coordinator/tab_lifecycle_unit_source.cc +++ b/chrome/browser/resource_coordinator/tab_lifecycle_unit_source.cc
@@ -4,6 +4,8 @@ #include "chrome/browser/resource_coordinator/tab_lifecycle_unit_source.h" +#include <utility> + #include "base/bind.h" #include "base/logging.h" #include "base/stl_util.h" @@ -334,8 +336,7 @@ FROM_HERE, base::BindOnce( [](base::WeakPtr<performance_manager::PageNode> page_node, - scoped_refptr<base::SingleThreadTaskRunner> runner, - performance_manager::Graph* graph) { + scoped_refptr<base::SingleThreadTaskRunner> runner) { if (!page_node) return; runner->PostTask(
diff --git a/chrome/browser/resource_coordinator/tab_lifecycle_unit_source_unittest.cc b/chrome/browser/resource_coordinator/tab_lifecycle_unit_source_unittest.cc index e0b9ed4..0c9a881 100644 --- a/chrome/browser/resource_coordinator/tab_lifecycle_unit_source_unittest.cc +++ b/chrome/browser/resource_coordinator/tab_lifecycle_unit_source_unittest.cc
@@ -711,8 +711,7 @@ // |web_contents|. base::RunLoop run_loop; performance_manager::PerformanceManager::CallOnGraph( - FROM_HERE, - base::BindLambdaForTesting([&](performance_manager::Graph* unused) { + FROM_HERE, base::BindLambdaForTesting([&]() { EXPECT_TRUE(page_node); EXPECT_FALSE(page_node->IsHoldingWebLock()); auto* node_impl =
diff --git a/chrome/browser/resources/chromeos/accessibility/strings/accessibility_strings_af.xtb b/chrome/browser/resources/chromeos/accessibility/strings/accessibility_strings_af.xtb index 84f18ef..de6660ce 100644 --- a/chrome/browser/resources/chromeos/accessibility/strings/accessibility_strings_af.xtb +++ b/chrome/browser/resources/chromeos/accessibility/strings/accessibility_strings_af.xtb
@@ -463,6 +463,7 @@ <translation id="4763480195061959176">video</translation> <translation id="4764692524839457597">verstek</translation> <translation id="4772771694153161212">Nie onderstreep nie</translation> +<translation id="4784215347943747396">Beheer die toestel met net 1 of 2 skakelaars</translation> <translation id="4786285211967466855">Geen vorige vlak 1-opskrif nie</translation> <translation id="4787577491510559358">Sê formatering van huidige item hardop</translation> <translation id="479989351350248267">deursoek</translation>
diff --git a/chrome/browser/resources/chromeos/accessibility/strings/accessibility_strings_bs.xtb b/chrome/browser/resources/chromeos/accessibility/strings/accessibility_strings_bs.xtb index f8ce7542..d446f87 100644 --- a/chrome/browser/resources/chromeos/accessibility/strings/accessibility_strings_bs.xtb +++ b/chrome/browser/resources/chromeos/accessibility/strings/accessibility_strings_bs.xtb
@@ -463,6 +463,7 @@ <translation id="4763480195061959176">videozapis</translation> <translation id="4764692524839457597">zadano</translation> <translation id="4772771694153161212">Nije podvučeno</translation> +<translation id="4784215347943747396">Kontrolirajte uređaj sa samo 1 ili 2 prekidača</translation> <translation id="4786285211967466855">Nema prethodnog naslova 1. nivoa</translation> <translation id="4787577491510559358">Najava formatiranja za trenutnu stavku</translation> <translation id="479989351350248267">pretraži</translation>
diff --git a/chrome/browser/resources/chromeos/accessibility/strings/accessibility_strings_ca.xtb b/chrome/browser/resources/chromeos/accessibility/strings/accessibility_strings_ca.xtb index 31b7287..bec9120d 100644 --- a/chrome/browser/resources/chromeos/accessibility/strings/accessibility_strings_ca.xtb +++ b/chrome/browser/resources/chromeos/accessibility/strings/accessibility_strings_ca.xtb
@@ -463,6 +463,7 @@ <translation id="4763480195061959176">vídeo</translation> <translation id="4764692524839457597">opció predeterminada</translation> <translation id="4772771694153161212">Sense subratllat</translation> +<translation id="4784215347943747396">Controla el dispositiu amb només 1 o 2 interruptors</translation> <translation id="4786285211967466855">No hi ha cap encapçalament anterior de nivell 1</translation> <translation id="4787577491510559358">Anuncia el format de l'element actual</translation> <translation id="479989351350248267">cerca</translation>
diff --git a/chrome/browser/resources/chromeos/accessibility/strings/accessibility_strings_el.xtb b/chrome/browser/resources/chromeos/accessibility/strings/accessibility_strings_el.xtb index b6ddf52..529b4df7 100644 --- a/chrome/browser/resources/chromeos/accessibility/strings/accessibility_strings_el.xtb +++ b/chrome/browser/resources/chromeos/accessibility/strings/accessibility_strings_el.xtb
@@ -464,6 +464,7 @@ <translation id="4763480195061959176">βίντεο</translation> <translation id="4764692524839457597">προεπιλογή</translation> <translation id="4772771694153161212">Χωρίς υπογράμμιση</translation> +<translation id="4784215347943747396">Ελέγξτε τη συσκευή με μόνο 1 ή 2 διακόπτες</translation> <translation id="4786285211967466855">Δεν υπάρχει προηγούμενη κεφαλίδα επιπέδου 1.</translation> <translation id="4787577491510559358">Ανακοίνωση μορφοποίησης για το τρέχον στοιχείο</translation> <translation id="479989351350248267">search</translation>
diff --git a/chrome/browser/resources/chromeos/accessibility/strings/accessibility_strings_en-GB.xtb b/chrome/browser/resources/chromeos/accessibility/strings/accessibility_strings_en-GB.xtb index ceb8e9e..886c3f6 100644 --- a/chrome/browser/resources/chromeos/accessibility/strings/accessibility_strings_en-GB.xtb +++ b/chrome/browser/resources/chromeos/accessibility/strings/accessibility_strings_en-GB.xtb
@@ -463,6 +463,7 @@ <translation id="4763480195061959176">video</translation> <translation id="4764692524839457597">default</translation> <translation id="4772771694153161212">Not underline</translation> +<translation id="4784215347943747396">Control the device with just 1 or 2 switches</translation> <translation id="4786285211967466855">No previous level 1 heading</translation> <translation id="4787577491510559358">Announce formatting for current item</translation> <translation id="479989351350248267">search</translation>
diff --git a/chrome/browser/resources/chromeos/accessibility/strings/accessibility_strings_es.xtb b/chrome/browser/resources/chromeos/accessibility/strings/accessibility_strings_es.xtb index 5676eb10..e41f7ec 100644 --- a/chrome/browser/resources/chromeos/accessibility/strings/accessibility_strings_es.xtb +++ b/chrome/browser/resources/chromeos/accessibility/strings/accessibility_strings_es.xtb
@@ -463,6 +463,7 @@ <translation id="4763480195061959176">vídeo</translation> <translation id="4764692524839457597">opción predeterminada</translation> <translation id="4772771694153161212">Sin subrayado</translation> +<translation id="4784215347943747396">Controla el dispositivo con solo 1 o 2 interruptores</translation> <translation id="4786285211967466855">No hay ningún título de nivel 1 anterior</translation> <translation id="4787577491510559358">Indica el formato del elemento actual</translation> <translation id="479989351350248267">buscar</translation>
diff --git a/chrome/browser/resources/chromeos/accessibility/strings/accessibility_strings_et.xtb b/chrome/browser/resources/chromeos/accessibility/strings/accessibility_strings_et.xtb index de610e30..e9e4280c 100644 --- a/chrome/browser/resources/chromeos/accessibility/strings/accessibility_strings_et.xtb +++ b/chrome/browser/resources/chromeos/accessibility/strings/accessibility_strings_et.xtb
@@ -463,6 +463,7 @@ <translation id="4763480195061959176">video</translation> <translation id="4764692524839457597">vaikimisi</translation> <translation id="4772771694153161212">Allajoonimata</translation> +<translation id="4784215347943747396">Juhtige seadet vaid ühe või kahe lülitiga</translation> <translation id="4786285211967466855">Eelmist 1. taseme pealkirja ei ole</translation> <translation id="4787577491510559358">Praeguse üksuse vormingu ütlemine</translation> <translation id="479989351350248267">otsing</translation>
diff --git a/chrome/browser/resources/chromeos/accessibility/strings/accessibility_strings_hr.xtb b/chrome/browser/resources/chromeos/accessibility/strings/accessibility_strings_hr.xtb index 4cb201f..996a4d3 100644 --- a/chrome/browser/resources/chromeos/accessibility/strings/accessibility_strings_hr.xtb +++ b/chrome/browser/resources/chromeos/accessibility/strings/accessibility_strings_hr.xtb
@@ -463,6 +463,7 @@ <translation id="4763480195061959176">videozapis</translation> <translation id="4764692524839457597">zadano</translation> <translation id="4772771694153161212">Nije podcrtano</translation> +<translation id="4784215347943747396">Kontrolirajte uređaj samo s jednim prekidačem ili dva prekidača</translation> <translation id="4786285211967466855">Nema prethodnog naslova 1. razine</translation> <translation id="4787577491510559358">Izgovori formatiranje za trenutačnu stavku</translation> <translation id="479989351350248267">search</translation>
diff --git a/chrome/browser/resources/chromeos/accessibility/strings/accessibility_strings_hu.xtb b/chrome/browser/resources/chromeos/accessibility/strings/accessibility_strings_hu.xtb index dd32c40f..67febda 100644 --- a/chrome/browser/resources/chromeos/accessibility/strings/accessibility_strings_hu.xtb +++ b/chrome/browser/resources/chromeos/accessibility/strings/accessibility_strings_hu.xtb
@@ -463,6 +463,7 @@ <translation id="4763480195061959176">video</translation> <translation id="4764692524839457597">alapbeállítás</translation> <translation id="4772771694153161212">Nincs aláhúzás</translation> +<translation id="4784215347943747396">Mindössze egy vagy kettő kapcsolóval vezérelheti az eszközt</translation> <translation id="4786285211967466855">Nincs előző 1. szintű címsor</translation> <translation id="4787577491510559358">Aktuális elem formázásának bejelentése</translation> <translation id="479989351350248267">search</translation>
diff --git a/chrome/browser/resources/chromeos/accessibility/strings/accessibility_strings_is.xtb b/chrome/browser/resources/chromeos/accessibility/strings/accessibility_strings_is.xtb index 4b9ac0f..37a9d393 100644 --- a/chrome/browser/resources/chromeos/accessibility/strings/accessibility_strings_is.xtb +++ b/chrome/browser/resources/chromeos/accessibility/strings/accessibility_strings_is.xtb
@@ -463,6 +463,7 @@ <translation id="4763480195061959176">myndskeið</translation> <translation id="4764692524839457597">sjálfgefið</translation> <translation id="4772771694153161212">Ekki undirstrikun</translation> +<translation id="4784215347943747396">Stjórnaðu tækinu með aðeins einum eða tveimur rofum</translation> <translation id="4786285211967466855">Engin fyrri 1. stigs fyrirsögn</translation> <translation id="4787577491510559358">Tilkynning um snið fyrir núverandi atriði</translation> <translation id="479989351350248267">leita</translation>
diff --git a/chrome/browser/resources/chromeos/accessibility/strings/accessibility_strings_it.xtb b/chrome/browser/resources/chromeos/accessibility/strings/accessibility_strings_it.xtb index 6384be9..a6b4353e 100644 --- a/chrome/browser/resources/chromeos/accessibility/strings/accessibility_strings_it.xtb +++ b/chrome/browser/resources/chromeos/accessibility/strings/accessibility_strings_it.xtb
@@ -463,6 +463,7 @@ <translation id="4763480195061959176">video</translation> <translation id="4764692524839457597">predefinito</translation> <translation id="4772771694153161212">Non sottolineato</translation> +<translation id="4784215347943747396">Controlla il dispositivo con solo uno o due sensori</translation> <translation id="4786285211967466855">Nessuna intestazione di livello 1 precedente</translation> <translation id="4787577491510559358">Annuncia la formattazione dell'elemento corrente</translation> <translation id="479989351350248267">ricerca</translation>
diff --git a/chrome/browser/resources/chromeos/accessibility/strings/accessibility_strings_lt.xtb b/chrome/browser/resources/chromeos/accessibility/strings/accessibility_strings_lt.xtb index 72491723..9b827cf 100644 --- a/chrome/browser/resources/chromeos/accessibility/strings/accessibility_strings_lt.xtb +++ b/chrome/browser/resources/chromeos/accessibility/strings/accessibility_strings_lt.xtb
@@ -463,6 +463,7 @@ <translation id="4763480195061959176">vaizdo įrašas</translation> <translation id="4764692524839457597">numatytasis</translation> <translation id="4772771694153161212">Nepabraukta</translation> +<translation id="4784215347943747396">Valdykite įrenginį tik 1 ar 2 jungikliais</translation> <translation id="4786285211967466855">Nėra ankstesnės 1 lygio antraštės</translation> <translation id="4787577491510559358">Pateikti dabartinio elemento formatavimą</translation> <translation id="479989351350248267">ieškoti</translation>
diff --git a/chrome/browser/resources/chromeos/accessibility/strings/accessibility_strings_mk.xtb b/chrome/browser/resources/chromeos/accessibility/strings/accessibility_strings_mk.xtb index 9f0c9bfc..4cb891d 100644 --- a/chrome/browser/resources/chromeos/accessibility/strings/accessibility_strings_mk.xtb +++ b/chrome/browser/resources/chromeos/accessibility/strings/accessibility_strings_mk.xtb
@@ -464,6 +464,7 @@ <translation id="4763480195061959176">видео</translation> <translation id="4764692524839457597">стандардно</translation> <translation id="4772771694153161212">Не е подвлечено</translation> +<translation id="4784215347943747396">Контролирајте го уредот само со еден или два прекинувачи</translation> <translation id="4786285211967466855">Нема претходен наслов на ниво 1</translation> <translation id="4787577491510559358">Соопшти го форматирањето за тековната ставка</translation> <translation id="479989351350248267">search</translation>
diff --git a/chrome/browser/resources/chromeos/accessibility/strings/accessibility_strings_nl.xtb b/chrome/browser/resources/chromeos/accessibility/strings/accessibility_strings_nl.xtb index 2af3978..f5af3cf 100644 --- a/chrome/browser/resources/chromeos/accessibility/strings/accessibility_strings_nl.xtb +++ b/chrome/browser/resources/chromeos/accessibility/strings/accessibility_strings_nl.xtb
@@ -463,6 +463,7 @@ <translation id="4763480195061959176">video</translation> <translation id="4764692524839457597">standaard</translation> <translation id="4772771694153161212">Niet onderstreept</translation> +<translation id="4784215347943747396">Beheer het apparaat met slechts één of twee schakelaars</translation> <translation id="4786285211967466855">Geen vorige kop van niveau 1</translation> <translation id="4787577491510559358">Opmaak voor huidig item aankondigen</translation> <translation id="479989351350248267">zoeken</translation>
diff --git a/chrome/browser/resources/chromeos/accessibility/strings/accessibility_strings_no.xtb b/chrome/browser/resources/chromeos/accessibility/strings/accessibility_strings_no.xtb index 9188196..069a12d3 100644 --- a/chrome/browser/resources/chromeos/accessibility/strings/accessibility_strings_no.xtb +++ b/chrome/browser/resources/chromeos/accessibility/strings/accessibility_strings_no.xtb
@@ -463,6 +463,7 @@ <translation id="4763480195061959176">video</translation> <translation id="4764692524839457597">standard</translation> <translation id="4772771694153161212">Ikke understreking</translation> +<translation id="4784215347943747396">Styr enheten med kun én eller to brytere</translation> <translation id="4786285211967466855">Det finnes ingen tidligere overskrifter på nivå 1</translation> <translation id="4787577491510559358">Les opp formatering for det gjeldende elementet</translation> <translation id="479989351350248267">søk</translation>
diff --git a/chrome/browser/resources/chromeos/accessibility/strings/accessibility_strings_pl.xtb b/chrome/browser/resources/chromeos/accessibility/strings/accessibility_strings_pl.xtb index 5cf5a67..2bbe0b8d 100644 --- a/chrome/browser/resources/chromeos/accessibility/strings/accessibility_strings_pl.xtb +++ b/chrome/browser/resources/chromeos/accessibility/strings/accessibility_strings_pl.xtb
@@ -463,6 +463,7 @@ <translation id="4763480195061959176">film</translation> <translation id="4764692524839457597">domyślne</translation> <translation id="4772771694153161212">Bez podkreślenia</translation> +<translation id="4784215347943747396">Steruj urządzeniem za pomocą 1 lub 2 przełączników</translation> <translation id="4786285211967466855">Nie ma poprzedniego nagłówka poziomu 1</translation> <translation id="4787577491510559358">Informuj głosowo o formatowaniu bieżącego elementu</translation> <translation id="479989351350248267">search</translation>
diff --git a/chrome/browser/resources/chromeos/accessibility/strings/accessibility_strings_pt-BR.xtb b/chrome/browser/resources/chromeos/accessibility/strings/accessibility_strings_pt-BR.xtb index d59a34e5..37a111c 100644 --- a/chrome/browser/resources/chromeos/accessibility/strings/accessibility_strings_pt-BR.xtb +++ b/chrome/browser/resources/chromeos/accessibility/strings/accessibility_strings_pt-BR.xtb
@@ -463,6 +463,7 @@ <translation id="4763480195061959176">vídeo</translation> <translation id="4764692524839457597">padrão</translation> <translation id="4772771694153161212">Sem sublinhado</translation> +<translation id="4784215347943747396">Controle o dispositivo com apenas um ou dois interruptores</translation> <translation id="4786285211967466855">Nenhum cabeçalho de nível 1 anterior</translation> <translation id="4787577491510559358">Anunciar formatação para item atual</translation> <translation id="479989351350248267">pesquisar</translation>
diff --git a/chrome/browser/resources/chromeos/accessibility/strings/accessibility_strings_si.xtb b/chrome/browser/resources/chromeos/accessibility/strings/accessibility_strings_si.xtb index 19e6b280..9e13c5c7 100644 --- a/chrome/browser/resources/chromeos/accessibility/strings/accessibility_strings_si.xtb +++ b/chrome/browser/resources/chromeos/accessibility/strings/accessibility_strings_si.xtb
@@ -463,6 +463,7 @@ <translation id="4763480195061959176">වීඩියෝ</translation> <translation id="4764692524839457597">පෙරනිමි</translation> <translation id="4772771694153161212">යටින් ඉරි ඇඳ නොවේ</translation> +<translation id="4784215347943747396">1 ස්විචයක් හෝ ස්විච 2 ක් සමඟ උපාංගය පාලන කරන්න</translation> <translation id="4786285211967466855">පෙර 1 වෙනි මට්ටමේ ශීර්ෂ නැත</translation> <translation id="4787577491510559358">වත්මන් අයිතමය සඳහා ආකෘති කිරීම නිවේදන කරන්න</translation> <translation id="479989351350248267">සොයන්න</translation>
diff --git a/chrome/browser/resources/chromeos/accessibility/strings/accessibility_strings_sl.xtb b/chrome/browser/resources/chromeos/accessibility/strings/accessibility_strings_sl.xtb index 1d7c19e0..18eb49d7 100644 --- a/chrome/browser/resources/chromeos/accessibility/strings/accessibility_strings_sl.xtb +++ b/chrome/browser/resources/chromeos/accessibility/strings/accessibility_strings_sl.xtb
@@ -463,6 +463,7 @@ <translation id="4763480195061959176">video</translation> <translation id="4764692524839457597">privzeto</translation> <translation id="4772771694153161212">Ni podčrtano</translation> +<translation id="4784215347943747396">Nadziranje naprave s samo enim ali dvema stikaloma</translation> <translation id="4786285211967466855">Ni prejšnjega naslova na ravni 1</translation> <translation id="4787577491510559358">Najava oblikovanja za trenutni element</translation> <translation id="479989351350248267">search</translation>
diff --git a/chrome/browser/resources/chromeos/accessibility/strings/accessibility_strings_sr.xtb b/chrome/browser/resources/chromeos/accessibility/strings/accessibility_strings_sr.xtb index ce9d0a5..6a4fb82b 100644 --- a/chrome/browser/resources/chromeos/accessibility/strings/accessibility_strings_sr.xtb +++ b/chrome/browser/resources/chromeos/accessibility/strings/accessibility_strings_sr.xtb
@@ -463,6 +463,7 @@ <translation id="4763480195061959176">видео</translation> <translation id="4764692524839457597">подразумевано</translation> <translation id="4772771694153161212">Није подвучено</translation> +<translation id="4784215347943747396">Контролишите уређај помоћу само 1 или 2 прекидача</translation> <translation id="4786285211967466855">Нема претходног заглавља 1. нивоа</translation> <translation id="4787577491510559358">Описује форматирање за тренутну ставку</translation> <translation id="479989351350248267">search</translation>
diff --git a/chrome/browser/resources/chromeos/accessibility/strings/accessibility_strings_sw.xtb b/chrome/browser/resources/chromeos/accessibility/strings/accessibility_strings_sw.xtb index b842958c..a1137da 100644 --- a/chrome/browser/resources/chromeos/accessibility/strings/accessibility_strings_sw.xtb +++ b/chrome/browser/resources/chromeos/accessibility/strings/accessibility_strings_sw.xtb
@@ -463,6 +463,7 @@ <translation id="4763480195061959176">video</translation> <translation id="4764692524839457597">chaguomsingi</translation> <translation id="4772771694153161212">Hayajapigiwa mstari</translation> +<translation id="4784215347943747396">Dhibiti kifaa kwa kutumia swichi moja au mbili pekee</translation> <translation id="4786285211967466855">Hakuna kichwa cha kiwango cha kwanza kilichotangulia</translation> <translation id="4787577491510559358">Tangaza ubadilishaji wa kipengele cha sasa</translation> <translation id="479989351350248267">tafuta</translation>
diff --git a/chrome/browser/resources/chromeos/accessibility/switch_access/focus_ring_manager.js b/chrome/browser/resources/chromeos/accessibility/switch_access/focus_ring_manager.js index 0e10d1f..6b1eb575 100644 --- a/chrome/browser/resources/chromeos/accessibility/switch_access/focus_ring_manager.js +++ b/chrome/browser/resources/chromeos/accessibility/switch_access/focus_ring_manager.js
@@ -12,37 +12,14 @@ * @private {!Map<SAConstants.Focus.ID, * chrome.accessibilityPrivate.FocusRingInfo>} */ - this.rings_ = new Map(); - - // Create each focus ring. - this.rings_.set(SAConstants.Focus.ID.PRIMARY, { - id: SAConstants.Focus.ID.PRIMARY, - rects: [], - type: chrome.accessibilityPrivate.FocusType.SOLID, - color: SAConstants.Focus.PRIMARY_COLOR, - secondaryColor: SAConstants.Focus.SECONDARY_COLOR - }); - this.rings_.set(SAConstants.Focus.ID.NEXT, { - id: SAConstants.Focus.ID.NEXT, - rects: [], - type: chrome.accessibilityPrivate.FocusType.DASHED, - color: SAConstants.Focus.PRIMARY_COLOR, - secondaryColor: SAConstants.Focus.SECONDARY_COLOR - }); - this.rings_.set(SAConstants.Focus.ID.TEXT, { - id: SAConstants.Focus.ID.TEXT, - rects: [], - type: chrome.accessibilityPrivate.FocusType.DASHED, - color: SAConstants.Focus.PRIMARY_COLOR, - secondaryColor: SAConstants.Focus.SECONDARY_COLOR - }); + this.rings_ = this.createMap_(); /** * Regex pattern to verify valid colors. Checks that the first character - * is '#', followed by between 3 and 8 valid hex characters, and no other + * is '#', followed by 3, 4, 6, or 8 valid hex characters, and no other * characters (ignoring case). */ - this.colorPattern_ = /^#[0-9A-F]{3,8}$/i; + this.colorPattern_ = /^#([0-9A-F]{3,4}|[0-9A-F]{6}|[0-9A-F]{8})$/i; } /** @@ -53,7 +30,7 @@ if (this.colorPattern_.test(color) !== true) { throw SwitchAccess.error( SAConstants.ErrorType.INVALID_COLOR, - 'Problem setting focus ring color: color is not' + + 'Problem setting focus ring color: ' + color + ' is not' + 'a valid CSS color string.'); } this.rings_.forEach((ring) => ring.color = color); @@ -66,10 +43,7 @@ * @param {!SARootNode} group */ setFocusNodes(primary, group) { - if (this.rings_.size === 0) { - return; - } - if (!primary.location || !group.location) { + if (!primary.location) { throw SwitchAccess.error( SAConstants.ErrorType.MISSING_LOCATION, 'Cannot set focus rings if node location is undefined'); @@ -128,6 +102,35 @@ } /** + * Creates the map of focus rings. + * @return {!Map<SAConstants.Focus.ID, + * chrome.accessibilityPrivate.FocusRingInfo>} + */ + createMap_() { + const primaryRing = { + id: SAConstants.Focus.ID.PRIMARY, + rects: [], + type: chrome.accessibilityPrivate.FocusType.SOLID, + color: SAConstants.Focus.PRIMARY_COLOR, + secondaryColor: SAConstants.Focus.SECONDARY_COLOR + }; + + const nextRing = { + id: SAConstants.Focus.ID.NEXT, + rects: [], + type: chrome.accessibilityPrivate.FocusType.DASHED, + color: SAConstants.Focus.PRIMARY_COLOR, + secondaryColor: SAConstants.Focus.SECONDARY_COLOR + }; + + return new Map([ + [SAConstants.Focus.ID.PRIMARY, primaryRing], + [SAConstants.Focus.ID.NEXT, nextRing] + ]); + } + + + /** * Updates all focus rings to reflect new location, color, style, or other * changes. */
diff --git a/chrome/browser/resources/chromeos/internet_detail_dialog/internet_detail_dialog.html b/chrome/browser/resources/chromeos/internet_detail_dialog/internet_detail_dialog.html index de495e9..34445f3 100644 --- a/chrome/browser/resources/chromeos/internet_detail_dialog/internet_detail_dialog.html +++ b/chrome/browser/resources/chromeos/internet_detail_dialog/internet_detail_dialog.html
@@ -58,27 +58,26 @@ margin-inline-end: 10px; } - .section { - @apply --cr-section; + .cr-section { margin-bottom: 10px; } - .section.first { + .cr-section.first { border-top: none; } - .section.single-column { + .cr-section.single-column { align-items: stretch; flex-direction: column; justify-content: center; } - .section > .start { + .cr-section > .start { align-items: center; flex: auto; } - .section cr-button + cr-button { + .cr-section cr-button + cr-button { margin-inline-start: 8px; } @@ -94,7 +93,7 @@ </style> <!-- Title section: Icon + name + connection state. --> - <div id="title" class="section first"> + <div id="title" class="cr-section first"> <div class="start layout horizontal center"> <network-icon show-technology-badge="[[showTechnologyBadge_]]" @@ -122,7 +121,7 @@ <!-- SIM Info (Cellular only). --> <template is="dom-if" if="[[showCellularSim_(managedProperties_)]]" restamp> - <div class="section single-column"> + <div class="cr-section single-column"> <network-siminfo device-state="[[deviceState_]]"> </network-siminfo> <div> @@ -131,7 +130,7 @@ <!-- Choose Mobile Network (Cellular only) --> <template is="dom-if" if="[[showCellularChooseNetwork_(managedProperties_)]]"> - <div class="section single-column"> + <div class="cr-section single-column"> <network-choose-mobile device-state="[[deviceState_]]" managed-properties="[[managedProperties_]]"> </network-choose-mobile> @@ -140,7 +139,7 @@ <!-- APN (Cellular only) --> <template is="dom-if" if="[[isCellular_(managedProperties_)]]"> - <div class="section single-column"> + <div class="cr-section single-column"> <network-apnlist editable on-apn-change="onApnChange_" managed-properties="[[managedProperties_]]"> </network-apnlist> @@ -148,7 +147,7 @@ </template> <!-- Proxy --> - <div class="section single-column"> + <div class="cr-section single-column"> <template is="dom-if" if="[[shouldShowProxyPolicyIndicator_(managedProperties_)]]"> <div class="property-box"> @@ -166,14 +165,14 @@ <template is="dom-if" if="[[isRememberedOrConnected_(managedProperties_)]]"> <!-- IP Config --> - <div class="section single-column"> + <div class="cr-section single-column"> <network-ip-config editable on-ip-change="onIPConfigChange_" managed-properties="[[managedProperties_]]"> </network-ip-config> </div> <!-- Nameservers --> - <div class="section single-column"> + <div class="cr-section single-column"> <network-nameservers editable on-nameservers-change="onIPConfigChange_" managed-properties="[[managedProperties_]]"> @@ -181,7 +180,7 @@ </div> </template> - <div class="section single-column indented"> + <div class="cr-section single-column indented"> <!-- MAC Address. --> <div class="property-box single-column two-line" hidden$="[[!deviceState_.macAddress]]">
diff --git a/chrome/browser/resources/chromeos/login/checking_downloading_update.js b/chrome/browser/resources/chromeos/login/checking_downloading_update.js index 1bff574..d5149c7 100644 --- a/chrome/browser/resources/chromeos/login/checking_downloading_update.js +++ b/chrome/browser/resources/chromeos/login/checking_downloading_update.js
@@ -99,13 +99,6 @@ }, }, - onBeforeShow() { - this.behaviors.forEach((behavior) => { - if (behavior.onBeforeShow) - behavior.onBeforeShow.call(this); - }); - }, - computeProgressMessage_( hasEstimate, defaultProgressMessage, estimatedTimeLeftMsg_) { if (hasEstimate)
diff --git a/chrome/browser/resources/chromeos/login/discover/discover_ui.js b/chrome/browser/resources/chromeos/login/discover/discover_ui.js index 53bda08..9445de3 100644 --- a/chrome/browser/resources/chromeos/login/discover/discover_ui.js +++ b/chrome/browser/resources/chromeos/login/discover/discover_ui.js
@@ -138,6 +138,7 @@ } if (module) { this.hideAll_(); + module.onBeforeShow(); module.hidden = false; module.show(); } else {
diff --git a/chrome/browser/resources/chromeos/login/offline_gaia.html b/chrome/browser/resources/chromeos/login/offline_gaia.html index 4e7f486..e368e6c 100644 --- a/chrome/browser/resources/chromeos/login/offline_gaia.html +++ b/chrome/browser/resources/chromeos/login/offline_gaia.html
@@ -46,8 +46,8 @@ <link rel="stylesheet" href="oobe_dialog_host.css"> <link rel="stylesheet" href="gaia_card_parameters.css"> <oobe-dialog role="dialog" has-buttons selected$="[[activeSection]]" - animation-in-progress$="[[animationInProgress]]" no-header - no-footer-padding> + id="dialog" no-header no-footer-padding + animation-in-progress$="[[animationInProgress]]"> <div slot="footer"> <img id="icon" src="chrome://theme/IDR_LOGO_GOOGLE_COLOR_90" alt=""> </div>
diff --git a/chrome/browser/resources/chromeos/login/offline_gaia.js b/chrome/browser/resources/chromeos/login/offline_gaia.js index 78a2e3c..fa33d11 100644 --- a/chrome/browser/resources/chromeos/login/offline_gaia.js +++ b/chrome/browser/resources/chromeos/login/offline_gaia.js
@@ -50,6 +50,14 @@ this.switchToEmailCard(true /* animated */); }, + onBeforeShow() { + this.behaviors.forEach((behavior) => { + if (behavior.onBeforeShow) + behavior.onBeforeShow.call(this); + }); + this.$$('#dialog').onBeforeShow(); + }, + onForgotPasswordClicked_() { this.disabled = true; this.fire('dialogShown');
diff --git a/chrome/browser/resources/chromeos/login/oobe_adb_sideloading_screen.js b/chrome/browser/resources/chromeos/login/oobe_adb_sideloading_screen.js index cc8616b7..3e85712 100644 --- a/chrome/browser/resources/chromeos/login/oobe_adb_sideloading_screen.js +++ b/chrome/browser/resources/chromeos/login/oobe_adb_sideloading_screen.js
@@ -49,6 +49,10 @@ }, onBeforeShow(data) { + this.behaviors.forEach((behavior) => { + if (behavior.onBeforeShow) + behavior.onBeforeShow.call(this); + }); this.setScreenState(this.SCREEN_STATE_SETUP); },
diff --git a/chrome/browser/resources/chromeos/login/oobe_terms_of_service.js b/chrome/browser/resources/chromeos/login/oobe_terms_of_service.js index e6827fb..7c596b68 100644 --- a/chrome/browser/resources/chromeos/login/oobe_terms_of_service.js +++ b/chrome/browser/resources/chromeos/login/oobe_terms_of_service.js
@@ -65,14 +65,6 @@ this.$.termsOfServiceDialog.show(); }, - /** Called when dialog is shown */ - onBeforeShow() { - this.behaviors.forEach((behavior) => { - if (behavior.onBeforeShow) - behavior.onBeforeShow.call(this); - }); - }, - /** * This is called when strings are updated. * @override
diff --git a/chrome/browser/resources/chromeos/login/screen_active_directory_password_change.js b/chrome/browser/resources/chromeos/login/screen_active_directory_password_change.js index c3f935f..8e29db57 100644 --- a/chrome/browser/resources/chromeos/login/screen_active_directory_password_change.js +++ b/chrome/browser/resources/chromeos/login/screen_active_directory_password_change.js
@@ -41,6 +41,14 @@ }, /** + * Returns default event target element. + * @type {Object} + */ + get defaultControl() { + return this.adPasswordChanged_; + }, + + /** * Cancels password changing and drops the user back to the login * screen. */
diff --git a/chrome/browser/resources/chromeos/login/screen_error_message.js b/chrome/browser/resources/chromeos/login/screen_error_message.js index d75c932..ba21e0d 100644 --- a/chrome/browser/resources/chromeos/login/screen_error_message.js +++ b/chrome/browser/resources/chromeos/login/screen_error_message.js
@@ -256,6 +256,7 @@ */ onBeforeShow(data) { cr.ui.Oobe.clearErrors(); + $('error-message-md').onBeforeShow(); $('error-message-back-button').disabled = !this.closable; },
diff --git a/chrome/browser/resources/chromeos/login/screen_gaia_signin.js b/chrome/browser/resources/chromeos/login/screen_gaia_signin.js index f2dd34f..239a21f 100644 --- a/chrome/browser/resources/chromeos/login/screen_gaia_signin.js +++ b/chrome/browser/resources/chromeos/login/screen_gaia_signin.js
@@ -714,6 +714,7 @@ this.$['offline-ad-auth'].onBeforeShow(); this.$['signin-frame-dialog'].onBeforeShow(); + this.$['offline-gaia'].onBeforeShow(); this.$.pinDialog.onBeforeShow(); },
diff --git a/chrome/browser/resources/chromeos/login/screen_password_changed.js b/chrome/browser/resources/chromeos/login/screen_password_changed.js index 33c94f2..4b22c776 100644 --- a/chrome/browser/resources/chromeos/login/screen_password_changed.js +++ b/chrome/browser/resources/chromeos/login/screen_password_changed.js
@@ -28,6 +28,14 @@ }, /** + * Returns default event target element. + * @type {Object} + */ + get defaultControl() { + return this.gaiaPasswordChanged_; + }, + + /** * Cancels password migration and drops the user back to the login screen. */ cancel() {
diff --git a/chrome/browser/resources/chromeos/login/screen_recommend_apps.js b/chrome/browser/resources/chromeos/login/screen_recommend_apps.js index 873308c..a73475c 100644 --- a/chrome/browser/resources/chromeos/login/screen_recommend_apps.js +++ b/chrome/browser/resources/chromeos/login/screen_recommend_apps.js
@@ -23,6 +23,15 @@ return $('recommend-apps-screen'); }, + /** + * Event handler that is invoked just before the screen is shown. + * @param {Object} data Screen init payload. + */ + onBeforeShow(data) { + $('recommend-apps-loading').onBeforeShow(); + $('recommend-apps-screen').onBeforeShow(); + }, + /* * Executed on language change. */
diff --git a/chrome/browser/resources/chromeos/login/screen_sync_consent.js b/chrome/browser/resources/chromeos/login/screen_sync_consent.js index 36fed58..4d1fc90 100644 --- a/chrome/browser/resources/chromeos/login/screen_sync_consent.js +++ b/chrome/browser/resources/chromeos/login/screen_sync_consent.js
@@ -23,6 +23,15 @@ }, /** + * Event handler that is invoked just before the screen is shown. + * @param {Object} data Screen init payload. + */ + onBeforeShow(data) { + $('sync-loading').onBeforeShow(); + $('sync-consent-impl').onBeforeShow(); + }, + + /** * Event handler that is invoked just before the screen is hidden. */ onBeforeHide() {
diff --git a/chrome/browser/resources/chromeos/login/screen_tpm_error.js b/chrome/browser/resources/chromeos/login/screen_tpm_error.js index 243cacf..0bab1413 100644 --- a/chrome/browser/resources/chromeos/login/screen_tpm_error.js +++ b/chrome/browser/resources/chromeos/login/screen_tpm_error.js
@@ -18,6 +18,14 @@ }, /** + * Returns default event target element. + * @type {Object} + */ + get defaultControl() { + return $('tpm-error-dialog'); + }, + + /** * Show TPM screen. */ show() {
diff --git a/chrome/browser/resources/chromeos/login/screen_update_required.js b/chrome/browser/resources/chromeos/login/screen_update_required.js index 2735d6b..7c355a8 100644 --- a/chrome/browser/resources/chromeos/login/screen_update_required.js +++ b/chrome/browser/resources/chromeos/login/screen_update_required.js
@@ -39,6 +39,14 @@ return OOBE_UI_STATE.BLOCKING; }, + /** + * Returns default event target element. + * @type {Object} + */ + get defaultControl() { + return $('update-required-card'); + }, + /** @param {string} domain Enterprise domain name */ /** @param {string} device Device name */ setEnterpriseAndDeviceName(enterpriseDomain, device) {
diff --git a/chrome/browser/resources/chromeos/login/security_token_pin.html b/chrome/browser/resources/chromeos/login/security_token_pin.html index cff9a95..4de2c72 100644 --- a/chrome/browser/resources/chromeos/login/security_token_pin.html +++ b/chrome/browser/resources/chromeos/login/security_token_pin.html
@@ -11,7 +11,7 @@ <link rel="stylesheet" href="security_token_pin.css"> <oobe-dialog class="gaia-dialog" has-buttons role="dialog" - title-key="securityTokenPinDialogTitle" + title-key="securityTokenPinDialogTitle" id="dialog" aria-label$="[[i18nDynamic(locale, 'securityTokenPinDialogTitle')]]" aria-describedby="description"> <hd-iron-icon slot="oobe-icon" icon1x="oobe-32:lock"
diff --git a/chrome/browser/resources/media/media_data_table.js b/chrome/browser/resources/media/media_data_table.js index 8efaad5..758ace61 100644 --- a/chrome/browser/resources/media/media_data_table.js +++ b/chrome/browser/resources/media/media_data_table.js
@@ -80,7 +80,7 @@ key = k; }); - this.delegate_.insertDataField(td, data, key); + this.delegate_.insertDataField(td, data, key, dataRow); tr.appendChild(td); }); }); @@ -103,8 +103,10 @@ * @param {Element} td * @param {?Object} data * @param {string} key + * @param {Object} dataRow This is the row itself in case we need extra + * data to render the field. */ - insertDataField(td, data, key) {} + insertDataField(td, data, key, dataRow) {} /** * Compares two objects based on |sortKey|.
diff --git a/chrome/browser/resources/media/media_feeds.html b/chrome/browser/resources/media/media_feeds.html index 3f848c5..1083adcf 100644 --- a/chrome/browser/resources/media/media_feeds.html +++ b/chrome/browser/resources/media/media_feeds.html
@@ -124,6 +124,8 @@ </th> <th data-key="logos"> Logos + <th data-key="actions"> + Actions </th> </tr> </thead> @@ -131,22 +133,71 @@ </tbody> </table> - <template id="datarow"> - <tr> - <td class="id-cell"></td> - <td class="url-cell"></td> - <td></td> - <td class="last-discovery-time-cell"></td> - <td></td> - <td></td> - <td></td> - <td></td> - <td></td> - <td></td> - <td></td> - <td></td> - <td></td> - </tr> - </template> + <div id="feed-content" style="display:none;"> + <hr> + <h2>Feed Contents: <span id="current-feed"></span></h2> + <table id="feed-items-table"> + <thead> + <tr> + <th sort-key="type" class="sort-column" sort-reverse> + Type + </th> + <th sort-key="name"> + Name + </th> + <th sort-key="author"> + Author + </th> + <th sort-key="datePublished"> + Date Published + </th> + <th sort-key="isFamilyFriendly"> + Family Friendly + </th> + <th sort-key="actionStatus"> + Action Status + </th> + <th sort-key="action.url"> + Action URL + </th> + <th sort-key="action.startTime"> + Action Start Time (secs) + </th> + <th sort-key="interactionCounters"> + Interaction Counters + </th> + <th sort-key="contentRatings"> + Content Ratings + </th> + <th sort-key="genre"> + Genre + </th> + <th sort-key="live"> + Live Details + </th> + <th sort-key="tvEpisode"> + TV Episode + </th> + <th sort-key="playNextCandidate"> + Play Next Candidate + </th> + <th sort-key="identifiers"> + Identifiers + </th> + <th sort-key="shownCount"> + Shown Count + </th> + <th sort-key="clicked"> + Clicked + </th> + <th sort-key="images"> + Images + </th> + </tr> + </thead> + <tbody> + </tbody> + </table> + </div> </body> </html>
diff --git a/chrome/browser/resources/media/media_feeds.js b/chrome/browser/resources/media/media_feeds.js index 13830a4..530ab9d2 100644 --- a/chrome/browser/resources/media/media_feeds.js +++ b/chrome/browser/resources/media/media_feeds.js
@@ -11,10 +11,16 @@ return mediaFeedsPageIsPopulatedResolver.promise; } +const mediaFeedItemsPageIsPopulatedResolver = new PromiseResolver(); +function whenFeedTableIsPopulatedForTest() { + return mediaFeedItemsPageIsPopulatedResolver.promise; +} + (function() { let delegate = null; let feedsTable = null; +let feedItemsTable = null; let store = null; /** @implements {cr.ui.MediaDataTableDelegate} */ @@ -25,8 +31,28 @@ * @param {Element} td * @param {?Object} data * @param {string} key + * @param {Object} dataRow */ - insertDataField(td, data, key) { + insertDataField(td, data, key, dataRow) { + if (key == 'actions') { + const a = document.createElement('a'); + a.href = '#feed-content'; + a.textContent = 'Show Contents'; + td.appendChild(a); + + a.addEventListener('click', () => { + store.getItemsForMediaFeed(dataRow.id).then(response => { + feedItemsTable.setData(response.items); + + // Show the feed items section. + $('current-feed').textContent = dataRow.url.url; + $('feed-content').style.display = 'block'; + + mediaFeedItemsPageIsPopulatedResolver.resolve(); + }); + }); + } + if (data === undefined || data === null) { return; } @@ -36,7 +62,7 @@ td.textContent = data.url; } else if ( key === 'lastDiscoveryTime' || key === 'lastFetchTime' || - key === 'cacheExpiryTime') { + key === 'cacheExpiryTime' || key === 'datePublished') { // Format a mojo time. td.textContent = convertMojoTimeToJS(/** @type {mojoBase.mojom.Time} */ (data)) @@ -74,7 +100,7 @@ td.textContent = contentTypes.length === 0 ? 'None' : contentTypes.join(','); - } else if (key === 'logos') { + } else if (key === 'logos' || key === 'images') { // Format an array of mojo media images. data.forEach((image) => { const a = document.createElement('a'); @@ -84,6 +110,129 @@ td.appendChild(a); td.appendChild(document.createElement('br')); }); + } else if (key == 'type') { + // Format a MediaFeedItemType. + switch (parseInt(data, 10)) { + case mediaFeeds.mojom.MediaFeedItemType.kVideo: + td.textContent = 'Video'; + break; + case mediaFeeds.mojom.MediaFeedItemType.kTVSeries: + td.textContent = 'TV Series'; + break; + case mediaFeeds.mojom.MediaFeedItemType.kMovie: + td.textContent = 'Movie'; + break; + } + } else if (key == 'isFamilyFriendly' || key == 'clicked') { + // Format a boolean. + td.textContent = data ? 'Yes' : 'No'; + } else if (key == 'actionStatus') { + // Format a MediaFeedItemActionStatus. + switch (parseInt(data, 10)) { + case mediaFeeds.mojom.MediaFeedItemActionStatus.kUnknown: + td.textContent = 'Unknown'; + break; + case mediaFeeds.mojom.MediaFeedItemActionStatus.kActive: + td.textContent = 'Active'; + break; + case mediaFeeds.mojom.MediaFeedItemActionStatus.kPotential: + td.textContent = 'Potential'; + break; + case mediaFeeds.mojom.MediaFeedItemActionStatus.kCompleted: + td.textContent = 'Completed'; + break; + } + } else if (key == 'startTime') { + // Format a start time. + td.textContent = + timeDeltaToSeconds(/** @type {mojoBase.mojom.TimeDelta} */ (data)); + } else if (key == 'interactionCounters') { + // Format interaction counters. + const counters = []; + + Object.keys(data).forEach((key) => { + let keyString = ''; + + switch (parseInt(key, 10)) { + case mediaFeeds.mojom.InteractionCounterType.kWatch: + keyString = 'Watch'; + break; + case mediaFeeds.mojom.InteractionCounterType.kLike: + keyString = 'Like'; + break; + case mediaFeeds.mojom.InteractionCounterType.kDislike: + keyString = 'Dislike'; + break; + } + + counters.push(keyString + '=' + data[key]); + }); + + td.textContent = counters.join(' '); + } else if (key == 'contentRatings') { + // Format content ratings. + const ratings = []; + + data.forEach((rating) => { + ratings.push(rating.agency + ' ' + rating.value); + }); + + td.textContent = ratings.join(', '); + } else if (key == 'author') { + // Format a mojom author. + const a = document.createElement('a'); + a.href = data.url; + a.textContent = data.name; + a.target = '_blank'; + td.appendChild(a); + } else if (key == 'name' || key == 'genre') { + // Format a mojo string16. + td.textContent = + decodeString16(/** @type {mojoBase.mojom.String16} */ (data)); + } else if (key == 'live') { + // Format LiveDetails. + td.textContent = 'Live'; + + if (data.startTime) { + td.textContent += ' ' + + 'StartTime=' + + convertMojoTimeToJS( + /** @type {mojoBase.mojom.Time} */ (data.startTime)) + .toString(); + } + + if (data.endTime) { + td.textContent += ' ' + + 'EndTime=' + + convertMojoTimeToJS( + /** @type {mojoBase.mojom.Time} */ (data.endTime)) + .toString(); + } + } else if (key == 'tvEpisode') { + // Format a TV Episode. + td.textContent = data.name + ' EpisodeNumber=' + data.episodeNumber + + ' SeasonNumber=' + data.seasonNumber + ' ' + + formatIdentifiers(/** @type {Array<mediaFeeds.mojom.Identifier>} */ ( + data.identifiers)); + } else if (key == 'playNextCandidate') { + // Format a Play Next Candidate. + td.textContent = data.name + ' EpisodeNumber=' + data.episodeNumber + + ' SeasonNumber=' + data.seasonNumber + ' ' + + formatIdentifiers( + /** @type {Array<mediaFeeds.mojom.Identifier>} */ ( + data.identifiers)) + + ' ActionURL=' + data.action.url.url; + + if (data.action.startTime) { + td.textContent += + ' ActionStartTimeSecs=' + timeDeltaToSeconds(data.action.startTime); + } + + td.textContent += ' DurationSecs=' + timeDeltaToSeconds(data.duration); + } else if (key == 'identifiers') { + // Format identifiers. + td.textContent = formatIdentifiers( + /** @type {Array<mediaFeeds.mojom.Identifier>} */ (data)); } else { td.textContent = data; } @@ -122,6 +271,57 @@ } /** + * Convert a time delta to seconds. + * @param {mojoBase.mojom.TimeDelta} timeDelta + * @returns {number} + */ +function timeDeltaToSeconds(timeDelta) { + return timeDelta.microseconds / 1000 / 1000; +} + +/** + * Formats an array of identifiers for display. + * @param {Array<mediaFeeds.mojom.Identifier>} mojoIdentifiers + * @returns {string} + */ +function formatIdentifiers(mojoIdentifiers) { + const identifiers = []; + + mojoIdentifiers.forEach((identifier) => { + let keyString = ''; + + switch (identifier.type) { + case mediaFeeds.mojom.Identifier_Type.kTMSRootId: + keyString = 'TMSRootId'; + break; + case mediaFeeds.mojom.Identifier_Type.kTMSId: + keyString = 'TMSId'; + break; + case mediaFeeds.mojom.Identifier_Type.kPartnerId: + keyString = 'PartnerId'; + break; + } + + identifiers.push(keyString + '=' + identifier.value); + }); + + return identifiers.join(' '); +} + +/** + * Parses utf16 coded string. + * @param {?mojoBase.mojom.String16} arr + * @return {string} + */ +function decodeString16(arr) { + if (arr == null) { + return ''; + } + + return arr.data.map(ch => String.fromCodePoint(ch)).join(''); +} + +/** * Converts a mojo time to a JS time. * @param {mojoBase.mojom.Time} mojoTime * @return {Date} @@ -160,6 +360,7 @@ delegate = new MediaFeedsTableDelegate(); feedsTable = new cr.ui.MediaDataTable($('feeds-table'), delegate); + feedItemsTable = new cr.ui.MediaDataTable($('feed-items-table'), delegate); updateFeedsTable();
diff --git a/chrome/browser/resources/settings/lazy_load.js b/chrome/browser/resources/settings/lazy_load.js index b26bbb15..c798fe1 100644 --- a/chrome/browser/resources/settings/lazy_load.js +++ b/chrome/browser/resources/settings/lazy_load.js
@@ -25,7 +25,7 @@ // import './site_settings/pdf_documents.m.js'; // import './site_settings/protocol_handlers.m.js'; // import './site_settings/site_data.m.js'; -// import './site_settings/site_details.m.js'; +import './site_settings/site_details.m.js'; // import './site_settings/zoom_levels.m.js'; // <if expr="not chromeos"> @@ -94,6 +94,7 @@ export {kControlledByLookup} from './site_settings/site_settings_behavior.m.js'; export {LocalDataBrowserProxyImpl} from './site_settings/local_data_browser_proxy.m.js'; export {ContentSettingProvider,SiteSettingsPrefsBrowserProxyImpl} from './site_settings/site_settings_prefs_browser_proxy.m.js'; +export {WebsiteUsageBrowserProxyImpl} from './site_settings/website_usage_browser_proxy.m.js'; // <if expr="not chromeos"> export {SystemPageBrowserProxyImpl} from './system_page/system_page_browser_proxy.m.js';
diff --git a/chrome/browser/resources/settings/settings_resources_v3.grdp b/chrome/browser/resources/settings/settings_resources_v3.grdp index a5b0ccb78..5ba6505 100644 --- a/chrome/browser/resources/settings/settings_resources_v3.grdp +++ b/chrome/browser/resources/settings/settings_resources_v3.grdp
@@ -579,6 +579,10 @@ file="${root_gen_dir}/chrome/browser/resources/settings/site_settings/add_site_dialog.m.js" use_base_dir="false" type="BINDATA" /> + <include name="IDR_SETTINGS_SITE_SETTINGS_ALL_SITES_ICONS_M_JS" + file="${root_gen_dir}/chrome/browser/resources/settings/site_settings/all_sites_icons.m.js" + use_base_dir="false" + type="BINDATA" /> <if expr="chromeos"> <include name="IDR_SETTINGS_SITE_SETTINGS_ANDROID_INFO_BROWSER_PROXY_M_JS" file="${root_gen_dir}/chrome/browser/resources/settings/site_settings/android_info_browser_proxy.m.js" @@ -601,6 +605,10 @@ file="${root_gen_dir}/chrome/browser/resources/settings/site_settings/chooser_exception_list_entry.m.js" use_base_dir="false" type="BINDATA" /> + <include name="IDR_SETTINGS_SITE_SETTINGS_CLEAR_STORAGE_DIALOG_CSS_M_JS" + file="${root_gen_dir}/chrome/browser/resources/settings/site_settings/clear_storage_dialog_css.m.js" + use_base_dir="false" + type="BINDATA" /> <include name="IDR_SETTINGS_SITE_SETTINGS_CONSTANTS_M_JS" file="${root_gen_dir}/chrome/browser/resources/settings/site_settings/constants.m.js" use_base_dir="false" @@ -621,6 +629,11 @@ file="${root_gen_dir}/chrome/browser/resources/settings/site_settings/site_data_details_subpage.m.js" use_base_dir="false" type="BINDATA" /> + <include name="IDR_SETTINGS_SITE_SETTINGS_SITE_DETAILS_M_JS" + file="${root_gen_dir}/chrome/browser/resources/settings/site_settings/site_details.m.js" + use_base_dir="false" + type="BINDATA" + preprocess="true" /> <include name="IDR_SETTINGS_SITE_SETTINGS_SITE_DETAILS_PERMISSION_M_JS" file="${root_gen_dir}/chrome/browser/resources/settings/site_settings/site_details_permission.m.js" use_base_dir="false" @@ -649,6 +662,10 @@ use_base_dir="false" type="BINDATA" preprocess="true" /> + <include name="IDR_SETTINGS_SITE_SETTINGS_WEBSITE_USAGE_BROWSER_PROXY_M_JS" + file="${root_gen_dir}/chrome/browser/resources/settings/site_settings/website_usage_browser_proxy.m.js" + use_base_dir="false" + type="BINDATA" /> <if expr="not chromeos"> <include name="IDR_SETTINGS_PRINTING_PAGE_PRINTING_BROWSER_PROXY_M_JS" file="${root_gen_dir}/chrome/browser/resources/settings/printing_page/printing_browser_proxy.m.js"
diff --git a/chrome/browser/resources/settings/site_settings/BUILD.gn b/chrome/browser/resources/settings/site_settings/BUILD.gn index aa73b3c..815c344 100644 --- a/chrome/browser/resources/settings/site_settings/BUILD.gn +++ b/chrome/browser/resources/settings/site_settings/BUILD.gn
@@ -301,7 +301,6 @@ ":add_site_dialog.m", # ":all_sites.m", - # ":all_sites_icons.m", ":android_info_browser_proxy.m", ":category_default_setting.m", ":category_setting_exceptions.m", @@ -319,7 +318,7 @@ ":site_data_details_subpage.m", # ":site_data_entry.m", - # ":site_details.m", + ":site_details.m", ":site_details_permission.m", ":site_entry.m", ":site_list.m", @@ -353,14 +352,6 @@ extra_deps = [ ":all_sites_module" ] } -js_library("all_sites_icons.m") { - sources = [ "$root_gen_dir/chrome/browser/resources/settings/site_settings/all_sites_icons.m.js" ] - deps = [ - # TODO: Fill those in. - ] - extra_deps = [ ":all_sites_icons_module" ] -} - js_library("android_info_browser_proxy.m") { sources = [ "$root_gen_dir/chrome/browser/resources/settings/site_settings/android_info_browser_proxy.m.js" ] deps = [ "//ui/webui/resources/js:cr.m" ] @@ -509,8 +500,17 @@ js_library("site_details.m") { sources = [ "$root_gen_dir/chrome/browser/resources/settings/site_settings/site_details.m.js" ] deps = [ - # TODO: Fill those in. + ":constants.m", + ":site_details_permission.m", + ":site_settings_behavior.m", + ":website_usage_browser_proxy.m", + "..:router.m", + "//ui/webui/resources/js:assert.m", + "//ui/webui/resources/js:i18n_behavior.m", + "//ui/webui/resources/js:load_time_data.m", + "//ui/webui/resources/js/cr/ui:focus_without_ink.m", ] + externs_list = [ "$externs_path/settings_private.js" ] extra_deps = [ ":site_details_module" ] } @@ -769,6 +769,14 @@ js_file = "site_details.js" html_file = "site_details.html" html_type = "dom-module" + auto_imports = settings_auto_imports + [ + "chrome/browser/resources/settings/route.html|routes", + "chrome/browser/resources/settings/router.html|Route,Router,RouteObserverBehavior", + "chrome/browser/resources/settings/site_settings/constants.html|ContentSetting,ContentSettingsTypes", + "chrome/browser/resources/settings/site_settings/website_usage_browser_proxy.html|WebsiteUsageBrowserProxy,WebsiteUsageBrowserProxyImpl", + "ui/webui/resources/html/assert.html|assert", + ] + namespace_rewrites = settings_namespace_rewrites } polymer_modulizer("site_details_permission") {
diff --git a/chrome/browser/resources/settings/site_settings/site_details.html b/chrome/browser/resources/settings/site_settings/site_details.html index 5cf202c..56f45d6 100644 --- a/chrome/browser/resources/settings/site_settings/site_details.html +++ b/chrome/browser/resources/settings/site_settings/site_details.html
@@ -5,12 +5,14 @@ <link rel="import" href="chrome://resources/html/assert.html"> <link rel="import" href="chrome://resources/html/cr/ui/focus_without_ink.html"> <link rel="import" href="chrome://resources/html/i18n_behavior.html"> +<link rel="import" href="chrome://resources/html/web_ui_listener_behavior.html"> <link rel="import" href="chrome://resources/cr_elements/cr_dialog/cr_dialog.html"> <link rel="import" href="chrome://resources/cr_elements/cr_button/cr_button.html"> <link rel="import" href="chrome://resources/cr_elements/cr_icon_button/cr_icon_button.html"> <link rel="import" href="chrome://resources/cr_elements/cr_link_row/cr_link_row.html"> <link rel="import" href="chrome://resources/cr_elements/icons.html"> <link rel="import" href="chrome://resources/cr_elements/shared_vars_css.html"> +<link rel="import" href="../i18n_setup.html"> <link rel="import" href="../icons.html"> <link rel="import" href="../route.html"> <link rel="import" href="../router.html">
diff --git a/chrome/browser/resources/settings/site_settings_page/recent_site_permissions.js b/chrome/browser/resources/settings/site_settings_page/recent_site_permissions.js index a52da2c7..71e9905 100644 --- a/chrome/browser/resources/settings/site_settings_page/recent_site_permissions.js +++ b/chrome/browser/resources/settings/site_settings_page/recent_site_permissions.js
@@ -326,7 +326,7 @@ return; } const currentIndex = - this.recentSitePermissionsList_.findIndex(function(permissions) { + this.recentSitePermissionsList_.findIndex((permissions) => { return permissions.origin === this.lastSelected_.origin && permissions.incognito === this.lastSelected_.incognito; });
diff --git a/chrome/browser/sessions/session_restore_delegate.cc b/chrome/browser/sessions/session_restore_delegate.cc index 559a56f..a008f64ba 100644 --- a/chrome/browser/sessions/session_restore_delegate.cc +++ b/chrome/browser/sessions/session_restore_delegate.cc
@@ -9,10 +9,12 @@ #include "base/metrics/field_trial.h" #include "base/stl_util.h" +#include "chrome/browser/performance_manager/graph/policies/policy_features.h" #include "chrome/browser/sessions/session_restore_stats_collector.h" #include "chrome/browser/sessions/tab_loader.h" #include "chrome/common/url_constants.h" #include "components/favicon/content/content_favicon_driver.h" +#include "components/performance_manager/public/graph/policies/background_tab_loading_policy.h" #include "components/tab_groups/tab_group_id.h" #include "components/tab_groups/tab_group_visual_data.h" #include "content/public/browser/web_contents.h" @@ -87,5 +89,18 @@ /*is_same_document=*/false); } - TabLoader::RestoreTabs(tabs, restore_started); + // Don't start a TabLoader here if background tab loading is done by + // PerformanceManager. + if (!base::FeatureList::IsEnabled( + performance_manager::features:: + kBackgroundTabLoadingFromPerformanceManager)) { + TabLoader::RestoreTabs(tabs, restore_started); + } else { + std::vector<content::WebContents*> web_contents_vector; + web_contents_vector.reserve(tabs.size()); + for (auto tab : tabs) + web_contents_vector.push_back(tab.contents()); + performance_manager::policies::ScheduleLoadForRestoredTabs( + std::move(web_contents_vector)); + } }
diff --git a/chrome/browser/tab_contents/form_interaction_tab_helper_unittest.cc b/chrome/browser/tab_contents/form_interaction_tab_helper_unittest.cc index 63a74eb..88bc9fe0 100644 --- a/chrome/browser/tab_contents/form_interaction_tab_helper_unittest.cc +++ b/chrome/browser/tab_contents/form_interaction_tab_helper_unittest.cc
@@ -4,6 +4,9 @@ #include "chrome/browser/tab_contents/form_interaction_tab_helper.h" +#include <memory> +#include <utility> + #include "base/bind_helpers.h" #include "base/run_loop.h" #include "base/task/post_task.h" @@ -85,7 +88,7 @@ [quit_loop = run_loop.QuitWhenIdleClosure(), page_node = performance_manager::PerformanceManager::GetPageNodeForWebContents( - contents.get())](performance_manager::Graph* graph) { + contents.get())]() { auto* frame_node = performance_manager::FrameNodeImpl::FromNode( page_node->GetMainFrameNode()); frame_node->SetIsCurrent(true); @@ -130,7 +133,7 @@ [quit_loop = run_loop.QuitWhenIdleClosure(), page_node = performance_manager::PerformanceManager::GetPageNodeForWebContents( - contents.get())](performance_manager::Graph* graph) { + contents.get())]() { auto children = page_node->GetMainFrameNode()->GetChildFrameNodes(); EXPECT_EQ(1U, children.size()); auto* frame_node =
diff --git a/chrome/browser/ui/BUILD.gn b/chrome/browser/ui/BUILD.gn index f347a4b..276d572b 100644 --- a/chrome/browser/ui/BUILD.gn +++ b/chrome/browser/ui/BUILD.gn
@@ -2405,8 +2405,12 @@ "cocoa/fullscreen/fullscreen_toolbar_animation_controller.mm", "cocoa/fullscreen/fullscreen_toolbar_controller.h", "cocoa/fullscreen/fullscreen_toolbar_controller.mm", + "cocoa/fullscreen/fullscreen_toolbar_controller_views.h", + "cocoa/fullscreen/fullscreen_toolbar_controller_views.mm", "cocoa/fullscreen/fullscreen_toolbar_mouse_tracker.h", "cocoa/fullscreen/fullscreen_toolbar_mouse_tracker.mm", + "cocoa/fullscreen/fullscreen_toolbar_visibility_lock_controller.h", + "cocoa/fullscreen/fullscreen_toolbar_visibility_lock_controller.mm", "cocoa/handoff_active_url_observer.cc", "cocoa/handoff_active_url_observer.h", "cocoa/handoff_active_url_observer_bridge.h",
diff --git a/chrome/browser/ui/android/appmenu/internal/java/src/org/chromium/chrome/browser/ui/appmenu/AppMenuDragHelper.java b/chrome/browser/ui/android/appmenu/internal/java/src/org/chromium/chrome/browser/ui/appmenu/AppMenuDragHelper.java index 6bc8e50..fc8492a 100644 --- a/chrome/browser/ui/android/appmenu/internal/java/src/org/chromium/chrome/browser/ui/appmenu/AppMenuDragHelper.java +++ b/chrome/browser/ui/android/appmenu/internal/java/src/org/chromium/chrome/browser/ui/appmenu/AppMenuDragHelper.java
@@ -238,18 +238,9 @@ * @return true whether or not a menu item is performed (executed). */ private boolean menuItemAction(int screenX, int screenY, @ItemAction int action) { - ListView listView = mAppMenu.getListView(); + if (!isReadyForMenuItemAction()) return false; - // Starting M, we have a popup menu animation that slides down. If we process dragging - // events while it's sliding, it will touch many views that are passing by user's finger, - // which is not desirable. So we only process when the first item is below the menu button. - // Unfortunately, there is no available listener for sliding animation finished. Thus the - // following nasty heuristics. - final View firstRow = listView.getChildAt(0); - if (listView.getFirstVisiblePosition() == 0 && firstRow != null && firstRow.getTop() == 0 - && getScreenVisibleRect(firstRow).bottom <= mMenuButtonScreenCenterY) { - return false; - } + ListView listView = mAppMenu.getListView(); ArrayList<View> itemViews = new ArrayList<View>(); for (int i = 0; i < listView.getChildCount(); ++i) { @@ -303,4 +294,22 @@ mScreenVisibleRect.offset(mScreenVisiblePoint[0], mScreenVisiblePoint[1]); return mScreenVisibleRect; } + + @VisibleForTesting + boolean isReadyForMenuItemAction() { + ListView listView = mAppMenu.getListView(); + + // Starting M, we have a popup menu animation that slides down. If we process dragging + // events while it's sliding, it will touch many views that are passing by user's finger, + // which is not desirable. So we only process when the first item is below the menu button. + // Unfortunately, there is no available listener for sliding animation finished. Thus the + // following nasty heuristics. + final View firstRow = listView.getChildAt(0); + if (listView.getFirstVisiblePosition() == 0 && firstRow != null && firstRow.getTop() == 0 + && getScreenVisibleRect(firstRow).bottom <= mMenuButtonScreenCenterY) { + return false; + } + + return true; + } }
diff --git a/chrome/browser/ui/android/appmenu/internal/java/src/org/chromium/chrome/browser/ui/appmenu/AppMenuTest.java b/chrome/browser/ui/android/appmenu/internal/java/src/org/chromium/chrome/browser/ui/appmenu/AppMenuTest.java index b10f45a1..5be00be0d 100644 --- a/chrome/browser/ui/android/appmenu/internal/java/src/org/chromium/chrome/browser/ui/appmenu/AppMenuTest.java +++ b/chrome/browser/ui/android/appmenu/internal/java/src/org/chromium/chrome/browser/ui/appmenu/AppMenuTest.java
@@ -629,13 +629,13 @@ buttonHelper, mTestMenuButtonDelegate.getMenuButtonView(), downMotionEvent); waitForMenuToShow(0); - Assert.assertTrue("Menu should be showing", mAppMenuHandler.isAppMenuShowing()); + CriteriaHelper.pollUiThread( + () -> mAppMenuHandler.getAppMenuDragHelper().isReadyForMenuItemAction()); - View firstItem = mAppMenuHandler.getAppMenu().getListView().getChildAt(0); - Rect firstItemScreenRect = - mAppMenuHandler.getAppMenuDragHelper().getScreenVisibleRect(firstItem); - int eventX = firstItemScreenRect.left + (firstItemScreenRect.right / 2); - int eventY = firstItemScreenRect.top + (firstItemScreenRect.bottom / 2); + Rect firstItemScreenRect = getVisibleScreenRectAtPosition(0); + int eventX = firstItemScreenRect.left + (firstItemScreenRect.width() / 2); + int eventY = firstItemScreenRect.top + (firstItemScreenRect.height() / 2); + MotionEvent dragMotionEvent = MotionEvent.obtain(0, 100, MotionEvent.ACTION_MOVE, eventX, eventY, 0); sendMotionEventToButtonHelper( @@ -645,8 +645,9 @@ MotionEvent.obtain(0, 150, MotionEvent.ACTION_UP, eventX, eventY, 0); sendMotionEventToButtonHelper( buttonHelper, mTestMenuButtonDelegate.getMenuButtonView(), upMotionEvent); - - mDelegate.itemSelectedCallbackHelper.waitForCallback(0); + mDelegate.itemSelectedCallbackHelper.waitForCallback( + "itemRect: " + firstItemScreenRect + " eventX: " + eventX + " eventY: " + eventY, + 0); Assert.assertEquals("Incorrect id for last selected item.", R.id.menu_item_one, mDelegate.lastSelectedItemId); } @@ -739,6 +740,12 @@ return viewRect; } + private Rect getVisibleScreenRectAtPosition(int position) throws ExecutionException { + View view = getViewAtPosition(position); + return TestThreadUtils.runOnUiThreadBlocking( + () -> mAppMenuHandler.getAppMenuDragHelper().getScreenVisibleRect(view)); + } + private void sendMotionEventToButtonHelper(AppMenuButtonHelperImpl helper, View view, MotionEvent event) throws ExecutionException { TestThreadUtils.runOnUiThreadBlocking(() -> helper.onTouch(view, event));
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 2c8c24de..00eed9dc 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
@@ -155,9 +155,9 @@ <translation id="2100273922101894616">ورود به سیستم خودکار</translation> <translation id="2100314319871056947">بخشهای کوچکتری از نوشتار را به اشتراک بگذارید</translation> <translation id="2107397443965016585">قبل از اجازه به سایتها برای پخش محتوای محافظتشده سؤال شود (توصیه میشود)</translation> -<translation id="2109711654079915747">بدون اینکه صفحه را ترک کنید، درباره موضوعات در وبسایتها اطلاعاتی کسب کنید. «لمس برای جستجو»، کلمه و زمینه اطراف آن را برای «جستجوی Google» ارسال میکند و معانی، تصاویر، نتایج جستجو و سایر جزئیات را بازمیگرداند. +<translation id="2109711654079915747">بدون اینکه صفحه را ترک کنید، درباره موضوعات در وبسایتها اطلاعاتی کسب کنید. «لمس برای جستجو» کلمه و بافت پیرامون آن را برای «جستجوی Google» ارسال میکند و معانی، تصاویر، نتایج جستجو و سایر جزئیات را بازمیگرداند. -برای جستجو، کافی است روی کلمهای ضربه بزنید. برای پالایش جستجو، با لمس کردن و نگه داشتنْ کلمههای بیشتر یا کمتری را انتخاب کنید. برای ویرایش جستجو، پانل را باز کنید، روی نماد ضربه بزنید تا در برگه جدیدی باز شود و تغییرات را در جعبه جستجو وارد کنید.</translation> +برای جستجو، کافی است روی کلمهای ضربه بزنید. برای پالایش جستجو، با لمس کردن و نگه داشتنْ کلمههای بیشتر یا کمتری را انتخاب کنید. برای ویرایش جستجو، پانل را باز کنید، روی نماد ضربه بزنید تا در برگه جدیدی باز شود و تغییرات را در مربع جستجو وارد کنید.</translation> <translation id="2111511281910874386">رفتن به صفحه</translation> <translation id="2122601567107267586">باز کردن برنامه امکانپذیر نیست</translation> <translation id="2126426811489709554">ارائه توسط Chrome</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 6d301860..9814784f 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
@@ -5,6 +5,7 @@ <translation id="1028699632127661925"><ph name="DEVICE_NAME" /> पर भेजा जा रहा है...</translation> <translation id="1036727731225946849"><ph name="WEBAPK_NAME" /> जोड़ा जा रहा है...</translation> <translation id="1041308826830691739">वेबसाइटों से</translation> +<translation id="1044891598689252897">साइटें सामान्य रूप से काम करेंगी</translation> <translation id="1049743911850919806">गुप्त</translation> <translation id="10614374240317010">कभी नहीं सेव किया गया</translation> <translation id="1067922213147265141">Google की दूसरी सेवाएंं</translation> @@ -72,6 +73,7 @@ <translation id="1450753235335490080"><ph name="CONTENT_TYPE" /> शेयर नहीं किया जा सकता</translation> <translation id="1477626028522505441">सर्वर संबधी समस्याओं के कारण <ph name="FILE_NAME" /> डाउनलोड विफल रहा.</translation> <translation id="1506061864768559482">सर्च इंजन</translation> +<translation id="1509960214886564027">शायद कई साइटों पर सुविधाएं ठीक से काम न करें</translation> <translation id="1513352483775369820">बुकमार्क और वेब इतिहास</translation> <translation id="1513858653616922153">पासवर्ड मिटाएं</translation> <translation id="1521774566618522728">आज सक्रिय है</translation> @@ -235,6 +237,7 @@ <translation id="2647434099613338025">भाषा जोड़ें</translation> <translation id="2650751991977523696">फ़ाइल दोबारा डाउनलोड करें?</translation> <translation id="2651091186440431324">{FILE_COUNT,plural, =1{# ऑडियो फ़ाइल}one{# ऑडियो फ़ाइलें}other{# ऑडियो फ़ाइलें}}</translation> +<translation id="2687403674020088961">सभी कुकी ब्लॉक करें (हम ऐसा करने का सुझाव नहीं देते)</translation> <translation id="2707726405694321444">पेज रीफ्रेश करें</translation> <translation id="2709516037105925701">ऑटोमैटिक भरना</translation> <translation id="2717722538473713889">ईमेल पते</translation> @@ -340,6 +343,7 @@ <translation id="3478363558367712427">आप अपना सर्च इंजन चुन सकते हैं</translation> <translation id="3492207499832628349">नया गुप्त टैब</translation> <translation id="3493531032208478708">सुझाई गई सामग्री के बारे में <ph name="BEGIN_LINK" />ज़्यादा जानें<ph name="END_LINK" /></translation> +<translation id="3499246418971111862">chrome_qrcode_<ph name="CURRENT_TIMESTAMP_MS" /></translation> <translation id="3513704683820682405">ऑगमेंटेड रिएलिटी (AR)</translation> <translation id="3518985090088779359">स्वीकार करें और जारी रखें</translation> <translation id="3522247891732774234">अपडेट उपलब्ध है. ज़्यादा विकल्प</translation> @@ -355,6 +359,7 @@ <translation id="358794129225322306">किसी साइट को अपने आप एक से ज़्यादा फ़ाइलें लोड करने की मंज़ूरी दें.</translation> <translation id="3590487821116122040">ऐसी 'साइट मेमोरी' जो Chrome के हिसाब से ज़रूरी नहीं है (जैसे कि ऐसी साइट जिनमें कोई भी सेटिंग नहीं सेव की गई है या जिन पर आप अक्सर नहीं जाते हैं)</translation> <translation id="3594780231884063836">वीडियो म्यूट करें</translation> +<translation id="3596414637720633074">गुप्त मोड के दौरान तीसरे पक्ष की कुकी को ब्लॉक करें</translation> <translation id="3599863153486145794">साइन इन किए हुए सभी डिवाइसों से इतिहास साफ़ कर देता है. आपके Google खाते में <ph name="BEGIN_LINK" />myactivity.google.com<ph name="END_LINK" /> पर अन्य प्रकार के ब्राउज़िंग इतिहास हो सकते हैं.</translation> <translation id="3600792891314830896">आवाज़ चलाने वाली साइटों की आवाज़ बंद करें</translation> <translation id="3616113530831147358">ऑडियो</translation> @@ -942,6 +947,7 @@ <translation id="79859296434321399">'बढ़ी हुई वास्तविकता' की सामग्री देखने के लिए, ARCore इंस्टॉल करें</translation> <translation id="7986741934819883144">कोई संपर्क चुनें</translation> <translation id="7987073022710626672">Chrome सेवा की शर्तें</translation> +<translation id="7993619969781047893">शायद कुछ साइटों पर सुविधाएं ठीक से काम न करें</translation> <translation id="7998918019931843664">बंद टैब फिर से खोलें</translation> <translation id="7999064672810608036">क्या आप वाकई कुकी सहित इस वेबसाइट का सभी स्थानीय डेटा साफ़ करना और इसकी सभी अनुमतियों को रीसेट करना चाहते हैं?</translation> <translation id="8004582292198964060">ब्राउज़र</translation> @@ -1076,6 +1082,7 @@ <translation id="8965591936373831584">डाउनलोड बाकी है</translation> <translation id="8970887620466824814">कुछ गड़बड़ी हुई.</translation> <translation id="8972098258593396643">डिफ़ॉल्ट फ़ोल्डर में डाउनलोड करें?</translation> +<translation id="8988028529677883095">फ़ोन को सुरक्षा कुंजी की तरह इस्तेमाल करें</translation> <translation id="8993760627012879038">गुप्त मोड में नया टैब खोलें</translation> <translation id="8998729206196772491">आप <ph name="MANAGED_DOMAIN" /> से प्रबंधित खाते में साइन इन कर रहे हैं और उसके एडमिन को अपने Chrome डेटा पर नियंत्रण दे रहे हैं. आपका डेटा इस खाते से स्थायी रूप से जुड़ जाएगा. Chrome से साइन आउट करने से आपका डेटा इस डिवाइस से मिट जाएगा, लेकिन वह आपके Google खाते में बना रहेगा.</translation> <translation id="9019902583201351841">आपके अभिभावकों द्वारा प्रबंधित</translation>
diff --git a/chrome/browser/ui/ash/overview_window_drag_interactive_uitest.cc b/chrome/browser/ui/ash/overview_window_drag_interactive_uitest.cc index 8767add..f17a3d8 100644 --- a/chrome/browser/ui/ash/overview_window_drag_interactive_uitest.cc +++ b/chrome/browser/ui/ash/overview_window_drag_interactive_uitest.cc
@@ -144,9 +144,7 @@ generator->Wait(); } -// The test is flaky because close notification is not the right singal. -// crbug.com/953355 -IN_PROC_BROWSER_TEST_P(OverviewWindowDragTest, DISABLED_DragToClose) { +IN_PROC_BROWSER_TEST_P(OverviewWindowDragTest, DragToClose) { BrowserView* browser_view = BrowserView::GetBrowserViewForBrowser(browser()); aura::Window* browser_window = browser_view->GetWidget()->GetNativeWindow(); ui_controls::SendKeyPress(browser_window, ui::VKEY_MEDIA_LAUNCH_APP1, @@ -164,19 +162,13 @@ auto generator = ui_test_utils::DragEventGenerator::CreateForTouch( std::make_unique<ui_test_utils::InterpolatedProducer>( start_point, end_point, base::TimeDelta::FromMilliseconds(500), - gfx::Tween::EASE_IN_2)); + gfx::Tween::FAST_OUT_LINEAR_IN)); generator->Wait(); ui_test_utils::WaitForBrowserToClose(chrome::FindLastActive()); } -// Disable for ChromeOS crbug.com/1021005. -#if defined(OS_CHROMEOS) -#define MAYBE_DragToSnap DISABLED_DragToSnap -#else -#define MAYBE_DragToSnap DragToSnap -#endif -IN_PROC_BROWSER_TEST_P(OverviewWindowDragTest, MAYBE_DragToSnap) { +IN_PROC_BROWSER_TEST_P(OverviewWindowDragTest, DragToSnap) { BrowserView* browser_view = BrowserView::GetBrowserViewForBrowser(browser()); aura::Window* browser_window = browser_view->GetWidget()->GetNativeWindow(); ui_controls::SendKeyPress(browser_window, ui::VKEY_MEDIA_LAUNCH_APP1,
diff --git a/chrome/browser/ui/cocoa/fullscreen/fullscreen_menubar_tracker.mm b/chrome/browser/ui/cocoa/fullscreen/fullscreen_menubar_tracker.mm index b57c80f..6c7e5dae 100644 --- a/chrome/browser/ui/cocoa/fullscreen/fullscreen_menubar_tracker.mm +++ b/chrome/browser/ui/cocoa/fullscreen/fullscreen_menubar_tracker.mm
@@ -10,6 +10,7 @@ #include "base/mac/mac_util.h" #include "base/stl_util.h" #import "chrome/browser/ui/cocoa/fullscreen/fullscreen_toolbar_controller.h" +#import "chrome/browser/ui/cocoa/fullscreen/fullscreen_toolbar_visibility_lock_controller.h" #include "ui/base/cocoa/appkit_utils.h" namespace { @@ -17,8 +18,6 @@ // The event kind value for a undocumented menubar show/hide Carbon event. const CGFloat kMenuBarRevealEventKind = 2004; -// TODO(https://crbug.com/1063417): Replace this with something that works -// on modern macOS versions. OSStatus MenuBarRevealHandler(EventHandlerCallRef handler, EventRef event, void* context) { @@ -51,6 +50,7 @@ @interface FullscreenMenubarTracker () { FullscreenToolbarController* _controller; // weak + id<FullscreenToolbarContextDelegate> _delegate; // weak // A Carbon event handler that tracks the revealed fraction of the menubar. EventHandlerRef _menubarTrackingHandler; @@ -70,6 +70,7 @@ (FullscreenToolbarController*)controller { if ((self = [super init])) { _controller = controller; + _delegate = [controller delegate]; _state = FullscreenMenubarState::HIDDEN; // Install the Carbon event handler for the menubar show, hide and @@ -111,8 +112,8 @@ } - (void)setMenubarProgress:(CGFloat)progress { - if (![_controller isInAnyFullscreenMode] || - [_controller isFullscreenTransitionInProgress]) { + if (![_delegate isInAnyFullscreenMode] || + [_delegate isFullscreenTransitionInProgress]) { return; } @@ -122,7 +123,7 @@ return; // Ignore the menubarFraction changes if the Space is inactive. - if (![[_controller window] isOnActiveSpace]) + if (![[_delegate window] isOnActiveSpace]) return; if (ui::IsCGFloatEqual(progress, 1.0)) @@ -136,6 +137,7 @@ _menubarFraction = progress; [_controller layoutToolbar]; + // AppKit drives the menu bar animation from a nested run loop. Flush // explicitly so that Chrome's UI updates during the animation. [CATransaction flush]; @@ -143,12 +145,14 @@ - (BOOL)isMouseOnScreen { return NSMouseInRect([NSEvent mouseLocation], - [[_controller window] screen].frame, false); + [[_delegate window] screen].frame, false); } - (void)activeSpaceDidChange:(NSNotification*)notification { _menubarFraction = 0.0; _state = FullscreenMenubarState::HIDDEN; + [[_controller visibilityLockController] releaseToolbarVisibilityForOwner:self + withAnimation:NO]; [_controller layoutToolbar]; }
diff --git a/chrome/browser/ui/cocoa/fullscreen/fullscreen_toolbar_controller.h b/chrome/browser/ui/cocoa/fullscreen/fullscreen_toolbar_controller.h index 460386d2..e9438c5 100644 --- a/chrome/browser/ui/cocoa/fullscreen/fullscreen_toolbar_controller.h +++ b/chrome/browser/ui/cocoa/fullscreen/fullscreen_toolbar_controller.h
@@ -8,9 +8,13 @@ #import <Cocoa/Cocoa.h> #include "base/mac/mac_util.h" +#include "base/mac/scoped_nsobject.h" -class BrowserView; +@class BrowserWindowController; @class FullscreenMenubarTracker; +class FullscreenToolbarAnimationController; +@class FullscreenToolbarMouseTracker; +@class FullscreenToolbarVisibilityLockController; namespace content { class WebContents; @@ -49,11 +53,36 @@ // window. This class sets up the animation manager, visibility locks, menubar // tracking, and mouse tracking associated with the toolbar. It receives input // from these objects to update and recompute the fullscreen toolbar laytout. -@interface FullscreenToolbarController - : NSObject <FullscreenToolbarContextDelegate> +@interface FullscreenToolbarController : NSObject { + @private + // Whether or not we are in fullscreen mode. + BOOL _inFullscreenMode; + + // Updates the fullscreen toolbar layout for changes in the menubar. This + // object is only set when the browser is in fullscreen mode. + base::scoped_nsobject<FullscreenMenubarTracker> _menubarTracker; + + // Maintains the toolbar's visibility locks for the TOOLBAR_HIDDEN style. + base::scoped_nsobject<FullscreenToolbarVisibilityLockController> + _visibilityLockController; + + // Manages the toolbar animations for the TOOLBAR_HIDDEN style. + std::unique_ptr<FullscreenToolbarAnimationController> _animationController; + + // When the menu bar and toolbar are visible, creates a tracking area which + // is used to keep them visible until the mouse moves far enough away from + // them. Only set when the browser is in fullscreen mode. + base::scoped_nsobject<FullscreenToolbarMouseTracker> _mouseTracker; + + // The style of the fullscreen toolbar. + FullscreenToolbarStyle _toolbarStyle; + + // Delegate for query fullscreen status and context. Weak. + id<FullscreenToolbarContextDelegate> _delegate; +} // Designated initializer. -- (id)initWithBrowserView:(BrowserView*)browserView; +- (id)initWithDelegate:(id<FullscreenToolbarContextDelegate>)delegate; // Informs the controller that the browser has entered or exited fullscreen // mode. |-enterFullscreenMode| should be called when the window is about to @@ -90,9 +119,31 @@ // Returns the object in |menubarTracker_|; - (FullscreenMenubarTracker*)menubarTracker; +// Returns the object in |visibilityLockController_|; +- (FullscreenToolbarVisibilityLockController*)visibilityLockController; + // Sets the value of |toolbarStyle_|. - (void)setToolbarStyle:(FullscreenToolbarStyle)style; +- (id<FullscreenToolbarContextDelegate>)delegate; + +@end + +// Private methods exposed for testing. +@interface FullscreenToolbarController (ExposedForTesting) + +// Returns |animationController_|. +- (FullscreenToolbarAnimationController*)animationController; + +// Allows tests to set a mock FullscreenMenubarTracker object. +- (void)setMenubarTracker:(FullscreenMenubarTracker*)tracker; + +// Allows tests to set a mock FullscreenToolbarMouseTracker object. +- (void)setMouseTracker:(FullscreenToolbarMouseTracker*)tracker; + +// Sets the value of |inFullscreenMode_|. +- (void)setTestFullscreenMode:(BOOL)isInFullscreen; + @end #endif // CHROME_BROWSER_UI_COCOA_FULLSCREEN_FULLSCREEN_TOOLBAR_CONTROLLER_H_
diff --git a/chrome/browser/ui/cocoa/fullscreen/fullscreen_toolbar_controller.mm b/chrome/browser/ui/cocoa/fullscreen/fullscreen_toolbar_controller.mm index fe1fb04..d7a1174 100644 --- a/chrome/browser/ui/cocoa/fullscreen/fullscreen_toolbar_controller.mm +++ b/chrome/browser/ui/cocoa/fullscreen/fullscreen_toolbar_controller.mm
@@ -6,46 +6,28 @@ #include "base/command_line.h" #include "base/feature_list.h" -#include "base/mac/scoped_nsobject.h" #include "chrome/browser/profiles/profile.h" #import "chrome/browser/ui/cocoa/fullscreen/fullscreen_menubar_tracker.h" #import "chrome/browser/ui/cocoa/fullscreen/fullscreen_toolbar_animation_controller.h" #import "chrome/browser/ui/cocoa/fullscreen/fullscreen_toolbar_mouse_tracker.h" -#import "chrome/browser/ui/views/frame/browser_view.h" +#import "chrome/browser/ui/cocoa/fullscreen/fullscreen_toolbar_visibility_lock_controller.h" #include "chrome/common/chrome_features.h" #include "chrome/common/chrome_switches.h" #include "chrome/common/pref_names.h" -#include "components/remote_cocoa/app_shim/native_widget_ns_window_bridge.h" -#include "ui/views/cocoa/native_widget_mac_ns_window_host.h" -@implementation FullscreenToolbarController { - // Whether or not we are in fullscreen mode. - BOOL _inFullscreenMode; +@implementation FullscreenToolbarController - // Updates the fullscreen toolbar layout for changes in the menubar. This - // object is only set when the browser is in fullscreen mode. - base::scoped_nsobject<FullscreenMenubarTracker> _menubarTracker; - - // Manages the toolbar animations for the TOOLBAR_HIDDEN style. - std::unique_ptr<FullscreenToolbarAnimationController> _animationController; - - // When the menu bar and toolbar are visible, creates a tracking area which - // is used to keep them visible until the mouse moves far enough away from - // them. Only set when the browser is in fullscreen mode. - base::scoped_nsobject<FullscreenToolbarMouseTracker> _mouseTracker; - - // The style of the fullscreen toolbar. - FullscreenToolbarStyle _toolbarStyle; - - BrowserView* _browserView; // weak -} - -- (id)initWithBrowserView:(BrowserView*)browserView { +- (id)initWithDelegate:(id<FullscreenToolbarContextDelegate>)delegate { if ((self = [super init])) { - _browserView = browserView; _animationController = std::make_unique<FullscreenToolbarAnimationController>(self); + _visibilityLockController.reset( + [[FullscreenToolbarVisibilityLockController alloc] + initWithFullscreenToolbarController:self + animationController:_animationController.get()]); } + + _delegate = delegate; return self; } @@ -119,7 +101,9 @@ if (_toolbarStyle == FullscreenToolbarStyle::TOOLBAR_NONE) return NO; - return [_menubarTracker state] == FullscreenMenubarState::SHOWN; + FullscreenMenubarState menubarState = [_menubarTracker state]; + return menubarState == FullscreenMenubarState::SHOWN || + [_visibilityLockController isToolbarVisibilityLocked]; } - (void)updateToolbarFrame:(NSRect)frame { @@ -128,7 +112,6 @@ } - (void)layoutToolbar { - _browserView->Layout(); _animationController->ToolbarDidUpdate(); [_mouseTracker updateTrackingArea]; } @@ -141,26 +124,36 @@ return _menubarTracker.get(); } +- (FullscreenToolbarVisibilityLockController*)visibilityLockController { + return _visibilityLockController.get(); +} + - (void)setToolbarStyle:(FullscreenToolbarStyle)style { _toolbarStyle = style; } -- (BOOL)isInAnyFullscreenMode { - return _browserView->IsFullscreen(); +- (id<FullscreenToolbarContextDelegate>)delegate { + return _delegate; } -- (BOOL)isFullscreenTransitionInProgress { - auto* host = - views::NativeWidgetMacNSWindowHost::GetFromNativeWindow([self window]); - if (auto* bridge = host->GetInProcessNSWindowBridge()) - return bridge->in_fullscreen_transition(); - DLOG(ERROR) << "TODO(https://crbug.com/915110): Support fullscreen " - "transitions for RemoteMacViews PWA windows."; - return false; +@end + +@implementation FullscreenToolbarController (ExposedForTesting) + +- (FullscreenToolbarAnimationController*)animationController { + return _animationController.get(); } -- (NSWindow*)window { - return _browserView->GetNativeWindow().GetNativeNSWindow(); +- (void)setMenubarTracker:(FullscreenMenubarTracker*)tracker { + _menubarTracker.reset([tracker retain]); +} + +- (void)setMouseTracker:(FullscreenToolbarMouseTracker*)tracker { + _mouseTracker.reset([tracker retain]); +} + +- (void)setTestFullscreenMode:(BOOL)isInFullscreen { + _inFullscreenMode = isInFullscreen; } @end
diff --git a/chrome/browser/ui/cocoa/fullscreen/fullscreen_toolbar_controller_views.h b/chrome/browser/ui/cocoa/fullscreen/fullscreen_toolbar_controller_views.h new file mode 100644 index 0000000..1317bb2 --- /dev/null +++ b/chrome/browser/ui/cocoa/fullscreen/fullscreen_toolbar_controller_views.h
@@ -0,0 +1,35 @@ +// Copyright 2018 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_COCOA_FULLSCREEN_FULLSCREEN_TOOLBAR_CONTROLLER_VIEWS_H_ +#define CHROME_BROWSER_UI_COCOA_FULLSCREEN_FULLSCREEN_TOOLBAR_CONTROLLER_VIEWS_H_ + +#import "chrome/browser/ui/cocoa/fullscreen/fullscreen_toolbar_controller.h" + +#include "base/mac/scoped_nsobject.h" + +@class BridgedContentView; +class BrowserView; + +// Provides a controller to the fullscreen toolbar for a single Views based +// browser window. +@interface FullscreenToolbarControllerViews + : FullscreenToolbarController<FullscreenToolbarContextDelegate> { + @private + BrowserView* _browserView; // weak + + // Since dealloc() may need to access the native view, we retain it here. + base::scoped_nsobject<BridgedContentView> _ns_view; +} + +// Designated initializer. +- (id)initWithBrowserView:(BrowserView*)browserView; + +// Updates the toolbar by updating the layout. +- (void)layoutToolbar; + +@end + +#endif // +CHROME_BROWSER_UI_COCOA_FULLSCREEN_FULLSCREEN_TOOLBAR_CONTROLLER_VIEWS_H_
diff --git a/chrome/browser/ui/cocoa/fullscreen/fullscreen_toolbar_controller_views.mm b/chrome/browser/ui/cocoa/fullscreen/fullscreen_toolbar_controller_views.mm new file mode 100644 index 0000000..5064150 --- /dev/null +++ b/chrome/browser/ui/cocoa/fullscreen/fullscreen_toolbar_controller_views.mm
@@ -0,0 +1,54 @@ +// Copyright 2018 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 "chrome/browser/ui/cocoa/fullscreen/fullscreen_toolbar_controller_views.h" + +#include "chrome/browser/ui/views/frame/browser_view.h" +#include "components/remote_cocoa/app_shim/native_widget_ns_window_bridge.h" +#include "ui/views/cocoa/native_widget_mac_ns_window_host.h" + +@implementation FullscreenToolbarControllerViews + +- (id)initWithBrowserView:(BrowserView*)browserView { + if ((self = [super initWithDelegate:self])) + _browserView = browserView; + + return self; +} + +- (void)layoutToolbar { + _browserView->Layout(); + [super layoutToolbar]; +} + +- (BOOL)isInAnyFullscreenMode { + return _browserView->IsFullscreen(); +} + +- (BOOL)isFullscreenTransitionInProgress { + auto* host = + views::NativeWidgetMacNSWindowHost::GetFromNativeWindow([self window]); + if (auto* bridge = host->GetInProcessNSWindowBridge()) + return bridge->in_fullscreen_transition(); + DLOG(ERROR) << "TODO(https://crbug.com/915110): Support fullscreen " + "transitions for RemoteMacViews PWA windows."; + return false; +} + +- (NSWindow*)window { + NSWindow* ns_window = _browserView->GetNativeWindow().GetNativeNSWindow(); + if (!_ns_view) { + auto* host = + views::NativeWidgetMacNSWindowHost::GetFromNativeWindow(ns_window); + if (host) { + if (auto* bridge = host->GetInProcessNSWindowBridge()) + _ns_view.reset([bridge->ns_view() retain]); + else + DLOG(ERROR) << "Cannot retain remote NSView."; + } + } + return ns_window; +} + +@end
diff --git a/chrome/browser/ui/cocoa/fullscreen/fullscreen_toolbar_mouse_tracker.mm b/chrome/browser/ui/cocoa/fullscreen/fullscreen_toolbar_mouse_tracker.mm index 4573fe8..726b453 100644 --- a/chrome/browser/ui/cocoa/fullscreen/fullscreen_toolbar_mouse_tracker.mm +++ b/chrome/browser/ui/cocoa/fullscreen/fullscreen_toolbar_mouse_tracker.mm
@@ -70,7 +70,7 @@ [self removeTrackingArea]; } - _contentView = [[_controller window] contentView]; + _contentView = [[[_controller delegate] window] contentView]; _trackingArea.reset([[CrTrackingArea alloc] initWithRect:_trackingAreaFrame @@ -82,7 +82,7 @@ } - (void)updateToolbarFrame:(NSRect)frame { - NSRect contentBounds = [[[_controller window] contentView] bounds]; + NSRect contentBounds = [[[[_controller delegate] window] contentView] bounds]; _trackingAreaFrame = frame; _trackingAreaFrame.origin.y -= kTrackingAreaAdditionalThreshold; _trackingAreaFrame.size.height =
diff --git a/chrome/browser/ui/cocoa/fullscreen/fullscreen_toolbar_visibility_lock_controller.h b/chrome/browser/ui/cocoa/fullscreen/fullscreen_toolbar_visibility_lock_controller.h new file mode 100644 index 0000000..510ae183 --- /dev/null +++ b/chrome/browser/ui/cocoa/fullscreen/fullscreen_toolbar_visibility_lock_controller.h
@@ -0,0 +1,38 @@ +// 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 CHROME_BROWSER_UI_COCOA_FULLSCREEN_FULLSCREEN_TOOLBAR_VISIBILITY_LOCK_CONTROLLER_H_ +#define CHROME_BROWSER_UI_COCOA_FULLSCREEN_FULLSCREEN_TOOLBAR_VISIBILITY_LOCK_CONTROLLER_H_ + +#import <Cocoa/Cocoa.h> + +class FullscreenToolbarAnimationController; +@class FullscreenToolbarController; + +// Various UI elements/events may want to ensure that the toolbar is visible in +// fullscreen mode. Whenever an object requires toolbar visibility, it locks +// it. When it no longer requires it, it releases it. This class manages the +// toolbar visibility locks. +@interface FullscreenToolbarVisibilityLockController : NSObject + +// The designated initializer. +- (instancetype) +initWithFullscreenToolbarController:(FullscreenToolbarController*)controller + animationController: + (FullscreenToolbarAnimationController*)animationController; + +// Returns true if the toolbar visibility is locked. +- (BOOL)isToolbarVisibilityLocked; + +// Returns true if the toolbar visibility is locked by |owner|. +- (BOOL)isToolbarVisibilityLockedForOwner:(id)owner; + +// Methods for locking and releasing the toolbar visibility. If |animate| is +// true, the toolbar will animate in/out. +- (void)lockToolbarVisibilityForOwner:(id)owner withAnimation:(BOOL)animate; +- (void)releaseToolbarVisibilityForOwner:(id)owner withAnimation:(BOOL)animate; + +@end + +#endif // CHROME_BROWSER_UI_COCOA_FULLSCREEN_FULLSCREEN_TOOLBAR_VISIBILITY_LOCK_CONTROLLER_H_
diff --git a/chrome/browser/ui/cocoa/fullscreen/fullscreen_toolbar_visibility_lock_controller.mm b/chrome/browser/ui/cocoa/fullscreen/fullscreen_toolbar_visibility_lock_controller.mm new file mode 100644 index 0000000..5b969a9 --- /dev/null +++ b/chrome/browser/ui/cocoa/fullscreen/fullscreen_toolbar_visibility_lock_controller.mm
@@ -0,0 +1,75 @@ +// 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. + +#import "chrome/browser/ui/cocoa/fullscreen/fullscreen_toolbar_visibility_lock_controller.h" + +#include "base/mac/scoped_nsobject.h" + +#import "chrome/browser/ui/cocoa/fullscreen/fullscreen_toolbar_animation_controller.h" +#import "chrome/browser/ui/cocoa/fullscreen/fullscreen_toolbar_controller.h" + +@interface FullscreenToolbarVisibilityLockController () { + // Stores the objects that are locking the toolbar visibility. + base::scoped_nsobject<NSMutableSet> _visibilityLocks; + + // Our owner. + FullscreenToolbarController* _owner; // weak + + // The object managing the fullscreen toolbar's animations. + FullscreenToolbarAnimationController* _animationController; // weak +} + +@end + +@implementation FullscreenToolbarVisibilityLockController + +- (instancetype) +initWithFullscreenToolbarController:(FullscreenToolbarController*)owner + animationController: + (FullscreenToolbarAnimationController*)animationController { + if ((self = [super init])) { + _animationController = animationController; + _owner = owner; + + // Create the toolbar visibility lock set; 10 is arbitrary, but should + // hopefully be big enough to hold all locks that'll ever be needed. + _visibilityLocks.reset([[NSMutableSet setWithCapacity:10] retain]); + } + + return self; +} + +- (BOOL)isToolbarVisibilityLocked { + return [_visibilityLocks count]; +} + +- (BOOL)isToolbarVisibilityLockedForOwner:(id)owner { + return [_visibilityLocks containsObject:owner]; +} + +- (void)lockToolbarVisibilityForOwner:(id)owner withAnimation:(BOOL)animate { + if ([self isToolbarVisibilityLockedForOwner:owner]) + return; + + [_visibilityLocks addObject:owner]; + + if (animate) + _animationController->AnimateToolbarIn(); + else + [_owner layoutToolbar]; +} + +- (void)releaseToolbarVisibilityForOwner:(id)owner withAnimation:(BOOL)animate { + if (![self isToolbarVisibilityLockedForOwner:owner]) + return; + + [_visibilityLocks removeObject:owner]; + + if (animate) + _animationController->AnimateToolbarOutIfPossible(); + else + [_owner layoutToolbar]; +} + +@end
diff --git a/chrome/browser/ui/gtk/gtk_ui.cc b/chrome/browser/ui/gtk/gtk_ui.cc index ba30b1ca..5b57ded 100644 --- a/chrome/browser/ui/gtk/gtk_ui.cc +++ b/chrome/browser/ui/gtk/gtk_ui.cc
@@ -1096,12 +1096,7 @@ gint scale = gtk_widget_get_scale_factor(fake_window_); DCHECK_GT(scale, 0); gdouble resolution = gdk_screen_get_resolution(screen); - const float scale_factor = - resolution <= 0 ? scale : resolution * scale / kDefaultDPI; - - // Blacklist scaling factors <120% (crbug.com/484400) and round - // to 1 decimal to prevent rendering problems (crbug.com/485183). - return scale_factor < 1.2f ? 1.0f : roundf(scale_factor * 10) / 10; + return resolution <= 0 ? scale : resolution * scale / kDefaultDPI; } void GtkUi::UpdateDeviceScaleFactor() {
diff --git a/chrome/browser/ui/hats/hats_survey_status_checker.cc b/chrome/browser/ui/hats/hats_survey_status_checker.cc index a852048..328080d 100644 --- a/chrome/browser/ui/hats/hats_survey_status_checker.cc +++ b/chrome/browser/ui/hats/hats_survey_status_checker.cc
@@ -69,8 +69,8 @@ // Send the request and check the response header. auto request = std::make_unique<network::ResourceRequest>(); - std::string url(HatsSurveyURL()); - request->url = GURL(url + site_id); + std::string url_without_id(HatsSurveyURLWithoutId()); + request->url = GURL(url_without_id + site_id); // Send stored cookie along with the request, but don't save any cookie. request->attach_same_site_cookies = true; request->load_flags = net::LOAD_BYPASS_CACHE | net::LOAD_DISABLE_CACHE | @@ -119,8 +119,8 @@ HatsSurveyStatusChecker::HatsSurveyStatusChecker() = default; -std::string HatsSurveyStatusChecker::HatsSurveyURL() { - std::string url("https://www.google.com"); +std::string HatsSurveyStatusChecker::HatsSurveyURLWithoutId() { + std::string url("https://www.google.com/"); return url + kHatsSurveyDataPath; }
diff --git a/chrome/browser/ui/hats/hats_survey_status_checker.h b/chrome/browser/ui/hats/hats_survey_status_checker.h index 33020a40..4578cc2 100644 --- a/chrome/browser/ui/hats/hats_survey_status_checker.h +++ b/chrome/browser/ui/hats/hats_survey_status_checker.h
@@ -54,7 +54,7 @@ HatsSurveyStatusChecker(); // Overridden only by tests. - virtual std::string HatsSurveyURL(); + virtual std::string HatsSurveyURLWithoutId(); virtual int SurveyCheckTimeoutSecs(); private:
diff --git a/chrome/browser/ui/hats/hats_survey_status_checker_browsertest.cc b/chrome/browser/ui/hats/hats_survey_status_checker_browsertest.cc index 5def929d..aeb1659 100644 --- a/chrome/browser/ui/hats/hats_survey_status_checker_browsertest.cc +++ b/chrome/browser/ui/hats/hats_survey_status_checker_browsertest.cc
@@ -24,20 +24,34 @@ namespace { -class FakeHatsSurveyStatusChecker : public HatsSurveyStatusChecker { +class TestHatsSurveyStatusChecker : public HatsSurveyStatusChecker { + public: + explicit TestHatsSurveyStatusChecker(Profile* profile) + : HatsSurveyStatusChecker(profile) {} + TestHatsSurveyStatusChecker(const TestHatsSurveyStatusChecker&) = delete; + TestHatsSurveyStatusChecker& operator=(const TestHatsSurveyStatusChecker&) = + delete; + ~TestHatsSurveyStatusChecker() override = default; + + std::string HatsSurveyURLWithoutId() override { + return HatsSurveyStatusChecker::HatsSurveyURLWithoutId(); + } +}; + +class FakeHatsSurveyStatusChecker : public TestHatsSurveyStatusChecker { public: static constexpr int kTimeoutSecs = 1; FakeHatsSurveyStatusChecker(Profile* profile, const std::string& url) - : HatsSurveyStatusChecker(profile), url_(url) {} + : TestHatsSurveyStatusChecker(profile), url_(url) {} FakeHatsSurveyStatusChecker(const FakeHatsSurveyStatusChecker&) = delete; - ~FakeHatsSurveyStatusChecker() override = default; - FakeHatsSurveyStatusChecker& operator=(const FakeHatsSurveyStatusChecker&) = delete; + ~FakeHatsSurveyStatusChecker() override = default; - protected: - std::string HatsSurveyURL() override { return url_ + kHatsSurveyDataPath; } + std::string HatsSurveyURLWithoutId() override { + return url_ + kHatsSurveyDataPath; + } int SurveyCheckTimeoutSecs() override { return kTimeoutSecs; } private: @@ -54,10 +68,9 @@ HatsSurveyStatusCheckerBrowserTestBase() = default; HatsSurveyStatusCheckerBrowserTestBase( const HatsSurveyStatusCheckerBrowserTestBase&) = delete; - ~HatsSurveyStatusCheckerBrowserTestBase() override = default; - HatsSurveyStatusCheckerBrowserTestBase& operator=( const HatsSurveyStatusCheckerBrowserTestBase&) = delete; + ~HatsSurveyStatusCheckerBrowserTestBase() override = default; // Handles |request| by serving different response based on the site id in the // request. @@ -135,6 +148,21 @@ constexpr char HatsSurveyStatusCheckerBrowserTestBase::kOutOfCapacitySiteId[]; constexpr char HatsSurveyStatusCheckerBrowserTestBase::kNormalSiteId[]; +// Check the url is formatted correctly such as its host name is separated from +// the path. So we can extract the expected host name from the url. +IN_PROC_BROWSER_TEST_F(HatsSurveyStatusCheckerBrowserTestBase, + CheckHostInStatusURLCorrect) { + auto checker = + std::make_unique<TestHatsSurveyStatusChecker>(browser()->profile()); + GURL url(checker->HatsSurveyURLWithoutId()); + EXPECT_STREQ("www.google.com", url.host().c_str()); + + auto fake_checker = std::make_unique<FakeHatsSurveyStatusChecker>( + browser()->profile(), embedded_test_server()->base_url().spec()); + GURL test_url(fake_checker->HatsSurveyURLWithoutId()); + EXPECT_EQ(embedded_test_server()->base_url().host(), test_url.host()); +} + IN_PROC_BROWSER_TEST_F(HatsSurveyStatusCheckerBrowserTestBase, CheckStatusResults) { struct SiteResult { @@ -150,9 +178,8 @@ {HatsSurveyStatusCheckerBrowserTestBase::kNormalSiteId, HatsSurveyStatusChecker::Status::kSuccess}}; - std::unique_ptr<FakeHatsSurveyStatusChecker> checker = - std::make_unique<FakeHatsSurveyStatusChecker>( - browser()->profile(), embedded_test_server()->base_url().spec()); + auto checker = std::make_unique<FakeHatsSurveyStatusChecker>( + browser()->profile(), embedded_test_server()->base_url().spec()); for (const auto& item : site_id_with_result) { base::RunLoop request_wait; SetClosure(request_wait.QuitClosure(),
diff --git a/chrome/browser/ui/test/test_browser_dialog.cc b/chrome/browser/ui/test/test_browser_dialog.cc index 7ff165d5..5c2e8b0f 100644 --- a/chrome/browser/ui/test/test_browser_dialog.cc +++ b/chrome/browser/ui/test/test_browser_dialog.cc
@@ -75,6 +75,11 @@ UpdateWidgets(); } +void TestBrowserDialog::ShowAndVerifyUi() { + TestBrowserUi::ShowAndVerifyUi(); + baseline_.clear(); +} + // This returns true if exactly one views widget was shown that is a dialog or // has a name matching the test-specified name, and if that window is in the // work area (if |should_verify_dialog_bounds_| is true). @@ -127,8 +132,8 @@ pixel_diff_->Init(dialog_widget, "BrowserUiDialog"); auto* test_info = testing::UnitTest::GetInstance()->current_test_info(); - const std::string test_name = - base::StrCat({test_info->test_case_name(), "_", test_info->name()}); + const std::string test_name = base::StrCat( + {test_info->test_case_name(), "_", test_info->name(), "_", baseline_}); if (!pixel_diff_->CompareScreenshot(test_name, dialog_widget->GetContentsView())) { DLOG(INFO) << "VerifyUi(): Pixel compare failed.";
diff --git a/chrome/browser/ui/test/test_browser_dialog.h b/chrome/browser/ui/test/test_browser_dialog.h index ecda917..812a533 100644 --- a/chrome/browser/ui/test/test_browser_dialog.h +++ b/chrome/browser/ui/test/test_browser_dialog.h
@@ -31,6 +31,17 @@ bool VerifyUi() override; void WaitForUserDismissal() override; void DismissUi() override; + void ShowAndVerifyUi(); + + // Only useful when pixel verification is enabled. + // Set pixel test baseline so previous gold images become invalid. + // Call this method before ShowAndVerifyUi(). + // For example, a cl changes a dialog's text, and all previously approved + // gold images become invalid. Then in the same cl you should set a new + // baseline. Or else the previous gold image are still valid (which they + // should not be because they have wrong text). + // Consider using the cl number as baseline. + void set_baseline(const std::string& baseline) { baseline_ = baseline; } // Whether to close asynchronously using Widget::Close(). This covers // codepaths relying on DialogDelegate::Close(), which isn't invoked by @@ -52,6 +63,9 @@ views::Widget::Widgets widgets_; #endif // defined(TOOLKIT_VIEWS) + // The baseline to use for the next pixel verification. + std::string baseline_; + // If set to true, the dialog bounds will be verified to fit inside the // display's work area. // This should always be true, but some dialogs don't yet size themselves
diff --git a/chrome/browser/ui/views/extensions/extensions_menu_button.h b/chrome/browser/ui/views/extensions/extensions_menu_button.h index 96b3480..d8acbe9 100644 --- a/chrome/browser/ui/views/extensions/extensions_menu_button.h +++ b/chrome/browser/ui/views/extensions/extensions_menu_button.h
@@ -20,6 +20,9 @@ class Button; } // namespace views +// ExtensionsMenuButton is the single extension action button within a row in +// the extensions menu. This includes the extension icon and name and triggers +// the extension action. class ExtensionsMenuButton : public views::LabelButton, public views::ButtonListener, public ToolbarActionViewDelegateViews {
diff --git a/chrome/browser/ui/views/frame/browser_non_client_frame_view_mac.h b/chrome/browser/ui/views/frame/browser_non_client_frame_view_mac.h index 8fd7cc7..05cac09 100644 --- a/chrome/browser/ui/views/frame/browser_non_client_frame_view_mac.h +++ b/chrome/browser/ui/views/frame/browser_non_client_frame_view_mac.h
@@ -16,7 +16,7 @@ class Label; } -@class FullscreenToolbarController; +@class FullscreenToolbarControllerViews; class BrowserNonClientFrameViewMac : public BrowserNonClientFrameView { public: @@ -77,7 +77,7 @@ views::Label* window_title_ = nullptr; - base::scoped_nsobject<FullscreenToolbarController> + base::scoped_nsobject<FullscreenToolbarControllerViews> fullscreen_toolbar_controller_; DISALLOW_COPY_AND_ASSIGN(BrowserNonClientFrameViewMac);
diff --git a/chrome/browser/ui/views/frame/browser_non_client_frame_view_mac.mm b/chrome/browser/ui/views/frame/browser_non_client_frame_view_mac.mm index 617bcb6..97aec5d 100644 --- a/chrome/browser/ui/views/frame/browser_non_client_frame_view_mac.mm +++ b/chrome/browser/ui/views/frame/browser_non_client_frame_view_mac.mm
@@ -12,7 +12,7 @@ #include "chrome/browser/themes/theme_service.h" #include "chrome/browser/themes/theme_service_factory.h" #include "chrome/browser/ui/cocoa/fullscreen/fullscreen_menubar_tracker.h" -#include "chrome/browser/ui/cocoa/fullscreen/fullscreen_toolbar_controller.h" +#include "chrome/browser/ui/cocoa/fullscreen/fullscreen_toolbar_controller_views.h" #include "chrome/browser/ui/exclusive_access/fullscreen_controller.h" #include "chrome/browser/ui/layout_constants.h" #include "chrome/browser/ui/view_ids.h" @@ -61,7 +61,8 @@ base::Unretained(this), true)); if (!base::FeatureList::IsEnabled(features::kImmersiveFullscreen)) { fullscreen_toolbar_controller_.reset( - [[FullscreenToolbarController alloc] initWithBrowserView:browser_view]); + [[FullscreenToolbarControllerViews alloc] + initWithBrowserView:browser_view]); [fullscreen_toolbar_controller_ setToolbarStyle:GetUserPreferredToolbarStyle( *show_fullscreen_toolbar_)];
diff --git a/chrome/browser/ui/views/location_bar/zoom_bubble_view.cc b/chrome/browser/ui/views/location_bar/zoom_bubble_view.cc index 01b8b9b4..976c0215 100644 --- a/chrome/browser/ui/views/location_bar/zoom_bubble_view.cc +++ b/chrome/browser/ui/views/location_bar/zoom_bubble_view.cc
@@ -510,27 +510,24 @@ // matches the size of the default. But not all extensions will declare an // icon set, or may not have an icon of the default size (we don't want the // bubble to display, for example, a very large icon). In that case, if there - // is a browser-action icon (size-19) this is an acceptable alternative. - const ExtensionIconSet& icons = extensions::IconsInfo::GetIcons(extension); + // is an action icon (size-16) this is an acceptable alternative. + const ExtensionIconSet* icons = &extensions::IconsInfo::GetIcons(extension); bool has_default_sized_icon = - !icons.Get(gfx::kFaviconSize, ExtensionIconSet::MATCH_EXACTLY).empty(); - if (has_default_sized_icon) { - extension_info_.icon_image = std::make_unique<extensions::IconImage>( - web_contents()->GetBrowserContext(), extension, icons, icon_size, - default_extension_icon_image, this); - return; + !icons->Get(gfx::kFaviconSize, ExtensionIconSet::MATCH_EXACTLY).empty(); + + if (!has_default_sized_icon) { + const extensions::ActionInfo* action = + extensions::ActionInfo::GetAnyActionInfo(extension); + if (!action || action->default_icon.empty()) + return; // Out of options. + + icons = &action->default_icon; + icon_size = icons->map().begin()->first; } - const extensions::ActionInfo* browser_action = - extensions::ActionInfo::GetBrowserActionInfo(extension); - if (!browser_action || browser_action->default_icon.empty()) - return; - - icon_size = browser_action->default_icon.map().begin()->first; - extension_info_.icon_image.reset( - new extensions::IconImage(web_contents()->GetBrowserContext(), extension, - browser_action->default_icon, icon_size, - default_extension_icon_image, this)); + extension_info_.icon_image = std::make_unique<extensions::IconImage>( + web_contents()->GetBrowserContext(), extension, *icons, icon_size, + default_extension_icon_image, this); } void ZoomBubbleView::UpdateZoomPercent() {
diff --git a/chrome/browser/ui/views/translate/translate_bubble_view.cc b/chrome/browser/ui/views/translate/translate_bubble_view.cc index 32dfd0da..325fac91 100644 --- a/chrome/browser/ui/views/translate/translate_bubble_view.cc +++ b/chrome/browser/ui/views/translate/translate_bubble_view.cc
@@ -189,6 +189,8 @@ view->SetHighlightedButton(highlighted_button); views::Widget* bubble_widget = views::BubbleDialogDelegateView::CreateBubble(view); + view->GetBubbleFrameView()->set_preferred_arrow_adjustment( + views::BubbleFrameView::PreferredArrowAdjustment::kOffset); // TAB UI has the same view throughout. Select the right tab based on |step| // upon initialization.
diff --git a/chrome/browser/vr/BUILD.gn b/chrome/browser/vr/BUILD.gn index 911b38c..44a4a74 100644 --- a/chrome/browser/vr/BUILD.gn +++ b/chrome/browser/vr/BUILD.gn
@@ -254,6 +254,7 @@ "vr_export.h", "vr_web_contents_observer.cc", "vr_web_contents_observer.h", + "xr_test_utils.h", ] sources += [
diff --git a/chrome/browser/vr/DEPS b/chrome/browser/vr/DEPS index 2c3f9cd..c3fea28 100644 --- a/chrome/browser/vr/DEPS +++ b/chrome/browser/vr/DEPS
@@ -23,7 +23,6 @@ ".*test.*\.cc": [ "+device/vr/test/test_hook.h", "+third_party/openvr/src/headers/openvr.h", - "+chrome/browser/vr/service", ], ".*mock.*" : [ "+chrome/browser/vr/service",
diff --git a/chrome/browser/vr/service/DEPS b/chrome/browser/vr/service/DEPS index 36f024f9b..5a0de0f 100644 --- a/chrome/browser/vr/service/DEPS +++ b/chrome/browser/vr/service/DEPS
@@ -12,6 +12,7 @@ "+chrome/browser/vr/metrics/session_metrics_helper.h", "+chrome/browser/vr/vr_export.h", "+chrome/browser/vr/xr_runtime_manager_statics.h", + "+chrome/browser/vr/xr_test_utils.h", ] specific_include_rules = {
diff --git a/chrome/browser/vr/service/xr_device_service.cc b/chrome/browser/vr/service/xr_device_service.cc index 03be163cd..bcdda1c 100644 --- a/chrome/browser/vr/service/xr_device_service.cc +++ b/chrome/browser/vr/service/xr_device_service.cc
@@ -6,6 +6,7 @@ #include "base/no_destructor.h" #include "build/build_config.h" +#include "chrome/browser/vr/xr_test_utils.h" #include "content/public/browser/service_process_host.h" namespace vr {
diff --git a/chrome/browser/vr/service/xr_device_service.h b/chrome/browser/vr/service/xr_device_service.h index 280fa02..f69ce67c 100644 --- a/chrome/browser/vr/service/xr_device_service.h +++ b/chrome/browser/vr/service/xr_device_service.h
@@ -17,13 +17,6 @@ VR_EXPORT const mojo::Remote<device::mojom::XRDeviceService>& GetXRDeviceService(); -// Allows tests to perform extra initialization steps on any new XR Device -// Service instance before other client code can use it. Any time a new instance -// of the service is started by |GetXRDeviceService()|, this callback (if -// non-null) is invoked. -VR_EXPORT void SetXRDeviceServiceStartupCallbackForTesting( - base::RepeatingClosure callback); - } // namespace vr #endif // CHROME_BROWSER_VR_SERVICE_XR_DEVICE_SERVICE_H_
diff --git a/chrome/browser/vr/service/xr_runtime_manager_impl.cc b/chrome/browser/vr/service/xr_runtime_manager_impl.cc index 2d40f83c..ef9c38407 100644 --- a/chrome/browser/vr/service/xr_runtime_manager_impl.cc +++ b/chrome/browser/vr/service/xr_runtime_manager_impl.cc
@@ -126,7 +126,7 @@ const base::CommandLine* cmd_line = base::CommandLine::ForCurrentProcess(); orientation_provider_enabled = IsEnabled(cmd_line, device::kWebXrOrientationSensorDevice, - switches::kWebXrRuntimeOrientationSensors); + ::switches::kWebXrRuntimeOrientationSensors); #endif if (orientation_provider_enabled) {
diff --git a/chrome/browser/vr/test/xr_browser_test_details.md b/chrome/browser/vr/test/xr_browser_test_details.md index 0f95a12..0b498f05 100644 --- a/chrome/browser/vr/test/xr_browser_test_details.md +++ b/chrome/browser/vr/test/xr_browser_test_details.md
@@ -15,7 +15,7 @@ of attempting to use the real implementation. [xr hook base]: https://chromium.googlesource.com/chromium/src/+/master/chrome/browser/vr/test/mock_xr_device_hook_base.h -[xr service hook]: https://chromium.googlesource.com/chromium/src/+/HEAD/chrome/services/isolated_xr_device/xr_service_test_hook.cc +[xr service hook]: https://chromium.googlesource.com/chromium/src/+/HEAD/content/services/isolated_xr_device/xr_service_test_hook.cc ### OpenVR
diff --git a/chrome/browser/vr/webxr_vr_isolated_device_service_test.cc b/chrome/browser/vr/webxr_vr_isolated_device_service_test.cc index 54fea0d..aeb2401a 100644 --- a/chrome/browser/vr/webxr_vr_isolated_device_service_test.cc +++ b/chrome/browser/vr/webxr_vr_isolated_device_service_test.cc
@@ -6,10 +6,10 @@ #include "base/optional.h" #include "base/test/bind_test_util.h" #include "build/build_config.h" -#include "chrome/browser/vr/service/xr_device_service.h" #include "chrome/browser/vr/test/mock_xr_device_hook_base.h" #include "chrome/browser/vr/test/multi_class_browser_test.h" #include "chrome/browser/vr/test/webxr_vr_browser_test.h" +#include "chrome/browser/vr/xr_test_utils.h" #include "content/public/test/browser_test_utils.h" namespace vr {
diff --git a/chrome/browser/vr/xr_test_utils.h b/chrome/browser/vr/xr_test_utils.h new file mode 100644 index 0000000..eeb56a02 --- /dev/null +++ b/chrome/browser/vr/xr_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 CHROME_BROWSER_VR_XR_TEST_UTILS_H_ +#define CHROME_BROWSER_VR_XR_TEST_UTILS_H_ + +#include "base/callback_forward.h" +#include "chrome/browser/vr/vr_export.h" + +namespace vr { + +// Allows tests to perform extra initialization steps on any new XR Device +// Service instance before other client code can use it. Any time a new instance +// of the service is started by |GetXRDeviceService()|, this callback (if +// non-null) is invoked. +VR_EXPORT void SetXRDeviceServiceStartupCallbackForTesting( + base::RepeatingClosure callback); + +} // namespace vr + +#endif // CHROME_BROWSER_VR_XR_TEST_UTILS_H_
diff --git a/chrome/common/chrome_features.cc b/chrome/common/chrome_features.cc index 62a8249..4deb55e 100644 --- a/chrome/common/chrome_features.cc +++ b/chrome/common/chrome_features.cc
@@ -810,11 +810,6 @@ "WriteBasicSystemProfileToPersistentHistogramsFile", base::FEATURE_ENABLED_BY_DEFAULT}; -// Enables improvements to the chrome://accessibility page. -const base::Feature kAccessibilityInternalsPageImprovements{ - "AccessibilityInternalsPageImprovements", - base::FEATURE_DISABLED_BY_DEFAULT}; - // Enables setting time limit for Chrome and PWA's on child user device. // Requires |kPerAppTimeLimits| to be enabled. #if defined(OS_CHROMEOS)
diff --git a/chrome/common/chrome_features.h b/chrome/common/chrome_features.h index ef0f53c..3b7fd2fc9 100644 --- a/chrome/common/chrome_features.h +++ b/chrome/common/chrome_features.h
@@ -498,9 +498,6 @@ COMPONENT_EXPORT(CHROME_FEATURES) extern const base::Feature kWriteBasicSystemProfileToPersistentHistogramsFile; -COMPONENT_EXPORT(CHROME_FEATURES) -extern const base::Feature kAccessibilityInternalsPageImprovements; - #if defined(OS_CHROMEOS) COMPONENT_EXPORT(CHROME_FEATURES) extern const base::Feature kWebTimeLimits;
diff --git a/chrome/renderer/autofill/form_control_click_detection_browsertest.cc b/chrome/renderer/autofill/form_control_click_detection_browsertest.cc index 1f6d7c1..8938360 100644 --- a/chrome/renderer/autofill/form_control_click_detection_browsertest.cc +++ b/chrome/renderer/autofill/form_control_click_detection_browsertest.cc
@@ -219,16 +219,16 @@ EXPECT_EQ(text_, last_clicked_form_control_element()); ClearAutofillAgentTestState(); - // Click the disabled element. + // Click the disabled element and focus should change. EXPECT_TRUE(SimulateElementClick("button_2")); EXPECT_FALSE(form_control_element_clicked_called()); ClearAutofillAgentTestState(); - // Click the text field second time. AutofillClient should know that this is - // the second click. + // Click the text field second time and verify it has lost + // focus already. EXPECT_TRUE(SimulateElementClick("text_1")); EXPECT_TRUE(form_control_element_clicked_called()); - EXPECT_TRUE(last_clicked_form_control_element_was_focused()); + EXPECT_FALSE(last_clicked_form_control_element_was_focused()); EXPECT_EQ(text_, last_clicked_form_control_element()); }
diff --git a/chrome/test/BUILD.gn b/chrome/test/BUILD.gn index 3ca3900..6cb0bdd2 100644 --- a/chrome/test/BUILD.gn +++ b/chrome/test/BUILD.gn
@@ -1040,6 +1040,7 @@ "../browser/pdf/pdf_extension_test.cc", "../browser/pdf/pdf_extension_test_util.cc", "../browser/pdf/pdf_extension_test_util.h", + "../browser/performance_manager/background_tab_loading_policy_browsertest.cc", "../browser/performance_manager/graph/page_node_impl_browsertest.cc", "../browser/performance_manager/page_load_tracker_decorator_browsertest.cc", "../browser/performance_manager/tab_properties_decorator_browsertest.cc",
diff --git a/chrome/test/data/android/render_tests/TabGridDialogTest.3_tabs_landscape.Nexus_5X-23.png.sha1 b/chrome/test/data/android/render_tests/TabGridDialogTest.3_tabs_landscape.Nexus_5X-23.png.sha1 new file mode 100644 index 0000000..e62c1ab --- /dev/null +++ b/chrome/test/data/android/render_tests/TabGridDialogTest.3_tabs_landscape.Nexus_5X-23.png.sha1
@@ -0,0 +1 @@ +cc1315997b8db3be17095cfae921e62a4a53a7b9 \ No newline at end of file
diff --git a/chrome/test/data/android/render_tests/TabGridDialogTest.3_tabs_landscape.Pixel_2-28.png.sha1 b/chrome/test/data/android/render_tests/TabGridDialogTest.3_tabs_landscape.Pixel_2-28.png.sha1 new file mode 100644 index 0000000..b108d3c --- /dev/null +++ b/chrome/test/data/android/render_tests/TabGridDialogTest.3_tabs_landscape.Pixel_2-28.png.sha1
@@ -0,0 +1 @@ +a573344e712fa2b3704365623f487e7c55324d60 \ No newline at end of file
diff --git a/chrome/test/data/android/render_tests/TabGridDialogTest.3_tabs_portrait.Nexus_5X-23.png.sha1 b/chrome/test/data/android/render_tests/TabGridDialogTest.3_tabs_portrait.Nexus_5X-23.png.sha1 new file mode 100644 index 0000000..29e41c1 --- /dev/null +++ b/chrome/test/data/android/render_tests/TabGridDialogTest.3_tabs_portrait.Nexus_5X-23.png.sha1
@@ -0,0 +1 @@ +813dc0d4d6ccc02fd6e86f545af998b5d8bfb988 \ No newline at end of file
diff --git a/chrome/test/data/android/render_tests/TabGridDialogTest.3_tabs_portrait.Pixel_2-28.png.sha1 b/chrome/test/data/android/render_tests/TabGridDialogTest.3_tabs_portrait.Pixel_2-28.png.sha1 new file mode 100644 index 0000000..cb049de --- /dev/null +++ b/chrome/test/data/android/render_tests/TabGridDialogTest.3_tabs_portrait.Pixel_2-28.png.sha1
@@ -0,0 +1 @@ +14afaae9b10e94f030ba81e825200d726bfc47b5 \ No newline at end of file
diff --git a/chrome/test/data/android/render_tests/TabGridDialogTest.5_tabs_select_last.Nexus_5X-23.png.sha1 b/chrome/test/data/android/render_tests/TabGridDialogTest.5_tabs_select_last.Nexus_5X-23.png.sha1 new file mode 100644 index 0000000..1f8c98e5 --- /dev/null +++ b/chrome/test/data/android/render_tests/TabGridDialogTest.5_tabs_select_last.Nexus_5X-23.png.sha1
@@ -0,0 +1 @@ +49c0897279107adf8e75b224ea4932bcac8e4f5f \ No newline at end of file
diff --git a/chrome/test/data/android/render_tests/TabGridDialogTest.5_tabs_select_last.Pixel_2-28.png.sha1 b/chrome/test/data/android/render_tests/TabGridDialogTest.5_tabs_select_last.Pixel_2-28.png.sha1 new file mode 100644 index 0000000..bae9e52a --- /dev/null +++ b/chrome/test/data/android/render_tests/TabGridDialogTest.5_tabs_select_last.Pixel_2-28.png.sha1
@@ -0,0 +1 @@ +20ab2f8e0ceaef0f89eca70c5227cb645210bbec \ No newline at end of file
diff --git a/chrome/test/data/webui/BUILD.gn b/chrome/test/data/webui/BUILD.gn index 5029830..cf4ec7c 100644 --- a/chrome/test/data/webui/BUILD.gn +++ b/chrome/test/data/webui/BUILD.gn
@@ -266,6 +266,7 @@ "$root_gen_dir/chrome/test/data/webui/settings/test_local_data_browser_proxy.m.js", "$root_gen_dir/chrome/test/data/webui/settings/test_metrics_browser_proxy.m.js", "$root_gen_dir/chrome/test/data/webui/settings/site_data_details_subpage_tests.m.js", + "$root_gen_dir/chrome/test/data/webui/settings/site_details_tests.m.js", "$root_gen_dir/chrome/test/data/webui/settings/site_details_permission_tests.m.js", "$root_gen_dir/chrome/test/data/webui/settings/site_entry_tests.m.js", "$root_gen_dir/chrome/test/data/webui/settings/site_list_entry_tests.m.js",
diff --git a/chrome/test/data/webui/media/media_feeds_webui_browsertest.js b/chrome/test/data/webui/media/media_feeds_webui_browsertest.js index 72c293b..f82e2b21 100644 --- a/chrome/test/data/webui/media/media_feeds_webui_browsertest.js +++ b/chrome/test/data/webui/media/media_feeds_webui_browsertest.js
@@ -6,6 +6,10 @@ * @fileoverview Test suite for the Media Feeds WebUI. */ +const EXAMPLE_URL_1 = 'http://example.com/feed.json'; + +GEN('#include "base/run_loop.h"'); +GEN('#include "chrome/browser/media/history/media_history_keyed_service.h"'); GEN('#include "chrome/browser/ui/browser.h"'); GEN('#include "media/base/media_switches.h"'); @@ -20,6 +24,97 @@ isAsync: true, + testGenPreamble: function() { + GEN('auto* service ='); + GEN(' media_history::MediaHistoryKeyedService::Get('); + GEN(' browser()->profile());'); + GEN('service->DiscoverMediaFeed(GURL("' + EXAMPLE_URL_1 + '"));'); + GEN('auto items = std::vector<media_feeds::mojom::MediaFeedItemPtr>();'); + GEN('auto item = media_feeds::mojom::MediaFeedItem::New();'); + GEN('item->name = base::ASCIIToUTF16("The Movie");'); + GEN('item->type = media_feeds::mojom::MediaFeedItemType::kMovie;'); + GEN('item->date_published = base::Time::FromDeltaSinceWindowsEpoch('); + GEN(' base::TimeDelta::FromMinutes(10));'); + GEN('item->is_family_friendly = true;'); + GEN('item->action_status ='); + GEN(' media_feeds::mojom::MediaFeedItemActionStatus::kPotential;'); + GEN('item->genre = base::ASCIIToUTF16("test");'); + GEN('item->duration = base::TimeDelta::FromSeconds(30);'); + GEN('item->live = media_feeds::mojom::LiveDetails::New();'); + GEN('item->live->start_time = base::Time::FromDeltaSinceWindowsEpoch('); + GEN(' base::TimeDelta::FromMinutes(20));'); + GEN('item->live->end_time = base::Time::FromDeltaSinceWindowsEpoch('); + GEN(' base::TimeDelta::FromMinutes(30));'); + GEN('item->shown_count = 3;'); + GEN('item->clicked = true;'); + GEN('item->author = media_feeds::mojom::Author::New();'); + GEN('item->author->name = "Media Site";'); + GEN('item->author->url = GURL("https://www.example.com");'); + GEN('item->action = media_feeds::mojom::Action::New();'); + GEN('item->action->start_time = base::TimeDelta::FromSeconds(3);'); + GEN('item->action->url = GURL("https://www.example.com");'); + GEN('item->interaction_counters.emplace('); + GEN(' media_feeds::mojom::InteractionCounterType::kLike, 10000);'); + GEN('item->interaction_counters.emplace('); + GEN(' media_feeds::mojom::InteractionCounterType::kDislike, 20000);'); + GEN('item->interaction_counters.emplace('); + GEN(' media_feeds::mojom::InteractionCounterType::kWatch, 30000);'); + GEN('item->content_ratings.push_back('); + GEN(' media_feeds::mojom::ContentRating::New("MPAA", "PG-13"));'); + GEN('item->content_ratings.push_back('); + GEN(' media_feeds::mojom::ContentRating::New("agency", "TEST2"));'); + GEN('item->identifiers.push_back('); + GEN(' media_feeds::mojom::Identifier::New('); + GEN(' media_feeds::mojom::Identifier::Type::kPartnerId, "TEST1"));'); + GEN('item->identifiers.push_back('); + GEN(' media_feeds::mojom::Identifier::New('); + GEN(' media_feeds::mojom::Identifier::Type::kTMSId, "TEST2"));'); + GEN('item->tv_episode = media_feeds::mojom::TVEpisode::New();'); + GEN('item->tv_episode->name = "TV Episode Name";'); + GEN('item->tv_episode->season_number = 1;'); + GEN('item->tv_episode->episode_number = 2;'); + GEN('item->tv_episode->identifiers.push_back('); + GEN(' media_feeds::mojom::Identifier::New('); + GEN(' media_feeds::mojom::Identifier::Type::kPartnerId, "TEST3"));'); + GEN('item->play_next_candidate = '); + GEN(' media_feeds::mojom::PlayNextCandidate::New();'); + GEN('item->play_next_candidate->name = "Next TV Episode Name";'); + GEN('item->play_next_candidate->season_number = 1;'); + GEN('item->play_next_candidate->episode_number = 3;'); + GEN('item->play_next_candidate->duration ='); + GEN(' base::TimeDelta::FromSeconds(10);'); + GEN('item->play_next_candidate->action = '); + GEN(' media_feeds::mojom::Action::New();'); + GEN('item->play_next_candidate->action->start_time ='); + GEN(' base::TimeDelta::FromSeconds(3);'); + GEN('item->play_next_candidate->action->url = '); + GEN(' GURL("https://www.example.com");'); + GEN('item->play_next_candidate->identifiers.push_back('); + GEN(' media_feeds::mojom::Identifier::New('); + GEN(' media_feeds::mojom::Identifier::Type::kPartnerId, "TEST4"));'); + GEN('media_session::MediaImage image1;'); + GEN('image1.src = GURL("https://www.example.org/image1.png");'); + GEN('item->images.push_back(image1);'); + GEN('media_session::MediaImage image2;'); + GEN('image2.src = GURL("https://www.example.org/image2.png");'); + GEN('item->images.push_back(image2);'); + GEN('items.push_back(std::move(item));'); + GEN('std::vector<media_session::MediaImage> logos;'); + GEN('media_session::MediaImage logo1;'); + GEN('logo1.src = GURL("https://www.example.org/logo1.png");'); + GEN('logos.push_back(logo1);'); + GEN('media_session::MediaImage logo2;'); + GEN('logo2.src = GURL("https://www.example.org/logo2.png");'); + GEN('logos.push_back(logo2);'); + GEN('service->StoreMediaFeedFetchResult('); + GEN(' 1, std::move(items), media_feeds::mojom::FetchResult::kSuccess,'); + GEN(' base::Time::FromDeltaSinceWindowsEpoch('); + GEN(' base::TimeDelta::FromMinutes(40)), logos, "Test Feed");'); + GEN('base::RunLoop run_loop;'); + GEN('service->PostTaskToDBForTest(run_loop.QuitClosure());'); + GEN('run_loop.Run();'); + }, + extraLibraries: [ '//third_party/mocha/mocha.js', '//chrome/test/data/webui/mocha_adapter.js', @@ -32,7 +127,7 @@ }); test('check feeds table is loaded', function() { - let feedHeaders = + const feedsHeaders = Array.from(document.querySelector('#feed-table-header').children); assertDeepEquals( @@ -40,9 +135,95 @@ 'ID', 'Url', 'Display Name', 'Last Discovery Time', 'Last Fetch Time', 'User Status', 'Last Fetch Result', 'Fetch Failed Count', 'Cache Expiry Time', 'Last Fetch Item Count', - 'Last Fetch Play Next Count', 'Last Fetch Content Types', 'Logos' + 'Last Fetch Play Next Count', 'Last Fetch Content Types', 'Logos', + 'Actions' ], - feedHeaders.map(x => x.textContent.trim())); + feedsHeaders.map(x => x.textContent.trim())); + + const feedsContents = + document.querySelector('#feed-table-body').childNodes[0]; + + assertEquals('1', feedsContents.childNodes[0].textContent.trim()); + assertEquals(EXAMPLE_URL_1, feedsContents.childNodes[1].textContent.trim()); + assertEquals('Test Feed', feedsContents.childNodes[2].textContent.trim()); + assertEquals('Auto', feedsContents.childNodes[5].textContent.trim()); + assertEquals('Success', feedsContents.childNodes[6].textContent.trim()); + assertEquals('0', feedsContents.childNodes[7].textContent.trim()); + assertEquals( + 'Sun Dec 31 1600 16:47:02 GMT-0752 (Pacific Standard Time)', + feedsContents.childNodes[8].textContent.trim()); + assertEquals('1', feedsContents.childNodes[9].textContent.trim()); + assertEquals('1', feedsContents.childNodes[10].textContent.trim()); + assertEquals('Movie', feedsContents.childNodes[11].textContent.trim()); + assertEquals( + 'https://www.example.org/logo1.pnghttps://www.example.org/logo2.png', + feedsContents.childNodes[12].textContent.trim()); + assertEquals( + 'Show Contents', feedsContents.childNodes[13].textContent.trim()); + + // Click on the show contents button. + feedsContents.childNodes[13].firstChild.click(); + + return whenFeedTableIsPopulatedForTest().then(() => { + assertEquals( + EXAMPLE_URL_1, document.querySelector('#current-feed').textContent); + + const feedItemsHeaders = Array.from( + document.querySelector('#feed-items-table thead tr').children); + + assertDeepEquals( + [ + 'Type', 'Name', 'Author', 'Date Published', 'Family Friendly', + 'Action Status', 'Action URL', 'Action Start Time (secs)', + 'Interaction Counters', 'Content Ratings', 'Genre', 'Live Details', + 'TV Episode', 'Play Next Candidate', 'Identifiers', 'Shown Count', + 'Clicked', 'Images' + ], + feedItemsHeaders.map(x => x.textContent.trim())); + + const feedItemsContents = + document.querySelector('#feed-items-table tbody').childNodes[0]; + + assertEquals('Movie', feedItemsContents.childNodes[0].textContent.trim()); + assertEquals( + 'The Movie', feedItemsContents.childNodes[1].textContent.trim()); + assertEquals( + 'Media Site', feedItemsContents.childNodes[2].textContent.trim()); + assertEquals( + 'Sun Dec 31 1600 16:17:02 GMT-0752 (Pacific Standard Time)', + feedItemsContents.childNodes[3].textContent.trim()); + assertEquals('Yes', feedItemsContents.childNodes[4].textContent.trim()); + assertEquals( + 'Potential', feedItemsContents.childNodes[5].textContent.trim()); + assertEquals( + 'https://www.example.com/', + feedItemsContents.childNodes[6].textContent.trim()); + assertEquals('3', feedItemsContents.childNodes[7].textContent.trim()); + assertEquals( + 'Watch=30000 Like=10000 Dislike=20000', + feedItemsContents.childNodes[8].textContent.trim()); + assertEquals( + 'MPAA PG-13, agency TEST2', + feedItemsContents.childNodes[9].textContent.trim()); + assertEquals('test', feedItemsContents.childNodes[10].textContent.trim()); + assertEquals( + 'Live StartTime=Sun Dec 31 1600 16:27:02 GMT-0752 (Pacific Standard Time) EndTime=Sun Dec 31 1600 16:37:02 GMT-0752 (Pacific Standard Time)', + feedItemsContents.childNodes[11].textContent.trim()); + assertEquals( + 'TV Episode Name EpisodeNumber=2 SeasonNumber=1 PartnerId=TEST3', + feedItemsContents.childNodes[12].textContent.trim()); + assertEquals( + 'Next TV Episode Name EpisodeNumber=3 SeasonNumber=1 PartnerId=TEST4 ActionURL=https://www.example.com/ ActionStartTimeSecs=3 DurationSecs=10', + feedItemsContents.childNodes[13].textContent.trim()); + assertEquals( + 'PartnerId=TEST1 TMSId=TEST2', + feedItemsContents.childNodes[14].textContent.trim()); + assertEquals('3', feedItemsContents.childNodes[15].textContent.trim()); + assertEquals('Yes', feedItemsContents.childNodes[16].textContent.trim()); + assertEquals( + 'https://www.example.org/image1.pnghttps://www.example.org/image2.png', + feedItemsContents.childNodes[17].textContent.trim()); + }); }); mocha.run();
diff --git a/chrome/test/data/webui/settings/BUILD.gn b/chrome/test/data/webui/settings/BUILD.gn index c13614956..1fa8194 100644 --- a/chrome/test/data/webui/settings/BUILD.gn +++ b/chrome/test/data/webui/settings/BUILD.gn
@@ -59,6 +59,7 @@ "settings_toggle_button_tests.js", "settings_ui_tests.js", "site_data_details_subpage_tests.js", + "site_details_tests.js", "site_details_permission_tests.js", "site_entry_tests.js", "site_list_entry_tests.js",
diff --git a/chrome/test/data/webui/settings/a11y/passwords_a11y_test.js b/chrome/test/data/webui/settings/a11y/passwords_a11y_test.js index 17153301..ee98ee5 100644 --- a/chrome/test/data/webui/settings/a11y/passwords_a11y_test.js +++ b/chrome/test/data/webui/settings/a11y/passwords_a11y_test.js
@@ -4,6 +4,9 @@ /** @fileoverview Define accessibility tests for the PASSWORDS route. */ +// TODO(crbug/1064966) Flaky on Linux CFI. +GEN('#if !(defined(OS_LINUX) && defined(IS_CFI))'); + // SettingsAccessibilityTest fixture. GEN_INCLUDE([ 'settings_accessibility_test.js', @@ -108,3 +111,5 @@ /** @override */ violationFilter: SettingsAccessibilityTest.violationFilter, }); + +GEN('#endif // !(defined(OS_LINUX) && defined(IS_CFI))'); \ No newline at end of file
diff --git a/chrome/test/data/webui/settings/cr_settings_interactive_ui_tests.js b/chrome/test/data/webui/settings/cr_settings_interactive_ui_tests.js index 8ce14aa..85d4da5 100644 --- a/chrome/test/data/webui/settings/cr_settings_interactive_ui_tests.js +++ b/chrome/test/data/webui/settings/cr_settings_interactive_ui_tests.js
@@ -132,8 +132,8 @@ ]), }; -// Fails on Linux CFI (see crbug/1063844). -GEN('#if !(defined(OS_LINUX) && defined(IS_CFI))'); +// Fails on Linux CFI and Mac10.13 Tests (dbg) (see crbug/1063844). +GEN('#if !(defined(OS_LINUX) && defined(IS_CFI)) && !(defined(OS_MACOSX) && !defined(NDEBUG))'); TEST_F('SettingsUIInteractiveTest', 'All', function() { mocha.run(); });
diff --git a/chrome/test/data/webui/settings/cr_settings_v3_browsertest.js b/chrome/test/data/webui/settings/cr_settings_v3_browsertest.js index 0b60424..34a2eac 100644 --- a/chrome/test/data/webui/settings/cr_settings_v3_browsertest.js +++ b/chrome/test/data/webui/settings/cr_settings_v3_browsertest.js
@@ -233,6 +233,26 @@ runMochaSuite('AddExceptionDialog'); }); +// eslint-disable-next-line no-var +var CrSettingsSiteDetailsV3Test = class extends CrSettingsV3BrowserTest { + /** @override */ + get browsePreload() { + return 'chrome://settings/test_loader.html?module=settings/site_details_tests.m.js'; + } +}; + +// Disabling on debug due to flaky timeout on Win7 Tests (dbg)(1) bot. +// https://crbug.com/825304 - later for other platforms in crbug.com/1021219. +// Disabling on Linux CFI due to flaky timeout (crbug.com/1031960). +GEN('#if (!defined(NDEBUG)) || (defined(OS_LINUX) && defined(IS_CFI))'); +GEN('#define MAYBE_SiteDetails DISABLED_SiteDetails'); +GEN('#else'); +GEN('#define MAYBE_SiteDetails SiteDetails'); +GEN('#endif'); + +TEST_F('CrSettingsSiteDetailsV3Test', 'MAYBE_SiteDetails', function() { + mocha.run(); +}); // eslint-disable-next-line no-var var CrSettingsPersonalizationOptionsV3Test =
diff --git a/chrome/test/data/webui/settings/site_details_tests.js b/chrome/test/data/webui/settings/site_details_tests.js index 33d87d13..e58afc0 100644 --- a/chrome/test/data/webui/settings/site_details_tests.js +++ b/chrome/test/data/webui/settings/site_details_tests.js
@@ -2,6 +2,18 @@ // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. +// clang-format off +// #import {ChooserType,ContentSetting,ContentSettingsTypes,SiteSettingSource,SiteSettingsPrefsBrowserProxyImpl,WebsiteUsageBrowserProxyImpl} from 'chrome://settings/lazy_load.js'; +// #import {createContentSettingTypeToValuePair,createRawChooserException,createRawSiteException,createSiteSettingsPrefs} from 'chrome://test/settings/test_util.m.js'; +// #import {flush,Polymer} from 'chrome://resources/polymer/v3_0/polymer/polymer_bundled.min.js'; +// #import {isChromeOS} from 'chrome://resources/js/cr.m.js'; +// #import {listenOnce} from 'chrome://resources/js/util.m.js'; +// #import {loadTimeData} from 'chrome://resources/js/load_time_data.m.js'; +// #import {Route,Router,routes} from 'chrome://settings/settings.js'; +// #import {TestBrowserProxy} from 'chrome://test/test_browser_proxy.m.js'; +// #import {TestSiteSettingsPrefsBrowserProxy} from 'chrome://test/settings/test_site_settings_prefs_browser_proxy.m.js'; +// clang-format on + class TestWebsiteUsageBrowserProxy extends TestBrowserProxy { constructor() { super(['clearUsage', 'fetchUsageTotal']); @@ -229,7 +241,7 @@ browserProxy.setPrefs(prefs); // First, explicitly set all the optional settings to false. - for (contentSetting in optionalSiteDetailsContentSettingsTypes) { + for (const contentSetting in optionalSiteDetailsContentSettingsTypes) { const loadTimeDataOverride = {}; loadTimeDataOverride [optionalSiteDetailsContentSettingsTypes[contentSetting]] = false; @@ -238,7 +250,7 @@ // Iterate over each flag in on / off state, assuming that the on state // means the content setting will show, and off hides it. - for (contentSetting in optionalSiteDetailsContentSettingsTypes) { + for (const contentSetting in optionalSiteDetailsContentSettingsTypes) { const numContentSettings = Object.keys(settings.ContentSettingsTypes).length - nonSiteDetailsContentSettingsTypes.length - @@ -269,7 +281,7 @@ browserProxy.setPrefs(prefs); testElement = createSiteDetails('https://foo.com:443'); Polymer.dom.flush(); - assert(!!testElement.$$('#usage')); + assertTrue(!!testElement.$$('#usage')); // When there's no usage, there should be a string that says so. assertEquals('', testElement.storedData_);
diff --git a/chrome/updater/mac/net/network_unittest.mm b/chrome/updater/mac/net/network_unittest.mm index c6dc39c..e91b45d5 100644 --- a/chrome/updater/mac/net/network_unittest.mm +++ b/chrome/updater/mac/net/network_unittest.mm
@@ -12,6 +12,7 @@ #include "base/files/file_util.h" #include "base/files/scoped_temp_dir.h" #include "base/run_loop.h" +#include "base/test/gmock_callback_support.h" #include "base/test/task_environment.h" #include "net/test/embedded_test_server/embedded_test_server.h" #include "net/test/embedded_test_server/http_request.h" @@ -20,6 +21,7 @@ #include "testing/gtest/include/gtest/gtest.h" #include "url/gurl.h" +using base::test::RunClosure; using ResponseStartedCallback = update_client::NetworkFetcher::ResponseStartedCallback; using ProgressCallback = update_client::NetworkFetcher::ProgressCallback; @@ -29,9 +31,6 @@ update_client::NetworkFetcher::DownloadToFileCompleteCallback; namespace updater { -ACTION_P(RunClosure, closure) { - closure.Run(); -} static base::FilePath testFilePath;
diff --git a/chrome/utility/BUILD.gn b/chrome/utility/BUILD.gn index a413210c..e348f64 100644 --- a/chrome/utility/BUILD.gn +++ b/chrome/utility/BUILD.gn
@@ -7,7 +7,6 @@ import("//build/config/sysroot.gni") import("//chrome/common/features.gni") import("//chromeos/assistant/assistant.gni") -import("//device/vr/buildflags/buildflags.gni") import("//extensions/buildflags/buildflags.gni") import("//printing/buildflags/buildflags.gni") @@ -48,7 +47,6 @@ "//content/public/child", "//content/public/common", "//content/public/utility", - "//device/vr/buildflags", "//extensions/buildflags", "//ipc", "//media", @@ -217,11 +215,4 @@ if (is_android || enable_extensions) { deps += [ "//chrome/services/media_gallery_util:lib" ] } - - if (enable_vr && !is_android) { - deps += [ - "//chrome/services/isolated_xr_device:lib", - "//device/vr/public/mojom", - ] - } }
diff --git a/chrome/utility/DEPS b/chrome/utility/DEPS index 95f6e743..0a0bcbb0 100644 --- a/chrome/utility/DEPS +++ b/chrome/utility/DEPS
@@ -5,7 +5,6 @@ "+chrome/services/ipp_parser/public/mojom", "+chrome/services/file_util/file_util_service.h", "+chrome/services/file_util/public/mojom", - "+chrome/services/isolated_xr_device", "+chrome/services/media_gallery_util", # TODO(crbug.com/798782): remove dependency to pdf_to_emf_converter_factory.h # when Cloud print chrome/service is removed. @@ -36,8 +35,6 @@ "+components/wifi", "+content/public/child", "+content/public/utility", - "+device/vr/buildflags", - "+device/vr/public", "+extensions/common", "+extensions/buildflags", "+media",
diff --git a/chrome/utility/safe_browsing/mac/hfs.cc b/chrome/utility/safe_browsing/mac/hfs.cc index 6b57ad73..5adc60e 100644 --- a/chrome/utility/safe_browsing/mac/hfs.cc +++ b/chrome/utility/safe_browsing/mac/hfs.cc
@@ -367,8 +367,8 @@ auto extent_size = base::CheckedNumeric<size_t>(extent->blockCount) * hfs_->block_size(); - if (!extent_size.IsValid()) { - DLOG(ERROR) << "Extent blockCount overflows"; + if (extent_size.ValueOrDefault(0) == 0) { + DLOG(ERROR) << "Extent blockCount overflows or is 0"; return false; } @@ -379,7 +379,7 @@ return false; } current_extent_data_.resize(extent_size.ValueOrDie()); - if (!hfs_->stream()->ReadExact(¤t_extent_data_[0], + if (!hfs_->stream()->ReadExact(current_extent_data_.data(), extent_size.ValueOrDie())) { DLOG(ERROR) << "Failed to read extent " << current_extent_; return false;
diff --git a/chrome/utility/services.cc b/chrome/utility/services.cc index e8aacb50..e5f664d6 100644 --- a/chrome/utility/services.cc +++ b/chrome/utility/services.cc
@@ -19,7 +19,6 @@ #include "components/services/unzip/unzipper_impl.h" #include "content/public/common/content_features.h" #include "content/public/utility/utility_thread.h" -#include "device/vr/buildflags/buildflags.h" #include "extensions/buildflags/buildflags.h" #include "media/mojo/mojom/soda_service.mojom.h" #include "mojo/public/cpp/bindings/service_factory.h" @@ -64,11 +63,6 @@ #include "chrome/services/media_gallery_util/public/mojom/media_parser.mojom.h" #endif -#if BUILDFLAG(ENABLE_VR) && !defined(OS_ANDROID) -#include "chrome/services/isolated_xr_device/xr_device_service.h" // nogncheck -#include "device/vr/public/mojom/isolated_xr_service.mojom.h" // nogncheck -#endif - #if BUILDFLAG(ENABLE_PRINT_PREVIEW) || \ (BUILDFLAG(ENABLE_PRINTING) && defined(OS_WIN)) #include "chrome/services/printing/printing_service.h" @@ -178,13 +172,6 @@ } #endif // BUILDFLAG(ENABLE_EXTENSIONS) || defined(OS_ANDROID) -#if BUILDFLAG(ENABLE_VR) && !defined(OS_ANDROID) -auto RunXrDeviceService( - mojo::PendingReceiver<device::mojom::XRDeviceService> receiver) { - return std::make_unique<device::XrDeviceService>(std::move(receiver)); -} -#endif - #if BUILDFLAG(ENABLE_PRINT_PREVIEW) || \ (BUILDFLAG(ENABLE_PRINTING) && defined(OS_WIN)) auto RunPrintingService( @@ -280,10 +267,6 @@ RunMediaParserFactory, #endif -#if BUILDFLAG(ENABLE_VR) && !defined(OS_ANDROID) - RunXrDeviceService, -#endif - #if BUILDFLAG(ENABLE_PRINT_PREVIEW) || \ (BUILDFLAG(ENABLE_PRINTING) && defined(OS_WIN)) RunPrintingService,
diff --git a/chromecast/media/cma/backend/audio_video_pipeline_device_unittest.cc b/chromecast/media/cma/backend/audio_video_pipeline_device_unittest.cc index 5f0d8ee..6ab330a 100644 --- a/chromecast/media/cma/backend/audio_video_pipeline_device_unittest.cc +++ b/chromecast/media/cma/backend/audio_video_pipeline_device_unittest.cc
@@ -195,8 +195,7 @@ } void SetUp() override { - CastMediaShlib::Initialize( - base::CommandLine::ForCurrentProcess()->argv()); + CastMediaShlib::Initialize(base::CommandLine::ForCurrentProcess()->argv()); VolumeControl::Initialize(base::CommandLine::ForCurrentProcess()->argv()); } @@ -328,12 +327,13 @@ // now. // TODO(almasrymina): re-enable this. b/110961816. return; -#endif +#else if (expecting_buffer_complete_) { test_config_after_next_push_ = true; } else { TestConfigs(); } +#endif } void BufferFeeder::FeedBuffer() { @@ -581,8 +581,8 @@ if (raw_h264) { base::FilePath file_path = GetTestDataFilePath(filename); base::MemoryMappedFile video_stream; - CHECK(video_stream.Initialize(file_path)) << "Couldn't open stream file: " - << file_path.MaybeAsASCII(); + CHECK(video_stream.Initialize(file_path)) + << "Couldn't open stream file: " << file_path.MaybeAsASCII(); buffers = H264SegmenterForTest(video_stream.data(), video_stream.length()); // TODO(erickung): Either pull data from stream or make caller specify value @@ -806,15 +806,13 @@ if (sync_type_ == MediaPipelineDeviceParams::kModeSyncPts) { // Check that the current PTS is no more than 100ms past the last pushed // PTS. - if (audio_feeder_ && - audio_feeder_->last_pushed_pts() != - std::numeric_limits<int64_t>::min()) { + if (audio_feeder_ && audio_feeder_->last_pushed_pts() != + std::numeric_limits<int64_t>::min()) { EXPECT_LE(pts, std::max(kStartPts, audio_feeder_->last_pushed_pts() + 100 * 1000)); } - if (video_feeder_ && - video_feeder_->last_pushed_pts() != - std::numeric_limits<int64_t>::min()) { + if (video_feeder_ && video_feeder_->last_pushed_pts() != + std::numeric_limits<int64_t>::min()) { EXPECT_LE(pts, std::max(kStartPts, video_feeder_->last_pushed_pts() + 100 * 1000)); }
diff --git a/chromeos/CHROMEOS_LKGM b/chromeos/CHROMEOS_LKGM index 6e5bff6..5740edcf 100644 --- a/chromeos/CHROMEOS_LKGM +++ b/chromeos/CHROMEOS_LKGM
@@ -1 +1 @@ -12999.0.0 \ No newline at end of file +13002.0.0 \ No newline at end of file
diff --git a/chromeos/components/drivefs/drivefs_host_unittest.cc b/chromeos/components/drivefs/drivefs_host_unittest.cc index 5caab38..eaad1161 100644 --- a/chromeos/components/drivefs/drivefs_host_unittest.cc +++ b/chromeos/components/drivefs/drivefs_host_unittest.cc
@@ -43,6 +43,7 @@ namespace drivefs { namespace { +using base::test::RunOnceClosure; using testing::_; using MountFailure = DriveFsHost::MountObserver::MountFailure; @@ -169,10 +170,6 @@ MOCK_METHOD1(OnError, void(const mojom::DriveError& error)); }; -ACTION_P(RunQuitClosure, quit) { - std::move(*quit).Run(); -} - class DriveFsHostTest : public ::testing::Test, public mojom::DriveFsBootstrap { public: DriveFsHostTest() @@ -272,7 +269,7 @@ base::OnceClosure quit_closure = run_loop.QuitClosure(); EXPECT_CALL(*host_delegate_, OnMounted(base::FilePath("/media/drivefsroot/salt-g-ID"))) - .WillOnce(RunQuitClosure(&quit_closure)); + .WillOnce(RunOnceClosure(std::move(quit_closure))); // Eventually we must attempt unmount. EXPECT_CALL(*disk_manager_, UnmountPath("/media/drivefsroot/salt-g-ID", _)); SendOnMounted(); @@ -362,7 +359,7 @@ base::RunLoop run_loop; base::OnceClosure quit_closure = run_loop.QuitClosure(); EXPECT_CALL(*host_delegate_, OnMountFailed(MountFailure::kUnknown, _)) - .WillOnce(RunQuitClosure(&quit_closure)); + .WillOnce(RunOnceClosure(std::move(quit_closure))); SendMountFailed({}); run_loop.Run(); ASSERT_FALSE(host_->IsMounted()); @@ -377,7 +374,7 @@ base::RunLoop run_loop; base::OnceClosure quit_closure = run_loop.QuitClosure(); EXPECT_CALL(*host_delegate_, OnMountFailed(MountFailure::kInvocation, _)) - .WillOnce(RunQuitClosure(&quit_closure)); + .WillOnce(RunOnceClosure(std::move(quit_closure))); DispatchMountEvent(chromeos::disks::DiskMountManager::MOUNTING, chromeos::MOUNT_ERROR_INVALID_MOUNT_OPTIONS, {base::StrCat({"drivefs://", token}),
diff --git a/chromeos/profiles/airmont.afdo.newest.txt b/chromeos/profiles/airmont.afdo.newest.txt index 8ed2171..dd7b68d 100644 --- a/chromeos/profiles/airmont.afdo.newest.txt +++ b/chromeos/profiles/airmont.afdo.newest.txt
@@ -1 +1 @@ -chromeos-chrome-amd64-airmont-82-4079.0-1584355719-benchmark-82.0.4085.13-r1-redacted.afdo.xz \ No newline at end of file +chromeos-chrome-amd64-airmont-83-4085.6-1584959535-benchmark-82.0.4085.16-r1-redacted.afdo.xz \ No newline at end of file
diff --git a/chromeos/profiles/broadwell.afdo.newest.txt b/chromeos/profiles/broadwell.afdo.newest.txt index ce1220c..a515e252 100644 --- a/chromeos/profiles/broadwell.afdo.newest.txt +++ b/chromeos/profiles/broadwell.afdo.newest.txt
@@ -1 +1 @@ -chromeos-chrome-amd64-broadwell-82-4044.42-1584352428-benchmark-82.0.4085.13-r1-redacted.afdo.xz \ No newline at end of file +chromeos-chrome-amd64-broadwell-83-4044.62-1584958487-benchmark-83.0.4091.0-r2-redacted.afdo.xz \ No newline at end of file
diff --git a/chromeos/profiles/silvermont.afdo.newest.txt b/chromeos/profiles/silvermont.afdo.newest.txt index af314857..67fc2e3 100644 --- a/chromeos/profiles/silvermont.afdo.newest.txt +++ b/chromeos/profiles/silvermont.afdo.newest.txt
@@ -1 +1 @@ -chromeos-chrome-amd64-silvermont-82-4079.0-1584354054-benchmark-82.0.4085.13-r1-redacted.afdo.xz \ No newline at end of file +chromeos-chrome-amd64-silvermont-83-4085.6-1584956258-benchmark-83.0.4091.0-r2-redacted.afdo.xz \ No newline at end of file
diff --git a/components/autofill_assistant/browser/view_layout.proto b/components/autofill_assistant/browser/view_layout.proto index 7066ba4..0d996fd 100644 --- a/components/autofill_assistant/browser/view_layout.proto +++ b/components/autofill_assistant/browser/view_layout.proto
@@ -226,7 +226,8 @@ // Note that the actual impact is version-dependent and not all hints may be // supported, in which case a regular text input field will be displayed. optional InputTypeHint type = 2; - // The model identifier to write to. + // Both input and output. The model identifier containing this view's text. + // Should point to a single string value. optional string model_identifier = 3; }
diff --git a/components/chromeos_camera/BUILD.gn b/components/chromeos_camera/BUILD.gn index 4888d58..ac3c1b7 100644 --- a/components/chromeos_camera/BUILD.gn +++ b/components/chromeos_camera/BUILD.gn
@@ -175,7 +175,7 @@ configs += [ "//third_party/libyuv:libyuv_config" ] sources = [ "jpeg_encode_accelerator_unittest.cc" ] if (use_vaapi) { - deps += [ "//media/gpu/vaapi" ] + deps += [ "//media/gpu/vaapi:common" ] } # TODO(crbug.com/1029942): consider removing use_x11 support here. This is @@ -227,7 +227,7 @@ sources = [ "mjpeg_decode_accelerator_unittest.cc" ] data = [ "//media/test/data/peach_pi-1280x720.jpg" ] if (use_vaapi) { - deps += [ "//media/gpu/vaapi" ] + deps += [ "//media/gpu/vaapi:common" ] } # TODO(crbug.com/1029942): consider removing use_x11 support here. This is no
diff --git a/components/data_reduction_proxy/core/browser/data_reduction_proxy_compression_stats.cc b/components/data_reduction_proxy/core/browser/data_reduction_proxy_compression_stats.cc index 10082e3..40761fb 100644 --- a/components/data_reduction_proxy/core/browser/data_reduction_proxy_compression_stats.cc +++ b/components/data_reduction_proxy/core/browser/data_reduction_proxy_compression_stats.cc
@@ -47,9 +47,6 @@ UMA_HISTOGRAM_COUNTS_1M(uma, UNIQUE_VARNAME >> 10); \ } -const double kSecondsPerWeek = - base::Time::kMicrosecondsPerWeek / base::Time::kMicrosecondsPerSecond; - // Returns the value at |index| of |list_value| as an int64_t. int64_t GetInt64PrefValue(const base::ListValue& list_value, size_t index) { int64_t val = 0; @@ -94,6 +91,12 @@ DataReductionProxySavingsClearedReason::REASON_COUNT); } +// TODO(rajendrant): Enable aggregate metrics recording in x86 Android. +// http://crbug.com/865373 +#if !defined(OS_ANDROID) || !defined(ARCH_CPU_X86) +const double kSecondsPerWeek = + base::Time::kMicrosecondsPerWeek / base::Time::kMicrosecondsPerSecond; + // Returns the week number for the current time. The epoch time is treated as // week=0. int32_t GetCurrentWeekNumber(const base::Time& now) { @@ -178,6 +181,7 @@ } } } +#endif } // namespace @@ -809,12 +813,9 @@ void DataReductionProxyCompressionStats::InitializeWeeklyAggregateDataUse( const base::Time& now) { -#if defined(OS_ANDROID) && defined(ARCH_CPU_X86) // TODO(rajendrant): Enable aggregate metrics recording in x86 Android. // http://crbug.com/865373 - return; -#endif - +#if !defined(OS_ANDROID) || !defined(ARCH_CPU_X86) MaybeInitWeeklyAggregateDataUsePrefs(now, pref_service_); // Record the histograms that will show up in the user feedback. RecordDictionaryToHistogram( @@ -843,6 +844,7 @@ "ContentType", pref_service_->GetDictionary( prefs::kLastWeekUserTrafficContentTypeDownstreamKB)); +#endif } void DataReductionProxyCompressionStats::RecordWeeklyAggregateDataUse( @@ -851,11 +853,9 @@ bool is_user_request, data_use_measurement::DataUseUserData::DataUseContentType content_type, int32_t service_hash_code) { -#if defined(OS_ANDROID) && defined(ARCH_CPU_X86) // TODO(rajendrant): Enable aggregate metrics recording in x86 Android. // http://crbug.com/865373 - return; -#endif +#if !defined(OS_ANDROID) || !defined(ARCH_CPU_X86) // Update the prefs if this is a new week. This can happen when chrome is open // for weeks without being closed. MaybeInitWeeklyAggregateDataUsePrefs(now, pref_service_); @@ -875,6 +875,7 @@ service_hash_code, data_used_kb); } } +#endif } // static
diff --git a/components/feed/feed_feature_list.cc b/components/feed/feed_feature_list.cc index 0968192..b8f44049 100644 --- a/components/feed/feed_feature_list.cc +++ b/components/feed/feed_feature_list.cc
@@ -27,4 +27,7 @@ const base::Feature kInterestFeedFeedback{"InterestFeedFeedback", base::FEATURE_DISABLED_BY_DEFAULT}; +const base::Feature kReportFeedUserActions{"ReportFeedUserActions", + base::FEATURE_DISABLED_BY_DEFAULT}; + } // namespace feed
diff --git a/components/feed/feed_feature_list.h b/components/feed/feed_feature_list.h index aec46e8..fe5e114 100644 --- a/components/feed/feed_feature_list.h +++ b/components/feed/feed_feature_list.h
@@ -24,6 +24,10 @@ extern const base::Feature kInterestFeedFeedback; +// Indicates if user card clicks and views in Chrome's feed should be reported +// for personalization. +extern const base::Feature kReportFeedUserActions; + } // namespace feed #endif // COMPONENTS_FEED_FEED_FEATURE_LIST_H_
diff --git a/components/heap_profiling/supervisor.cc b/components/heap_profiling/supervisor.cc index 734e92a..a728846 100644 --- a/components/heap_profiling/supervisor.cc +++ b/components/heap_profiling/supervisor.cc
@@ -9,6 +9,7 @@ #include "base/memory/ref_counted_memory.h" #include "base/no_destructor.h" #include "base/task/post_task.h" +#include "base/trace_event/memory_dump_manager.h" #include "components/heap_profiling/client_connection_manager.h" #include "components/services/heap_profiling/heap_profiling_service.h" #include "components/services/heap_profiling/public/cpp/controller.h" @@ -71,7 +72,18 @@ base::OnceClosure closure) { DCHECK(content::BrowserThread::CurrentlyOn(content::BrowserThread::UI)); DCHECK(!started_); + base::trace_event::MemoryDumpManager::GetInstance() + ->GetDumpThreadTaskRunner() + ->PostTask(FROM_HERE, + base::BindOnce(&Supervisor::StartProfilingOnMemoryInfraThread, + base::Unretained(this), mode, stack_mode, + sampling_rate, std::move(closure))); +} +void Supervisor::StartProfilingOnMemoryInfraThread(Mode mode, + mojom::StackMode stack_mode, + uint32_t sampling_rate, + base::OnceClosure closure) { mojo::PendingRemote<memory_instrumentation::mojom::HeapProfilerHelper> helper; mojo::PendingRemote<memory_instrumentation::mojom::HeapProfiler> profiler; auto profiler_receiver = profiler.InitWithNewPipeAndPassReceiver();
diff --git a/components/heap_profiling/supervisor.h b/components/heap_profiling/supervisor.h index 6907d0aa..e4d3386 100644 --- a/components/heap_profiling/supervisor.h +++ b/components/heap_profiling/supervisor.h
@@ -117,6 +117,11 @@ void GetProfiledPidsOnIOThread(GetProfiledPidsCallback callback); + void StartProfilingOnMemoryInfraThread(Mode mode, + mojom::StackMode stack_mode, + uint32_t sampling_rate, + base::OnceClosure closure); + // Bound to the IO thread. std::unique_ptr<Controller> controller_;
diff --git a/components/omnibox/browser/autocomplete_match.cc b/components/omnibox/browser/autocomplete_match.cc index fa3f366..f848804 100644 --- a/components/omnibox/browser/autocomplete_match.cc +++ b/components/omnibox/browser/autocomplete_match.cc
@@ -141,6 +141,8 @@ contents_class(match.contents_class), description(match.description), description_class(match.description_class), + description_for_shortcuts(match.description_for_shortcuts), + description_class_for_shortcuts(match.description_class_for_shortcuts), header(match.header), swap_contents_and_description(match.swap_contents_and_description), answer(match.answer), @@ -196,6 +198,8 @@ contents_class = match.contents_class; description = match.description; description_class = match.description_class; + description_for_shortcuts = match.description_for_shortcuts; + description_class_for_shortcuts = match.description_class_for_shortcuts; header = match.header; swap_contents_and_description = match.swap_contents_and_description; answer = match.answer; @@ -425,13 +429,16 @@ if (!match1.allowed_to_be_default_match && match2.allowed_to_be_default_match) return false; - // Prefer document suggestions. - if (match1.type == AutocompleteMatchType::DOCUMENT_SUGGESTION && - match2.type != AutocompleteMatchType::DOCUMENT_SUGGESTION) { + // Prefer live document suggestions. We check provider type instead of match + // type in order to distinguish live suggestions from the document provider + // from stale suggestions from the shortcuts providers, because the latter + // omits changing metadata such as last access date. + if (match1.provider->type() == AutocompleteProvider::TYPE_DOCUMENT && + match2.provider->type() != AutocompleteProvider::TYPE_DOCUMENT) { return true; } - if (match1.type != AutocompleteMatchType::DOCUMENT_SUGGESTION && - match2.type == AutocompleteMatchType::DOCUMENT_SUGGESTION) { + if (match1.provider->type() != AutocompleteProvider::TYPE_DOCUMENT && + match2.provider->type() == AutocompleteProvider::TYPE_DOCUMENT) { return false; } @@ -1046,6 +1053,8 @@ if (copy.swap_contents_and_description) { std::swap(copy.contents, copy.description); std::swap(copy.contents_class, copy.description_class); + copy.description_for_shortcuts.clear(); + copy.description_class_for_shortcuts.clear(); // Clear bit to prevent accidentally performing the swap again. copy.swap_contents_and_description = false; } @@ -1115,6 +1124,9 @@ res += base::trace_event::EstimateMemoryUsage(contents_class); res += base::trace_event::EstimateMemoryUsage(description); res += base::trace_event::EstimateMemoryUsage(description_class); + res += base::trace_event::EstimateMemoryUsage(description_for_shortcuts); + res += + base::trace_event::EstimateMemoryUsage(description_class_for_shortcuts); if (answer) res += base::trace_event::EstimateMemoryUsage(answer.value()); else @@ -1206,6 +1218,8 @@ std::string provider_name = provider ? provider->GetName() : "None"; ValidateClassifications(contents, contents_class, provider_name); ValidateClassifications(description, description_class, provider_name); + ValidateClassifications(description_for_shortcuts, + description_class_for_shortcuts, provider_name); } #endif // DCHECK_IS_ON()
diff --git a/components/omnibox/browser/autocomplete_match.h b/components/omnibox/browser/autocomplete_match.h index e0e0c42..6a6201b 100644 --- a/components/omnibox/browser/autocomplete_match.h +++ b/components/omnibox/browser/autocomplete_match.h
@@ -548,6 +548,12 @@ // Additional helper text for each entry, such as a title or description. base::string16 description; ACMatchClassifications description_class; + // In the case of the document provider, the description includes a last + // updated date that may become stale. To avoid showing stale descriptions, + // when |description_for_shortcut| is not empty, it will be stored instead of + // |description| in the shortcuts provider. + base::string16 description_for_shortcuts; + ACMatchClassifications description_class_for_shortcuts; // An optional header text this match must appear under. Currently only // zero-prefix matches may have a header.
diff --git a/components/omnibox/browser/autocomplete_result_unittest.cc b/components/omnibox/browser/autocomplete_result_unittest.cc index 01494f5..54aa4600 100644 --- a/components/omnibox/browser/autocomplete_result_unittest.cc +++ b/components/omnibox/browser/autocomplete_result_unittest.cc
@@ -79,6 +79,13 @@ void Start(const AutocompleteInput& input, bool minimal_changes) override {} + // For simplicity, |MockAutocompleteProvider|'s retrieved through + // |GetProvider| have types 0, 1, ... 5. This is fine for most tests, but for + // tests where the provider type matters (e.g. tests that involve deduping + // document suggestions), provider types need to be consistent with + // |AutocompleteProvider::Type|. + void SetType(Type type) { type_ = type; } + private: ~MockAutocompleteProvider() override {} }; @@ -1214,6 +1221,7 @@ struct EntityTestData { AutocompleteMatchType::Type type; + MockAutocompleteProvider* provider; std::string destination_url; int relevance; bool allowed_to_be_default_match; @@ -1225,6 +1233,7 @@ ACMatches* matches) { for (const auto& test_case : test_cases) { AutocompleteMatch match; + match.provider = test_case.provider; match.type = test_case.type; match.destination_url = GURL(test_case.destination_url); match.relevance = test_case.relevance; @@ -1240,15 +1249,15 @@ // clang-format off std::vector<EntityTestData> test_cases = { { - AutocompleteMatchType::SEARCH_SUGGEST, + AutocompleteMatchType::SEARCH_SUGGEST, GetProvider(1), "http://search/?q=foo", 1100, false, "foo", "" }, { - AutocompleteMatchType::SEARCH_SUGGEST_ENTITY, + AutocompleteMatchType::SEARCH_SUGGEST_ENTITY, GetProvider(1), "http://search/?q=foo", 1000, false, "foo", "" }, { - AutocompleteMatchType::SEARCH_SUGGEST, + AutocompleteMatchType::SEARCH_SUGGEST, GetProvider(1), "http://search/?q=foo", 900, true, "foo", "oo" }, // This match will be the first result but it won't affect the entity @@ -1258,7 +1267,7 @@ // and plain matches are deduplicated when they are not the default match. // See SortAndCullPreferEntitiesButKeepDefaultPlainMatches for details. { - AutocompleteMatchType::SEARCH_SUGGEST_PERSONALIZED, + AutocompleteMatchType::SEARCH_SUGGEST_PERSONALIZED, GetProvider(1), "http://search/?q=bar", 1200, true, "foo", "oo" }, }; @@ -1295,15 +1304,15 @@ // clang-format off std::vector<EntityTestData> test_cases = { { - AutocompleteMatchType::SEARCH_SUGGEST_PERSONALIZED, + AutocompleteMatchType::SEARCH_SUGGEST_PERSONALIZED, GetProvider(1), "http://search/?q=foo", 1100, false, "foo", "" }, { - AutocompleteMatchType::SEARCH_SUGGEST_ENTITY, + AutocompleteMatchType::SEARCH_SUGGEST_ENTITY, GetProvider(1), "http://search/?q=foo", 1000, false, "foobar", "" }, { - AutocompleteMatchType::SEARCH_SUGGEST, + AutocompleteMatchType::SEARCH_SUGGEST, GetProvider(1), "http://search/?q=foo", 900, true, "foo", "oo" }, }; @@ -1336,15 +1345,15 @@ // clang-format off std::vector<EntityTestData> test_cases = { { - AutocompleteMatchType::SEARCH_SUGGEST, + AutocompleteMatchType::SEARCH_SUGGEST, GetProvider(1), "http://search/?q=foo", 1001, true, "foo", "" }, { - AutocompleteMatchType::SEARCH_SUGGEST_ENTITY, + AutocompleteMatchType::SEARCH_SUGGEST_ENTITY, GetProvider(1), "http://search/?q=foo", 1000, false, "foo", "" }, { - AutocompleteMatchType::SEARCH_SUGGEST, + AutocompleteMatchType::SEARCH_SUGGEST, GetProvider(1), "http://search/?q=foo", 900, true, "foo", "oo" }, }; @@ -1692,10 +1701,16 @@ ACMatches matches; PopulateAutocompleteMatches(data, base::size(data), &matches); matches[0].type = AutocompleteMatchType::DOCUMENT_SUGGESTION; + static_cast<MockAutocompleteProvider*>(matches[0].provider) + ->SetType(AutocompleteProvider::Type::TYPE_DOCUMENT); matches[1].type = AutocompleteMatchType::HISTORY_URL; matches[2].type = AutocompleteMatchType::DOCUMENT_SUGGESTION; + static_cast<MockAutocompleteProvider*>(matches[2].provider) + ->SetType(AutocompleteProvider::Type::TYPE_DOCUMENT); matches[3].type = AutocompleteMatchType::HISTORY_URL; matches[4].type = AutocompleteMatchType::DOCUMENT_SUGGESTION; + static_cast<MockAutocompleteProvider*>(matches[4].provider) + ->SetType(AutocompleteProvider::Type::TYPE_DOCUMENT); matches[5].type = AutocompleteMatchType::HISTORY_URL; AutocompleteInput input(base::ASCIIToUTF16("a"),
diff --git a/components/omnibox/browser/document_provider.cc b/components/omnibox/browser/document_provider.cc index c59779ad..29b6b7a 100644 --- a/components/omnibox/browser/document_provider.cc +++ b/components/omnibox/browser/document_provider.cc
@@ -886,6 +886,16 @@ display_owner && !owners.empty() ? *owners[0] : ""); AutocompleteMatch::AddLastClassificationIfNecessary( &match.description_class, 0, ACMatchClassification::DIM); + // Exclude date from description_for_shortcut to avoid showing stale dates + // from the shortcuts provider. + match.description_for_shortcuts = GetMatchDescription( + "", mimetype, display_owner && !owners.empty() ? *owners[0] : ""); + AutocompleteMatch::AddLastClassificationIfNecessary( + &match.description_class_for_shortcuts, 0, + ACMatchClassification::DIM); + match.RecordAdditionalInfo( + "description_for_shortcuts", + base::UTF16ToUTF8(match.description_for_shortcuts)); } match.TryAutocompleteWithTitle(TitleForAutocompletion(match), input_);
diff --git a/components/omnibox/browser/document_provider_unittest.cc b/components/omnibox/browser/document_provider_unittest.cc index 65a8caf..e310688 100644 --- a/components/omnibox/browser/document_provider_unittest.cc +++ b/components/omnibox/browser/document_provider_unittest.cc
@@ -499,6 +499,17 @@ base::ASCIIToUTF16("1/12/94 - Google Sheets")); EXPECT_EQ(matches[3].description, base::ASCIIToUTF16("Google Sheets")); EXPECT_EQ(matches[4].description, base::ASCIIToUTF16("")); + + // Also verify description_for_shortcuts does not include dates. + EXPECT_EQ(matches[0].description_for_shortcuts, + base::ASCIIToUTF16("Google Docs")); + EXPECT_EQ(matches[1].description_for_shortcuts, + base::ASCIIToUTF16("Google Drive")); + EXPECT_EQ(matches[2].description_for_shortcuts, + base::ASCIIToUTF16("Google Sheets")); + EXPECT_EQ(matches[3].description_for_shortcuts, + base::ASCIIToUTF16("Google Sheets")); + EXPECT_EQ(matches[4].description_for_shortcuts, base::ASCIIToUTF16("")); } // Verify correct formatting when the DisplayOwner feature param is true. @@ -520,6 +531,18 @@ EXPECT_EQ(matches[3].description, base::ASCIIToUTF16("Red Lightning - Google Sheets")); EXPECT_EQ(matches[4].description, base::ASCIIToUTF16("")); + + // Also verify description_for_shortcuts does not include dates. + EXPECT_EQ(matches.size(), 5u); + EXPECT_EQ(matches[0].description_for_shortcuts, + base::ASCIIToUTF16("Green Moon - Google Docs")); + EXPECT_EQ(matches[1].description_for_shortcuts, + base::ASCIIToUTF16("Blue Sunset - Google Drive")); + EXPECT_EQ(matches[2].description_for_shortcuts, + base::ASCIIToUTF16("Google Sheets")); + EXPECT_EQ(matches[3].description_for_shortcuts, + base::ASCIIToUTF16("Red Lightning - Google Sheets")); + EXPECT_EQ(matches[4].description_for_shortcuts, base::ASCIIToUTF16("")); } }
diff --git a/components/omnibox/browser/shortcuts_backend.cc b/components/omnibox/browser/shortcuts_backend.cc index 544fde7..1fe5e9f 100644 --- a/components/omnibox/browser/shortcuts_backend.cc +++ b/components/omnibox/browser/shortcuts_backend.cc
@@ -168,14 +168,21 @@ normalized_match = &temp; } + auto description = normalized_match->description_for_shortcuts.empty() + ? normalized_match->description + : normalized_match->description_for_shortcuts; + auto description_class = + normalized_match->description_class_for_shortcuts.empty() + ? normalized_match->description_class + : normalized_match->description_class_for_shortcuts; + return ShortcutsDatabase::Shortcut::MatchCore( normalized_match->fill_into_edit, normalized_match->destination_url, static_cast<int>(normalized_match->document_type), normalized_match->contents, - StripMatchMarkers(normalized_match->contents_class), - normalized_match->description, - StripMatchMarkers(normalized_match->description_class), - normalized_match->transition, match_type, normalized_match->keyword); + StripMatchMarkers(normalized_match->contents_class), description, + StripMatchMarkers(description_class), normalized_match->transition, + match_type, normalized_match->keyword); } void ShortcutsBackend::ShutdownOnUIThread() {
diff --git a/components/omnibox/browser/shortcuts_backend.h b/components/omnibox/browser/shortcuts_backend.h index 9f4e779..d17f08fa 100644 --- a/components/omnibox/browser/shortcuts_backend.h +++ b/components/omnibox/browser/shortcuts_backend.h
@@ -102,6 +102,7 @@ TestShortcutData* db, size_t db_size); FRIEND_TEST_ALL_PREFIXES(ShortcutsBackendTest, EntitySuggestionTest); + FRIEND_TEST_ALL_PREFIXES(ShortcutsBackendTest, MatchCoreDescriptionTest); enum CurrentState { NOT_INITIALIZED, // Backend created but not initialized.
diff --git a/components/omnibox/browser/shortcuts_backend_unittest.cc b/components/omnibox/browser/shortcuts_backend_unittest.cc index 5a8a3bb..279b793 100644 --- a/components/omnibox/browser/shortcuts_backend_unittest.cc +++ b/components/omnibox/browser/shortcuts_backend_unittest.cc
@@ -252,6 +252,47 @@ EXPECT_TRUE(match_core.description_class.empty()); } +TEST_F(ShortcutsBackendTest, MatchCoreDescriptionTest) { + // When match.description_for_shortcuts is empty, match_core should use + // match.description. + { + AutocompleteMatch match; + match.description = base::UTF8ToUTF16("the cat"); + match.description_class = + AutocompleteMatch::ClassificationsFromString("0,1"); + + SearchTermsData search_terms_data; + ShortcutsDatabase::Shortcut::MatchCore match_core = + ShortcutsBackend::MatchToMatchCore(match, GetTemplateURLService(), + &search_terms_data); + EXPECT_EQ(match_core.description, match.description); + EXPECT_EQ( + match_core.description_class, + AutocompleteMatch::ClassificationsToString(match.description_class)); + } + + // When match.description_for_shortcuts is set, match_core should use it + // instead of match.description. + { + AutocompleteMatch match; + match.description = base::UTF8ToUTF16("the cat"); + match.description_class = + AutocompleteMatch::ClassificationsFromString("0,1"); + match.description_for_shortcuts = base::UTF8ToUTF16("the elephant"); + match.description_class_for_shortcuts = + AutocompleteMatch::ClassificationsFromString("0,4"); + + SearchTermsData search_terms_data; + ShortcutsDatabase::Shortcut::MatchCore match_core = + ShortcutsBackend::MatchToMatchCore(match, GetTemplateURLService(), + &search_terms_data); + EXPECT_EQ(match_core.description, match.description_for_shortcuts); + EXPECT_EQ(match_core.description_class, + AutocompleteMatch::ClassificationsToString( + match.description_class_for_shortcuts)); + } +} + TEST_F(ShortcutsBackendTest, AddAndUpdateShortcut) { InitBackend(); EXPECT_FALSE(changed_notified());
diff --git a/components/payments/content/android/BUILD.gn b/components/payments/content/android/BUILD.gn index 2493925d..b7e430a2 100644 --- a/components/payments/content/android/BUILD.gn +++ b/components/payments/content/android/BUILD.gn
@@ -54,9 +54,11 @@ android_library("java") { annotation_processor_deps = [ "//base/android/jni_generator:jni_processor" ] sources = [ + "java/src/org/chromium/components/payments/Address.java", "java/src/org/chromium/components/payments/CurrencyFormatter.java", "java/src/org/chromium/components/payments/ErrorMessageUtil.java", "java/src/org/chromium/components/payments/OriginSecurityChecker.java", + "java/src/org/chromium/components/payments/PayerData.java", "java/src/org/chromium/components/payments/PaymentDetailsConverter.java", "java/src/org/chromium/components/payments/PaymentHandlerHost.java", "java/src/org/chromium/components/payments/PaymentManifestDownloader.java",
diff --git a/components/payments/content/android/java/src/org/chromium/components/payments/Address.java b/components/payments/content/android/java/src/org/chromium/components/payments/Address.java new file mode 100644 index 0000000..e598c2e --- /dev/null +++ b/components/payments/content/android/java/src/org/chromium/components/payments/Address.java
@@ -0,0 +1,66 @@ +// 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.components.payments; + +/** + * An immutable class that mirrors org.chromium.payments.mojom.PaymentAddress. + * https://w3c.github.io/payment-request/#paymentaddress-interface + */ +public class Address { + public final String country; + public final String[] addressLine; + public final String region; + public final String city; + public final String dependentLocality; + public final String postalCode; + public final String sortingCode; + public final String organization; + public final String recipient; + public final String phone; + + public Address() { + country = null; + addressLine = null; + region = null; + city = null; + dependentLocality = null; + postalCode = null; + sortingCode = null; + organization = null; + recipient = null; + phone = null; + } + + /** + * @param country The country corresponding to the address. + * @param addressLine The most specific part of the address. It can include, for example, a + * street name, a house number, apartment number, a rural delivery route, descriptive + * instructions, or a post office box number. + * @param region The top level administrative subdivision of the country. For example, this can + * be a state, a province, an oblast, or a prefecture. + * @param city The city/town portion of the address. + * @param dependentLocalitly The dependent locality or sublocality within a city. For example, + * neighborhoods, boroughs, districts, or UK dependent localities. + * @param postalCode The postal code or ZIP code, also known as PIN code in India. + * @param sortingCode The sorting code as used in, for example, France. + * @param organization The organization, firm, company, or institution at the address. + * @param recipient The name of the recipient or contact person at the address. + * @param phone The phone number of the recipient or contact person at the address. + */ + public Address(String country, String[] addressLine, String region, String city, + String dependentLocality, String postalCode, String sortingCode, String organization, + String recipient, String phone) { + this.country = country; + this.addressLine = addressLine; + this.region = region; + this.city = city; + this.dependentLocality = dependentLocality; + this.postalCode = postalCode; + this.sortingCode = sortingCode; + this.organization = organization; + this.recipient = recipient; + this.phone = phone; + } +}
diff --git a/components/payments/content/android/java/src/org/chromium/components/payments/PayerData.java b/components/payments/content/android/java/src/org/chromium/components/payments/PayerData.java new file mode 100644 index 0000000..5dc1732 --- /dev/null +++ b/components/payments/content/android/java/src/org/chromium/components/payments/PayerData.java
@@ -0,0 +1,40 @@ +// 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. + +package org.chromium.components.payments; + +/** + * An immutable class used to bundle the payer data received from payment handlers. + */ +public class PayerData { + public final String payerName; + public final String payerPhone; + public final String payerEmail; + public final Address shippingAddress; + public final String selectedShippingOptionId; + + /** + * @param payerName The payer's name. + * @param payerPhone The payer's phone number. + * @param payerEmail The payer's email address. + * @param shippingAddress The user selected shippingAddress. + * @param selectedShippingOptionId The user selected shipping option's identifier. + */ + public PayerData(String payerName, String payerPhone, String payerEmail, + Address shippingAddress, String selectedShippingOptionId) { + this.payerName = payerName; + this.payerPhone = payerPhone; + this.payerEmail = payerEmail; + this.shippingAddress = shippingAddress; + this.selectedShippingOptionId = selectedShippingOptionId; + } + + public PayerData() { + payerName = null; + payerPhone = null; + payerEmail = null; + shippingAddress = null; + selectedShippingOptionId = null; + } +}
diff --git a/components/performance_manager/BUILD.gn b/components/performance_manager/BUILD.gn index c03d5e00..edc7555 100644 --- a/components/performance_manager/BUILD.gn +++ b/components/performance_manager/BUILD.gn
@@ -72,6 +72,7 @@ "public/graph/node.h", "public/graph/node_attached_data.h", "public/graph/page_node.h", + "public/graph/policies/background_tab_loading_policy.h", "public/graph/process_node.h", "public/graph/system_node.h", "public/graph/worker_node.h", @@ -82,6 +83,8 @@ "render_process_host_proxy.cc", "render_process_user_data.cc", "render_process_user_data.h", + "service_worker_context_adapter.cc", + "service_worker_context_adapter.h", "tab_helper_frame_node_source.cc", "tab_helper_frame_node_source.h", "web_contents_proxy.cc",
diff --git a/components/performance_manager/decorators/decorators_utils.h b/components/performance_manager/decorators/decorators_utils.h index b8f1e0c..222a6a4 100644 --- a/components/performance_manager/decorators/decorators_utils.h +++ b/components/performance_manager/decorators/decorators_utils.h
@@ -26,7 +26,7 @@ FROM_HERE, base::BindOnce( [](base::WeakPtr<PageNode> node, void (decorator_data_type::*setter_function)(T), - T value, Graph* graph) { + T value) { if (node) { auto* data = decorator_data_type::GetOrCreate( PageNodeImpl::FromNode(node.get()));
diff --git a/components/performance_manager/decorators/decorators_utils_unittest.cc b/components/performance_manager/decorators/decorators_utils_unittest.cc index a8a9730..af353a1 100644 --- a/components/performance_manager/decorators/decorators_utils_unittest.cc +++ b/components/performance_manager/decorators/decorators_utils_unittest.cc
@@ -4,6 +4,8 @@ #include "components/performance_manager/decorators/decorators_utils.h" +#include <utility> + #include "base/test/bind_test_util.h" #include "components/performance_manager/graph/node_attached_data_impl.h" #include "components/performance_manager/performance_manager_test_harness.h" @@ -70,7 +72,7 @@ base::WeakPtr<PageNode> node = PerformanceManager::GetPageNodeForWebContents(web_contents()); auto quit_closure = run_loop.QuitClosure(); - auto call_on_graph_cb = base::BindLambdaForTesting([&](Graph* unused) { + auto call_on_graph_cb = base::BindLambdaForTesting([&]() { EXPECT_TRUE(node); FakePageNodeDecoratorData::GetOrCreate(PageNodeImpl::FromNode(node.get())) ->SetOnSetPropertyCalledExpectations(std::move(quit_closure), @@ -88,4 +90,4 @@ run_loop.Run(); } -} // namespace performance_manager \ No newline at end of file +} // namespace performance_manager
diff --git a/components/performance_manager/decorators/page_load_tracker_decorator_helper.cc b/components/performance_manager/decorators/page_load_tracker_decorator_helper.cc index 3d1aa4c..a590b1b8 100644 --- a/components/performance_manager/decorators/page_load_tracker_decorator_helper.cc +++ b/components/performance_manager/decorators/page_load_tracker_decorator_helper.cc
@@ -23,8 +23,7 @@ PerformanceManagerImpl::CallOnGraphImpl( FROM_HERE, base::BindOnce( - [](base::WeakPtr<PageNode> node, void (*method)(PageNodeImpl*), - GraphImpl* graph) { + [](base::WeakPtr<PageNode> node, void (*method)(PageNodeImpl*)) { if (node) { PageNodeImpl* page_node = PageNodeImpl::FromNode(node.get()); method(page_node);
diff --git a/components/performance_manager/graph/policies/process_priority_policy_unittest.cc b/components/performance_manager/graph/policies/process_priority_policy_unittest.cc index a8dc498c..31532b523 100644 --- a/components/performance_manager/graph/policies/process_priority_policy_unittest.cc +++ b/components/performance_manager/graph/policies/process_priority_policy_unittest.cc
@@ -4,6 +4,9 @@ #include "components/performance_manager/graph/policies/process_priority_policy.h" +#include <memory> +#include <utility> + #include "base/test/bind_test_util.h" #include "base/threading/sequenced_task_runner_handle.h" #include "components/performance_manager/graph/process_node_impl.h" @@ -39,8 +42,7 @@ auto* process_node = rpud->process_node(); PerformanceManager::CallOnGraph( - FROM_HERE, - base::BindLambdaForTesting([process_node](Graph* graph_unused) { + FROM_HERE, base::BindLambdaForTesting([process_node]() { process_node->set_priority( GetOppositePriority(process_node->priority())); }));
diff --git a/components/performance_manager/performance_manager.cc b/components/performance_manager/performance_manager.cc index 4cbbf3b..3d95270 100644 --- a/components/performance_manager/performance_manager.cc +++ b/components/performance_manager/performance_manager.cc
@@ -18,6 +18,14 @@ // static void PerformanceManager::CallOnGraph(const base::Location& from_here, + base::OnceClosure callback) { + DCHECK(callback); + + PerformanceManagerImpl::GetTaskRunner()->PostTask(from_here, + std::move(callback)); +} +// static +void PerformanceManager::CallOnGraph(const base::Location& from_here, GraphCallback callback) { DCHECK(callback);
diff --git a/components/performance_manager/performance_manager_impl.cc b/components/performance_manager/performance_manager_impl.cc index 175711f1..3ad0188 100644 --- a/components/performance_manager/performance_manager_impl.cc +++ b/components/performance_manager/performance_manager_impl.cc
@@ -60,6 +60,13 @@ // static void PerformanceManagerImpl::CallOnGraphImpl(const base::Location& from_here, + base::OnceClosure callback) { + DCHECK(callback); + GetTaskRunner()->PostTask(from_here, std::move(callback)); +} + +// static +void PerformanceManagerImpl::CallOnGraphImpl(const base::Location& from_here, GraphImplCallback callback) { DCHECK(callback); GetTaskRunner()->PostTask(
diff --git a/components/performance_manager/performance_manager_impl.h b/components/performance_manager/performance_manager_impl.h index 199b2f2..349006b 100644 --- a/components/performance_manager/performance_manager_impl.h +++ b/components/performance_manager/performance_manager_impl.h
@@ -36,8 +36,8 @@ ~PerformanceManagerImpl() override; - // Posts a callback that will run on the PM sequence, and be provided a - // pointer to the Graph. Valid to call from any sequence. + // Posts a callback that will run on the PM sequence. Valid to call from any + // sequence. // // Note: If called from the main thread, the |graph_callback| is guaranteed to // run if and only if "IsAvailable()" returns true. @@ -45,6 +45,10 @@ // If called from any other sequence, there is no guarantee that the // callback will run. It will depend on if the PerformanceManager was // destroyed before the the task is scheduled. + static void CallOnGraphImpl(const base::Location& from_here, + base::OnceClosure callback); + + // Same as the above, but the callback is provided a pointer to the graph. using GraphImplCallback = base::OnceCallback<void(GraphImpl*)>; static void CallOnGraphImpl(const base::Location& from_here, GraphImplCallback graph_callback);
diff --git a/components/performance_manager/performance_manager_registry_impl.cc b/components/performance_manager/performance_manager_registry_impl.cc index 7c9aec4..6a721c5c 100644 --- a/components/performance_manager/performance_manager_registry_impl.cc +++ b/components/performance_manager/performance_manager_registry_impl.cc
@@ -10,6 +10,8 @@ #include "components/performance_manager/performance_manager_tab_helper.h" #include "components/performance_manager/public/performance_manager.h" #include "components/performance_manager/public/performance_manager_main_thread_observer.h" +#include "components/performance_manager/service_worker_context_adapter.h" +#include "components/performance_manager/worker_watcher.h" #include "content/public/browser/browser_context.h" #include "content/public/browser/render_process_host.h" #include "content/public/browser/storage_partition.h" @@ -94,24 +96,37 @@ content::BrowserContext* browser_context) { content::StoragePartition* storage_partition = content::BrowserContext::GetDefaultStoragePartition(browser_context); - std::unique_ptr<WorkerWatcher> worker_watcher = - std::make_unique<WorkerWatcher>( - browser_context->UniqueId(), - storage_partition->GetDedicatedWorkerService(), - storage_partition->GetSharedWorkerService(), &process_node_source_, - &frame_node_source_); - auto result = browser_contexts_with_worker_watcher_.insert( - {browser_context->UniqueId(), std::move(worker_watcher)}); - DCHECK(result.second); + + // Create an adapter for the service worker context. + auto insertion_result = service_worker_context_adapters_.emplace( + browser_context, std::make_unique<ServiceWorkerContextAdapter>( + storage_partition->GetServiceWorkerContext())); + DCHECK(insertion_result.second); + ServiceWorkerContextAdapter* service_worker_context_adapter = + insertion_result.first->second.get(); + + auto worker_watcher = std::make_unique<WorkerWatcher>( + browser_context->UniqueId(), + storage_partition->GetDedicatedWorkerService(), + storage_partition->GetSharedWorkerService(), + service_worker_context_adapter, &process_node_source_, + &frame_node_source_); + bool inserted = + worker_watchers_.emplace(browser_context, std::move(worker_watcher)) + .second; + DCHECK(inserted); } void PerformanceManagerRegistryImpl::NotifyBrowserContextRemoved( content::BrowserContext* browser_context) { - auto it = - browser_contexts_with_worker_watcher_.find(browser_context->UniqueId()); - DCHECK(it != browser_contexts_with_worker_watcher_.end()); + auto it = worker_watchers_.find(browser_context); + DCHECK(it != worker_watchers_.end()); it->second->TearDown(); - browser_contexts_with_worker_watcher_.erase(it); + worker_watchers_.erase(it); + + // Remove the adapter. + size_t removed = service_worker_context_adapters_.erase(browser_context); + DCHECK_EQ(removed, 1u); } void PerformanceManagerRegistryImpl::TearDown() { @@ -125,11 +140,12 @@ // Destroy WorkerNodes before ProcessNodes, because ProcessNode checks that it // has no associated WorkerNode when torn down. - for (auto& browser_context_and_worker_watcher : - browser_contexts_with_worker_watcher_) { - browser_context_and_worker_watcher.second->TearDown(); + for (auto& kv : worker_watchers_) { + kv.second->TearDown(); } - browser_contexts_with_worker_watcher_.clear(); + worker_watchers_.clear(); + + service_worker_context_adapters_.clear(); for (auto* web_contents : web_contents_) { PerformanceManagerTabHelper* tab_helper =
diff --git a/components/performance_manager/performance_manager_registry_impl.h b/components/performance_manager/performance_manager_registry_impl.h index 5b885806db..e089d2b 100644 --- a/components/performance_manager/performance_manager_registry_impl.h +++ b/components/performance_manager/performance_manager_registry_impl.h
@@ -17,7 +17,6 @@ #include "components/performance_manager/process_node_source.h" #include "components/performance_manager/render_process_user_data.h" #include "components/performance_manager/tab_helper_frame_node_source.h" -#include "components/performance_manager/worker_watcher.h" namespace content { class RenderProcessHost; @@ -27,6 +26,8 @@ namespace performance_manager { class PerformanceManagerMainThreadObserver; +class ServiceWorkerContextAdapter; +class WorkerWatcher; class PerformanceManagerRegistryImpl : public PerformanceManagerRegistry, @@ -76,10 +77,14 @@ base::flat_set<content::WebContents*> web_contents_; base::flat_set<content::RenderProcessHost*> render_process_hosts_; - // Map of browser context ids for which a WorkerWatcher exists to - // corresponding WorkerWatcher. - base::flat_map<std::string, std::unique_ptr<WorkerWatcher>> - browser_contexts_with_worker_watcher_; + // Maps each browser context to its ServiceWorkerContextAdapter. + base::flat_map<content::BrowserContext*, + std::unique_ptr<ServiceWorkerContextAdapter>> + service_worker_context_adapters_; + + // Maps each browser context to its worker watcher. + base::flat_map<content::BrowserContext*, std::unique_ptr<WorkerWatcher>> + worker_watchers_; // Used by WorkerWatchers to access existing process nodes and frame // nodes.
diff --git a/components/performance_manager/performance_manager_tab_helper.cc b/components/performance_manager/performance_manager_tab_helper.cc index 4ee419d8..58d4b2d 100644 --- a/components/performance_manager/performance_manager_tab_helper.cc +++ b/components/performance_manager/performance_manager_tab_helper.cc
@@ -201,8 +201,7 @@ // Perform the swap in the graph. PerformanceManagerImpl::CallOnGraphImpl( FROM_HERE, base::BindOnce( - [](FrameNodeImpl* old_frame, FrameNodeImpl* new_frame, - GraphImpl* graph) { + [](FrameNodeImpl* old_frame, FrameNodeImpl* new_frame) { if (old_frame) { DCHECK(old_frame->is_current()); old_frame->SetIsCurrent(false); @@ -220,19 +219,14 @@ const bool is_visible = visibility == content::Visibility::VISIBLE; PerformanceManagerImpl::CallOnGraphImpl( FROM_HERE, - base::BindOnce( - [](PageNodeImpl* page_node, bool is_visible, GraphImpl* graph) { - page_node->SetIsVisible(is_visible); - }, - page_node_.get(), is_visible)); + base::BindOnce(&PageNodeImpl::SetIsVisible, + base::Unretained(page_node_.get()), is_visible)); } void PerformanceManagerTabHelper::OnAudioStateChanged(bool audible) { PerformanceManagerImpl::CallOnGraphImpl( - FROM_HERE, - base::BindOnce([](PageNodeImpl* page_node, bool audible, - GraphImpl* graph) { page_node->SetIsAudible(audible); }, - page_node_.get(), audible)); + FROM_HERE, base::BindOnce(&PageNodeImpl::SetIsAudible, + base::Unretained(page_node_.get()), audible)); } void PerformanceManagerTabHelper::DidFinishNavigation( @@ -258,12 +252,9 @@ // Notify the frame of the committed URL. GURL url = navigation_handle->GetURL(); PerformanceManagerImpl::CallOnGraphImpl( - FROM_HERE, base::BindOnce( - [](FrameNodeImpl* frame_node, const GURL& url, - bool is_same_document, GraphImpl* graph) { - frame_node->OnNavigationCommitted(url, is_same_document); - }, - frame_node, url, navigation_handle->IsSameDocument())); + FROM_HERE, base::BindOnce(&FrameNodeImpl::OnNavigationCommitted, + base::Unretained(frame_node), url, + navigation_handle->IsSameDocument())); if (!navigation_handle->IsInMainFrame()) return; @@ -274,16 +265,10 @@ PerformanceManagerImpl::CallOnGraphImpl( FROM_HERE, base::BindOnce( - [](PageNodeImpl* page_node, bool same_document, - base::TimeTicks navigation_committed_time, int64_t navigation_id, - const GURL& url, const std::string& contents_mime_type, - GraphImpl* graph) { - page_node->OnMainFrameNavigationCommitted( - same_document, navigation_committed_time, navigation_id, url, - contents_mime_type); - }, - page_node_.get(), navigation_handle->IsSameDocument(), - navigation_committed_time, navigation_handle->GetNavigationId(), url, + &PageNodeImpl::OnMainFrameNavigationCommitted, + base::Unretained(page_node_.get()), + navigation_handle->IsSameDocument(), navigation_committed_time, + navigation_handle->GetNavigationId(), url, navigation_handle->GetWebContents()->GetContentsMimeType())); } @@ -293,12 +278,9 @@ first_time_title_set_ = true; return; } - PerformanceManagerImpl::CallOnGraphImpl( - FROM_HERE, - base::BindOnce([](PageNodeImpl* page_node, - GraphImpl* graph) { page_node->OnTitleUpdated(); }, - page_node_.get())); + FROM_HERE, base::BindOnce(&PageNodeImpl::OnTitleUpdated, + base::Unretained(page_node_.get()))); } void PerformanceManagerTabHelper::WebContentsDestroyed() { @@ -312,12 +294,9 @@ first_time_favicon_set_ = true; return; } - PerformanceManagerImpl::CallOnGraphImpl( - FROM_HERE, - base::BindOnce([](PageNodeImpl* page_node, - GraphImpl* graph) { page_node->OnFaviconUpdated(); }, - page_node_.get())); + FROM_HERE, base::BindOnce(&PageNodeImpl::OnFaviconUpdated, + base::Unretained(page_node_.get()))); } void PerformanceManagerTabHelper::BindDocumentCoordinationUnit( @@ -344,11 +323,8 @@ PerformanceManagerImpl::CallOnGraphImpl( FROM_HERE, - base::BindOnce( - [](FrameNodeImpl* frame_node, - mojo::PendingReceiver<mojom::DocumentCoordinationUnit> receiver, - GraphImpl* graph) { frame_node->Bind(std::move(receiver)); }, - it->second.get(), std::move(receiver))); + base::BindOnce(&FrameNodeImpl::Bind, base::Unretained(it->second.get()), + std::move(receiver))); } content::WebContents* PerformanceManagerTabHelper::GetWebContents() const { @@ -379,10 +355,8 @@ ukm::ConvertToSourceId(navigation_id, ukm::SourceIdType::NAVIGATION_ID); PerformanceManagerImpl::CallOnGraphImpl( FROM_HERE, - base::BindOnce( - [](PageNodeImpl* page_node, ukm::SourceId ukm_source_id, - GraphImpl* graph) { page_node->SetUkmSourceId(ukm_source_id); }, - page_node_.get(), ukm_source_id_)); + base::BindOnce(&PageNodeImpl::SetUkmSourceId, + base::Unretained(page_node_.get()), ukm_source_id_)); first_time_title_set_ = false; first_time_favicon_set_ = false;
diff --git a/components/performance_manager/performance_manager_unittest.cc b/components/performance_manager/performance_manager_unittest.cc index e26bce6..7f91ee7 100644 --- a/components/performance_manager/performance_manager_unittest.cc +++ b/components/performance_manager/performance_manager_unittest.cc
@@ -4,6 +4,8 @@ #include "components/performance_manager/public/performance_manager.h" +#include <utility> + #include "base/run_loop.h" #include "base/task/post_task.h" #include "base/test/bind_test_util.h" @@ -54,7 +56,7 @@ run_loop.Quit(); }); - auto call_on_graph_cb = base::BindLambdaForTesting([&](Graph* unused) { + auto call_on_graph_cb = base::BindLambdaForTesting([&]() { EXPECT_TRUE(page_node.get()); base::PostTask(FROM_HERE, {content::BrowserThread::UI}, base::BindOnce(std::move(check_wc_on_main_thread), @@ -72,7 +74,7 @@ // invalid. base::RunLoop run_loop_after_contents_reset; auto quit_closure = run_loop_after_contents_reset.QuitClosure(); - auto call_on_graph_cb_2 = base::BindLambdaForTesting([&](Graph* unused) { + auto call_on_graph_cb_2 = base::BindLambdaForTesting([&]() { EXPECT_FALSE(page_node.get()); std::move(quit_closure).Run(); });
diff --git a/components/performance_manager/public/graph/policies/background_tab_loading_policy.h b/components/performance_manager/public/graph/policies/background_tab_loading_policy.h new file mode 100644 index 0000000..818ed717 --- /dev/null +++ b/components/performance_manager/public/graph/policies/background_tab_loading_policy.h
@@ -0,0 +1,21 @@ +// 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_PUBLIC_GRAPH_POLICIES_BACKGROUND_TAB_LOADING_POLICY_H_ +#define COMPONENTS_PERFORMANCE_MANAGER_PUBLIC_GRAPH_POLICIES_BACKGROUND_TAB_LOADING_POLICY_H_ + +namespace performance_manager { + +namespace policies { + +// Schedules the restored WebContents in |web_contents| to be loaded when +// appropriate. Invoked from the UI thread. +void ScheduleLoadForRestoredTabs( + std::vector<content::WebContents*> web_contents); + +} // namespace policies + +} // namespace performance_manager + +#endif // COMPONENTS_PERFORMANCE_MANAGER_PUBLIC_GRAPH_POLICIES_BACKGROUND_TAB_LOADING_POLICY_H_
diff --git a/components/performance_manager/public/performance_manager.h b/components/performance_manager/public/performance_manager.h index 370b2a5..940a4996 100644 --- a/components/performance_manager/public/performance_manager.h +++ b/components/performance_manager/public/performance_manager.h
@@ -32,18 +32,22 @@ // the main thread only. static bool IsAvailable(); - // Posts a callback that will run on the PM sequence, and be provided a - // pointer to the Graph. Valid to call from any sequence. + // Posts a callback that will run on the PM sequence. Valid to call from any + // sequence. // - // Note: If called from the main thread, the |graph_callback| is guaranteed to - // run if and only if "IsAvailable()" returns true. + // Note: If called from the main thread, the |callback| is guaranteed to run + // if and only if "IsAvailable()" returns true. // // If called from any other sequence, there is no guarantee that the // callback will run. It will depend on if the PerformanceManager was // destroyed before the the task is scheduled. + static void CallOnGraph(const base::Location& from_here, + base::OnceClosure callback); + + // Same as the above, but the callback is provided a pointer to the graph. using GraphCallback = base::OnceCallback<void(Graph*)>; static void CallOnGraph(const base::Location& from_here, - GraphCallback graph_callback); + GraphCallback callback); // Passes a GraphOwned object into the Graph on the PM sequence. Must only be // called if "IsAvailable()" returns true. Valid to call from the main thread
diff --git a/components/performance_manager/render_process_user_data.cc b/components/performance_manager/render_process_user_data.cc index b1c5846ad..72e0e4d 100644 --- a/components/performance_manager/render_process_user_data.cc +++ b/components/performance_manager/render_process_user_data.cc
@@ -85,25 +85,18 @@ #endif PerformanceManagerImpl::CallOnGraphImpl( - FROM_HERE, - base::BindOnce( - [](ProcessNodeImpl* process_node, base::Process process, - base::Time launch_time, GraphImpl* graph) { - process_node->SetProcess(std::move(process), launch_time); - }, - process_node_.get(), host->GetProcess().Duplicate(), launch_time)); + FROM_HERE, base::BindOnce(&ProcessNodeImpl::SetProcess, + base::Unretained(process_node_.get()), + host->GetProcess().Duplicate(), launch_time)); } void RenderProcessUserData::RenderProcessExited( content::RenderProcessHost* host, const content::ChildProcessTerminationInfo& info) { PerformanceManagerImpl::CallOnGraphImpl( - FROM_HERE, base::BindOnce( - [](ProcessNodeImpl* process_node, int32_t exit_code, - GraphImpl* graph) { - process_node->SetProcessExitStatus(exit_code); - }, - process_node_.get(), info.exit_code)); + FROM_HERE, + base::BindOnce(&ProcessNodeImpl::SetProcessExitStatus, + base::Unretained(process_node_.get()), info.exit_code)); } void RenderProcessUserData::RenderProcessHostDestroyed(
diff --git a/components/performance_manager/service_worker_context_adapter.cc b/components/performance_manager/service_worker_context_adapter.cc new file mode 100644 index 0000000..9cc389c --- /dev/null +++ b/components/performance_manager/service_worker_context_adapter.cc
@@ -0,0 +1,290 @@ +// 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_context_adapter.h" + +#include "base/logging.h" +#include "content/public/browser/render_process_host.h" +#include "content/public/browser/render_process_host_observer.h" + +namespace performance_manager { + +// ServiceWorkerContextAdapter::RunningServiceWorker --------------------------- + +// Observes when the render process of a running service worker exits and +// notifies its owner. +class ServiceWorkerContextAdapter::RunningServiceWorker + : content::RenderProcessHostObserver { + public: + RunningServiceWorker(int64_t version_id, + content::RenderProcessHost* worker_process_host, + ServiceWorkerContextAdapter* adapter); + ~RunningServiceWorker() override; + + void RenderProcessExited( + content::RenderProcessHost* host, + const content::ChildProcessTerminationInfo& info) override; + void RenderProcessHostDestroyed(content::RenderProcessHost* host) override; + + private: + // The version ID of the service worker. + int version_id_; + + // The adapter that owns |this|. Notified when RenderProcessExited() is + // called. + ServiceWorkerContextAdapter* const adapter_; + + ScopedObserver<content::RenderProcessHost, content::RenderProcessHostObserver> + scoped_render_process_host_observer_{this}; +}; + +ServiceWorkerContextAdapter::RunningServiceWorker::RunningServiceWorker( + int64_t version_id, + content::RenderProcessHost* worker_process_host, + ServiceWorkerContextAdapter* adapter) + : version_id_(version_id), adapter_(adapter) { + scoped_render_process_host_observer_.Add(worker_process_host); +} + +ServiceWorkerContextAdapter::RunningServiceWorker::~RunningServiceWorker() = + default; + +void ServiceWorkerContextAdapter::RunningServiceWorker::RenderProcessExited( + content::RenderProcessHost* host, + const content::ChildProcessTerminationInfo& info) { + adapter_->OnRenderProcessExited(version_id_); +} + +void ServiceWorkerContextAdapter::RunningServiceWorker:: + RenderProcessHostDestroyed(content::RenderProcessHost* host) { + NOTREACHED(); +} + +// ServiceWorkerContextAdapter::RunningServiceWorker --------------------------- + +ServiceWorkerContextAdapter::ServiceWorkerContextAdapter( + content::ServiceWorkerContext* underlying_context) { + scoped_underlying_context_observer_.Add(underlying_context); +} + +ServiceWorkerContextAdapter::~ServiceWorkerContextAdapter() = default; + +void ServiceWorkerContextAdapter::AddObserver( + content::ServiceWorkerContextObserver* observer) { + observer_list_.AddObserver(observer); +} + +void ServiceWorkerContextAdapter::RemoveObserver( + content::ServiceWorkerContextObserver* observer) { + observer_list_.RemoveObserver(observer); +} + +void ServiceWorkerContextAdapter::RegisterServiceWorker( + const GURL& script_url, + const blink::mojom::ServiceWorkerRegistrationOptions& options, + ResultCallback callback) { + NOTIMPLEMENTED(); +} + +void ServiceWorkerContextAdapter::UnregisterServiceWorker( + const GURL& scope, + ResultCallback callback) { + NOTIMPLEMENTED(); +} + +content::ServiceWorkerExternalRequestResult +ServiceWorkerContextAdapter::StartingExternalRequest( + int64_t service_worker_version_id, + const std::string& request_uuid) { + NOTIMPLEMENTED(); + return content::ServiceWorkerExternalRequestResult::kOk; +} + +content::ServiceWorkerExternalRequestResult +ServiceWorkerContextAdapter::FinishedExternalRequest( + int64_t service_worker_version_id, + const std::string& request_uuid) { + NOTIMPLEMENTED(); + return content::ServiceWorkerExternalRequestResult::kOk; +} + +void ServiceWorkerContextAdapter::CountExternalRequestsForTest( + const GURL& origin, + CountExternalRequestsCallback callback) { + NOTIMPLEMENTED(); +} + +void ServiceWorkerContextAdapter::GetAllOriginsInfo( + GetUsageInfoCallback callback) { + NOTIMPLEMENTED(); +} + +void ServiceWorkerContextAdapter::DeleteForOrigin(const GURL& origin_url, + ResultCallback callback) { + NOTIMPLEMENTED(); +} + +void ServiceWorkerContextAdapter::PerformStorageCleanup( + base::OnceClosure callback) { + NOTIMPLEMENTED(); +} + +void ServiceWorkerContextAdapter::CheckHasServiceWorker( + const GURL& url, + CheckHasServiceWorkerCallback callback) { + NOTIMPLEMENTED(); +} + +void ServiceWorkerContextAdapter::CheckOfflineCapability( + const GURL& url, + CheckOfflineCapabilityCallback callback) { + NOTIMPLEMENTED(); +} + +void ServiceWorkerContextAdapter::ClearAllServiceWorkersForTest( + base::OnceClosure callback) { + NOTIMPLEMENTED(); +} + +void ServiceWorkerContextAdapter::StartWorkerForScope( + const GURL& scope, + StartWorkerCallback info_callback, + base::OnceClosure failure_callback) { + NOTIMPLEMENTED(); +} + +void ServiceWorkerContextAdapter::StartServiceWorkerAndDispatchMessage( + const GURL& scope, + blink::TransferableMessage message, + ResultCallback result_callback) { + NOTIMPLEMENTED(); +} + +void ServiceWorkerContextAdapter::StartServiceWorkerForNavigationHint( + const GURL& document_url, + StartServiceWorkerForNavigationHintCallback callback) { + NOTIMPLEMENTED(); +} + +void ServiceWorkerContextAdapter::StopAllServiceWorkersForOrigin( + const GURL& origin) { + NOTIMPLEMENTED(); +} + +void ServiceWorkerContextAdapter::StopAllServiceWorkers( + base::OnceClosure callback) { + NOTIMPLEMENTED(); +} + +const base::flat_map<int64_t /* version_id */, + content::ServiceWorkerRunningInfo>& +ServiceWorkerContextAdapter::GetRunningServiceWorkerInfos() { + NOTIMPLEMENTED(); + static base::flat_map<int64_t /* version_id */, + content::ServiceWorkerRunningInfo> + unused; + return unused; +} + +void ServiceWorkerContextAdapter::OnRegistrationCompleted(const GURL& scope) { + for (auto& observer : observer_list_) + observer.OnRegistrationCompleted(scope); +} + +void ServiceWorkerContextAdapter::OnRegistrationStored(int64_t registration_id, + const GURL& scope) { + for (auto& observer : observer_list_) + observer.OnRegistrationStored(registration_id, scope); +} + +void ServiceWorkerContextAdapter::OnVersionActivated(int64_t version_id, + const GURL& scope) { + for (auto& observer : observer_list_) + observer.OnVersionActivated(version_id, scope); +} + +void ServiceWorkerContextAdapter::OnVersionRedundant(int64_t version_id, + const GURL& scope) { + for (auto& observer : observer_list_) + observer.OnVersionRedundant(version_id, scope); +} + +void ServiceWorkerContextAdapter::OnVersionStartedRunning( + int64_t version_id, + const content::ServiceWorkerRunningInfo& running_info) { + auto* worker_process_host = + content::RenderProcessHost::FromID(running_info.render_process_id); + + // It's possible that the renderer is already gone since the notification + // comes asynchronously. Ignore this service worker. + if (!worker_process_host || !worker_process_host->IsReady()) { +#if DCHECK_IS_ON() + // A OnVersionStoppedRunning() notification is still expected to be sent. + bool inserted = stopped_service_workers_.insert(version_id).second; + DCHECK(inserted); +#endif // DCHECK_IS_ON() + return; + } + + bool inserted = + running_service_workers_ + .emplace(version_id, std::make_unique<RunningServiceWorker>( + version_id, worker_process_host, this)) + .second; + DCHECK(inserted); + + for (auto& observer : observer_list_) + observer.OnVersionStartedRunning(version_id, running_info); +} + +void ServiceWorkerContextAdapter::OnVersionStoppedRunning(int64_t version_id) { + size_t removed = running_service_workers_.erase(version_id); + if (!removed) { +#if DCHECK_IS_ON() + // If this service worker could not be found, then it must be because its + // render process exited early. + size_t removed = stopped_service_workers_.erase(version_id); + DCHECK_EQ(removed, 1u); +#endif // DCHECK_IS_ON() + return; + } + + for (auto& observer : observer_list_) + observer.OnVersionStoppedRunning(version_id); +} + +void ServiceWorkerContextAdapter::OnNoControllees(int64_t version_id, + const GURL& scope) { + for (auto& observer : observer_list_) + observer.OnNoControllees(version_id, scope); +} + +void ServiceWorkerContextAdapter::OnReportConsoleMessage( + int64_t version_id, + const content::ConsoleMessage& message) { + for (auto& observer : observer_list_) + observer.OnReportConsoleMessage(version_id, message); +} + +void ServiceWorkerContextAdapter::OnDestruct(ServiceWorkerContext* context) { + for (auto& observer : observer_list_) + observer.OnDestruct(context); +} + +void ServiceWorkerContextAdapter::OnRenderProcessExited(int64_t version_id) { + size_t removed = running_service_workers_.erase(version_id); + DCHECK_EQ(removed, 1u); + + for (auto& observer : observer_list_) + observer.OnVersionStoppedRunning(version_id); + +#if DCHECK_IS_ON() + // Now expect that OnVersionStoppedRunning() will be called for that + // version_id. + bool inserted = stopped_service_workers_.insert(version_id).second; + DCHECK(inserted); +#endif // DCHECK_IS_ON() +} + +} // namespace performance_manager
diff --git a/components/performance_manager/service_worker_context_adapter.h b/components/performance_manager/service_worker_context_adapter.h new file mode 100644 index 0000000..ae7a8798b --- /dev/null +++ b/components/performance_manager/service_worker_context_adapter.h
@@ -0,0 +1,130 @@ +// 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_CONTEXT_ADAPTER_H_ +#define COMPONENTS_PERFORMANCE_MANAGER_SERVICE_WORKER_CONTEXT_ADAPTER_H_ + +#include <memory> +#include <string> + +#include "base/containers/flat_map.h" +#include "base/containers/flat_set.h" +#include "base/logging.h" +#include "base/observer_list.h" +#include "base/scoped_observer.h" +#include "content/public/browser/service_worker_context.h" +#include "content/public/browser/service_worker_context_observer.h" + +namespace performance_manager { + +// This class adapts an existing ServiceWorkerContext to ensure that the +// OnVersionStoppedRunning() notifications are sent as soon as the render +// process of a running service worker exits. +// +// It implements ServiceWorkerContext so it can be used interchangeably where a +// ServiceWorkerContext* is needed, and it also observes the underlying context +// so that it can receive the original notifications and control when they are +// sent to the observers. +// +// Lives on the UI thread. Must outlive |underlying_context|. +// +// Note: This is a temporary class that can be removed when the representation +// of a worker in the content/ layer (ServiceWorkerVersion) is moved to +// the UI thread. At that point, it'll be able to observe its associated +// RenderProcessHost itself. See https://crbug.com/824858. +class ServiceWorkerContextAdapter + : public content::ServiceWorkerContext, + public content::ServiceWorkerContextObserver { + public: + explicit ServiceWorkerContextAdapter( + content::ServiceWorkerContext* underlying_context); + ~ServiceWorkerContextAdapter() override; + + // content::ServiceWorkerContext: + // Note that this is a minimal implementation for the use case of the + // PerformanceManager. Only AddObserver/RemoveObserver are implemented. + void AddObserver(content::ServiceWorkerContextObserver* observer) override; + void RemoveObserver(content::ServiceWorkerContextObserver* observer) override; + void RegisterServiceWorker( + const GURL& script_url, + const blink::mojom::ServiceWorkerRegistrationOptions& options, + ResultCallback callback) override; + void UnregisterServiceWorker(const GURL& scope, + ResultCallback callback) override; + content::ServiceWorkerExternalRequestResult StartingExternalRequest( + int64_t service_worker_version_id, + const std::string& request_uuid) override; + content::ServiceWorkerExternalRequestResult FinishedExternalRequest( + int64_t service_worker_version_id, + const std::string& request_uuid) override; + void CountExternalRequestsForTest( + const GURL& origin, + CountExternalRequestsCallback callback) override; + void GetAllOriginsInfo(GetUsageInfoCallback callback) override; + void DeleteForOrigin(const GURL& origin_url, + ResultCallback callback) override; + void PerformStorageCleanup(base::OnceClosure callback) override; + void CheckHasServiceWorker(const GURL& url, + CheckHasServiceWorkerCallback callback) override; + void CheckOfflineCapability(const GURL& url, + CheckOfflineCapabilityCallback callback) override; + void ClearAllServiceWorkersForTest(base::OnceClosure callback) override; + void StartWorkerForScope(const GURL& scope, + StartWorkerCallback info_callback, + base::OnceClosure failure_callback) override; + void StartServiceWorkerAndDispatchMessage( + const GURL& scope, + blink::TransferableMessage message, + ResultCallback result_callback) override; + void StartServiceWorkerForNavigationHint( + const GURL& document_url, + StartServiceWorkerForNavigationHintCallback callback) override; + void StopAllServiceWorkersForOrigin(const GURL& origin) override; + void StopAllServiceWorkers(base::OnceClosure callback) override; + const base::flat_map<int64_t /* version_id */, + content::ServiceWorkerRunningInfo>& + GetRunningServiceWorkerInfos() override; + + // content::ServiceWorkerContextObserver: + void OnRegistrationCompleted(const GURL& scope) override; + void OnRegistrationStored(int64_t registration_id, + const GURL& scope) override; + void OnVersionActivated(int64_t version_id, const GURL& scope) override; + void OnVersionRedundant(int64_t version_id, const GURL& scope) override; + void OnVersionStartedRunning( + int64_t version_id, + const content::ServiceWorkerRunningInfo& running_info) override; + void OnVersionStoppedRunning(int64_t version_id) override; + void OnNoControllees(int64_t version_id, const GURL& scope) override; + void OnReportConsoleMessage(int64_t version_id, + const content::ConsoleMessage& message) override; + void OnDestruct(ServiceWorkerContext* context) override; + + private: + class RunningServiceWorker; + + // Invoked by a RunningServiceWorker when it observes that the render process + // has exited. + void OnRenderProcessExited(int64_t version_id); + + ScopedObserver<content::ServiceWorkerContext, + content::ServiceWorkerContextObserver> + scoped_underlying_context_observer_{this}; + + base::ObserverList<content::ServiceWorkerContextObserver, true, false>:: + Unchecked observer_list_; + + // For each running service worker, tracks when their render process exits. + base::flat_map<int64_t /*version_id*/, std::unique_ptr<RunningServiceWorker>> + running_service_workers_; + +#if DCHECK_IS_ON() + // Keeps track of service worker whose render process exited early. + base::flat_set<int64_t> stopped_service_workers_; +#endif // DCHECK_IS_ON() +}; + +} // namespace performance_manager + +#endif // COMPONENTS_PERFORMANCE_MANAGER_SERVICE_WORKER_CONTEXT_ADAPTER_H_
diff --git a/components/performance_manager/test_support/decorators_utils.h b/components/performance_manager/test_support/decorators_utils.h index c6de9e54..9610f1a 100644 --- a/components/performance_manager/test_support/decorators_utils.h +++ b/components/performance_manager/test_support/decorators_utils.h
@@ -5,6 +5,8 @@ #ifndef COMPONENTS_PERFORMANCE_MANAGER_TEST_SUPPORT_DECORATORS_UTILS_H_ #define COMPONENTS_PERFORMANCE_MANAGER_TEST_SUPPORT_DECORATORS_UTILS_H_ +#include <utility> + #include "base/run_loop.h" #include "base/test/bind_test_util.h" #include "components/performance_manager/public/graph/graph.h" @@ -46,7 +48,7 @@ PerformanceManager::GetPageNodeForWebContents(contents); PerformanceManager::CallOnGraph( - FROM_HERE, base::BindLambdaForTesting([&](Graph* unused) { + FROM_HERE, base::BindLambdaForTesting([&]() { EXPECT_TRUE(node); auto* data = T::GetOrCreateForTesting(node.get()); EXPECT_TRUE(data);
diff --git a/components/performance_manager/web_contents_proxy_unittest.cc b/components/performance_manager/web_contents_proxy_unittest.cc index c0969a2..1911daa3 100644 --- a/components/performance_manager/web_contents_proxy_unittest.cc +++ b/components/performance_manager/web_contents_proxy_unittest.cc
@@ -54,8 +54,7 @@ PerformanceManagerImpl::CallOnGraphImpl( FROM_HERE, base::BindLambdaForTesting( - [&deref_proxy, page_node, - quit_loop = run_loop.QuitClosure()](GraphImpl* graph) { + [&deref_proxy, page_node, quit_loop = run_loop.QuitClosure()]() { base::PostTask( FROM_HERE, {content::BrowserThread::UI}, base::BindOnce(deref_proxy, page_node->contents_proxy(), @@ -73,8 +72,7 @@ PerformanceManagerImpl::CallOnGraphImpl( FROM_HERE, base::BindLambdaForTesting([&contents, &deref_proxy, page_node, - quit_loop = run_loop.QuitClosure()]( - GraphImpl* graph) { + quit_loop = run_loop.QuitClosure()]() { base::PostTask( FROM_HERE, {content::BrowserThread::UI}, base::BindLambdaForTesting([&contents]() { contents.reset(); }));
diff --git a/components/performance_manager/worker_watcher.cc b/components/performance_manager/worker_watcher.cc index 2b19c5e..74e6b665f 100644 --- a/components/performance_manager/worker_watcher.cc +++ b/components/performance_manager/worker_watcher.cc
@@ -20,15 +20,13 @@ // Helper function to add |worker_node| as a child to |frame_node| on the PM // sequence. void AddWorkerToFrameNode(FrameNodeImpl* frame_node, - WorkerNodeImpl* worker_node, - GraphImpl* graph) { + WorkerNodeImpl* worker_node) { worker_node->AddClientFrame(frame_node); } // Helper function to remove |worker_node| from |frame_node| on the PM sequence. void RemoveWorkerFromFrameNode(FrameNodeImpl* frame_node, - WorkerNodeImpl* worker_node, - GraphImpl* graph) { + WorkerNodeImpl* worker_node) { worker_node->RemoveClientFrame(frame_node); } @@ -36,8 +34,7 @@ // sequence. void RemoveWorkersFromFrameNode( FrameNodeImpl* frame_node, - const base::flat_set<WorkerNodeImpl*>& worker_nodes, - GraphImpl* graph) { + const base::flat_set<WorkerNodeImpl*>& worker_nodes) { for (auto* worker_node : worker_nodes) worker_node->RemoveClientFrame(frame_node); } @@ -46,12 +43,8 @@ // OnFinalResponseURLDetermined() on |worker_node|. void SetFinalResponseURL(WorkerNodeImpl* worker_node, const GURL& url) { PerformanceManagerImpl::CallOnGraphImpl( - FROM_HERE, - base::BindOnce( - [](WorkerNodeImpl* worker_node, const GURL& url, GraphImpl* graph) { - worker_node->OnFinalResponseURLDetermined(url); - }, - worker_node, url)); + FROM_HERE, base::BindOnce(&WorkerNodeImpl::OnFinalResponseURLDetermined, + base::Unretained(worker_node), url)); } } // namespace @@ -60,19 +53,20 @@ const std::string& browser_context_id, content::DedicatedWorkerService* dedicated_worker_service, content::SharedWorkerService* shared_worker_service, + content::ServiceWorkerContext* service_worker_context, ProcessNodeSource* process_node_source, FrameNodeSource* frame_node_source) : browser_context_id_(browser_context_id), - dedicated_worker_service_observer_(this), - shared_worker_service_observer_(this), process_node_source_(process_node_source), frame_node_source_(frame_node_source) { DCHECK(dedicated_worker_service); DCHECK(shared_worker_service); + DCHECK(service_worker_context); DCHECK(process_node_source_); DCHECK(frame_node_source_); dedicated_worker_service_observer_.Add(dedicated_worker_service); shared_worker_service_observer_.Add(shared_worker_service); + service_worker_context_observer_.Add(service_worker_context); } WorkerWatcher::~WorkerWatcher() { @@ -81,6 +75,8 @@ DCHECK(!dedicated_worker_service_observer_.IsObservingSources()); DCHECK(shared_worker_nodes_.empty()); DCHECK(!shared_worker_service_observer_.IsObservingSources()); + DCHECK(service_worker_nodes_.empty()); + DCHECK(!service_worker_context_observer_.IsObservingSources()); } void WorkerWatcher::TearDown() { @@ -104,18 +100,26 @@ // Then clean all the worker nodes. std::vector<std::unique_ptr<NodeBase>> nodes; - nodes.reserve(dedicated_worker_nodes_.size() + shared_worker_nodes_.size()); + nodes.reserve(dedicated_worker_nodes_.size() + shared_worker_nodes_.size() + + service_worker_nodes_.size()); + for (auto& node : dedicated_worker_nodes_) nodes.push_back(std::move(node.second)); dedicated_worker_nodes_.clear(); + for (auto& node : shared_worker_nodes_) nodes.push_back(std::move(node.second)); shared_worker_nodes_.clear(); + for (auto& node : service_worker_nodes_) + nodes.push_back(std::move(node.second)); + service_worker_nodes_.clear(); + PerformanceManagerImpl::BatchDeleteNodes(std::move(nodes)); dedicated_worker_service_observer_.RemoveAll(); shared_worker_service_observer_.RemoveAll(); + service_worker_context_observer_.RemoveAll(); } void WorkerWatcher::OnWorkerStarted( @@ -204,6 +208,32 @@ render_frame_host_id); } +void WorkerWatcher::OnVersionStartedRunning( + int64_t version_id, + const content::ServiceWorkerRunningInfo& running_info) { + // TODO(pmonette): Plumb in the DevTools token. + auto worker_node = PerformanceManagerImpl::CreateWorkerNode( + browser_context_id_, WorkerNode::WorkerType::kService, + process_node_source_->GetProcessNode(running_info.render_process_id), + base::UnguessableToken()); + bool inserted = + service_worker_nodes_.emplace(version_id, std::move(worker_node)).second; + DCHECK(inserted); +} + +void WorkerWatcher::OnVersionStoppedRunning(int64_t version_id) { + auto it = service_worker_nodes_.find(version_id); + DCHECK(it != service_worker_nodes_.end()); + + auto worker_node = std::move(it->second); +#if DCHECK_IS_ON() + DCHECK(!base::Contains(clients_to_remove_, worker_node.get())); +#endif // DCHECK_IS_ON() + PerformanceManagerImpl::DeleteNode(std::move(worker_node)); + + service_worker_nodes_.erase(it); +} + void WorkerWatcher::AddClientFrame( WorkerNodeImpl* worker_node, content::GlobalFrameRoutingId client_render_frame_host_id) { @@ -340,4 +370,13 @@ return it->second.get(); } +WorkerNodeImpl* WorkerWatcher::GetServiceWorkerNode(int64_t version_id) { + auto it = service_worker_nodes_.find(version_id); + if (it == service_worker_nodes_.end()) { + NOTREACHED(); + return nullptr; + } + return it->second.get(); +} + } // namespace performance_manager
diff --git a/components/performance_manager/worker_watcher.h b/components/performance_manager/worker_watcher.h index 8bec185..53d4235 100644 --- a/components/performance_manager/worker_watcher.h +++ b/components/performance_manager/worker_watcher.h
@@ -15,6 +15,8 @@ #include "base/scoped_observer.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" +#include "content/public/browser/service_worker_context_observer.h" #include "content/public/browser/shared_worker_service.h" namespace performance_manager { @@ -29,11 +31,13 @@ // // TODO(https://crbug.com/993029): Add support for service workers. class WorkerWatcher : public content::DedicatedWorkerService::Observer, - public content::SharedWorkerService::Observer { + public content::SharedWorkerService::Observer, + public content::ServiceWorkerContextObserver { public: WorkerWatcher(const std::string& browser_context_id, content::DedicatedWorkerService* dedicated_worker_service, content::SharedWorkerService* shared_worker_service, + content::ServiceWorkerContext* service_worker_context, ProcessNodeSource* process_node_source, FrameNodeSource* frame_node_source); ~WorkerWatcher() override; @@ -69,6 +73,12 @@ content::SharedWorkerId shared_worker_id, content::GlobalFrameRoutingId render_frame_host_id) override; + // content::ServiceWorkerContextObserver: + void OnVersionStartedRunning( + int64_t version_id, + const content::ServiceWorkerRunningInfo& running_info) override; + void OnVersionStoppedRunning(int64_t version_id) override; + private: friend class WorkerWatcherTest; @@ -88,10 +98,11 @@ bool RemoveChildWorker(content::GlobalFrameRoutingId render_frame_host_id, WorkerNodeImpl* child_worker_node); - // Helper function to retrieve an existing shared worker node. + // Helper functions to retrieve an existing worker node. WorkerNodeImpl* GetDedicatedWorkerNode( content::DedicatedWorkerId dedicated_worker_id); WorkerNodeImpl* GetSharedWorkerNode(content::SharedWorkerId shared_worker_id); + WorkerNodeImpl* GetServiceWorkerNode(int64_t version_id); // The ID of the BrowserContext who owns the shared worker service. const std::string browser_context_id_; @@ -99,12 +110,16 @@ // Observes the DedicatedWorkerService for this browser context. ScopedObserver<content::DedicatedWorkerService, content::DedicatedWorkerService::Observer> - dedicated_worker_service_observer_; + dedicated_worker_service_observer_{this}; // Observes the SharedWorkerService for this browser context. ScopedObserver<content::SharedWorkerService, content::SharedWorkerService::Observer> - shared_worker_service_observer_; + shared_worker_service_observer_{this}; + + ScopedObserver<content::ServiceWorkerContext, + content::ServiceWorkerContextObserver> + service_worker_context_observer_{this}; // Used to retrieve an existing process node from its render process ID. ProcessNodeSource* const process_node_source_; @@ -121,6 +136,10 @@ base::flat_map<content::SharedWorkerId, std::unique_ptr<WorkerNodeImpl>> shared_worker_nodes_; + // Maps each service worker version ID to its worker node. + base::flat_map<int64_t /*version_id*/, std::unique_ptr<WorkerNodeImpl>> + service_worker_nodes_; + // 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
diff --git a/components/performance_manager/worker_watcher_unittest.cc b/components/performance_manager/worker_watcher_unittest.cc index 681570bf..872ac89 100644 --- a/components/performance_manager/worker_watcher_unittest.cc +++ b/components/performance_manager/worker_watcher_unittest.cc
@@ -24,6 +24,7 @@ #include "components/performance_manager/performance_manager_impl.h" #include "components/performance_manager/process_node_source.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" namespace performance_manager { @@ -161,12 +162,12 @@ void StopSharedWorker(content::SharedWorkerId shared_worker_id); // Adds a new frame client to an existing worker. - void AddWorkerClient( + void AddFrameClientToWorker( content::SharedWorkerId shared_worker_id, content::GlobalFrameRoutingId client_render_frame_host_id); // Removes an existing frame client from a worker. - void RemoveWorkerClient( + void RemoveFrameClientFromWorker( content::SharedWorkerId shared_worker_id, content::GlobalFrameRoutingId client_render_frame_host_id); @@ -195,6 +196,7 @@ void TestSharedWorkerService::RemoveObserver(Observer* observer) { observer_list_.RemoveObserver(observer); } + void TestSharedWorkerService::EnumerateSharedWorkers(Observer* observer) { // Not implemented. ADD_FAILURE(); @@ -245,7 +247,7 @@ shared_worker_client_frames_.erase(it); } -void TestSharedWorkerService::AddWorkerClient( +void TestSharedWorkerService::AddFrameClientToWorker( content::SharedWorkerId shared_worker_id, content::GlobalFrameRoutingId client_render_frame_host_id) { // Add the frame to the set of clients for this worker. @@ -261,7 +263,7 @@ observer.OnClientAdded(shared_worker_id, client_render_frame_host_id); } -void TestSharedWorkerService::RemoveWorkerClient( +void TestSharedWorkerService::RemoveFrameClientFromWorker( content::SharedWorkerId shared_worker_id, content::GlobalFrameRoutingId client_render_frame_host_id) { // Notify observers. @@ -277,6 +279,130 @@ DCHECK_EQ(removed, 1u); } +// TestServiceWorkerContext ---------------------------------------------------- + +// A test ServiceWorkerContext that allows to simulate a worker starting and +// stopping and adding clients to running workers. +// +// Extends content::FakeServiceWorkerContext to avoid reimplementing all the +// unused virtual functions. +class TestServiceWorkerContext : public content::FakeServiceWorkerContext { + public: + TestServiceWorkerContext(); + ~TestServiceWorkerContext() override; + + TestServiceWorkerContext(const TestServiceWorkerContext&) = delete; + TestServiceWorkerContext& operator=(const TestServiceWorkerContext&) = delete; + + // content::FakeServiceWorkerContext: + void AddObserver(content::ServiceWorkerContextObserver* observer) override; + void RemoveObserver(content::ServiceWorkerContextObserver* observer) override; + + // Starts a new service worker and returns its version ID. + int64_t StartServiceWorker(int worker_process_id); + + // Stops a service shared worker. + void StopServiceWorker(int64_t version_id); + + // Adds a new frame client to an existing worker. + void AddFrameClientToWorker( + int64_t version_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 + observer_list_; + + // The ID that the next service worker will be assigned. + int64_t next_service_worker_instance_id_ = 0; + + // 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; + +TestServiceWorkerContext::~TestServiceWorkerContext() = default; + +void TestServiceWorkerContext::AddObserver( + content::ServiceWorkerContextObserver* observer) { + observer_list_.AddObserver(observer); +} + +void TestServiceWorkerContext::RemoveObserver( + content::ServiceWorkerContextObserver* observer) { + observer_list_.RemoveObserver(observer); +} + +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_client_frames_.insert({version_id, {}}).second; + DCHECK(inserted); + + // Notify observers. + for (auto& observer : observer_list_) { + observer.OnVersionStartedRunning(version_id, + {worker_url, GURL(), worker_process_id}); + } + + return version_id; +} + +void TestServiceWorkerContext::StopServiceWorker(int64_t version_id) { + auto it = service_worker_client_frames_.find(version_id); + DCHECK(it != service_worker_client_frames_.end()); + + // 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); +} + +void TestServiceWorkerContext::AddFrameClientToWorker( + int64_t version_id, + 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()); + + base::flat_set<content::GlobalFrameRoutingId>& client_frames = it->second; + bool inserted = client_frames.insert(client_render_frame_host_id).second; + DCHECK(inserted); + + // TODO(pmonette): Notify observers when the ServiceWorkerContextObserver + // interface supports it. +} + +void TestServiceWorkerContext::RemoveFrameClientFromWorker( + int64_t version_id, + content::GlobalFrameRoutingId client_render_frame_host_id) { + // TODO(pmonette): Notify observers when the ServiceWorkerContextObserver + // interface supports it. + + // 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()); + + 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 ------------------------------------------------------- // A test ProcessNodeSource that allows creating process nodes on demand to @@ -397,6 +523,7 @@ auto it = frame_node_map_.find(render_frame_host_id); return it != frame_node_map_.end() ? it->second.get() : nullptr; } + void TestFrameNodeSource::SubscribeToFrameNode( content::GlobalFrameRoutingId render_frame_host_id, OnbeforeFrameNodeRemovedCallback on_before_frame_node_removed_callback) { @@ -480,6 +607,7 @@ WorkerNodeImpl* GetDedicatedWorkerNode( content::DedicatedWorkerId dedicated_worker_id); WorkerNodeImpl* GetSharedWorkerNode(content::SharedWorkerId shared_worker_id); + WorkerNodeImpl* GetServiceWorkerNode(int64_t version_id); TestDedicatedWorkerService* dedicated_worker_service() { return &dedicated_worker_service_; @@ -489,6 +617,10 @@ return &shared_worker_service_; } + TestServiceWorkerContext* service_worker_context() { + return &service_worker_context_; + } + TestProcessNodeSource* process_node_source() { return process_node_source_.get(); } @@ -500,6 +632,7 @@ TestDedicatedWorkerService dedicated_worker_service_; TestSharedWorkerService shared_worker_service_; + TestServiceWorkerContext service_worker_context_; std::unique_ptr<PerformanceManagerImpl> performance_manager_; std::unique_ptr<TestProcessNodeSource> process_node_source_; @@ -523,7 +656,8 @@ worker_watcher_ = std::make_unique<WorkerWatcher>( "browser_context_id", &dedicated_worker_service_, &shared_worker_service_, - process_node_source_.get(), frame_node_source_.get()); + &service_worker_context_, process_node_source_.get(), + frame_node_source_.get()); } void WorkerWatcherTest::TearDown() { @@ -562,6 +696,10 @@ return worker_watcher_->GetSharedWorkerNode(shared_worker_id); } +WorkerNodeImpl* WorkerWatcherTest::GetServiceWorkerNode(int64_t version_id) { + return worker_watcher_->GetServiceWorkerNode(version_id); +} + // This test creates one dedicated worker. TEST_F(WorkerWatcherTest, SimpleDedicatedWorker) { int render_process_id = process_node_source()->CreateProcessNode(); @@ -611,8 +749,8 @@ shared_worker_service()->StartSharedWorker(render_process_id); // Connect the frame to the worker. - shared_worker_service()->AddWorkerClient(shared_worker_id, - render_frame_host_id); + shared_worker_service()->AddFrameClientToWorker(shared_worker_id, + render_frame_host_id); // Check expectations on the graph. CallOnGraphAndWait(base::BindLambdaForTesting( @@ -627,11 +765,49 @@ })); // Disconnect and clean up the worker. - shared_worker_service()->RemoveWorkerClient(shared_worker_id, - render_frame_host_id); + shared_worker_service()->RemoveFrameClientFromWorker(shared_worker_id, + render_frame_host_id); shared_worker_service()->StopSharedWorker(shared_worker_id); } +// This test creates one service worker with one client frame. +TEST_F(WorkerWatcherTest, SimpleServiceWorker) { + int render_process_id = process_node_source()->CreateProcessNode(); + + // Create the frame node. + content::GlobalFrameRoutingId render_frame_host_id = + frame_node_source()->CreateFrameNode( + render_process_id, + process_node_source()->GetProcessNode(render_process_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( + [process_node = process_node_source()->GetProcessNode(render_process_id), + worker_node = GetServiceWorkerNode(service_worker_version_id), + client_frame_node = frame_node_source()->GetFrameNode( + render_frame_host_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); + // 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 worker. + service_worker_context()->RemoveFrameClientFromWorker( + service_worker_version_id, render_frame_host_id); + service_worker_context()->StopServiceWorker(service_worker_version_id); +} + TEST_F(WorkerWatcherTest, SharedWorkerCrossProcessClient) { // Create the frame node. int frame_process_id = process_node_source()->CreateProcessNode(); @@ -646,8 +822,8 @@ shared_worker_service()->StartSharedWorker(worker_process_id); // Connect the frame to the worker. - shared_worker_service()->AddWorkerClient(shared_worker_id, - render_frame_host_id); + shared_worker_service()->AddFrameClientToWorker(shared_worker_id, + render_frame_host_id); // Check expectations on the graph. CallOnGraphAndWait(base::BindLambdaForTesting( @@ -665,8 +841,8 @@ })); // Disconnect and clean up the worker. - shared_worker_service()->RemoveWorkerClient(shared_worker_id, - render_frame_host_id); + shared_worker_service()->RemoveFrameClientFromWorker(shared_worker_id, + render_frame_host_id); shared_worker_service()->StopSharedWorker(shared_worker_id); } @@ -682,15 +858,15 @@ frame_node_source()->CreateFrameNode( render_process_id, process_node_source()->GetProcessNode(render_process_id)); - shared_worker_service()->AddWorkerClient(shared_worker_id, - render_frame_host_id_1); + shared_worker_service()->AddFrameClientToWorker(shared_worker_id, + 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()->AddWorkerClient(shared_worker_id, - render_frame_host_id_2); + shared_worker_service()->AddFrameClientToWorker(shared_worker_id, + render_frame_host_id_2); // Check expectations on the graph. CallOnGraphAndWait(base::BindLambdaForTesting( @@ -710,10 +886,10 @@ })); // Disconnect and clean up the worker. - shared_worker_service()->RemoveWorkerClient(shared_worker_id, - render_frame_host_id_1); - shared_worker_service()->RemoveWorkerClient(shared_worker_id, - render_frame_host_id_2); + shared_worker_service()->RemoveFrameClientFromWorker(shared_worker_id, + render_frame_host_id_1); + shared_worker_service()->RemoveFrameClientFromWorker(shared_worker_id, + render_frame_host_id_2); shared_worker_service()->StopSharedWorker(shared_worker_id); } @@ -729,13 +905,13 @@ // Create the 2 workers and connect them to the frame. content::SharedWorkerId shared_worker_id_1 = shared_worker_service()->StartSharedWorker(render_process_id); - shared_worker_service()->AddWorkerClient(shared_worker_id_1, - render_frame_host_id); + shared_worker_service()->AddFrameClientToWorker(shared_worker_id_1, + render_frame_host_id); content::SharedWorkerId shared_worker_id_2 = shared_worker_service()->StartSharedWorker(render_process_id); - shared_worker_service()->AddWorkerClient(shared_worker_id_2, - render_frame_host_id); + shared_worker_service()->AddFrameClientToWorker(shared_worker_id_2, + render_frame_host_id); // Check expectations on the graph. CallOnGraphAndWait(base::BindLambdaForTesting( @@ -757,12 +933,12 @@ })); // Disconnect and clean up the workers. - shared_worker_service()->RemoveWorkerClient(shared_worker_id_1, - render_frame_host_id); + shared_worker_service()->RemoveFrameClientFromWorker(shared_worker_id_1, + render_frame_host_id); shared_worker_service()->StopSharedWorker(shared_worker_id_1); - shared_worker_service()->RemoveWorkerClient(shared_worker_id_2, - render_frame_host_id); + shared_worker_service()->RemoveFrameClientFromWorker(shared_worker_id_2, + render_frame_host_id); shared_worker_service()->StopSharedWorker(shared_worker_id_2); } @@ -781,23 +957,32 @@ render_frame_host_id); content::SharedWorkerId shared_worker_id = shared_worker_service()->StartSharedWorker(render_process_id); + int64_t service_worker_version_id = + service_worker_context()->StartServiceWorker(render_process_id); // Connect the frame to the shared worker. - shared_worker_service()->AddWorkerClient(shared_worker_id, - render_frame_host_id); + shared_worker_service()->AddFrameClientToWorker(shared_worker_id, + 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_id), shared_worker_node = GetSharedWorkerNode(shared_worker_id), + service_worker_node = GetServiceWorkerNode(service_worker_version_id), client_frame_node = frame_node_source()->GetFrameNode( render_frame_host_id)](GraphImpl* graph) { EXPECT_TRUE(graph->NodeInGraph(dedicated_worker_node)); EXPECT_TRUE(graph->NodeInGraph(shared_worker_node)); + EXPECT_TRUE(graph->NodeInGraph(service_worker_node)); // TODO(pmonette): Change the following to EXPECT_TRUE when the // dedicated worker node gets hooked up correctly. EXPECT_FALSE(IsWorkerClient(dedicated_worker_node, client_frame_node)); EXPECT_TRUE(IsWorkerClient(shared_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); @@ -805,17 +990,23 @@ // Check that the worker is no longer connected to the deleted frame. CallOnGraphAndWait(base::BindLambdaForTesting( [dedicated_worker_node = GetDedicatedWorkerNode(dedicated_worker_id), - shared_worker_node = - GetSharedWorkerNode(shared_worker_id)](GraphImpl* graph) { + shared_worker_node = GetSharedWorkerNode(shared_worker_id), + service_worker_node = + GetServiceWorkerNode(service_worker_version_id)](GraphImpl* graph) { EXPECT_TRUE(graph->NodeInGraph(dedicated_worker_node)); EXPECT_TRUE(graph->NodeInGraph(shared_worker_node)); + EXPECT_TRUE(graph->NodeInGraph(service_worker_node)); EXPECT_TRUE(dedicated_worker_node->client_frames().empty()); EXPECT_TRUE(shared_worker_node->client_frames().empty()); + EXPECT_TRUE(service_worker_node->client_frames().empty()); })); // The watcher is still expecting a worker removed notification. - shared_worker_service()->RemoveWorkerClient(shared_worker_id, - render_frame_host_id); + service_worker_context()->RemoveFrameClientFromWorker( + service_worker_version_id, render_frame_host_id); + service_worker_context()->StopServiceWorker(service_worker_version_id); + shared_worker_service()->RemoveFrameClientFromWorker(shared_worker_id, + render_frame_host_id); shared_worker_service()->StopSharedWorker(shared_worker_id); dedicated_worker_service()->StopDedicatedWorker(dedicated_worker_id); }
diff --git a/components/policy/resources/policy_templates_de.xtb b/components/policy/resources/policy_templates_de.xtb index bf7d4e5..429b09f 100644 --- a/components/policy/resources/policy_templates_de.xtb +++ b/components/policy/resources/policy_templates_de.xtb
@@ -2927,7 +2927,6 @@ Wurde "true" oder "not configured" festgelegt, kann dieser Nutzer betreute Nutzer erstellen und verwalten.</translation> <translation id="5369937289900051171">Nur Farbdruck</translation> <translation id="5370279767682621504">HTTP/0.9-Unterstützung für nicht standardmäßige Ports aktivieren</translation> -<translation id="5373065931879562543">Verfügbarkeit von Variationen auf Chrome OS festlegen</translation> <translation id="5378985487213287085">Ermöglicht Ihnen festzulegen, ob Websites Desktop-Benachrichtigungen anzeigen dürfen. Das Anzeigen von Desktop-Benachrichtigungen kann entweder standardmäßig gestattet oder nicht gestattet werden oder auf Anfrage beim Nutzer geschehen. Wenn diese Richtlinie nicht konfiguriert ist, so kommt "AskNotifications" zum Einsatz, wobei dies vom Nutzer geändert werden kann.</translation> <translation id="5380329473151894945">Hiermit wird der Standardstatus der Bedienungshilfe "großer Cursor" auf der Anmeldeseite festgelegt.
diff --git a/components/policy/resources/policy_templates_es-419.xtb b/components/policy/resources/policy_templates_es-419.xtb index 7f240df..c875fc5 100644 --- a/components/policy/resources/policy_templates_es-419.xtb +++ b/components/policy/resources/policy_templates_es-419.xtb
@@ -2922,7 +2922,6 @@ Si está configurada en verdadero o si no está configurada, este usuario podrá crear y administrar usuarios supervisados.</translation> <translation id="5369937289900051171">Solo impresión a color</translation> <translation id="5370279767682621504">Habilitar la compatibilidad con HTTP/0.9 en puertos no predeterminados</translation> -<translation id="5373065931879562543">Determinar la disponibilidad de las variaciones en el Sistema operativo Chrome</translation> <translation id="5378985487213287085">Te permite configurar si los sitios web pueden mostrar notificaciones de escritorio. Esto se puede permitir de manera predeterminada, se puede denegar de manera predeterminada o se le puede preguntar al usuario cada vez que un sitio web quiera mostrar notificaciones de escritorio. Si esta política no se configura, se usará "AskNotifications" y el usuario podrá cambiarlo.</translation> <translation id="5380329473151894945">Establece el estado predeterminado de la función de accesibilidad del cursor grande en la pantalla de acceso.
diff --git a/components/policy/resources/policy_templates_es.xtb b/components/policy/resources/policy_templates_es.xtb index d0c0af1..4041613 100644 --- a/components/policy/resources/policy_templates_es.xtb +++ b/components/policy/resources/policy_templates_es.xtb
@@ -3007,7 +3007,6 @@ Si se establece el valor "true" o no se configura la política, el usuario podrá crear y administrar usuarios supervisados.</translation> <translation id="5369937289900051171">Solo impresión en color</translation> <translation id="5370279767682621504">Habilitar la compatibilidad con HTTP/0.9 en puertos no utilizados de forma predeterminada</translation> -<translation id="5373065931879562543">Determinar la disponibilidad de variaciones en Chrome OS</translation> <translation id="5378985487213287085">Permite establecer si los sitios web pueden mostrar notificaciones de escritorio. Se puede permitir o denegar que se muestren notificaciones de escritorio de forma predeterminada o se puede establecer que los sitios web pidan permiso al usuario cada vez que quieran mostrar notificaciones de escritorio. Si no se establece esta política, se usará la política AskNotifications y el usuario podrá modificarla.</translation>
diff --git a/components/policy/resources/policy_templates_fr.xtb b/components/policy/resources/policy_templates_fr.xtb index 2ccb238..c6285b30 100644 --- a/components/policy/resources/policy_templates_fr.xtb +++ b/components/policy/resources/policy_templates_fr.xtb
@@ -3005,7 +3005,6 @@ Si elle est associée à la valeur "true" ou si elle n'est pas configurée, cet utilisateur peut créer et gérer des comptes utilisateur supervisés.</translation> <translation id="5369937289900051171">Impression couleur seulement</translation> <translation id="5370279767682621504">Activer la compatibilité avec HTTP 0.9 sur les ports non utilisés par défaut</translation> -<translation id="5373065931879562543">Déterminer la disponibilité des variantes de Chrome OS</translation> <translation id="5378985487213287085">Permet de définir si les sites Web sont autorisés à afficher des notifications sur le bureau. L'affichage des notifications sur le bureau peut être autorisé par défaut, refusé par défaut, ou bien l'utilisateur peut recevoir un message chaque fois qu'un site veut afficher ces notifications. Si cette règle n'est pas configurée, le paramètre "AskNotifications" est utilisé et l'utilisateur est en mesure de le modifier.</translation>
diff --git a/components/policy/resources/policy_templates_id.xtb b/components/policy/resources/policy_templates_id.xtb index c04d1037..e4e70964 100644 --- a/components/policy/resources/policy_templates_id.xtb +++ b/components/policy/resources/policy_templates_id.xtb
@@ -2926,7 +2926,6 @@ Jika disetel ke true atau tidak dikonfigurasi, pengguna yang dilindungi dapat dibuat dan dikelola oleh pengguna ini.</translation> <translation id="5369937289900051171">Khusus pencetakan warna</translation> <translation id="5370279767682621504">Aktifkan dukungan HTTP/0.9 pada porta non-default</translation> -<translation id="5373065931879562543">Menentukan ketersediaan variasi di ChromeOS</translation> <translation id="5378985487213287085">Memungkinkan Anda menyetel apakah situs web diizinkan untuk menampilkan pemberitahuan desktop. Menampilkan pemberitahuan desktop dapat diizinkan secara default, ditolak secara default, atau pengguna dapat ditanya setiap kali sebuah situs web ingin menampilkan pemberitahuan desktop. Jika kebijakan ini tidak disetel, 'AskNotifications' akan digunakan dan pengguna dapat mengubahnya.</translation> <translation id="5380329473151894945">Menyetel status default fitur aksesibilitas kursor besar di layar login.
diff --git a/components/policy/resources/policy_templates_it.xtb b/components/policy/resources/policy_templates_it.xtb index 27bbedd5..5f8739f 100644 --- a/components/policy/resources/policy_templates_it.xtb +++ b/components/policy/resources/policy_templates_it.xtb
@@ -2889,7 +2889,6 @@ Se questa norma è impostata su true o non è configurata, questo utente può creare e gestire utenti supervisionati.</translation> <translation id="5369937289900051171">Solo stampa a colori</translation> <translation id="5370279767682621504">Attiva il supporto HTTP/0.9 sulle porte non predefinite</translation> -<translation id="5373065931879562543">Determina la disponibilità delle varianti su Chrome OS</translation> <translation id="5378985487213287085">Permette di stabilire se consentire o meno la visualizzazione di notifiche desktop nei siti web. La visualizzazione di notifiche desktop può essere consentita o negata per impostazione predefinita oppure l'utente può ricevere una richiesta ogni volta che un sito web desidera visualizzare le notifiche desktop. Se questa norma non viene impostata, verrà utilizzato il valore "AskNotifications", che potrà essere modificato dagli utenti.</translation> <translation id="5380329473151894945">Consente di impostare lo stato predefinito della funzione di accessibilità del puntatore grande nella schermata di accesso.
diff --git a/components/policy/resources/policy_templates_ja.xtb b/components/policy/resources/policy_templates_ja.xtb index 6925a741..2da627b 100644 --- a/components/policy/resources/policy_templates_ja.xtb +++ b/components/policy/resources/policy_templates_ja.xtb
@@ -2911,7 +2911,6 @@ true に設定されている場合や未設定の場合、このユーザーは監視対象ユーザーを作成し管理できます。</translation> <translation id="5369937289900051171">カラー印刷のみ</translation> <translation id="5370279767682621504">デフォルト以外のポートで HTTP/0.9 サポートを有効にする</translation> -<translation id="5373065931879562543">Chrome OS に適用可能なバリエーションを管理する</translation> <translation id="5378985487213287085">ウェブサイトに対してデスクトップ通知の表示を許可するかどうかを設定できます。デスクトップ通知の表示は、デフォルトで許可または禁止することができます。また、ウェブサイトでデスクトップ通知が表示される前にユーザーが毎回確認することもできます。このポリシーが未設定の場合、「AskNotifications」が使用され、ユーザーはこの設定を変更できます。</translation> <translation id="5380329473151894945">ログイン画面で「大きいカーソル」ユーザー補助機能のデフォルト状態を設定します。
diff --git a/components/policy/resources/policy_templates_ko.xtb b/components/policy/resources/policy_templates_ko.xtb index f49b259b..f2dd144 100644 --- a/components/policy/resources/policy_templates_ko.xtb +++ b/components/policy/resources/policy_templates_ko.xtb
@@ -2997,7 +2997,6 @@ true로 설정하거나 설정하지 않으면 이 사용자가 관리 대상 사용자를 생성하고 관리할 수 있습니다.</translation> <translation id="5369937289900051171">컬러 인쇄만</translation> <translation id="5370279767682621504">기본 포트가 아닌 포트에서 HTTP/0.9 지원 사용</translation> -<translation id="5373065931879562543">ChromeOS에서 변형 제공 여부 결정</translation> <translation id="5378985487213287085">웹사이트에서 데스크톱 알림을 표시하도록 허용할지 여부를 설정할 수 있습니다. 데스크톱 알림 표시는 기본적으로 허용 또는 거부하거나 웹사이트에서 데스크톱 알림을 표시할 때마다 사용자에게 확인하도록 할 수 있습니다. 이 정책을 설정하지 않은 경우 'AskNotifications' 정책이 사용되며 사용자가 설정을 변경할 수 있습니다.</translation>
diff --git a/components/policy/resources/policy_templates_nl.xtb b/components/policy/resources/policy_templates_nl.xtb index 3dad1ef3..88a473f5 100644 --- a/components/policy/resources/policy_templates_nl.xtb +++ b/components/policy/resources/policy_templates_nl.xtb
@@ -2977,7 +2977,6 @@ Als dit is ingesteld op 'True' of niet is geconfigureerd, kunnen gebruikers met beperkte rechten worden gemaakt en beheerd door deze gebruiker.</translation> <translation id="5369937289900051171">Alleen afdrukken in kleur</translation> <translation id="5370279767682621504">Ondersteuning voor HTTP/0.9 op niet-standaardpoorten inschakelen</translation> -<translation id="5373065931879562543">De beschikbaarheid van varianten in Chrome OS bepalen</translation> <translation id="5378985487213287085">Hiermee kun je instellen of websites bureaubladmeldingen mogen weergeven. Het weergeven van bureaubladmeldingen kan standaard worden toegestaan of geweigerd, of de gebruiker kan een melding te zien krijgen wanneer een website bureaubladmeldingen wil weergeven. Als dit beleid niet wordt ingesteld, wordt 'AskNotifications' gebruikt en kan de gebruiker dit aanpassen.</translation>
diff --git a/components/policy/resources/policy_templates_pt-BR.xtb b/components/policy/resources/policy_templates_pt-BR.xtb index 7865b9f6..7d69996 100644 --- a/components/policy/resources/policy_templates_pt-BR.xtb +++ b/components/policy/resources/policy_templates_pt-BR.xtb
@@ -2907,7 +2907,6 @@ Se definida como verdadeira ou não configurada, este usuário poderá criar e gerenciar usuários supervisionados.</translation> <translation id="5369937289900051171">Apenas impressão colorida</translation> <translation id="5370279767682621504">Ativar suporte a HTTP/0.9 em portas não padrão</translation> -<translation id="5373065931879562543">Determinar a disponibilidade de variações no ChromeOS</translation> <translation id="5378985487213287085">Permite que você defina se os websites são autorizados a exibir notificações na área de trabalho. A exibição de notificações na área de trabalho pode ser autorizada ou recusada por padrão ou o usuário pode ser solicitado a autorizar todas as vezes em que um website quiser exibir notificações na área de trabalho. Se esta política for deixada sem definição, a política "AskNotifications" será utilizada, podendo ser modificada pelo usuário.</translation> <translation id="5380329473151894945">Definir o estado padrão do recurso de acessibilidade de cursor grande na tela de login.
diff --git a/components/policy/resources/policy_templates_ru.xtb b/components/policy/resources/policy_templates_ru.xtb index 7c37b51..7458f10 100644 --- a/components/policy/resources/policy_templates_ru.xtb +++ b/components/policy/resources/policy_templates_ru.xtb
@@ -2921,7 +2921,6 @@ Если задано значение "true" или значение не задано, этот пользователь сможет создавать контролируемые профили и управлять ими.</translation> <translation id="5369937289900051171">Только цветная печать</translation> <translation id="5370279767682621504">Включить поддержку HTTP/0.9 для портов, не заданных по умолчанию</translation> -<translation id="5373065931879562543">Определить доступность модификаций в Chrome OS</translation> <translation id="5378985487213287085">Позволяет указать, каким сайтам разрешено отображать уведомления на рабочем столе. По умолчанию можно разрешить показ уведомлений, запретить его или настроить вывод запроса пользователю каждый раз, когда сайт должен показать уведомление. Если это правило не настроено, действует правило AskNotifications и пользователи могут самостоятельно изменить его значение.</translation> <translation id="5380329473151894945">Определяет режим по умолчанию для большого курсора на экране входа.
diff --git a/components/policy/resources/policy_templates_th.xtb b/components/policy/resources/policy_templates_th.xtb index db61980..9c499fa 100644 --- a/components/policy/resources/policy_templates_th.xtb +++ b/components/policy/resources/policy_templates_th.xtb
@@ -2911,7 +2911,6 @@ หากตั้งค่าเป็นจริงหรือไม่ได้กำหนดค่า ผู้ใช้รายนี้จะสามารถสร้างและจัดการผู้ใช้ภายใต้การดูแลได้</translation> <translation id="5369937289900051171">การพิมพ์สีเท่านั้น</translation> <translation id="5370279767682621504">เปิดใช้การรองรับ HTTP/0.9 บนพอร์ตที่ไม่ใช่ค่าเริ่มต้น</translation> -<translation id="5373065931879562543">กำหนดความพร้อมใช้ของรูปแบบต่างๆ ใน Chrome OS</translation> <translation id="5378985487213287085">ช่วยให้คุณกำหนดว่าเว็บไซต์จะได้รับอนุญาตให้แสดงการแจ้งเตือนเดสก์ท็อปหรือไม่ การแสดงการแจ้งเตือนเดสก์ท็อปอาจจะได้รับอนุญาตโดยค่าเริ่มต้น ปฏิเสธโดยค่าเริ่มต้น หรือผู้ใช้อาจได้รับคำถามทุกครั้งที่เว็บไซต์ต้องการจะแสดงการแจ้งเตือนเดสก์ท็อป หากนโยบายนี้ไม่มีการตั้งค่าไว้ จะมีการใช้ "AskNotifications" และผู้ใช้สามารถจะเปลี่ยนแปลงได้</translation> <translation id="5380329473151894945">ตั้งค่าสถานะเริ่มต้นของฟีเจอร์การช่วยเหลือพิเศษด้วยเคอร์เซอร์ขนาดใหญ่ในหน้าจอการเข้าสู่ระบบ
diff --git a/components/policy/resources/policy_templates_tr.xtb b/components/policy/resources/policy_templates_tr.xtb index cf54325..e273c12 100644 --- a/components/policy/resources/policy_templates_tr.xtb +++ b/components/policy/resources/policy_templates_tr.xtb
@@ -2984,7 +2984,6 @@ True (doğru) olarak ayarlanırsa veya yapılandırılmazsa, bu kullanıcı denetlenen kullanıcılar oluşturabilir ve denetlenen kullanıcıları yönetebilir.</translation> <translation id="5369937289900051171">Yalnızca renkli yazdır</translation> <translation id="5370279767682621504">Varsayılan olmayan bağlantı noktalarında HTTP/0.9 desteğini etkinleştir</translation> -<translation id="5373065931879562543">ChromeOS'ta varyasyonların kullanılabilirliğini belirleme</translation> <translation id="5378985487213287085">Web sitelerinin masaüstü bildirimleri görüntülemesine izin verilip verilmeyeceğini ayarlamanıza olanak tanır. Varsayılan olarak masaüstü bildirimlerinin görüntülenmesine izin verilebilir, varsayılan olarak bu reddedilebilir veya bir web sitesi her masaüstü bildirimi gösterme isteğinde bulunduğunda kullanıcıya sorulabilir. Bu politika ayarlanmadan bırakılırsa, 'AskNotifications' kullanılır ve kullanıcı ayarı değiştirebilir.</translation>
diff --git a/components/policy/resources/policy_templates_uk.xtb b/components/policy/resources/policy_templates_uk.xtb index 32739bc8..66202a4 100644 --- a/components/policy/resources/policy_templates_uk.xtb +++ b/components/policy/resources/policy_templates_uk.xtb
@@ -2951,7 +2951,6 @@ Якщо для цього правила встановлено значення "true" або його не налаштовано, цей користувач зможе створювати контрольованих користувачів і керувати ними.</translation> <translation id="5369937289900051171">Лише кольоровий друк</translation> <translation id="5370279767682621504">Увімкнути підтримку протоколу HTTP/0.9 для нестандартних портів</translation> -<translation id="5373065931879562543">Визначити доступність варіантів в ОС Chrome</translation> <translation id="5378985487213287085">Дозволяє вказувати, чи можуть веб-сайти показувати сповіщення на робочому столі. Показ сповіщень на робочому столі можна дозволити за умовчанням, заборонити за умовчанням або отримувати запит, коли веб-сайт хоче показати сповіщення на робочому столі. Якщо це правило не встановлено, використовується правило "AskNotifications", але користувач може його змінити.</translation> <translation id="5380329473151894945">Налаштувати стан за умовчанням для спеціальної можливості "Великий курсор" на екрані входу.
diff --git a/components/policy/resources/policy_templates_vi.xtb b/components/policy/resources/policy_templates_vi.xtb index a6ddcc9..9051ccb9 100644 --- a/components/policy/resources/policy_templates_vi.xtb +++ b/components/policy/resources/policy_templates_vi.xtb
@@ -2998,7 +2998,6 @@ Nếu đặt thành đúng hoặc không định cấu hình, người dùng này có thể tạo và quản lý tài khoản người dùng bị giám sát.</translation> <translation id="5369937289900051171">Chỉ in màu</translation> <translation id="5370279767682621504">Bật hỗ trợ HTTP/0.9 trên các cổng không phải là cổng mặc định</translation> -<translation id="5373065931879562543">Xác định tình trạng có sẵn của các biến thể trên Chrome OS</translation> <translation id="5378985487213287085">Cho phép bạn đặt liệu các trang web có được phép hiển thị thông báo trên màn hình hay không. Việc hiển thị thông báo trên màn hình có thể được cho phép theo mặc định, từ chối theo mặc định hoặc người dùng có thể được hỏi mỗi lần trang web muốn hiển thị thông báo trên màn hình. Nếu không thiết lập chính sách này, 'AskNotifications' sẽ được sử dụng và người dùng có thể thay đổi cài đặt này.</translation>
diff --git a/components/policy/resources/policy_templates_zh-CN.xtb b/components/policy/resources/policy_templates_zh-CN.xtb index 293ac0d..d6a528c 100644 --- a/components/policy/resources/policy_templates_zh-CN.xtb +++ b/components/policy/resources/policy_templates_zh-CN.xtb
@@ -2868,7 +2868,6 @@ 如果此政策的值设置为 True 或未配置,这位用户即可创建并管理受监管用户。</translation> <translation id="5369937289900051171">仅限彩色打印</translation> <translation id="5370279767682621504">在非默认端口上启用 HTTP/0.9 支持</translation> -<translation id="5373065931879562543">确定变体在 Chrome 操作系统中的可用情况</translation> <translation id="5378985487213287085">可让您设置是否允许网站显示桌面通知。默认情况下,可以允许或拒绝显示桌面通知,也可以在每次网站要显示桌面通知时询问用户。如果未设置此政策,系统将使用“AskNotifications”并允许用户更改此设置。</translation> <translation id="5380329473151894945">设置大号光标无障碍功能在登录屏幕上的默认状态。
diff --git a/components/policy/resources/policy_templates_zh-TW.xtb b/components/policy/resources/policy_templates_zh-TW.xtb index d0495996..4574e0cd 100644 --- a/components/policy/resources/policy_templates_zh-TW.xtb +++ b/components/policy/resources/policy_templates_zh-TW.xtb
@@ -2897,7 +2897,6 @@ 如果設為 True 或不予設定,這位使用者即可建立並管理受監督的使用者。</translation> <translation id="5369937289900051171">僅限彩色列印</translation> <translation id="5370279767682621504">在非預設通訊埠啟用 HTTP/0.9 支援功能</translation> -<translation id="5373065931879562543">指定變化版本在 Chrome 作業系統上的可用性</translation> <translation id="5378985487213287085">允許你設定是否要讓網站顯示桌面通知。你可以將網站預設為允許或禁止顯示桌面通知,也可以設為每次網站要顯示桌面通知時再詢問使用者。如果未設定這項政策,系統會使用「AskNotifications」,但使用者可以變更這項設定。</translation> <translation id="5380329473151894945">設定大型游標無障礙功能在登入畫面中的預設狀態。
diff --git a/components/safe_browsing/core/db/v4_get_hash_protocol_manager.cc b/components/safe_browsing/core/db/v4_get_hash_protocol_manager.cc index cbcb0a6..268285f 100644 --- a/components/safe_browsing/core/db/v4_get_hash_protocol_manager.cc +++ b/components/safe_browsing/core/db/v4_get_hash_protocol_manager.cc
@@ -16,6 +16,7 @@ #include "base/timer/timer.h" #include "base/trace_event/trace_event.h" #include "base/trace_event/traced_value.h" +#include "build/build_config.h" #include "components/safe_browsing/core/common/thread_utils.h" #include "net/base/load_flags.h" #include "net/http/http_response_headers.h" @@ -300,6 +301,12 @@ return; } + // TODO(crbug.com/1028755): Enable full hash checks on iOS. +#if defined(OS_IOS) + std::move(callback).Run(cached_full_hash_infos); + return; +#endif + net::NetworkTrafficAnnotationTag traffic_annotation = net::DefineNetworkTrafficAnnotation("safe_browsing_v4_get_hash", R"( semantics { @@ -772,6 +779,12 @@ DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_); DCHECK(CurrentlyOnThread(ThreadID::IO)); + // Ensure that full hash requests are not being sent on iOS. + // TODO(crbug.com/1028755): Enable full hash checks on iOS. +#if defined(OS_IOS) + CHECK(false); +#endif + int response_code = 0; if (url_loader->ResponseInfo() && url_loader->ResponseInfo()->headers) response_code = url_loader->ResponseInfo()->headers->response_code();
diff --git a/components/safe_browsing/ios/BUILD.gn b/components/safe_browsing/ios/BUILD.gn index c273050..4622ac5 100644 --- a/components/safe_browsing/ios/BUILD.gn +++ b/components/safe_browsing/ios/BUILD.gn
@@ -12,7 +12,7 @@ "//components/safe_browsing/core/browser", "//components/safe_browsing/core/common", "//components/safe_browsing/core/common:unit_tests", - "//components/safe_browsing/core/db:unit_tests_local_db", + "//components/safe_browsing/core/db", "//components/safe_browsing/core/realtime:unit_tests", ] }
diff --git a/components/strings/components_strings_ca.xtb b/components/strings/components_strings_ca.xtb index 5567374..f0e8995d 100644 --- a/components/strings/components_strings_ca.xtb +++ b/components/strings/components_strings_ca.xtb
@@ -1702,7 +1702,7 @@ <translation id="8298115750975731693">És possible que la xarxa Wi-Fi (<ph name="WIFI_NAME" />) que esteu fent servir requereixi que visiteu <ph name="BEGIN_BOLD" /><ph name="LOGIN_URL" /><ph name="END_BOLD" />.</translation> <translation id="830498451218851433">Plegat per la meitat</translation> <translation id="8307358339886459768">Small-Photo</translation> -<translation id="8308427013383895095">No s'ha pogut executar la traducció a causa d'un problema amb la connexió de xarxa.</translation> +<translation id="8308427013383895095">No s'ha pogut executar la traducció a causa d'un problema amb la connexió a la xarxa.</translation> <translation id="831207732689920588">Aquesta pàgina és sospitosa (marcada per Chrome).</translation> <translation id="831997045666694187">Tarda</translation> <translation id="8332188693563227489">S'ha rebutjat l'accés a <ph name="HOST_NAME" /></translation>
diff --git a/components/strings/components_strings_hi.xtb b/components/strings/components_strings_hi.xtb index e9bc113..7af0823 100644 --- a/components/strings/components_strings_hi.xtb +++ b/components/strings/components_strings_hi.xtb
@@ -650,6 +650,7 @@ <translation id="3784372983762739446">ब्लूटूथ डिवाइस</translation> <translation id="3787705759683870569"><ph name="EXPIRATION_MONTH" />/<ph name="EXPIRATION_YEAR" /> में खत्म होगा</translation> <translation id="3789155188480882154">आकार 16</translation> +<translation id="3793574014653384240">हाल ही में बंद होने की संख्या और वजहें</translation> <translation id="3797522431967816232">पीआरसी3 (एन्वेलप)</translation> <translation id="3799805948399000906">फ़ॉन्ट का अनुरोध किया गया</translation> <translation id="3807366285948165054">इमेज X शिफ़्ट</translation>
diff --git a/components/strings/components_strings_mk.xtb b/components/strings/components_strings_mk.xtb index f321232..a7d0be8 100644 --- a/components/strings/components_strings_mk.xtb +++ b/components/strings/components_strings_mk.xtb
@@ -313,7 +313,7 @@ <translation id="2288422996159078444">Сѐ што ќе напишете, сите страници што ќе ги прегледате или секоја друга активност на интернет се надгледува, а содржините на сајтовите може да се променат без ваше знаење.</translation> <translation id="2289385804009217824">Кратење</translation> <translation id="2292556288342944218">Вашиот пристап на интернет е блокиран</translation> -<translation id="2293443924986248631">Кога е вклучено, сајтовите не можат да користат колачиња за да ве следат на интернет. Функциите на некои сајтови може да не функционираат.</translation> +<translation id="2293443924986248631">Кога е вклучено, сајтовите не може да користат колачиња што ве следат на интернет. Функциите на некои сајтови може да не функционираат.</translation> <translation id="2297722699537546652">B5 (плик)</translation> <translation id="2300306941146563769">Не е прикачен</translation> <translation id="2310021320168182093">Chou 2 (плик)</translation> @@ -1582,7 +1582,7 @@ <translation id="7757555340166475417">Dai-Pa-Kai</translation> <translation id="7758069387465995638">Заштитниот ѕид или антивирусниот софтвер можеби ја блокирале врската.</translation> <translation id="7759163816903619567">Домен на приказот:</translation> -<translation id="776110834126722255">Неподдржано</translation> +<translation id="776110834126722255">Застарено</translation> <translation id="7761701407923456692">Сертификатот на серверот не се совпаѓа со URL.</translation> <translation id="7763386264682878361">Анализатор на манифестот за плаќање</translation> <translation id="7764225426217299476">Додај адреса</translation>
diff --git a/components/strings/components_strings_pl.xtb b/components/strings/components_strings_pl.xtb index c21b847..201d2f0 100644 --- a/components/strings/components_strings_pl.xtb +++ b/components/strings/components_strings_pl.xtb
@@ -730,7 +730,7 @@ <translation id="4152318981910038897">{COUNT,plural, =1{Strona 1}few{Strona {COUNT}}many{Strona {COUNT}}other{Strona {COUNT}}}</translation> <translation id="4154664944169082762">Odciski cyfrowe</translation> <translation id="4159784952369912983">Purpurowy</translation> -<translation id="4163132590327127354">Strona została uproszczona przez Chrome, by była bardziej czytelna.</translation> +<translation id="4163132590327127354">Strona została uproszczona przez Chrome, by było ją łatwiej przeczytać.</translation> <translation id="4165986682804962316">Ustawienia witryn</translation> <translation id="4171400957073367226">Nieprawidłowy podpis weryfikujący</translation> <translation id="4171489848299289778"><ph name="RESULT_MODIFIED_DATE" /> – <ph name="RESULT_OWNER" /> – <ph name="RESULT_PRODUCT_SOURCE" /></translation>
diff --git a/components/strings/components_strings_uz.xtb b/components/strings/components_strings_uz.xtb index 95fe1a6..513faf2a 100644 --- a/components/strings/components_strings_uz.xtb +++ b/components/strings/components_strings_uz.xtb
@@ -1027,7 +1027,7 @@ <translation id="5371425731340848620">Kartani yangilash</translation> <translation id="5377026284221673050">“Soatingiz orqada” yoki “Soatingiz oldinda” yoki “<span class="error-code">NET::ERR_CERT_DATE_INVALID</span>”</translation> <translation id="5380442954567233718">Siz ochmoqchi boʻlgan <ph name="ORIGIN" /> serverida - barcha soʻrovlar manba siyosati tekshiruvidan oʻtishini talab qiluvchi sarlavha sozlangan. Lekin + barcha soʻrovlar manba siyosati tekshiruvidan oʻtishini talab qiluvchi sarlavha bilan sozlangan. Lekin sarlavha xato formatdaligi sababli brauzer <ph name="SITE" /> saytidagi soʻrovingizni bajara olmaydi. Manba siyosatlari sayt operatorlari tomonidan xavfsizlik kabi sayt parametrlarini sozlashda ishlatiladi.</translation>
diff --git a/components/strings/components_strings_zh-TW.xtb b/components/strings/components_strings_zh-TW.xtb index 30c34396..f8330a5 100644 --- a/components/strings/components_strings_zh-TW.xtb +++ b/components/strings/components_strings_zh-TW.xtb
@@ -313,7 +313,7 @@ <translation id="2288422996159078444">你輸入的內容、瀏覽的網頁或任何其他網路活動都會遭到監視,而且網站內容可能會在你不知情的情況下遭到變更。</translation> <translation id="2289385804009217824">裁切</translation> <translation id="2292556288342944218">您的網際網路存取權遭到封鎖</translation> -<translation id="2293443924986248631">開啟這項功能時,網站無法使用 Cookie 來追蹤你在網路上的活動。某些網站的功能可能無法正常運作。</translation> +<translation id="2293443924986248631">開啟這項功能後,網站無法使用 Cookie 來追蹤你在網路上的活動。某些網站的功能可能無法正常運作。</translation> <translation id="2297722699537546652">B5 (信封)</translation> <translation id="2300306941146563769">未上傳</translation> <translation id="2310021320168182093">Chou2 (信封)</translation> @@ -1024,7 +1024,7 @@ <translation id="536296301121032821">無法儲存政策設定</translation> <translation id="5371425731340848620">更新信用卡</translation> <translation id="5377026284221673050">「你的時鐘時間過慢」、「你的時鐘時間過快」或 「<span class="error-code">NET::ERR_CERT_DATE_INVALID</span>」</translation> -<translation id="5380442954567233718">你要存取的伺服器「<ph name="ORIGIN" />」已設定標頭,指定所有收到的要求都必須套用來源政策。但標頭格式錯誤,因此瀏覽器無法完成你向「<ph name="SITE" />」提出的要求。網站業者可使用來源政策設定網站的安全性及其他屬性。</translation> +<translation id="5380442954567233718">你要存取的伺服器「<ph name="ORIGIN" />」已設定標頭,指定所有收到的要求都必須套用來源政策。但該標頭格式錯誤,因此瀏覽器無法完成你向「<ph name="SITE" />」提出的要求。網站業者可使用來源政策設定網站的安全性及其他屬性。</translation> <translation id="5386426401304769735">這個網站的憑證鏈結包含使用 SHA-1 進行簽署的憑證。</translation> <translation id="538659543871111977">A4-Tab</translation> <translation id="5396631636586785122">邊緣裝訂 (右側)</translation>
diff --git a/content/browser/browser_child_process_host_impl.cc b/content/browser/browser_child_process_host_impl.cc index 207427f..aaa18689 100644 --- a/content/browser/browser_child_process_host_impl.cc +++ b/content/browser/browser_child_process_host_impl.cc
@@ -26,6 +26,7 @@ #include "base/task/post_task.h" #include "base/threading/thread_task_runner_handle.h" #include "base/token.h" +#include "base/trace_event/memory_dump_manager.h" #include "build/build_config.h" #include "components/tracing/common/trace_startup_config.h" #include "components/tracing/common/tracing_switches.h" @@ -654,25 +655,28 @@ if (!IsProcessLaunched()) return; - base::PostTask( - FROM_HERE, BrowserThread::UI, - base::BindOnce( - [](mojo::PendingReceiver<memory_instrumentation::mojom::Coordinator> - receiver, - mojo::PendingRemote<memory_instrumentation::mojom::ClientProcess> - client_process, - memory_instrumentation::mojom::ProcessType process_type, - base::ProcessId process_id, - base::Optional<std::string> service_name) { - GetMemoryInstrumentationCoordinatorController() - ->RegisterClientProcess(std::move(receiver), - std::move(client_process), process_type, - process_id, std::move(service_name)); - }, - std::move(receiver), std::move(client_process), - GetCoordinatorClientProcessType( - static_cast<ProcessType>(data_.process_type)), - child_process_->GetProcess().Pid(), delegate_->GetServiceName())); + base::trace_event::MemoryDumpManager::GetInstance() + ->GetDumpThreadTaskRunner() + ->PostTask( + FROM_HERE, + base::BindOnce( + [](mojo::PendingReceiver< + memory_instrumentation::mojom::Coordinator> receiver, + mojo::PendingRemote< + memory_instrumentation::mojom::ClientProcess> + client_process, + memory_instrumentation::mojom::ProcessType process_type, + base::ProcessId process_id, + base::Optional<std::string> service_name) { + GetMemoryInstrumentationCoordinatorController() + ->RegisterClientProcess( + std::move(receiver), std::move(client_process), + process_type, process_id, std::move(service_name)); + }, + std::move(receiver), std::move(client_process), + GetCoordinatorClientProcessType( + static_cast<ProcessType>(data_.process_type)), + child_process_->GetProcess().Pid(), delegate_->GetServiceName())); } bool BrowserChildProcessHostImpl::IsProcessLaunched() const {
diff --git a/content/browser/renderer_host/render_process_host_impl.cc b/content/browser/renderer_host/render_process_host_impl.cc index faa7ecb..d8046f0 100644 --- a/content/browser/renderer_host/render_process_host_impl.cc +++ b/content/browser/renderer_host/render_process_host_impl.cc
@@ -2652,10 +2652,27 @@ return; } - GetMemoryInstrumentationCoordinatorController()->RegisterClientProcess( - std::move(receiver), std::move(client_process), - memory_instrumentation::mojom::ProcessType::RENDERER, GetProcess().Pid(), - /*service_name=*/base::nullopt); + base::trace_event::MemoryDumpManager::GetInstance() + ->GetDumpThreadTaskRunner() + ->PostTask( + FROM_HERE, + base::BindOnce( + [](mojo::PendingReceiver< + memory_instrumentation::mojom::Coordinator> receiver, + mojo::PendingRemote< + memory_instrumentation::mojom::ClientProcess> + client_process, + base::ProcessId pid) { + GetMemoryInstrumentationCoordinatorController() + ->RegisterClientProcess( + std::move(receiver), std::move(client_process), + memory_instrumentation::mojom::ProcessType::RENDERER, + pid, + /*service_name=*/base::nullopt); + }, + std::move(receiver), std::move(client_process), + GetProcess().Pid())); + coordinator_connector_receiver_.reset(); }
diff --git a/content/browser/resource_coordinator_service.cc b/content/browser/resource_coordinator_service.cc index 311ddff..c7c2b11 100644 --- a/content/browser/resource_coordinator_service.cc +++ b/content/browser/resource_coordinator_service.cc
@@ -5,6 +5,7 @@ #include "content/public/browser/resource_coordinator_service.h" #include "base/no_destructor.h" +#include "base/trace_event/memory_dump_manager.h" #include "content/public/browser/browser_thread.h" #include "services/resource_coordinator/public/mojom/resource_coordinator_service.mojom.h" #include "services/resource_coordinator/resource_coordinator_service.h" @@ -13,8 +14,9 @@ resource_coordinator::mojom::ResourceCoordinatorService* GetResourceCoordinatorService() { - DCHECK(!BrowserThread::IsThreadInitialized(BrowserThread::UI) || - BrowserThread::CurrentlyOn(BrowserThread::UI)); + DCHECK(base::trace_event::MemoryDumpManager::GetInstance() + ->GetDumpThreadTaskRunner() + ->RunsTasksInCurrentSequence()); static base::NoDestructor< mojo::Remote<resource_coordinator::mojom::ResourceCoordinatorService>> remote; @@ -25,8 +27,9 @@ memory_instrumentation::mojom::CoordinatorController* GetMemoryInstrumentationCoordinatorController() { - DCHECK(!BrowserThread::IsThreadInitialized(BrowserThread::UI) || - BrowserThread::CurrentlyOn(BrowserThread::UI)); + DCHECK(base::trace_event::MemoryDumpManager::GetInstance() + ->GetDumpThreadTaskRunner() + ->RunsTasksInCurrentSequence()); static base::NoDestructor< mojo::Remote<memory_instrumentation::mojom::CoordinatorController>> controller([] {
diff --git a/content/browser/tracing/memory_instrumentation_util.cc b/content/browser/tracing/memory_instrumentation_util.cc index fecbc6f..8483aaf 100644 --- a/content/browser/tracing/memory_instrumentation_util.cc +++ b/content/browser/tracing/memory_instrumentation_util.cc
@@ -12,6 +12,14 @@ namespace content { void InitializeBrowserMemoryInstrumentationClient() { + auto task_runner = base::trace_event::MemoryDumpManager::GetInstance() + ->GetDumpThreadTaskRunner(); + if (!task_runner->RunsTasksInCurrentSequence()) { + task_runner->PostTask( + FROM_HERE, + base::BindOnce(&InitializeBrowserMemoryInstrumentationClient)); + return; + } TRACE_EVENT0("startup", "InitializeBrowserMemoryInstrumentationClient"); mojo::PendingRemote<memory_instrumentation::mojom::Coordinator> coordinator; mojo::PendingRemote<memory_instrumentation::mojom::ClientProcess> process;
diff --git a/content/public/test/render_view_test.cc b/content/public/test/render_view_test.cc index f4db910..9f87c4c 100644 --- a/content/public/test/render_view_test.cc +++ b/content/public/test/render_view_test.cc
@@ -50,6 +50,7 @@ #include "third_party/blink/public/mojom/leak_detector/leak_detector.mojom.h" #include "third_party/blink/public/mojom/renderer_preferences.mojom.h" #include "third_party/blink/public/platform/scheduler/web_thread_scheduler.h" +#include "third_party/blink/public/platform/web_runtime_features.h" #include "third_party/blink/public/platform/web_url_loader_client.h" #include "third_party/blink/public/platform/web_url_request.h" #include "third_party/blink/public/web/blink.h" @@ -63,6 +64,7 @@ #include "ui/base/resource/resource_bundle.h" #include "ui/events/base_event_utils.h" #include "ui/events/keycodes/keyboard_codes.h" +#include "ui/native_theme/native_theme_features.h" #include "v8/include/v8.h" #if defined(OS_MACOSX) @@ -356,6 +358,13 @@ base::CommandLine::ForCurrentProcess()->AppendSwitchASCII( switches::kProcessType, switches::kRendererProcess); + // Enable Blink's experimental and test only features so that test code + // does not have to bother enabling each feature. + blink::WebRuntimeFeatures::EnableExperimentalFeatures(true); + blink::WebRuntimeFeatures::EnableTestOnlyFeatures(true); + blink::WebRuntimeFeatures::EnableOverlayScrollbars( + ui::IsOverlayScrollbarEnabled()); + test_io_thread_ = std::make_unique<base::TestIOThread>(base::TestIOThread::kAutoStart); ipc_support_ = std::make_unique<mojo::core::ScopedIPCSupport>(
diff --git a/content/renderer/accessibility/render_accessibility_impl_browsertest.cc b/content/renderer/accessibility/render_accessibility_impl_browsertest.cc index 813482ba8..b46fb4e 100644 --- a/content/renderer/accessibility/render_accessibility_impl_browsertest.cc +++ b/content/renderer/accessibility/render_accessibility_impl_browsertest.cc
@@ -41,6 +41,7 @@ #include "testing/gtest/include/gtest/gtest.h" #include "third_party/blink/public/common/associated_interfaces/associated_interface_provider.h" #include "third_party/blink/public/platform/web_float_rect.h" +#include "third_party/blink/public/platform/web_runtime_features.h" #include "third_party/blink/public/platform/web_size.h" #include "third_party/blink/public/web/web_ax_object.h" #include "third_party/blink/public/web/web_document.h" @@ -267,6 +268,16 @@ void SetUp() override { RenderViewTest::SetUp(); + // These flags are enabled in the parent class to make the testing + // environment match the Blink one. But there are some accessibility flags + // that cause some of the tests here to fail such as: + // SendFullAccessibilityTreeOnReload, ShowAccessibilityObject, and + // HideAccessibilityObject. Disabling these flags for now to keep the + // behavior the same as production for these tests. Ideally someone with the + // domain knowledge here should be able keep these features enabled. + blink::WebRuntimeFeatures::EnableExperimentalFeatures(false); + blink::WebRuntimeFeatures::EnableTestOnlyFeatures(false); + sink_ = &render_thread_->sink(); // Ensure that a valid RenderAccessibilityImpl object is created and
diff --git a/content/renderer/render_view_browsertest.cc b/content/renderer/render_view_browsertest.cc index 85f08187ff..490db5a 100644 --- a/content/renderer/render_view_browsertest.cc +++ b/content/renderer/render_view_browsertest.cc
@@ -79,7 +79,6 @@ #include "third_party/blink/public/platform/scheduler/test/renderer_scheduler_test_support.h" #include "third_party/blink/public/platform/web_data.h" #include "third_party/blink/public/platform/web_http_body.h" -#include "third_party/blink/public/platform/web_runtime_features.h" #include "third_party/blink/public/platform/web_string.h" #include "third_party/blink/public/platform/web_url_response.h" #include "third_party/blink/public/web/web_autofill_client.h" @@ -106,7 +105,6 @@ #include "ui/events/types/event_type.h" #include "ui/gfx/codec/jpeg_codec.h" #include "ui/gfx/range/range.h" -#include "ui/native_theme/native_theme_features.h" #include "url/url_constants.h" #if defined(OS_ANDROID) @@ -142,7 +140,6 @@ using blink::WebInputEvent; using blink::WebLocalFrame; using blink::WebMouseEvent; -using blink::WebRuntimeFeatures; using blink::WebString; using blink::WebURLError; @@ -248,16 +245,6 @@ ~RenderViewImplTest() override {} - void SetUp() override { - // Enable Blink's experimental and test only features so that test code - // does not have to bother enabling each feature. - WebRuntimeFeatures::EnableExperimentalFeatures(true); - WebRuntimeFeatures::EnableTestOnlyFeatures(true); - WebRuntimeFeatures::EnableOverlayScrollbars( - ui::IsOverlayScrollbarEnabled()); - RenderViewTest::SetUp(); - } - RenderViewImpl* view() { return static_cast<RenderViewImpl*>(view_); }
diff --git a/content/services/DEPS b/content/services/DEPS new file mode 100644 index 0000000..7f957bc --- /dev/null +++ b/content/services/DEPS
@@ -0,0 +1,4 @@ +include_rules = [ + "+mojo/public", + "+services/service_manager/public", +]
diff --git a/content/services/README.md b/content/services/README.md new file mode 100644 index 0000000..fd92b16 --- /dev/null +++ b/content/services/README.md
@@ -0,0 +1,5 @@ +This directory holds [services](/services) that are: +(a) Not considered part of Chrome's foundation (i.e., //services) or they have dependencies which we don't allow in /services (such as content or Blink), and +(b) are entirely consumed by content/ (or exposed via a content/public interface). + +If in doubt about where your service belongs, contact services-dev@chromium.org.
diff --git a/chrome/services/isolated_xr_device/BUILD.gn b/content/services/isolated_xr_device/BUILD.gn similarity index 87% rename from chrome/services/isolated_xr_device/BUILD.gn rename to content/services/isolated_xr_device/BUILD.gn index d850138a..047efdd 100644 --- a/chrome/services/isolated_xr_device/BUILD.gn +++ b/content/services/isolated_xr_device/BUILD.gn
@@ -16,12 +16,15 @@ "xr_test_hook_wrapper.h", ] + configs += [ "//content:content_implementation" ] + if (enable_openxr) { configs += [ "//third_party/openxr:config" ] } deps = [ "//base", + "//content/public/common:common_sources", "//device/base", "//device/vr:vr", "//device/vr/public/mojom",
diff --git a/chrome/services/isolated_xr_device/DEPS b/content/services/isolated_xr_device/DEPS similarity index 100% rename from chrome/services/isolated_xr_device/DEPS rename to content/services/isolated_xr_device/DEPS
diff --git a/chrome/services/isolated_xr_device/OWNERS b/content/services/isolated_xr_device/OWNERS similarity index 100% rename from chrome/services/isolated_xr_device/OWNERS rename to content/services/isolated_xr_device/OWNERS
diff --git a/chrome/services/isolated_xr_device/xr_device_service.cc b/content/services/isolated_xr_device/xr_device_service.cc similarity index 84% rename from chrome/services/isolated_xr_device/xr_device_service.cc rename to content/services/isolated_xr_device/xr_device_service.cc index 10ce174..5a4682b9 100644 --- a/chrome/services/isolated_xr_device/xr_device_service.cc +++ b/content/services/isolated_xr_device/xr_device_service.cc
@@ -2,11 +2,11 @@ // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. -#include "chrome/services/isolated_xr_device/xr_device_service.h" +#include "content/services/isolated_xr_device/xr_device_service.h" #include "build/build_config.h" -#include "chrome/services/isolated_xr_device/xr_runtime_provider.h" -#include "chrome/services/isolated_xr_device/xr_service_test_hook.h" +#include "content/services/isolated_xr_device/xr_runtime_provider.h" +#include "content/services/isolated_xr_device/xr_service_test_hook.h" #include "mojo/public/cpp/bindings/self_owned_receiver.h" #if defined(OS_WIN)
diff --git a/chrome/services/isolated_xr_device/xr_device_service.h b/content/services/isolated_xr_device/xr_device_service.h similarity index 83% rename from chrome/services/isolated_xr_device/xr_device_service.h rename to content/services/isolated_xr_device/xr_device_service.h index fe74db5..37ce40b 100644 --- a/chrome/services/isolated_xr_device/xr_device_service.h +++ b/content/services/isolated_xr_device/xr_device_service.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_SERVICES_ISOLATED_XR_DEVICE_XR_DEVICE_SERVICE_H_ -#define CHROME_SERVICES_ISOLATED_XR_DEVICE_XR_DEVICE_SERVICE_H_ +#ifndef CONTENT_SERVICES_ISOLATED_XR_DEVICE_XR_DEVICE_SERVICE_H_ +#define CONTENT_SERVICES_ISOLATED_XR_DEVICE_XR_DEVICE_SERVICE_H_ #include "device/vr/public/mojom/browser_test_interfaces.mojom.h" #include "device/vr/public/mojom/isolated_xr_service.mojom.h" @@ -33,4 +33,4 @@ } // namespace device -#endif // CHROME_SERVICES_ISOLATED_XR_DEVICE_XR_DEVICE_SERVICE_H_ +#endif // CONTENT_SERVICES_ISOLATED_XR_DEVICE_XR_DEVICE_SERVICE_H_
diff --git a/chrome/services/isolated_xr_device/xr_runtime_provider.cc b/content/services/isolated_xr_device/xr_runtime_provider.cc similarity index 98% rename from chrome/services/isolated_xr_device/xr_runtime_provider.cc rename to content/services/isolated_xr_device/xr_runtime_provider.cc index a26cc69e..61b4048 100644 --- a/chrome/services/isolated_xr_device/xr_runtime_provider.cc +++ b/content/services/isolated_xr_device/xr_runtime_provider.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/services/isolated_xr_device/xr_runtime_provider.h" +#include "content/services/isolated_xr_device/xr_runtime_provider.h" #include "base/bind.h" #include "base/command_line.h"
diff --git a/chrome/services/isolated_xr_device/xr_runtime_provider.h b/content/services/isolated_xr_device/xr_runtime_provider.h similarity index 91% rename from chrome/services/isolated_xr_device/xr_runtime_provider.h rename to content/services/isolated_xr_device/xr_runtime_provider.h index d7ff1b0..1dd8ce2 100644 --- a/chrome/services/isolated_xr_device/xr_runtime_provider.h +++ b/content/services/isolated_xr_device/xr_runtime_provider.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_SERVICES_ISOLATED_XR_DEVICE_XR_RUNTIME_PROVIDER_H_ -#define CHROME_SERVICES_ISOLATED_XR_DEVICE_XR_RUNTIME_PROVIDER_H_ +#ifndef CONTENT_SERVICES_ISOLATED_XR_DEVICE_XR_RUNTIME_PROVIDER_H_ +#define CONTENT_SERVICES_ISOLATED_XR_DEVICE_XR_RUNTIME_PROVIDER_H_ #include <memory> @@ -71,4 +71,4 @@ base::WeakPtrFactory<IsolatedXRRuntimeProvider> weak_ptr_factory_{this}; }; -#endif // CHROME_SERVICES_ISOLATED_XR_DEVICE_XR_RUNTIME_PROVIDER_H_ +#endif // CONTENT_SERVICES_ISOLATED_XR_DEVICE_XR_RUNTIME_PROVIDER_H_
diff --git a/chrome/services/isolated_xr_device/xr_service_test_hook.cc b/content/services/isolated_xr_device/xr_service_test_hook.cc similarity index 94% rename from chrome/services/isolated_xr_device/xr_service_test_hook.cc rename to content/services/isolated_xr_device/xr_service_test_hook.cc index a2348b5..f9744b1 100644 --- a/chrome/services/isolated_xr_device/xr_service_test_hook.cc +++ b/content/services/isolated_xr_device/xr_service_test_hook.cc
@@ -2,11 +2,11 @@ // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. -#include "chrome/services/isolated_xr_device/xr_service_test_hook.h" +#include "content/services/isolated_xr_device/xr_service_test_hook.h" #include "base/bind.h" #include "base/process/process.h" -#include "chrome/services/isolated_xr_device/xr_test_hook_wrapper.h" +#include "content/services/isolated_xr_device/xr_test_hook_wrapper.h" #include "device/vr/buildflags/buildflags.h" #if BUILDFLAG(ENABLE_OPENVR)
diff --git a/chrome/services/isolated_xr_device/xr_service_test_hook.h b/content/services/isolated_xr_device/xr_service_test_hook.h similarity index 83% rename from chrome/services/isolated_xr_device/xr_service_test_hook.h rename to content/services/isolated_xr_device/xr_service_test_hook.h index 92b5901..b5d7532 100644 --- a/chrome/services/isolated_xr_device/xr_service_test_hook.h +++ b/content/services/isolated_xr_device/xr_service_test_hook.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_SERVICES_ISOLATED_XR_DEVICE_XR_SERVICE_TEST_HOOK_H_ -#define CHROME_SERVICES_ISOLATED_XR_DEVICE_XR_SERVICE_TEST_HOOK_H_ +#ifndef CONTENT_SERVICES_ISOLATED_XR_DEVICE_XR_SERVICE_TEST_HOOK_H_ +#define CONTENT_SERVICES_ISOLATED_XR_DEVICE_XR_SERVICE_TEST_HOOK_H_ #include <memory> @@ -33,4 +33,4 @@ } // namespace device -#endif // CHROME_SERVICES_ISOLATED_XR_DEVICE_XR_SERVICE_TEST_HOOK_H_ +#endif // CONTENT_SERVICES_ISOLATED_XR_DEVICE_XR_SERVICE_TEST_HOOK_H_
diff --git a/chrome/services/isolated_xr_device/xr_test_hook_wrapper.cc b/content/services/isolated_xr_device/xr_test_hook_wrapper.cc similarity index 98% rename from chrome/services/isolated_xr_device/xr_test_hook_wrapper.cc rename to content/services/isolated_xr_device/xr_test_hook_wrapper.cc index 720f5c0..5ba5918 100644 --- a/chrome/services/isolated_xr_device/xr_test_hook_wrapper.cc +++ b/content/services/isolated_xr_device/xr_test_hook_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 "chrome/services/isolated_xr_device/xr_test_hook_wrapper.h" +#include "content/services/isolated_xr_device/xr_test_hook_wrapper.h" namespace device {
diff --git a/chrome/services/isolated_xr_device/xr_test_hook_wrapper.h b/content/services/isolated_xr_device/xr_test_hook_wrapper.h similarity index 90% rename from chrome/services/isolated_xr_device/xr_test_hook_wrapper.h rename to content/services/isolated_xr_device/xr_test_hook_wrapper.h index 25a53d0..5745610e 100644 --- a/chrome/services/isolated_xr_device/xr_test_hook_wrapper.h +++ b/content/services/isolated_xr_device/xr_test_hook_wrapper.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_SERVICES_ISOLATED_XR_DEVICE_XR_TEST_HOOK_WRAPPER_H_ -#define CHROME_SERVICES_ISOLATED_XR_DEVICE_XR_TEST_HOOK_WRAPPER_H_ +#ifndef CONTENT_SERVICES_ISOLATED_XR_DEVICE_XR_TEST_HOOK_WRAPPER_H_ +#define CONTENT_SERVICES_ISOLATED_XR_DEVICE_XR_TEST_HOOK_WRAPPER_H_ #include "device/vr/public/mojom/browser_test_interfaces.mojom.h" #include "device/vr/test/test_hook.h" @@ -47,4 +47,4 @@ } // namespace device -#endif // CHROME_SERVICES_ISOLATED_XR_DEVICE_XR_TEST_HOOK_WRAPPER_H_ +#endif // CONTENT_SERVICES_ISOLATED_XR_DEVICE_XR_TEST_HOOK_WRAPPER_H_
diff --git a/content/shell/BUILD.gn b/content/shell/BUILD.gn index 3265990..f01df574 100644 --- a/content/shell/BUILD.gn +++ b/content/shell/BUILD.gn
@@ -406,6 +406,7 @@ "browser/shell_web_contents_view_delegate_views.cc", ] deps += [ + "//ui/native_theme", "//ui/resources", "//ui/views:test_support", "//ui/views/controls/webview",
diff --git a/content/shell/browser/shell_content_browser_client.cc b/content/shell/browser/shell_content_browser_client.cc index d4235d0e..fe62004 100644 --- a/content/shell/browser/shell_content_browser_client.cc +++ b/content/shell/browser/shell_content_browser_client.cc
@@ -29,11 +29,9 @@ #include "content/public/browser/storage_partition.h" #include "content/public/common/content_features.h" #include "content/public/common/content_switches.h" -#include "content/public/common/service_names.mojom.h" #include "content/public/common/url_constants.h" #include "content/public/common/user_agent.h" #include "content/public/common/web_preferences.h" -#include "content/public/test/test_service.h" #include "content/shell/browser/shell.h" #include "content/shell/browser/shell_browser_context.h" #include "content/shell/browser/shell_browser_main_parts.h" @@ -41,18 +39,11 @@ #include "content/shell/browser/shell_quota_permission_context.h" #include "content/shell/browser/shell_web_contents_view_delegate_creator.h" #include "content/shell/common/shell_switches.h" -#include "content/shell/common/web_test/fake_bluetooth_chooser.mojom.h" -#include "content/shell/common/web_test/web_test_bluetooth_fake_adapter_setter.mojom.h" -#include "content/shell/common/web_test/web_test_switches.h" -#include "content/test/data/mojo_web_test_helper_test.mojom.h" -#include "device/bluetooth/public/mojom/test/fake_bluetooth.mojom.h" #include "media/mojo/buildflags.h" #include "media/mojo/mojom/media_service.mojom.h" #include "mojo/public/cpp/bindings/remote.h" #include "net/ssl/client_cert_identity.h" #include "services/network/public/mojom/network_service.mojom.h" -#include "services/service_manager/public/cpp/manifest.h" -#include "services/service_manager/public/cpp/manifest_builder.h" #include "third_party/blink/public/common/features.h" #include "third_party/blink/public/common/user_agent/user_agent_metadata.h" #include "ui/base/ui_base_features.h" @@ -107,20 +98,6 @@ } #endif -const service_manager::Manifest& GetContentBrowserOverlayManifest() { - static base::NoDestructor<service_manager::Manifest> manifest{ - service_manager::ManifestBuilder() - .ExposeCapability( - "renderer", - service_manager::Manifest::InterfaceList< - mojom::MojoWebTestHelper, mojom::FakeBluetoothChooser, - mojom::FakeBluetoothChooserFactory, - mojom::WebTestBluetoothFakeAdapterSetter, - bluetooth::mojom::FakeBluetooth>()) - .Build()}; - return *manifest; -} - } // namespace std::string GetShellUserAgent() { @@ -200,14 +177,6 @@ return false; } -base::Optional<service_manager::Manifest> -ShellContentBrowserClient::GetServiceManifestOverlay(base::StringPiece name) { - if (name == content::mojom::kBrowserServiceName) - return GetContentBrowserOverlayManifest(); - - return base::nullopt; -} - void ShellContentBrowserClient::AppendExtraCommandLineSwitches( base::CommandLine* command_line, int child_process_id) { @@ -419,27 +388,9 @@ BrowserContext* context, bool in_memory, const base::FilePath& relative_partition_path) { - mojo::Remote<network::mojom::NetworkContext> network_context; network::mojom::NetworkContextParamsPtr context_params = - network::mojom::NetworkContextParams::New(); - UpdateCorsExemptHeader(context_params.get()); - context_params->user_agent = GetUserAgent(); - context_params->accept_language = GetAcceptLangs(context); - -#if BUILDFLAG(ENABLE_REPORTING) - if (base::CommandLine::ForCurrentProcess()->HasSwitch( - switches::kRunWebTests)) { - // Configure the Reporting service in a manner expected by certain Web - // Platform Tests (network-error-logging and reporting-api). - // - // (1) Always send reports (irrespective of BACKGROUND_SYNC permission) - // (2) Lower the timeout for sending reports. - context_params->reporting_delivery_interval = - kReportingDeliveryIntervalTimeForWebTests; - context_params->skip_reporting_send_permission_check = true; - } -#endif - + CreateNetworkContextParams(context); + mojo::Remote<network::mojom::NetworkContext> network_context; GetNetworkService()->CreateNetworkContext( network_context.BindNewPipeAndPassReceiver(), std::move(context_params)); return network_context; @@ -459,4 +410,14 @@ return shell_browser_main_parts_->off_the_record_browser_context(); } +network::mojom::NetworkContextParamsPtr +ShellContentBrowserClient::CreateNetworkContextParams(BrowserContext* context) { + network::mojom::NetworkContextParamsPtr context_params = + network::mojom::NetworkContextParams::New(); + UpdateCorsExemptHeader(context_params.get()); + context_params->user_agent = GetUserAgent(); + context_params->accept_language = GetAcceptLangs(context); + return context_params; +} + } // namespace content
diff --git a/content/shell/browser/shell_content_browser_client.h b/content/shell/browser/shell_content_browser_client.h index 9acb46b..04f77b29 100644 --- a/content/shell/browser/shell_content_browser_client.h +++ b/content/shell/browser/shell_content_browser_client.h
@@ -39,8 +39,6 @@ bool IsHandledURL(const GURL& url) override; bool ShouldTerminateOnServiceQuit( const service_manager::Identity& id) override; - base::Optional<service_manager::Manifest> GetServiceManifestOverlay( - base::StringPiece name) override; void AppendExtraCommandLineSwitches(base::CommandLine* command_line, int child_process_id) override; std::string GetAcceptLangs(BrowserContext* context) override; @@ -135,10 +133,16 @@ } protected: + // Call this if CreateBrowserMainParts() is overridden in a subclass. void set_browser_main_parts(ShellBrowserMainParts* parts) { shell_browser_main_parts_ = parts; } + // Used by CreateNetworkContext(), and can be overridden to change the + // parameters used there. + virtual network::mojom::NetworkContextParamsPtr CreateNetworkContextParams( + BrowserContext* context); + private: base::OnceClosure select_client_certificate_callback_; base::OnceCallback<bool(const service_manager::Identity&)>
diff --git a/content/shell/browser/shell_views.cc b/content/shell/browser/shell_views.cc index 8edf8f20..9bc30c63 100644 --- a/content/shell/browser/shell_views.cc +++ b/content/shell/browser/shell_views.cc
@@ -21,6 +21,7 @@ #include "ui/base/clipboard/clipboard.h" #include "ui/base/resource/resource_bundle.h" #include "ui/events/event.h" +#include "ui/native_theme/native_theme_color_id.h" #include "ui/views/background.h" #include "ui/views/controls/button/md_text_button.h" #include "ui/views/controls/textfield/textfield.h" @@ -117,7 +118,8 @@ private: // Initialize the UI control contained in shell window void InitShellWindow() { - SetBackground(views::CreateStandardPanelBackground()); + SetBackground(CreateThemedSolidBackground( + this, ui::NativeTheme::kColorId_WindowBackground)); auto contents_view = std::make_unique<views::View>(); auto toolbar_view = std::make_unique<views::View>();
diff --git a/content/shell/browser/web_test/web_test_content_browser_client.cc b/content/shell/browser/web_test/web_test_content_browser_client.cc index 21d8a74..fdf5409 100644 --- a/content/shell/browser/web_test/web_test_content_browser_client.cc +++ b/content/shell/browser/web_test/web_test_content_browser_client.cc
@@ -25,6 +25,7 @@ #include "content/public/browser/site_isolation_policy.h" #include "content/public/browser/storage_partition.h" #include "content/public/common/content_switches.h" +#include "content/public/common/service_names.mojom.h" #include "content/shell/browser/shell_browser_context.h" #include "content/shell/browser/web_test/blink_test_controller.h" #include "content/shell/browser/web_test/fake_bluetooth_chooser.h" @@ -39,14 +40,20 @@ #include "content/shell/browser/web_test/web_test_tts_controller_delegate.h" #include "content/shell/browser/web_test/web_test_tts_platform.h" #include "content/shell/common/blink_test.mojom.h" +#include "content/shell/common/web_test/web_test_bluetooth_fake_adapter_setter.mojom.h" #include "content/shell/common/web_test/web_test_switches.h" #include "content/shell/renderer/web_test/blink_test_helpers.h" +#include "content/test/data/mojo_web_test_helper_test.mojom.h" #include "content/test/mock_clipboard_host.h" #include "content/test/mock_platform_notification_service.h" +#include "device/bluetooth/public/mojom/test/fake_bluetooth.mojom.h" #include "device/bluetooth/test/fake_bluetooth.h" #include "gpu/config/gpu_switches.h" #include "mojo/public/cpp/bindings/pending_receiver.h" +#include "services/network/public/mojom/network_service.mojom.h" #include "services/service_manager/public/cpp/binder_map.h" +#include "services/service_manager/public/cpp/manifest.h" +#include "services/service_manager/public/cpp/manifest_builder.h" #include "storage/browser/quota/quota_settings.h" #include "third_party/blink/public/common/associated_interfaces/associated_interface_registry.h" #include "url/origin.h" @@ -62,15 +69,31 @@ MojoWebTestHelper::Create(std::move(receiver)); } -class TestOverlayWindow : public OverlayWindow { - public: - TestOverlayWindow() = default; - ~TestOverlayWindow() override {} +const service_manager::Manifest& GetWebTestContentBrowserOverlayManifest() { + static base::NoDestructor<service_manager::Manifest> manifest{ + service_manager::ManifestBuilder() + .ExposeCapability( + "renderer", + service_manager::Manifest::InterfaceList< + mojom::MojoWebTestHelper, mojom::FakeBluetoothChooser, + mojom::FakeBluetoothChooserFactory, + mojom::WebTestBluetoothFakeAdapterSetter, + bluetooth::mojom::FakeBluetooth>()) + .Build()}; + return *manifest; +} - static std::unique_ptr<OverlayWindow> Create( - PictureInPictureWindowController* controller) { - return std::unique_ptr<OverlayWindow>(new TestOverlayWindow()); - } +// An OverlayWindow that returns the last given video natural size as the +// window's bounds. +class BoundsMatchVideoSizeOverlayWindow : public OverlayWindow { + public: + BoundsMatchVideoSizeOverlayWindow() = default; + ~BoundsMatchVideoSizeOverlayWindow() override = default; + + BoundsMatchVideoSizeOverlayWindow(const BoundsMatchVideoSizeOverlayWindow&) = + delete; + BoundsMatchVideoSizeOverlayWindow& operator=( + const BoundsMatchVideoSizeOverlayWindow&) = delete; bool IsActive() override { return false; } void Close() override {} @@ -92,8 +115,6 @@ private: gfx::Size size_; - - DISALLOW_COPY_AND_ASSIGN(TestOverlayWindow); }; } // namespace @@ -193,6 +214,14 @@ partition->GetNetworkContext())); } +base::Optional<service_manager::Manifest> +WebTestContentBrowserClient::GetServiceManifestOverlay(base::StringPiece name) { + if (name == content::mojom::kBrowserServiceName) + return GetWebTestContentBrowserOverlayManifest(); + + return base::nullopt; +} + void WebTestContentBrowserClient::BindClientHintsControllerDelegate( mojo::PendingReceiver<client_hints::mojom::ClientHints> receiver) { ClientHintsControllerDelegate* delegate = @@ -255,7 +284,7 @@ std::unique_ptr<OverlayWindow> WebTestContentBrowserClient::CreateWindowForPictureInPicture( PictureInPictureWindowController* controller) { - return TestOverlayWindow::Create(controller); + return std::make_unique<BoundsMatchVideoSizeOverlayWindow>(); } std::vector<url::Origin> @@ -397,7 +426,26 @@ return nullptr; } -// private +network::mojom::NetworkContextParamsPtr +WebTestContentBrowserClient::CreateNetworkContextParams( + BrowserContext* context) { + network::mojom::NetworkContextParamsPtr context_params = + ShellContentBrowserClient::CreateNetworkContextParams(context); + +#if BUILDFLAG(ENABLE_REPORTING) + // Configure the Reporting service in a manner expected by certain Web + // Platform Tests (network-error-logging and reporting-api). + // + // (1) Always send reports (irrespective of BACKGROUND_SYNC permission) + // (2) Lower the timeout for sending reports. + context_params->reporting_delivery_interval = + kReportingDeliveryIntervalTimeForWebTests; + context_params->skip_reporting_send_permission_check = true; +#endif + + return context_params; +} + void WebTestContentBrowserClient::CreateFakeBluetoothChooserFactory( mojo::PendingReceiver<mojom::FakeBluetoothChooserFactory> receiver) { DCHECK(!fake_bluetooth_chooser_factory_);
diff --git a/content/shell/browser/web_test/web_test_content_browser_client.h b/content/shell/browser/web_test/web_test_content_browser_client.h index 1f2c92d..4b3d15b3 100644 --- a/content/shell/browser/web_test/web_test_content_browser_client.h +++ b/content/shell/browser/web_test/web_test_content_browser_client.h
@@ -64,6 +64,8 @@ service_manager::BinderRegistry* registry, blink::AssociatedInterfaceRegistry* associated_registry, RenderProcessHost* render_process_host) override; + base::Optional<service_manager::Manifest> GetServiceManifestOverlay( + base::StringPiece name) override; void OverrideWebkitPrefs(RenderViewHost* render_view_host, WebPreferences* prefs) override; void AppendExtraCommandLineSwitches(base::CommandLine* command_line, @@ -110,6 +112,10 @@ LoginAuthRequiredCallback auth_required_callback) override; private: + // ShellContentBrowserClient overrides. + network::mojom::NetworkContextParamsPtr CreateNetworkContextParams( + BrowserContext* context) override; + // Creates and stores a FakeBluetoothChooserFactory instance. void CreateFakeBluetoothChooserFactory( mojo::PendingReceiver<mojom::FakeBluetoothChooserFactory> receiver);
diff --git a/content/test/BUILD.gn b/content/test/BUILD.gn index 617182f..206cde72 100644 --- a/content/test/BUILD.gn +++ b/content/test/BUILD.gn
@@ -261,7 +261,6 @@ "fake_renderer_compositor_frame_sink.h", "frame_host_interceptor.cc", "frame_host_interceptor.h", - "gmock_util.h", "gpu_browsertest_helpers.cc", "gpu_browsertest_helpers.h", "io_thread_shared_url_loader_factory_owner.cc", @@ -441,6 +440,7 @@ "//ui/gfx:test_support", "//ui/gl", "//ui/gl:test_support", + "//ui/native_theme", "//ui/resources", "//ui/shell_dialogs:shell_dialogs", "//ui/surface",
diff --git a/content/test/gmock_util.h b/content/test/gmock_util.h deleted file mode 100644 index fafc393..0000000 --- a/content/test/gmock_util.h +++ /dev/null
@@ -1,24 +0,0 @@ -// Copyright 2018 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 "testing/gmock/include/gmock/gmock.h" - -#ifndef CONTENT_TEST_GMOCK_UTIL_H_ -#define CONTENT_TEST_GMOCK_UTIL_H_ - -// This file contains gmock actions and matchers that integrate with concepts in -// /base. - -namespace base { -namespace test { - -// Defines a gmock action that runs a given closure. -ACTION_P(RunClosure, closure) { - closure.Run(); -} - -} // namespace test -} // namespace base - -#endif // CONTENT_TEST_GMOCK_UTIL_H_
diff --git a/content/utility/BUILD.gn b/content/utility/BUILD.gn index e7ff3c2..493cd7493 100644 --- a/content/utility/BUILD.gn +++ b/content/utility/BUILD.gn
@@ -3,6 +3,7 @@ # found in the LICENSE file. import("//build/config/jumbo.gni") +import("//device/vr/buildflags/buildflags.gni") import("//media/media_options.gni") jumbo_source_set("utility") { @@ -40,6 +41,7 @@ "//content/child", "//content/public/child:child_sources", "//content/public/common:common_sources", + "//device/vr/buildflags", "//media:media_buildflags", "//mojo/public/cpp/bindings", "//net", @@ -83,6 +85,13 @@ if (is_linux) { deps += [ "//content/utility/soda:soda_sandbox_hook" ] } + + if (enable_vr && !is_android) { + deps += [ + "//content/services/isolated_xr_device:lib", + "//device/vr/public/mojom", + ] + } } # See comment at the top of //content/BUILD.gn for how this works.
diff --git a/content/utility/DEPS b/content/utility/DEPS index c48fb23..ab7b7cf 100644 --- a/content/utility/DEPS +++ b/content/utility/DEPS
@@ -2,7 +2,10 @@ "+components/services/storage", "+content/child", "+content/public/utility", + "+content/services/isolated_xr_device", "+chromeos/services/ime", + "+device/vr/buildflags", + "+device/vr/public", "+services/audio", "+services/data_decoder", "+services/network",
diff --git a/content/utility/services.cc b/content/utility/services.cc index 323d3529..977a53e 100644 --- a/content/utility/services.cc +++ b/content/utility/services.cc
@@ -14,6 +14,7 @@ #include "content/child/child_process.h" #include "content/public/utility/content_utility_client.h" #include "content/public/utility/utility_thread.h" +#include "device/vr/buildflags/buildflags.h" #include "media/media_buildflags.h" #include "mojo/public/cpp/bindings/self_owned_receiver.h" #include "mojo/public/cpp/bindings/service_factory.h" @@ -42,6 +43,11 @@ #include "media/cdm/cdm_host_file.h" #endif // BUILDFLAG(ENABLE_CDM_HOST_VERIFICATION) +#if BUILDFLAG(ENABLE_VR) && !defined(OS_ANDROID) +#include "content/services/isolated_xr_device/xr_device_service.h" // nogncheck +#include "device/vr/public/mojom/isolated_xr_service.mojom.h" // nogncheck +#endif + #if defined(OS_WIN) #include "sandbox/win/src/sandbox.h" @@ -162,6 +168,13 @@ std::move(receiver), base::ThreadTaskRunnerHandle::Get()); } +#if BUILDFLAG(ENABLE_VR) && !defined(OS_ANDROID) +auto RunXrDeviceService( + mojo::PendingReceiver<device::mojom::XRDeviceService> receiver) { + return std::make_unique<device::XrDeviceService>(std::move(receiver)); +} +#endif + mojo::ServiceFactory& GetIOThreadServiceFactory() { static base::NoDestructor<mojo::ServiceFactory> factory{ RunNetworkService, @@ -180,6 +193,9 @@ RunStorageService, RunTracing, RunVideoCapture, +#if BUILDFLAG(ENABLE_VR) && !defined(OS_ANDROID) + RunXrDeviceService, +#endif }; // clang-format on return *factory;
diff --git a/device/base/BUILD.gn b/device/base/BUILD.gn index cfbb391..d516179 100644 --- a/device/base/BUILD.gn +++ b/device/base/BUILD.gn
@@ -20,9 +20,10 @@ defines = [ "DEVICE_BASE_IMPLEMENTATION" ] - deps = [ "//device/vr/buildflags" ] - - public_deps = [ "//base" ] + public_deps = [ + "//base", + "//device/vr/buildflags", + ] if (use_udev) { sources += [ @@ -30,7 +31,7 @@ "device_monitor_linux.h", ] - deps += [ "//device/udev_linux" ] + deps = [ "//device/udev_linux" ] } if (is_win) {
diff --git a/device/vr/BUILD.gn b/device/vr/BUILD.gn index 2834d65..226314c 100644 --- a/device/vr/BUILD.gn +++ b/device/vr/BUILD.gn
@@ -43,7 +43,6 @@ deps = [ "//base", "//components/ukm:ukm", - "//content/public/common", "//device/base", "//device/vr/buildflags", "//device/vr/public/mojom",
diff --git a/device/vr/DEPS b/device/vr/DEPS index a064f34..7f06383 100644 --- a/device/vr/DEPS +++ b/device/vr/DEPS
@@ -6,7 +6,6 @@ "+device/vr/jni_headers", "+services/device/public", "+services/metrics/public/cpp/ukm_builders.h", - "+third_party/blink/public/platform/modules/vr/vr_service.mojom.h", "+third_party/gvr-android-sdk/src", "+third_party/libovr/src", "+third_party/openvr/src/headers/openvr.h",
diff --git a/device/vr/buildflags/buildflags.gni b/device/vr/buildflags/buildflags.gni index b2b072ae..d85ca83 100644 --- a/device/vr/buildflags/buildflags.gni +++ b/device/vr/buildflags/buildflags.gni
@@ -28,10 +28,10 @@ # Enable VR device support whenever VR device SDK(s) are supported. # We enable VR on Linux even though VR features aren't usable because # the binary size impact is small and allows many VR tests to run on Linux - enable_vr = - enable_gvr_services || enable_openvr || enable_oculus_vr || - enable_windows_mr || enable_openxr || - (is_desktop_linux && (current_cpu == "x64" || current_cpu == "x86")) + enable_vr = enable_gvr_services || enable_openvr || enable_oculus_vr || + enable_windows_mr || enable_openxr || + (is_desktop_linux && + (current_cpu == "x64" || current_cpu == "x86") && !is_chromecast) # Whether to include VR extras like test APKs in non-VR-specific targets include_vr_data = false
diff --git a/docs/vscode.md b/docs/vscode.md index 29a679e..2b8eceb 100644 --- a/docs/vscode.md +++ b/docs/vscode.md
@@ -238,6 +238,10 @@ * `third_party/android_protobuf/src/java/src/main/java` * `third_party/junit/src/src/main/java` +Also, make sure +`export ANDROID_HOME=/usr/local/google/home/{your_ldap}/Android/Sdk` is in the +remote machine's `~/.bashrc`. + Then restart vscode, open a Java file, and wait for a bit. Debugging tips:
diff --git a/extensions/strings/extensions_strings_af.xtb b/extensions/strings/extensions_strings_af.xtb index 7e95c34b..c42dae0c 100644 --- a/extensions/strings/extensions_strings_af.xtb +++ b/extensions/strings/extensions_strings_af.xtb
@@ -7,7 +7,6 @@ <translation id="1420684932347524586">Oeps! Kon nie lukraak RSA private sleutel genereer nie.</translation> <translation id="1445572445564823378">Hierdie uitbreiding maak <ph name="PRODUCT_NAME" /> stadig. Jy moet dit deaktiveer om <ph name="PRODUCT_NAME" /> se prestasie te herstel.</translation> <translation id="1468038450257740950">WebGL word nie gesteun nie.</translation> -<translation id="149347756975725155">Kon nie uitbreidingikoon "<ph name="ICON" />" laai nie.</translation> <translation id="1803557475693955505">Kon nie plaaslike agtergrondbladsy '<ph name="BACKGROUND_PAGE" />' laai nie.</translation> <translation id="2159915644201199628">Kon nie prent ontsyfer nie: "<ph name="IMAGE_NAME" />"</translation> <translation id="2350172092385603347">Lokalisering is gebruik, maar verstek_ligging is nie in die manifes gespesifiseer nie.</translation> @@ -44,7 +43,6 @@ <translation id="6322279351188361895">Kon nie private sleutel lees nie.</translation> <translation id="6391538222494443604">Invoergids moet bestaan.</translation> <translation id="641087317769093025">Kon nie uitbreiding dekompakteer nie</translation> -<translation id="6413453408918378296">Die ikoon is nie sigbaar genoeg nie "<ph name="ICON" />".</translation> <translation id="6542618148162044354">"<ph name="APP_NAME" />" versoek tans toegang tot een of meer van jou toestelle:</translation> <translation id="657064425229075395">Kon nie agtergrondskrip "<ph name="BACKGROUND_SCRIPT" />" laai nie.</translation> <translation id="6580950983454333167"><ph name="PRODUCT_NAME" /> van <ph name="VENDOR_NAME" /> af (reeksnommer <ph name="SERIAL_NUMBER" />)</translation>
diff --git a/extensions/strings/extensions_strings_am.xtb b/extensions/strings/extensions_strings_am.xtb index e00154b..9728eeb3 100644 --- a/extensions/strings/extensions_strings_am.xtb +++ b/extensions/strings/extensions_strings_am.xtb
@@ -7,7 +7,6 @@ <translation id="1420684932347524586">አይይ! RSA የግል ኩልፍ በዘፈቀደ ለመፍጠር አልተቻለም።</translation> <translation id="1445572445564823378">ይህ ቅጥያ <ph name="PRODUCT_NAME" /> እያንቀራፈፈው ነው። የ<ph name="PRODUCT_NAME" /> አፈጻጸም ወደነበረበት ለመመለስ ቅጥያውን ማሰናከል አለብዎት።</translation> <translation id="1468038450257740950">WebGL አይደገፍም።</translation> -<translation id="149347756975725155">የቅጥያ አዶ «<ph name="ICON" />»ን መጫን አልተቻለም።</translation> <translation id="1803557475693955505">የጀርባ ገጽ «<ph name="BACKGROUND_PAGE" />»ን መጫን አልተቻለም።</translation> <translation id="2159915644201199628">የዚህ ምስል ስውሩን መግለጥ አልተቻለም፦ «<ph name="IMAGE_NAME" />»</translation> <translation id="2350172092385603347">አካባቢያዊነት ተጠቅሟል ነገር ግን በማኒፌስት ወስጥ default_locale አልተገለጸም።</translation> @@ -44,7 +43,6 @@ <translation id="6322279351188361895">ግላዊ ቁልፍን ማንበብ አልተሳካም።</translation> <translation id="6391538222494443604">የግብአት ማውጫ መኖር ይኖርበታል።</translation> <translation id="641087317769093025">ቅጥያውን መበተን አልተቻለም</translation> -<translation id="6413453408918378296">አዶው በበቂ ሁኔታ የሚታይ «<ph name="ICON" />» አይደለም።</translation> <translation id="6542618148162044354">«<ph name="APP_NAME" />» የአንድ ወይም ተጨማሪ መሣሪያዎችዎ መዳረሻ እየጠየቁ ነው።</translation> <translation id="657064425229075395">የጀርባ ስክሪፕት «<ph name="BACKGROUND_SCRIPT" />» መጫን አልተቻለም።</translation> <translation id="6580950983454333167"><ph name="PRODUCT_NAME" /> ከ<ph name="VENDOR_NAME" /> (የመለያ ቁጥር <ph name="SERIAL_NUMBER" />)</translation>
diff --git a/extensions/strings/extensions_strings_ar.xtb b/extensions/strings/extensions_strings_ar.xtb index 85deb32..9057567 100644 --- a/extensions/strings/extensions_strings_ar.xtb +++ b/extensions/strings/extensions_strings_ar.xtb
@@ -7,7 +7,6 @@ <translation id="1420684932347524586">عذرًا! تعذّر إنشاء ملف خاص RSA عشوائي.</translation> <translation id="1445572445564823378">تتسبب هذه الإضافة في بطء <ph name="PRODUCT_NAME" />. يجب إيقافها لاستعادة أداء <ph name="PRODUCT_NAME" />.</translation> <translation id="1468038450257740950">WebGL غير متوافق.</translation> -<translation id="149347756975725155">تعذر تحميل رمز الإضافة '<ph name="ICON" />'.</translation> <translation id="1803557475693955505">تعذر تحميل صفحة الخلفية '<ph name="BACKGROUND_PAGE" />'.</translation> <translation id="2159915644201199628">تعذر فك ترميز الصورة: '<ph name="IMAGE_NAME" />'</translation> <translation id="2350172092385603347">تم استخدام التعريب، ولكن لم يتم تحديد default_locale في البيان.</translation> @@ -44,7 +43,6 @@ <translation id="6322279351188361895">تعذّرت قراءة المفتاح الخاص.</translation> <translation id="6391538222494443604">يجب أن يكون دليل الإدخال موجودًا.</translation> <translation id="641087317769093025">تعذر فك ضغط الإضافة</translation> -<translation id="6413453408918378296">لا يظهر الرمز بشكلٍ كافٍ '<ph name="ICON" />'.</translation> <translation id="6542618148162044354">يطلب تطبيق "<ph name="APP_NAME" />" الدخول إلى جهاز أو أكثر من أجهزتك:</translation> <translation id="657064425229075395">تعذر تحميل النص البرمجي للخلفية '<ph name="BACKGROUND_SCRIPT" />'.</translation> <translation id="6580950983454333167"><ph name="PRODUCT_NAME" /> من <ph name="VENDOR_NAME" /> (الرقم التسلسلي <ph name="SERIAL_NUMBER" />)</translation>
diff --git a/extensions/strings/extensions_strings_as.xtb b/extensions/strings/extensions_strings_as.xtb index dd2e880..a3353ad6 100644 --- a/extensions/strings/extensions_strings_as.xtb +++ b/extensions/strings/extensions_strings_as.xtb
@@ -7,7 +7,6 @@ <translation id="1420684932347524586">ওহোঁ! অনিয়মীত RSA ব্যক্তিগত চাবি সৃষ্টি কৰিব পৰা নগ’ল।</translation> <translation id="1445572445564823378">এই এক্সটেনশ্বনৰ কাৰণে <ph name="PRODUCT_NAME" />এ লেহেমীয়া ধৰণে কাম কৰিছে৷ <ph name="PRODUCT_NAME" />এ ভালকৈ কাম কৰিবলৈ আপুনি ইয়াক অক্ষম কৰা উচিত৷</translation> <translation id="1468038450257740950">WebGL সমর্থিত নহয়।</translation> -<translation id="149347756975725155">এক্সটেনশ্বন আইকন ’<ph name="ICON" />’ ল’ড কৰিব পৰা নগ’ল।</translation> <translation id="1803557475693955505">নেপথ্যৰ পৃষ্ঠা ’<ph name="BACKGROUND_PAGE" />’ ল’ড কৰিব পৰা নগ’ল।</translation> <translation id="2159915644201199628">ছবি ডিক’ড কৰিব পৰা নগ’ল: '<ph name="IMAGE_NAME" />'</translation> <translation id="2350172092385603347">ল’কেলাইজেশ্বন ব্যৱহাৰ কৰা হৈছে কিন্তু মেনিফেষ্টত default_locale নির্দিষ্ট কৰা হোৱা নাই।</translation> @@ -44,7 +43,6 @@ <translation id="6322279351188361895">ব্যক্তিগত চাবিটো পঢ়িব পৰা নগ’ল।</translation> <translation id="6391538222494443604">ইনপুট ডাইৰেক্টৰী থাকিবই লাগিব৷</translation> <translation id="641087317769093025">এক্সটেনশ্বন আনজিপ কৰিব পৰা নগ'ল</translation> -<translation id="6413453408918378296">আইকনটো পৰ্যাপ্ত পৰিমাণে দৃশ্যমান হোৱা নাই ‘<ph name="ICON" />’।</translation> <translation id="6542618148162044354">"<ph name="APP_NAME" />"এ আপোনাৰ ডিভাইচসমূহৰ মাজৰ এটা বা তাতকৈ বেছি ডিভাইচত এক্সেছৰ বাবে অনুৰোধ কৰি আছে:</translation> <translation id="657064425229075395">নেপথ্যৰ স্ক্ৰিপ্ট ‘<ph name="BACKGROUND_SCRIPT" />’ ল‘ড কৰিব পৰা নগ’ল।</translation> <translation id="6580950983454333167"><ph name="VENDOR_NAME" />ৰ <ph name="PRODUCT_NAME" /> (ক্ৰমিক নম্বৰ <ph name="SERIAL_NUMBER" />)</translation>
diff --git a/extensions/strings/extensions_strings_az.xtb b/extensions/strings/extensions_strings_az.xtb index c9ebf9de..62216d8 100644 --- a/extensions/strings/extensions_strings_az.xtb +++ b/extensions/strings/extensions_strings_az.xtb
@@ -7,7 +7,6 @@ <translation id="1420684932347524586">Təsadüfi RSA şəxsi kilidini yaratmaq alınmadı.</translation> <translation id="1445572445564823378">Bu artırma yavaşlaşır <ph name="PRODUCT_NAME" />. <ph name="PRODUCT_NAME" /> məhsulunun performansını bərpa etmək üçün onu deaktiv etməlisiniz.</translation> <translation id="1468038450257740950">WebGL dəstəklənmir.</translation> -<translation id="149347756975725155">'<ph name="ICON" />' artırma ikonası yüklənə bilmir.</translation> <translation id="1803557475693955505">'<ph name="BACKGROUND_PAGE" />' arxa fon səhifəsini yükləmək alınmadı.</translation> <translation id="2159915644201199628">Təsviri deşifrələmək olmadı: '<ph name="IMAGE_NAME" />'</translation> <translation id="2350172092385603347">Lokalizasiya işlənir, lakin defolt default_locale manifestdə göstərilməyib.</translation> @@ -44,7 +43,6 @@ <translation id="6322279351188361895">Gizli açarı oxumaq uğursuz oldu.</translation> <translation id="6391538222494443604">Giriş direktoriyası olmalıdır.</translation> <translation id="641087317769093025">Artırmanı arxivdən çıxarmaq alınmadı</translation> -<translation id="6413453408918378296">"<ph name="ICON" />" ikonası yaxşı görünmür.</translation> <translation id="6542618148162044354">"<ph name="APP_NAME" />" bir və ya daha çox cihaza giriş tələb edir:</translation> <translation id="657064425229075395">'<ph name="BACKGROUND_SCRIPT" />' arxa fon skriptini yükləmək olmadı.</translation> <translation id="6580950983454333167"><ph name="VENDOR_NAME" /> vendorundan <ph name="PRODUCT_NAME" /> məhsulu (Seriya nömrəsi <ph name="SERIAL_NUMBER" />)</translation>
diff --git a/extensions/strings/extensions_strings_be.xtb b/extensions/strings/extensions_strings_be.xtb index 02105890..50dede4 100644 --- a/extensions/strings/extensions_strings_be.xtb +++ b/extensions/strings/extensions_strings_be.xtb
@@ -7,7 +7,6 @@ <translation id="1420684932347524586">Памылка! Не ўдалося згенерыраваць выпадковы закрыты ключ RSA.</translation> <translation id="1445572445564823378">Гэта пашырэнне запавольвае працу <ph name="PRODUCT_NAME" />. Выключыце пашырэнне, каб аднавіць прадукцыйнасць <ph name="PRODUCT_NAME" />.</translation> <translation id="1468038450257740950">WebGL не падтрымліваецца.</translation> -<translation id="149347756975725155">Не ўдалося загрузіць значок пашырэння "<ph name="ICON" />".</translation> <translation id="1803557475693955505">Не ўдалося загрузіць фонавую старонку "<ph name="BACKGROUND_PAGE" />".</translation> <translation id="2159915644201199628">Не ўдалося дэкадаваць відарыс: "<ph name="IMAGE_NAME" />"</translation> <translation id="2350172092385603347">Лакалізацыя выкарыстоўваецца, але ў маніфесце не вызначаны стандартныя рэгіянальныя налады (default_locale).</translation> @@ -44,7 +43,6 @@ <translation id="6322279351188361895">Не ўдалося прачытаць закрыты ключ.</translation> <translation id="6391538222494443604">Павінен існаваць уваходны каталог.</translation> <translation id="641087317769093025">Не ўдалося распакаваць пашырэнне</translation> -<translation id="6413453408918378296">Значок недастаткова бачны: "<ph name="ICON" />".</translation> <translation id="6542618148162044354">"<ph name="APP_NAME" />" запытвае доступ да адной або некалькіх прылад:</translation> <translation id="657064425229075395">Не ўдалося загрузіць фонавы сцэнарый "<ph name="BACKGROUND_SCRIPT" />".</translation> <translation id="6580950983454333167"><ph name="PRODUCT_NAME" /> ад <ph name="VENDOR_NAME" /> (серыйны нумар <ph name="SERIAL_NUMBER" />)</translation>
diff --git a/extensions/strings/extensions_strings_bg.xtb b/extensions/strings/extensions_strings_bg.xtb index 78eb5591..82fa3459 100644 --- a/extensions/strings/extensions_strings_bg.xtb +++ b/extensions/strings/extensions_strings_bg.xtb
@@ -7,7 +7,6 @@ <translation id="1420684932347524586">Олеле! Генерирането на произволен RSA личен ключ не бе успешно.</translation> <translation id="1445572445564823378">Това разширение забавя работата на <ph name="PRODUCT_NAME" />. Трябва да деактивирате <ph name="PRODUCT_NAME" />, за да възстановите ефективността на браузъра.</translation> <translation id="1468038450257740950">WebGL не се поддържа.</translation> -<translation id="149347756975725155">Не можа да се зареди иконата на разширението „<ph name="ICON" />“.</translation> <translation id="1803557475693955505">Не можа да се зареди фоновата страница „<ph name="BACKGROUND_PAGE" />“.</translation> <translation id="2159915644201199628">Изображението не можа да се декодира: „<ph name="IMAGE_NAME" />“</translation> <translation id="2350172092385603347">Беше използвана локализация, но променливата „default_locale“ не беше посочена в манифеста.</translation> @@ -44,7 +43,6 @@ <translation id="6322279351188361895">Прочитът на личния ключ не бе успешен.</translation> <translation id="6391538222494443604">Трябва да съществува директория за въвеждане.</translation> <translation id="641087317769093025">Разширението не можа да се разархивира</translation> -<translation id="6413453408918378296">Иконата <ph name="ICON" /> не се вижда достатъчно добре.</translation> <translation id="6542618148162044354"><ph name="APP_NAME" /> иска достъп до едно или повече от устройствата ви:</translation> <translation id="657064425229075395">Не можа да се зареди фоновият скрипт „<ph name="BACKGROUND_SCRIPT" />“.</translation> <translation id="6580950983454333167"><ph name="PRODUCT_NAME" /> от <ph name="VENDOR_NAME" /> (сериен номер: <ph name="SERIAL_NUMBER" />)</translation>
diff --git a/extensions/strings/extensions_strings_bn.xtb b/extensions/strings/extensions_strings_bn.xtb index 6f116f5..59c500a 100644 --- a/extensions/strings/extensions_strings_bn.xtb +++ b/extensions/strings/extensions_strings_bn.xtb
@@ -7,7 +7,6 @@ <translation id="1420684932347524586">এ বাবা! র্যান্ডম RSA ব্যক্তিগত কী জেনারেট করতে ব্যর্থ৷</translation> <translation id="1445572445564823378">এই এক্সটেনশনটির গতি কমে যাচ্ছে <ph name="PRODUCT_NAME" />৷ আপনাকে <ph name="PRODUCT_NAME" />-এর সম্পাদনা পুনঃস্থাপন করার জন্য এটিকে বন্ধ করতে হবে৷</translation> <translation id="1468038450257740950">WebGL সমর্থিত নয়৷</translation> -<translation id="149347756975725155">এক্সটেনশন আইকন '<ph name="ICON" />' লোড করা যায়নি৷</translation> <translation id="1803557475693955505">পৃষ্ঠভূমি পৃষ্ঠা '<ph name="BACKGROUND_PAGE" />' লোড করা যায়নি৷</translation> <translation id="2159915644201199628">ছবি ডিকোড করা যায়নি: '<ph name="IMAGE_NAME" />'</translation> <translation id="2350172092385603347">স্থানীয়করণ ব্যবহৃত হয়েছে, কিন্তু default_locale তালিকাতে উল্লেখ ছিল না৷</translation> @@ -44,7 +43,6 @@ <translation id="6322279351188361895">ব্যক্তিগত কী-টি পড়তে ব্যর্থ৷</translation> <translation id="6391538222494443604">ইনপুট নির্দেশিকা বন্ধ করা আবশ্যক৷</translation> <translation id="641087317769093025">এক্সটেনশন আনজিপ করা যায়নি</translation> -<translation id="6413453408918378296">এই আইকনটি যথেষ্ট পরিষ্কারভাবে দেখা যাচ্ছে না '<ph name="ICON" />'।</translation> <translation id="6542618148162044354">"<ph name="APP_NAME" />" আপনার এক বা একাধিক ডিভাইসে অ্যাক্সেসের জন্য অনুরোধ করছে:</translation> <translation id="657064425229075395">পশ্চাদপট লিপি '<ph name="BACKGROUND_SCRIPT" />' লোড করা যায়নি৷</translation> <translation id="6580950983454333167"><ph name="VENDOR_NAME" /> এর পক্ষ থেকে <ph name="PRODUCT_NAME" /> (ক্রমিক সংখ্যা <ph name="SERIAL_NUMBER" />)</translation>
diff --git a/extensions/strings/extensions_strings_bs.xtb b/extensions/strings/extensions_strings_bs.xtb index 0c56fc7..a18f585 100644 --- a/extensions/strings/extensions_strings_bs.xtb +++ b/extensions/strings/extensions_strings_bs.xtb
@@ -7,7 +7,6 @@ <translation id="1420684932347524586">Ups! Generiranje nasumičnog RSA privatnog ključa nije uspjelo.</translation> <translation id="1445572445564823378">Ova ekstenzija usporava aplikaciju <ph name="PRODUCT_NAME" />. Trebate je onemogućiti kako biste vratili performanse aplikacije <ph name="PRODUCT_NAME" />.</translation> <translation id="1468038450257740950">Sistem ne podržava WebGL</translation> -<translation id="149347756975725155">Učitavanje ikone ekstenzije "<ph name="ICON" />" nije uspjelo.</translation> <translation id="1803557475693955505">Nije moguće učitati stranicu s pozadinama "<ph name="BACKGROUND_PAGE" />".</translation> <translation id="2159915644201199628">Dekodiranje slike nije uspjelo: "<ph name="IMAGE_NAME" />"</translation> <translation id="2350172092385603347">Korištena je lokalizacija, ali u deklaraciji nije naveden default_locale.</translation> @@ -44,7 +43,6 @@ <translation id="6322279351188361895">Čitanje privatnog ključa nije uspjelo.</translation> <translation id="6391538222494443604">Mora postojati ulazni direktorij.</translation> <translation id="641087317769093025">Otpakiranje ekstenzije nije uspjelo</translation> -<translation id="6413453408918378296">Ikona nije dovoljno vidljiva "<ph name="ICON" />".</translation> <translation id="6542618148162044354">"<ph name="APP_NAME" />" traži pristup za jedan ili više vaših uređaja:</translation> <translation id="657064425229075395">Nije moguće učitati pozadinsku skriptu "<ph name="BACKGROUND_SCRIPT" />".</translation> <translation id="6580950983454333167"><ph name="PRODUCT_NAME" /> dobavljača <ph name="VENDOR_NAME" /> (serijski broj <ph name="SERIAL_NUMBER" />)</translation>
diff --git a/extensions/strings/extensions_strings_ca.xtb b/extensions/strings/extensions_strings_ca.xtb index ad5b4c8..e3930f89 100644 --- a/extensions/strings/extensions_strings_ca.xtb +++ b/extensions/strings/extensions_strings_ca.xtb
@@ -7,7 +7,6 @@ <translation id="1420684932347524586">Error. No s'ha pogut generar la clau privada RSA aleatòria.</translation> <translation id="1445572445564823378">Aquesta extensió està alentint <ph name="PRODUCT_NAME" />. L'heu de desactivar per restaurar el rendiment de: <ph name="PRODUCT_NAME" />.</translation> <translation id="1468038450257740950">WebGL no és compatible.</translation> -<translation id="149347756975725155">No s'ha pogut carregar la icona d'extensió "<ph name="ICON" />".</translation> <translation id="1803557475693955505">No s'ha pogut carregar la pàgina en segon pla "<ph name="BACKGROUND_PAGE" />".</translation> <translation id="2159915644201199628">No s'ha pogut descodificar la imatge: "<ph name="IMAGE_NAME" />"</translation> <translation id="2350172092385603347">S'ha utilitzat localització, però no s'ha especificat default_locale al manifest.</translation> @@ -44,7 +43,6 @@ <translation id="6322279351188361895">No s'ha pogut llegir la clau privada.</translation> <translation id="6391538222494443604">El directori d'entrada ha d'existir.</translation> <translation id="641087317769093025">No s'ha pogut descomprimir l'extensió</translation> -<translation id="6413453408918378296">La icona <ph name="ICON" /> no és prou visible.</translation> <translation id="6542618148162044354"><ph name="APP_NAME" /> sol·licita accés a un o més dels teus dispositius:</translation> <translation id="657064425229075395">No s'ha pogut carregar l'script en segon pla "<ph name="BACKGROUND_SCRIPT" />".</translation> <translation id="6580950983454333167"><ph name="PRODUCT_NAME" /> de <ph name="VENDOR_NAME" /> (número de sèrie <ph name="SERIAL_NUMBER" />)</translation>
diff --git a/extensions/strings/extensions_strings_cs.xtb b/extensions/strings/extensions_strings_cs.xtb index 9db1f4f..38deb3ec 100644 --- a/extensions/strings/extensions_strings_cs.xtb +++ b/extensions/strings/extensions_strings_cs.xtb
@@ -7,7 +7,6 @@ <translation id="1420684932347524586">Nezdařilo se vytvořit náhodný soukromý klíč RSA.</translation> <translation id="1445572445564823378">Toto rozšíření zpomaluje prohlížeč <ph name="PRODUCT_NAME" />. Chcete-li výkon prohlížeče <ph name="PRODUCT_NAME" /> obnovit, měli byste rozšíření zakázat.</translation> <translation id="1468038450257740950">Rozhraní WebGL není podporováno.</translation> -<translation id="149347756975725155">Nelze načíst ikonu rozšíření <ph name="ICON" />.</translation> <translation id="1803557475693955505">Nelze načíst stránku pozadí „<ph name="BACKGROUND_PAGE" />“.</translation> <translation id="2159915644201199628">Nepodařilo se dekódovat obrázek: <ph name="IMAGE_NAME" /></translation> <translation id="2350172092385603347">Byla použita lokalizace, ale v manifestu nebyl zadán parametr default_locale.</translation> @@ -44,7 +43,6 @@ <translation id="6322279351188361895">Čtení soukromého klíče se nezdařilo.</translation> <translation id="6391538222494443604">Vstupní adresář musí existovat.</translation> <translation id="641087317769093025">Rozšíření se nepodařilo rozbalit</translation> -<translation id="6413453408918378296">Ikona není dostatečně viditelná: <ph name="ICON" />.</translation> <translation id="6542618148162044354">Aplikace <ph name="APP_NAME" /> žádá o přístup k jednomu nebo více z vašich zařízení:</translation> <translation id="657064425229075395">Nelze načíst skript pozadí <ph name="BACKGROUND_SCRIPT" />.</translation> <translation id="6580950983454333167"><ph name="PRODUCT_NAME" /> od dodavatele <ph name="VENDOR_NAME" /> (sériové číslo <ph name="SERIAL_NUMBER" />)</translation>
diff --git a/extensions/strings/extensions_strings_da.xtb b/extensions/strings/extensions_strings_da.xtb index 33e768e..b5349a3d 100644 --- a/extensions/strings/extensions_strings_da.xtb +++ b/extensions/strings/extensions_strings_da.xtb
@@ -7,7 +7,6 @@ <translation id="1420684932347524586">Gisp! Den tilfældige personlige RSA-nøgle kunne ikke genereres.</translation> <translation id="1445572445564823378">Denne udvidelse gør <ph name="PRODUCT_NAME" /> langsommere. Du bør deaktivere den for at gøre <ph name="PRODUCT_NAME" /> hurtig igen.</translation> <translation id="1468038450257740950">WebGL understøttes ikke.</translation> -<translation id="149347756975725155">Udvidelsesikonet '<ph name="ICON" />' kunne ikke indlæses.</translation> <translation id="1803557475693955505">Baggrundssiden '<ph name="BACKGROUND_PAGE" />' kunne ikke indlæses.</translation> <translation id="2159915644201199628">Billedet kunne afkodes: '<ph name="IMAGE_NAME" />'</translation> <translation id="2350172092385603347">Lokalisering anvendt, men default_locale blev ikke angivet i manifestet.</translation> @@ -44,7 +43,6 @@ <translation id="6322279351188361895">Den personlige nøgle kunne ikke læses.</translation> <translation id="6391538222494443604">Indtastningsindeks skal eksistere.</translation> <translation id="641087317769093025">Udvidelsen kunne ikke udpakkes</translation> -<translation id="6413453408918378296">Ikonet er ikke tilstrækkeligt synligt "<ph name="ICON" />".</translation> <translation id="6542618148162044354">"<ph name="APP_NAME" />" anmoder om adgang til en eller flere af dine enheder:</translation> <translation id="657064425229075395">Baggrundsscriptet "<ph name="BACKGROUND_SCRIPT" />" kunne ikke indlæses.</translation> <translation id="6580950983454333167"><ph name="PRODUCT_NAME" /> fra <ph name="VENDOR_NAME" /> (serienummer <ph name="SERIAL_NUMBER" />)</translation>
diff --git a/extensions/strings/extensions_strings_de.xtb b/extensions/strings/extensions_strings_de.xtb index f143f7f5..7f3b15a 100644 --- a/extensions/strings/extensions_strings_de.xtb +++ b/extensions/strings/extensions_strings_de.xtb
@@ -7,7 +7,6 @@ <translation id="1420684932347524586">Der per Zufallsauswahl generierte private RSA-Schlüssel konnte nicht erstellt werden.</translation> <translation id="1445572445564823378">Diese Erweiterung verlangsamt die Ausführung von <ph name="PRODUCT_NAME" />. Deaktivieren Sie sie, um die Leistung von <ph name="PRODUCT_NAME" /> nicht zu beeinträchtigen.</translation> <translation id="1468038450257740950">WebGL wird nicht unterstützt.</translation> -<translation id="149347756975725155">Erweiterungssymbol "<ph name="ICON" />" kann nicht geladen werden.</translation> <translation id="1803557475693955505">Hintergrundseite "<ph name="BACKGROUND_PAGE" />" konnte nicht geladen werden.</translation> <translation id="2159915644201199628">Bild konnte nicht decodiert werden: "<ph name="IMAGE_NAME" />"</translation> <translation id="2350172092385603347">Lokalisierung wurde verwendet, in der Manifest-Datei war jedoch kein Wert für "default_locale" angegeben.</translation> @@ -44,7 +43,6 @@ <translation id="6322279351188361895">Privater Schlüssel konnte nicht gelesen werden.</translation> <translation id="6391538222494443604">Eingabeverzeichnis muss vorhanden sein.</translation> <translation id="641087317769093025">Erweiterung kann nicht entpackt werden.</translation> -<translation id="6413453408918378296">Das Symbol <ph name="ICON" /> ist nicht ausreichend sichtbar.</translation> <translation id="6542618148162044354">"<ph name="APP_NAME" />" fordert Zugriff auf eines oder mehrere Ihrer Geräte an:</translation> <translation id="657064425229075395">Hintergrundskript "<ph name="BACKGROUND_SCRIPT" />" konnte nicht geladen werden.</translation> <translation id="6580950983454333167"><ph name="PRODUCT_NAME" /> von <ph name="VENDOR_NAME" /> (Seriennummer <ph name="SERIAL_NUMBER" />)</translation>
diff --git a/extensions/strings/extensions_strings_el.xtb b/extensions/strings/extensions_strings_el.xtb index 46a980e..03043c3 100644 --- a/extensions/strings/extensions_strings_el.xtb +++ b/extensions/strings/extensions_strings_el.xtb
@@ -7,7 +7,6 @@ <translation id="1420684932347524586">Αποτυχία δημιουργίας τυχαίου ιδιωτικού κλειδιού RSA.</translation> <translation id="1445572445564823378">Αυτή η επέκταση επιβραδύνει το <ph name="PRODUCT_NAME" />. Πρέπει να την απενεργοποιήσετε για να επαναφέρετε την απόδοση του <ph name="PRODUCT_NAME" />.</translation> <translation id="1468038450257740950">Το WebGL δεν υποστηρίζεται.</translation> -<translation id="149347756975725155">Δεν ήταν δυνατή η φόρτωση του εικονιδίου επέκτασης "<ph name="ICON" />".</translation> <translation id="1803557475693955505">Δεν ήταν δυνατή η φόρτωση της σελίδας φόντου "<ph name="BACKGROUND_PAGE" />".</translation> <translation id="2159915644201199628">Δεν ήταν δυνατή η αποκωδικοποίηση της εικόνας: "<ph name="IMAGE_NAME" />"</translation> <translation id="2350172092385603347">Χρησιμοποιήθηκε τοπική προσαρμογή, όμως δεν καθορίστηκε η τιμή "default_locale" στη δήλωση.</translation> @@ -44,7 +43,6 @@ <translation id="6322279351188361895">Αποτυχία ανάγνωσης ιδιωτικού κλειδιού.</translation> <translation id="6391538222494443604">Ο κατάλογος εισόδου πρέπει να υπάρχει.</translation> <translation id="641087317769093025">Δεν ήταν δυνατή η αποσυμπίεση της επέκτασης</translation> -<translation id="6413453408918378296">Το εικονίδιο δεν είναι επαρκώς ορατό "<ph name="ICON" />".</translation> <translation id="6542618148162044354">Η εφαρμογή "<ph name="APP_NAME" />" ζητά πρόσβαση σε μία ή περισσότερες συσκευές σας:</translation> <translation id="657064425229075395">Δεν ήταν δυνατή η φόρτωση του σεναρίου παρασκηνίου '<ph name="BACKGROUND_SCRIPT" />'.</translation> <translation id="6580950983454333167"><ph name="PRODUCT_NAME" /> από <ph name="VENDOR_NAME" /> (σειριακός αριθμός <ph name="SERIAL_NUMBER" />)</translation>
diff --git a/extensions/strings/extensions_strings_en-GB.xtb b/extensions/strings/extensions_strings_en-GB.xtb index b6395a9..70f80a2 100644 --- a/extensions/strings/extensions_strings_en-GB.xtb +++ b/extensions/strings/extensions_strings_en-GB.xtb
@@ -7,7 +7,6 @@ <translation id="1420684932347524586">Yikes! Failed to generate random RSA private key.</translation> <translation id="1445572445564823378">This extension is slowing down <ph name="PRODUCT_NAME" />. You should disable it to restore <ph name="PRODUCT_NAME" />'s performance.</translation> <translation id="1468038450257740950">WebGL is not supported.</translation> -<translation id="149347756975725155">Could not load extension icon '<ph name="ICON" />'.</translation> <translation id="1803557475693955505">Could not load background page '<ph name="BACKGROUND_PAGE" />'.</translation> <translation id="2159915644201199628">Could not decode image: '<ph name="IMAGE_NAME" />'</translation> <translation id="2350172092385603347">Localisation used, but default_locale wasn't specified in the manifest.</translation> @@ -44,7 +43,6 @@ <translation id="6322279351188361895">Failed to read private key.</translation> <translation id="6391538222494443604">Input directory must exist.</translation> <translation id="641087317769093025">Could not unzip extension</translation> -<translation id="6413453408918378296">The icon is not sufficiently visible '<ph name="ICON" />'.</translation> <translation id="6542618148162044354">"<ph name="APP_NAME" />" is requesting access to one or more of your devices:</translation> <translation id="657064425229075395">Could not load background script '<ph name="BACKGROUND_SCRIPT" />'.</translation> <translation id="6580950983454333167"><ph name="PRODUCT_NAME" /> from <ph name="VENDOR_NAME" /> (serial number <ph name="SERIAL_NUMBER" />)</translation>
diff --git a/extensions/strings/extensions_strings_es-419.xtb b/extensions/strings/extensions_strings_es-419.xtb index 7d76b828..ed43d9c 100644 --- a/extensions/strings/extensions_strings_es-419.xtb +++ b/extensions/strings/extensions_strings_es-419.xtb
@@ -7,7 +7,6 @@ <translation id="1420684932347524586">¡Ay! Error al generar clave privada RSA aleatoria.</translation> <translation id="1445572445564823378">Esta extensión está ralentizando <ph name="PRODUCT_NAME" />. Deberías inhabilitarla para restaurar el rendimiento de <ph name="PRODUCT_NAME" />.</translation> <translation id="1468038450257740950">WebGL no es compatible.</translation> -<translation id="149347756975725155">No se pudo cargar el ícono de extensión '<ph name="ICON" />'.</translation> <translation id="1803557475693955505">No se pudo cargar la página de fondo '<ph name="BACKGROUND_PAGE" />'.</translation> <translation id="2159915644201199628">No se pudo decodificar la imagen "<ph name="IMAGE_NAME" />".</translation> <translation id="2350172092385603347">Se utiliza localización, pero default_locale no se especificó en el manifiesto.</translation> @@ -44,7 +43,6 @@ <translation id="6322279351188361895">Error al leer la clave privada.</translation> <translation id="6391538222494443604">Debe existir el directorio de entrada.</translation> <translation id="641087317769093025">No se pudo descomprimir la extensión.</translation> -<translation id="6413453408918378296">El ícono no es lo suficientemente visible "<ph name="ICON" />".</translation> <translation id="6542618148162044354">"<ph name="APP_NAME" />" solicita acceso a uno o más de tus dispositivos:</translation> <translation id="657064425229075395">No se pudo cargar la secuencia de comandos en segundo plano "<ph name="BACKGROUND_SCRIPT" />".</translation> <translation id="6580950983454333167"><ph name="PRODUCT_NAME" /> de <ph name="VENDOR_NAME" /> (número de serie: <ph name="SERIAL_NUMBER" />)</translation>
diff --git a/extensions/strings/extensions_strings_es.xtb b/extensions/strings/extensions_strings_es.xtb index dcec29d..3f935c89 100644 --- a/extensions/strings/extensions_strings_es.xtb +++ b/extensions/strings/extensions_strings_es.xtb
@@ -7,7 +7,6 @@ <translation id="1420684932347524586">¡Vaya! Se ha producido un error al generar una clave privada RSA aleatoria.</translation> <translation id="1445572445564823378">Esta extensión está ralentizando <ph name="PRODUCT_NAME" />. Deberías inhabilitarla para restaurar el rendimiento de <ph name="PRODUCT_NAME" />.</translation> <translation id="1468038450257740950">No se admite WebGL.</translation> -<translation id="149347756975725155">No se ha podido cargar el icono de la extensión "<ph name="ICON" />".</translation> <translation id="1803557475693955505">No se ha podido cargar la página de fondo "<ph name="BACKGROUND_PAGE" />".</translation> <translation id="2159915644201199628">No se ha podido decodificar la imagen <ph name="IMAGE_NAME" />.</translation> <translation id="2350172092385603347">Se ha utilizado la localización, pero no se ha especificado default_locale en el archivo de manifiesto.</translation> @@ -44,7 +43,6 @@ <translation id="6322279351188361895">Se ha producido un error al leer la clave privada.</translation> <translation id="6391538222494443604">Debe existir el directorio de entrada.</translation> <translation id="641087317769093025">No se ha podido descomprimir la extensión.</translation> -<translation id="6413453408918378296">El icono "<ph name="ICON" />" no se ve lo suficiente.</translation> <translation id="6542618148162044354"><ph name="APP_NAME" /> está solicitando acceso a uno o varios de tus dispositivos:</translation> <translation id="657064425229075395">No se ha podido cargar la secuencia de comandos en segundo plano "<ph name="BACKGROUND_SCRIPT" />".</translation> <translation id="6580950983454333167"><ph name="PRODUCT_NAME" /> de <ph name="VENDOR_NAME" /> (número de serie <ph name="SERIAL_NUMBER" />)</translation>
diff --git a/extensions/strings/extensions_strings_et.xtb b/extensions/strings/extensions_strings_et.xtb index 75667c18..cbdd295c9 100644 --- a/extensions/strings/extensions_strings_et.xtb +++ b/extensions/strings/extensions_strings_et.xtb
@@ -7,7 +7,6 @@ <translation id="1420684932347524586">Oih! RSA juhusliku privaatvõtme genereerimine ebaõnnestus.</translation> <translation id="1445572445564823378">Laiendus aeglustab rakendust <ph name="PRODUCT_NAME" />. Peaksite selle keelama, et taastada rakenduse <ph name="PRODUCT_NAME" /> toimivus.</translation> <translation id="1468038450257740950">WebGL-i ei toetata.</translation> -<translation id="149347756975725155">Laienduse ikooni <ph name="ICON" /> ei õnnestunud laadida.</translation> <translation id="1803557475693955505">Tagaplaanilehte <ph name="BACKGROUND_PAGE" /> ei õnnestunud laadida.</translation> <translation id="2159915644201199628">Ei saanud pilti dekodeerida: „<ph name="IMAGE_NAME" />”</translation> <translation id="2350172092385603347">Lokaliseerimist kasutatakse, kuid parameetrit default_locale ei olnud manifestis määratud.</translation> @@ -44,7 +43,6 @@ <translation id="6322279351188361895">Privaatvõtme lugemine ei õnnestunud.</translation> <translation id="6391538222494443604">Olemas peab olema sisendkataloog.</translation> <translation id="641087317769093025">Ei saanud laiendust lahti pakkida</translation> -<translation id="6413453408918378296">Ikoon „<ph name="ICON" />” ei ole piisavalt nähtav.</translation> <translation id="6542618148162044354">Rakendus „<ph name="APP_NAME" />” taotleb juurdepääsu ühele või mitmele teie seadmele:</translation> <translation id="657064425229075395">Taustaskripti „<ph name="BACKGROUND_SCRIPT" />” ei õnnestunud laadida.</translation> <translation id="6580950983454333167"><ph name="PRODUCT_NAME" /> tootjalt <ph name="VENDOR_NAME" /> (seerianumber <ph name="SERIAL_NUMBER" />)</translation>
diff --git a/extensions/strings/extensions_strings_eu.xtb b/extensions/strings/extensions_strings_eu.xtb index 73481e9..fa32170 100644 --- a/extensions/strings/extensions_strings_eu.xtb +++ b/extensions/strings/extensions_strings_eu.xtb
@@ -7,7 +7,6 @@ <translation id="1420684932347524586">Ezin izan da sortu ausazko RSA gako pribatua.</translation> <translation id="1445572445564823378">Luzapen hau <ph name="PRODUCT_NAME" /> moteltzen ari da. Hori desgaitzea gomendatzen dizugu <ph name="PRODUCT_NAME" />-ren errendimendua leheneratzeko..</translation> <translation id="1468038450257740950">WebGL ez da bateragarria.</translation> -<translation id="149347756975725155">Ezin izan da kargatu "<ph name="ICON" />" luzapen-ikonoa.</translation> <translation id="1803557475693955505">Ezin izan da atzeko planoko orria ("<ph name="BACKGROUND_PAGE" />") kargatu.</translation> <translation id="2159915644201199628">Ezin izan da deskodetu irudia: "<ph name="IMAGE_NAME" />"</translation> <translation id="2350172092385603347">Kokapena erabili da baina ez da "default_locale" elementua zehaztua manifestuan.</translation> @@ -44,7 +43,6 @@ <translation id="6322279351188361895">Ezin izan da irakurri gako pribatua.</translation> <translation id="6391538222494443604">Sarrerako direktorioa falta da.</translation> <translation id="641087317769093025">Ezin izan da luzapena deskonprimatu</translation> -<translation id="6413453408918378296">"<ph name="ICON" />" ikonoa ez da behar bezain ondo ikusten.</translation> <translation id="6542618148162044354">Gailu baterako edo gehiagotarako sarbidea eskatzen ari da "<ph name="APP_NAME" />" aplikazioa:</translation> <translation id="657064425229075395">Ezin izan da kargatu atzeko planoko "<ph name="BACKGROUND_SCRIPT" />" scripta.</translation> <translation id="6580950983454333167"><ph name="VENDOR_NAME" /> saltzailearen <ph name="PRODUCT_NAME" /> produktua (<ph name="SERIAL_NUMBER" /> serie-zenbakia)</translation>
diff --git a/extensions/strings/extensions_strings_fa.xtb b/extensions/strings/extensions_strings_fa.xtb index 82604da..c4351d7 100644 --- a/extensions/strings/extensions_strings_fa.xtb +++ b/extensions/strings/extensions_strings_fa.xtb
@@ -7,7 +7,6 @@ <translation id="1420684932347524586">اوه! ایجاد کلید خصوصی RSA تصادفی ناموفق بود.</translation> <translation id="1445572445564823378">این برنامهٔ افزودنی سرعت <ph name="PRODUCT_NAME" /> را پایین میآورد. شما باید برای بازیابی عملکرد <ph name="PRODUCT_NAME" /> این برنامه را غیرفعال کنید.</translation> <translation id="1468038450257740950">WebGL پشتیبانی نمیشود.</translation> -<translation id="149347756975725155">بارکردن نماد پسوند "<ph name="ICON" />" ممکن نیست.</translation> <translation id="1803557475693955505">بارگیری صفحه پسزمینه "<ph name="BACKGROUND_PAGE" />" ممکن نیست.</translation> <translation id="2159915644201199628">رمزگشایی تصویر امکانپذیر نیست: «<ph name="IMAGE_NAME" />»</translation> <translation id="2350172092385603347">بومی سازی استفاده شده است، اما default_locale در اظهارنامه مشخص نشده است.</translation> @@ -44,7 +43,6 @@ <translation id="6322279351188361895">خواندن کلید خصوصی ناموفق بود.</translation> <translation id="6391538222494443604">دایرکتوری ورودی باید بسته شود.</translation> <translation id="641087317769093025">برنامه افزودنی از حالت زیپ خارج نشد</translation> -<translation id="6413453408918378296">نماد «<ph name="ICON" />» بهاندازه کافی نمایان نیست.</translation> <translation id="6542618148162044354">«<ph name="APP_NAME" />» درخواست دسترسی به یک یا چند دستگاه شما را دارد:</translation> <translation id="657064425229075395">بارگیری اسکریپت پسزمینه "<ph name="BACKGROUND_SCRIPT" />" ممکن نیست.</translation> <translation id="6580950983454333167"><ph name="PRODUCT_NAME" /> از <ph name="VENDOR_NAME" /> (شماره سریال <ph name="SERIAL_NUMBER" />)</translation>
diff --git a/extensions/strings/extensions_strings_fi.xtb b/extensions/strings/extensions_strings_fi.xtb index 65cf27bb..ddfc9a15 100644 --- a/extensions/strings/extensions_strings_fi.xtb +++ b/extensions/strings/extensions_strings_fi.xtb
@@ -7,7 +7,6 @@ <translation id="1420684932347524586">Hups! Satunnaisen yksityisen RSA-avaimen luominen epäonnistui.</translation> <translation id="1445572445564823378">Tämä laajennus hidastaa tuotetta <ph name="PRODUCT_NAME" />. Poista laajennus käytöstä tehostaaksesi tuotteen <ph name="PRODUCT_NAME" /> toimintaa.</translation> <translation id="1468038450257740950">WebGL:ää ei tueta.</translation> -<translation id="149347756975725155">Laajennuskuvakkeen <ph name="ICON" /> lataaminen ei onnistunut.</translation> <translation id="1803557475693955505">Taustasivun <ph name="BACKGROUND_PAGE" /> lataaminen ei onnistunut.</translation> <translation id="2159915644201199628">Kuvan koodin purkaminen epäonnistui: <ph name="IMAGE_NAME" /></translation> <translation id="2350172092385603347">Lokalisaatiota käytetään, mutta default_locale ei ole määritetty luettelossa.</translation> @@ -44,7 +43,6 @@ <translation id="6322279351188361895">Yksityisen avaimen lukeminen epäonnistui.</translation> <translation id="6391538222494443604">Syöttöhakemistoa ei ole olemassa.</translation> <translation id="641087317769093025">Laajennuksen purkaminen epäonnistui</translation> -<translation id="6413453408918378296">Kuvake <ph name="ICON" /> ei ole tarpeeksi näkyvä.</translation> <translation id="6542618148162044354"><ph name="APP_NAME" /> pyytää oikeutta käyttää yhtä tai useampaa laitettasi:</translation> <translation id="657064425229075395">Taustakoodin <ph name="BACKGROUND_SCRIPT" /> lataaminen epäonnistui.</translation> <translation id="6580950983454333167"><ph name="PRODUCT_NAME" /> myyjältä <ph name="VENDOR_NAME" /> (sarjanumero <ph name="SERIAL_NUMBER" />)</translation>
diff --git a/extensions/strings/extensions_strings_fil.xtb b/extensions/strings/extensions_strings_fil.xtb index f3a6d55..cd90436 100644 --- a/extensions/strings/extensions_strings_fil.xtb +++ b/extensions/strings/extensions_strings_fil.xtb
@@ -7,7 +7,6 @@ <translation id="1420684932347524586">Hala! Nabigong mabuo ang random RSA pribadong key.</translation> <translation id="1445572445564823378">Pinapabagal ng extension na ito ang <ph name="PRODUCT_NAME" />. Dapat mo itong huwag paganahin upang ipanumbalik ang pagganap ng <ph name="PRODUCT_NAME" />.</translation> <translation id="1468038450257740950">Hindi sinusuportahan ang WebGL.</translation> -<translation id="149347756975725155">Maaaring hindi mai-load ang icon ng extension '<ph name="ICON" />'.</translation> <translation id="1803557475693955505">Maaaring hindi mai-load ang pahina ng background '<ph name="BACKGROUND_PAGE" />'.</translation> <translation id="2159915644201199628">Hindi ma-decode ang larawan: '<ph name="IMAGE_NAME" />'</translation> <translation id="2350172092385603347">Ginamit ang localization , subalit hindi natukoy ang default_locale sa manipesto.</translation> @@ -44,7 +43,6 @@ <translation id="6322279351188361895">Nabigong basahin ang pribadong key.</translation> <translation id="6391538222494443604">Dapat na umiiral ang direktoryo ng input.</translation> <translation id="641087317769093025">Hindi ma-unzip ang extension</translation> -<translation id="6413453408918378296">Hindi masyadong malinaw ang icon '<ph name="ICON" />.'</translation> <translation id="6542618148162044354">Humihiling ang "<ph name="APP_NAME" />" ng access sa isa o higit pa sa iyong mga device:</translation> <translation id="657064425229075395">Hindi ma-load ang script ng background na '<ph name="BACKGROUND_SCRIPT" />'.</translation> <translation id="6580950983454333167"><ph name="PRODUCT_NAME" /> mula sa <ph name="VENDOR_NAME" /> (serial number <ph name="SERIAL_NUMBER" />)</translation>
diff --git a/extensions/strings/extensions_strings_fr-CA.xtb b/extensions/strings/extensions_strings_fr-CA.xtb index 900fb6b..74bb49f 100644 --- a/extensions/strings/extensions_strings_fr-CA.xtb +++ b/extensions/strings/extensions_strings_fr-CA.xtb
@@ -7,7 +7,6 @@ <translation id="1420684932347524586">Échec de génération de clé privée RSA aléatoire.</translation> <translation id="1445572445564823378">Cette extension ralentit <ph name="PRODUCT_NAME" />. Vous devez la désactiver pour rétablir les performances de <ph name="PRODUCT_NAME" />.</translation> <translation id="1468038450257740950">WebGL n'est pas pris en charge.</translation> -<translation id="149347756975725155">Échec de chargement de l'icône de l'extension « <ph name="ICON" /> ».</translation> <translation id="1803557475693955505">Échec de chargement de la page d'arrière-plan <ph name="BACKGROUND_PAGE" />.</translation> <translation id="2159915644201199628">Impossible de décoder l'image : « <ph name="IMAGE_NAME" /> ».</translation> <translation id="2350172092385603347">Localisation utilisée, mais les paramètres régionaux par défaut (default_locale) n'ont pas été indiqués dans le fichier manifeste.</translation> @@ -44,7 +43,6 @@ <translation id="6322279351188361895">Échec de lecture de la clé privée.</translation> <translation id="6391538222494443604">Le répertoire d'extensions doit exister.</translation> <translation id="641087317769093025">Échec de décompression de l'extension</translation> -<translation id="6413453408918378296">L'icône n'est pas suffisamment visible « <ph name="ICON" /> ».</translation> <translation id="6542618148162044354">« <ph name="APP_NAME" /> » demande l’accès à un ou plusieurs de vos appareils :</translation> <translation id="657064425229075395">Échec de lecture du script d'arrière-plan « <ph name="BACKGROUND_SCRIPT" /> ».</translation> <translation id="6580950983454333167"><ph name="PRODUCT_NAME" /> de <ph name="VENDOR_NAME" /> (numéro de série <ph name="SERIAL_NUMBER" />)</translation>
diff --git a/extensions/strings/extensions_strings_fr.xtb b/extensions/strings/extensions_strings_fr.xtb index d00ca3e..825b123d 100644 --- a/extensions/strings/extensions_strings_fr.xtb +++ b/extensions/strings/extensions_strings_fr.xtb
@@ -7,7 +7,6 @@ <translation id="1420684932347524586">Échec de génération de clé privée RSA aléatoire</translation> <translation id="1445572445564823378">Cette extension ralentit <ph name="PRODUCT_NAME" />. Vous devez la désactiver pour rétablir les performances de <ph name="PRODUCT_NAME" />.</translation> <translation id="1468038450257740950">WebGL n'est pas compatible.</translation> -<translation id="149347756975725155">Impossible de charger l'icône de l'extension "<ph name="ICON" />".</translation> <translation id="1803557475693955505">Impossible de charger la page d'arrière-plan "<ph name="BACKGROUND_PAGE" />".</translation> <translation id="2159915644201199628">Impossible de décoder l'image : "<ph name="IMAGE_NAME" />".</translation> <translation id="2350172092385603347">Localisation utilisée, mais les paramètres régionaux par défaut (default_locale) n'ont pas été indiqués dans le manifeste. </translation> @@ -44,7 +43,6 @@ <translation id="6322279351188361895">Échec de lecture de la clé privée</translation> <translation id="6391538222494443604">Le répertoire d'extensions est obligatoire.</translation> <translation id="641087317769093025">Impossible de décompresser l'extension.</translation> -<translation id="6413453408918378296">L'icône <ph name="ICON" /> n'est pas suffisamment visible.</translation> <translation id="6542618148162044354"><ph name="APP_NAME" /> demande l'accès à un ou plusieurs de vos appareils :</translation> <translation id="657064425229075395">Impossible de charger le script d'arrière-plan "<ph name="BACKGROUND_SCRIPT" />".</translation> <translation id="6580950983454333167"><ph name="PRODUCT_NAME" /> de <ph name="VENDOR_NAME" /> (numéro de série <ph name="SERIAL_NUMBER" />)</translation>
diff --git a/extensions/strings/extensions_strings_gl.xtb b/extensions/strings/extensions_strings_gl.xtb index 70ce22b..bd79ee33f 100644 --- a/extensions/strings/extensions_strings_gl.xtb +++ b/extensions/strings/extensions_strings_gl.xtb
@@ -7,7 +7,6 @@ <translation id="1420684932347524586">Non se puido xerar a clave privada RSA aleatoria.</translation> <translation id="1445572445564823378">Esta extensión está reducindo a velocidade de <ph name="PRODUCT_NAME" />. Debes desactivala para restablecer o rendemento de <ph name="PRODUCT_NAME" />.</translation> <translation id="1468038450257740950">WebGL non é compatible.</translation> -<translation id="149347756975725155">Non se puido cargar a icona da extensión "<ph name="ICON" />".</translation> <translation id="1803557475693955505">Erro ao cargar a páxina en segundo plano "<ph name="BACKGROUND_PAGE" />".</translation> <translation id="2159915644201199628">Non se puido descodificar a imaxe: "<ph name="IMAGE_NAME" />"</translation> <translation id="2350172092385603347">Localización utilizada, pero default_locale non se especificou no manifesto.</translation> @@ -44,7 +43,6 @@ <translation id="6322279351188361895">Non se puido ler a clave privada.</translation> <translation id="6391538222494443604">Debe existir o directorio de entrada.</translation> <translation id="641087317769093025">Erro ao descomprimir a extensión</translation> -<translation id="6413453408918378296">A icona non é o suficiente visible: <ph name="ICON" />.</translation> <translation id="6542618148162044354">"<ph name="APP_NAME" />" solicita acceso a un ou varios dos teus dispositivos:</translation> <translation id="657064425229075395">Non se puido cargar o script en segundo plano "<ph name="BACKGROUND_SCRIPT" />".</translation> <translation id="6580950983454333167"><ph name="PRODUCT_NAME" /> de <ph name="VENDOR_NAME" /> (número de serie <ph name="SERIAL_NUMBER" />)</translation>
diff --git a/extensions/strings/extensions_strings_gu.xtb b/extensions/strings/extensions_strings_gu.xtb index 23f9ba67..60bfe273 100644 --- a/extensions/strings/extensions_strings_gu.xtb +++ b/extensions/strings/extensions_strings_gu.xtb
@@ -7,7 +7,6 @@ <translation id="1420684932347524586">અરેરે! રેંડમ RSA ખાનગી કી જનરેટ કરવામાં નિષ્ફળ.</translation> <translation id="1445572445564823378">આ એક્સ્ટેંશન <ph name="PRODUCT_NAME" />ને ધીમુંં કરી રહ્યું છે. <ph name="PRODUCT_NAME" />ના પ્રદર્શનને પહેલાંના જેવું કરવા માટે તમારે તેને બંધ કરવું જોઈએ.</translation> <translation id="1468038450257740950">WebGL સમર્થિત નથી.</translation> -<translation id="149347756975725155">એક્સ્ટેંશન આયકન '<ph name="ICON" />' લોડ કરી શકાયું નથી.</translation> <translation id="1803557475693955505">પૃષ્ઠભૂમિ પૃષ્ઠ '<ph name="BACKGROUND_PAGE" />' લોડ કરી શકાયું નથી.</translation> <translation id="2159915644201199628">છબીને ડિકોડ કરી શક્યાં નથી: '<ph name="IMAGE_NAME" />'</translation> <translation id="2350172092385603347">લૉકલાઇઝેશન વપરાયુ, પરંતુ default_locale નો ઉલ્લેખ મેનિફેસ્ટમાં નહોતો.</translation> @@ -44,7 +43,6 @@ <translation id="6322279351188361895">ખાનગી કી વાંચવામાં નિષ્ફળ છે.</translation> <translation id="6391538222494443604">ઇનપુટ ડિરેક્ટરી અસતિત્વમાં હોવી જોઈએ.</translation> <translation id="641087317769093025">એક્સ્ટેન્શન અનઝિપ કરી શકાયું નથી</translation> -<translation id="6413453408918378296">આઇકન સ્પષ્ટ દેખાતો નથી '<ph name="ICON" />'.</translation> <translation id="6542618148162044354">"<ph name="APP_NAME" />", તમારા એક અથવા વધુ ઉપકરણો પરની ઍક્સેસની વિનંતી કરી રહ્યું છે:</translation> <translation id="657064425229075395">પૃષ્ઠભૂમિ સ્ક્રિપ્ટ '<ph name="BACKGROUND_SCRIPT" />' લોડ કરી શકાઈ નથી.</translation> <translation id="6580950983454333167"><ph name="VENDOR_NAME" /> નું <ph name="PRODUCT_NAME" /> (સીરિયલ નંબર <ph name="SERIAL_NUMBER" />)</translation>
diff --git a/extensions/strings/extensions_strings_hi.xtb b/extensions/strings/extensions_strings_hi.xtb index 23d1431..4ee6876 100644 --- a/extensions/strings/extensions_strings_hi.xtb +++ b/extensions/strings/extensions_strings_hi.xtb
@@ -7,7 +7,6 @@ <translation id="1420684932347524586">ओह! यादृच्छिक RSA निजी कुंजी जनरेट करने में विफल.</translation> <translation id="1445572445564823378">इस एक्सटेंशन की वजह से <ph name="PRODUCT_NAME" /> धीरे काम कर रहा है. आपको इसे बंद कर देना चाहिए ताकि <ph name="PRODUCT_NAME" /> ठीक से काम करे.</translation> <translation id="1468038450257740950">WebGL समर्थित नहीं है.</translation> -<translation id="149347756975725155">एक्सटेंशन आइकॉन '<ph name="ICON" />' लोड नहीं किया जा सका.</translation> <translation id="1803557475693955505">पेजभूमि पेज '<ph name="BACKGROUND_PAGE" />' को लोड नहीं कर सका.</translation> <translation id="2159915644201199628">इमेज को डीकोड नहीं किया जा सका: '<ph name="IMAGE_NAME" />'</translation> <translation id="2350172092385603347">स्थानीय भाषा में लिखा गया है, लेकिन default_locale मेनिफ़ेस्ट में तय नहीं की गई थी.</translation> @@ -44,7 +43,6 @@ <translation id="6322279351188361895">निजी कुंजी को पढ़ने में विफल.</translation> <translation id="6391538222494443604">इनपुट निर्देशिका मौजूद होनी चाहिए.</translation> <translation id="641087317769093025">एक्सटेंशन को अनज़िप नहीं किया जा सका</translation> -<translation id="6413453408918378296">आइकॉन पूरी तरह दिखाई नहीं दे रहा है '<ph name="ICON" />'.</translation> <translation id="6542618148162044354">"<ph name="APP_NAME" />" आपके एक या ज़्यादा डिवाइस के एक्सेस मांग रहा है:</translation> <translation id="657064425229075395">पृष्ठभूमि स्क्रिप्ट '<ph name="BACKGROUND_SCRIPT" />' लोड नहीं की जा सकी.</translation> <translation id="6580950983454333167"><ph name="VENDOR_NAME" /> का <ph name="PRODUCT_NAME" /> (सीरियल नंबर <ph name="SERIAL_NUMBER" />)</translation>
diff --git a/extensions/strings/extensions_strings_hr.xtb b/extensions/strings/extensions_strings_hr.xtb index 9e73de29..eb428ab 100644 --- a/extensions/strings/extensions_strings_hr.xtb +++ b/extensions/strings/extensions_strings_hr.xtb
@@ -7,7 +7,6 @@ <translation id="1420684932347524586">Šteta! Nije uspjelo generiranje nasumičnog RSA osobnog ključa.</translation> <translation id="1445572445564823378">Ovo proširenje usporava uslugu <ph name="PRODUCT_NAME" />. Trebali biste ga onemogućiti da biste vratili uspješan rad usluge <ph name="PRODUCT_NAME" />.</translation> <translation id="1468038450257740950">WebGL nije podržan.</translation> -<translation id="149347756975725155">Nije uspjelo učitavanje ikone proširenja "<ph name="ICON" />".</translation> <translation id="1803557475693955505">Nije uspjelo učitavanje pozadinske stranice "<ph name="BACKGROUND_PAGE" />".</translation> <translation id="2159915644201199628">Nije uspjelo dekodiranje slike: "<ph name="IMAGE_NAME" />"</translation> <translation id="2350172092385603347">Lokalizacija je korištena, ali default_locale nije naveden u manifestu.</translation> @@ -44,7 +43,6 @@ <translation id="6322279351188361895">Čitanje osobnog ključa nije uspjelo.</translation> <translation id="6391538222494443604">Mora postojati direktorij za unos.</translation> <translation id="641087317769093025">Nije uspjelo raspakiravanje proširenja</translation> -<translation id="6413453408918378296">Ikona "<ph name="ICON" />" nije dovoljno vidljiva.</translation> <translation id="6542618148162044354">"<ph name="APP_NAME" />" zahtijeva pristup nekim od vaših uređaja:</translation> <translation id="657064425229075395">Nije bilo moguće učitati pozadinsku skriptu "<ph name="BACKGROUND_SCRIPT" />".</translation> <translation id="6580950983454333167">pristupiti uređaju <ph name="PRODUCT_NAME" /> dobavljača <ph name="VENDOR_NAME" /> (serijski broj <ph name="SERIAL_NUMBER" />)</translation>
diff --git a/extensions/strings/extensions_strings_hu.xtb b/extensions/strings/extensions_strings_hu.xtb index 2b46dc73c..9e7d3f10 100644 --- a/extensions/strings/extensions_strings_hu.xtb +++ b/extensions/strings/extensions_strings_hu.xtb
@@ -7,7 +7,6 @@ <translation id="1420684932347524586">Ajjaj! Nem sikerült a véletlenszerű RSA privát kulcs generálása.</translation> <translation id="1445572445564823378">Ez a bővítmény lassítja a <ph name="PRODUCT_NAME" /> működését. Kapcsolja ki a <ph name="PRODUCT_NAME" /> teljesítményének visszaállításához.</translation> <translation id="1468038450257740950">A WebGL nem támogatott.</translation> -<translation id="149347756975725155">A(z) '<ph name="ICON" />' bővítményikon betöltése nem sikerült.</translation> <translation id="1803557475693955505">Nem lehet betölteni a(z) '<ph name="BACKGROUND_PAGE" />' háttéroldalt.</translation> <translation id="2159915644201199628">Nem sikerült dekódolni a képet: „<ph name="IMAGE_NAME" />”</translation> <translation id="2350172092385603347">Fordítás használatban, de a default_locale (alapértelmezett nyelv- és országkód) nincs megadva a jegyzékfájlban.</translation> @@ -44,7 +43,6 @@ <translation id="6322279351188361895">A privát kulcs olvasása sikertelen.</translation> <translation id="6391538222494443604">Kell lennie beviteli könyvtárnak.</translation> <translation id="641087317769093025">Nem sikerült a bővítmény kicsomagolása</translation> -<translation id="6413453408918378296">Az ikon nem látható elég jól: „<ph name="ICON" />”.</translation> <translation id="6542618148162044354">A(z) „<ph name="APP_NAME" />” alkalmazás hozzáférést kér egy vagy több eszközéhez.</translation> <translation id="657064425229075395">Nem sikerült betölteni a következő háttérszkriptet: "<ph name="BACKGROUND_SCRIPT" />".</translation> <translation id="6580950983454333167"><ph name="PRODUCT_NAME" /> a következőtől: <ph name="VENDOR_NAME" /> (sorozatszám: <ph name="SERIAL_NUMBER" />)</translation>
diff --git a/extensions/strings/extensions_strings_hy.xtb b/extensions/strings/extensions_strings_hy.xtb index aaf8acd..47c538e 100644 --- a/extensions/strings/extensions_strings_hy.xtb +++ b/extensions/strings/extensions_strings_hy.xtb
@@ -7,7 +7,6 @@ <translation id="1420684932347524586">Չհաջողվեց ստեղծել պատահական RSA մասնավոր բանալին:</translation> <translation id="1445572445564823378">Այս ընդլայնումը ծանրացնում է <ph name="PRODUCT_NAME" />-ը: Դուք պետք է անջատեք այն՝ <ph name="PRODUCT_NAME" />-ի կատարողականությունը վերականգնելու համար:</translation> <translation id="1468038450257740950">WebGL-ը չի աջակցվում:</translation> -<translation id="149347756975725155">Չհաջողվեց բեռնել ընդլայնման «<ph name="ICON" />» պատկերակը:</translation> <translation id="1803557475693955505">Չհաջողվեց բեռնել հետնաշերտի էջը` «<ph name="BACKGROUND_PAGE" />»:</translation> <translation id="2159915644201199628">Չհաջողվեց ապակոդավորել պատկերը` «<ph name="IMAGE_NAME" />»</translation> <translation id="2350172092385603347">Տեղայնացումն օգտագործվում է, սակայն մանիֆեստում նշված չէ default_locale հատկանիշը:</translation> @@ -44,7 +43,6 @@ <translation id="6322279351188361895">Չհաջողվեց կարդալ մասնավոր բանալին:</translation> <translation id="6391538222494443604">Մուտքային գրացուցակը պետք է առկա լինի:</translation> <translation id="641087317769093025">Չհաջողվեց դուրս բերել ընդլայնումը</translation> -<translation id="6413453408918378296">«<ph name="ICON" />» պատկերակը բավականաչափ տեսանելի չէ։</translation> <translation id="6542618148162044354">«<ph name="APP_NAME" />» հավելվածը մուտքի թույլտվություն է խնդրում ձեր սարքերից մեկի կամ մի քանիսի համար՝</translation> <translation id="657064425229075395">Չհաջողվեց բեռնել «<ph name="BACKGROUND_SCRIPT" />» հետնաշերտի սկրիպտը:</translation> <translation id="6580950983454333167">Արտադրանք՝ <ph name="PRODUCT_NAME" />, վաճառող՝ <ph name="VENDOR_NAME" /> (սերիական համարը՝ <ph name="SERIAL_NUMBER" />)</translation>
diff --git a/extensions/strings/extensions_strings_id.xtb b/extensions/strings/extensions_strings_id.xtb index fbdc008..e97571b5 100644 --- a/extensions/strings/extensions_strings_id.xtb +++ b/extensions/strings/extensions_strings_id.xtb
@@ -7,7 +7,6 @@ <translation id="1420684932347524586">Wah! Gagal membuat kunci pribadi RSA acak.</translation> <translation id="1445572445564823378">Ekstensi ini memperlambat <ph name="PRODUCT_NAME" />. Anda harus menonaktifkannya agar dapat memulihkan kinerja <ph name="PRODUCT_NAME" />.</translation> <translation id="1468038450257740950">WebGL tidak didukung.</translation> -<translation id="149347756975725155">Tidak dapat memuat ikon ekstensi '<ph name="ICON" />'.</translation> <translation id="1803557475693955505">Tidak dapat memuat halaman background '<ph name="BACKGROUND_PAGE" />'.</translation> <translation id="2159915644201199628">Tidak dapat mendekode gambar: '<ph name="IMAGE_NAME" />'</translation> <translation id="2350172092385603347">Lokalisasi digunakan, tetapi default_locale tidak ditentukan dalam manifes.</translation> @@ -44,7 +43,6 @@ <translation id="6322279351188361895">Gagal membaca kunci pribadi.</translation> <translation id="6391538222494443604">Direktori masukan harus ada.</translation> <translation id="641087317769093025">Tidak dapat mengekstrak ekstensi</translation> -<translation id="6413453408918378296">Ikon tidak cukup terlihat '<ph name="ICON" />'.</translation> <translation id="6542618148162044354">"<ph name="APP_NAME" />" meminta akses ke satu atau beberapa perangkat Anda:</translation> <translation id="657064425229075395">Tidak dapat memuat skrip latar belakang '<ph name="BACKGROUND_SCRIPT" />'.</translation> <translation id="6580950983454333167"><ph name="PRODUCT_NAME" /> dari <ph name="VENDOR_NAME" /> (nomor seri <ph name="SERIAL_NUMBER" />)</translation>
diff --git a/extensions/strings/extensions_strings_is.xtb b/extensions/strings/extensions_strings_is.xtb index f9266f5..da39e4a 100644 --- a/extensions/strings/extensions_strings_is.xtb +++ b/extensions/strings/extensions_strings_is.xtb
@@ -7,7 +7,6 @@ <translation id="1420684932347524586">Jæks! Það mistókst að útbúa RSA-einkalykil af handahófi.</translation> <translation id="1445572445564823378">Þessi viðbót hægir á <ph name="PRODUCT_NAME" />. Þú ættir að slökkva á henni til að <ph name="PRODUCT_NAME" /> starfi betur.</translation> <translation id="1468038450257740950">WebGL er ekki stutt.</translation> -<translation id="149347756975725155">Ekki var hægt að hlaða viðbótartáknið „<ph name="ICON" />“.</translation> <translation id="1803557475693955505">Ekki var hægt að hlaða bakgrunnssíðuna „<ph name="BACKGROUND_PAGE" />“.</translation> <translation id="2159915644201199628">Ekki var hægt að afkóða mynd: „<ph name="IMAGE_NAME" />“</translation> <translation id="2350172092385603347">Staðfærsla notuð en default_locale var ekki tilgreint í upplýsingaskránni.</translation> @@ -44,7 +43,6 @@ <translation id="6322279351188361895">Mistókst að lesa einkalykil.</translation> <translation id="6391538222494443604">Inntaksmappa verður að vera fyrir hendi.</translation> <translation id="641087317769093025">Ekki var hægt að afþjappa viðbót</translation> -<translation id="6413453408918378296">Táknið er ekki nægilega sýnilegt „<ph name="ICON" />“.</translation> <translation id="6542618148162044354">„<ph name="APP_NAME" />“ biður um aðgang að einu eða fleiri tækjum:</translation> <translation id="657064425229075395">Ekki var hægt að hlaða bakgrunnsskriftu „<ph name="BACKGROUND_SCRIPT" />“.</translation> <translation id="6580950983454333167"><ph name="PRODUCT_NAME" /> frá <ph name="VENDOR_NAME" /> (raðnúmer <ph name="SERIAL_NUMBER" />)</translation>
diff --git a/extensions/strings/extensions_strings_it.xtb b/extensions/strings/extensions_strings_it.xtb index 5fd45b29..234689d 100644 --- a/extensions/strings/extensions_strings_it.xtb +++ b/extensions/strings/extensions_strings_it.xtb
@@ -7,7 +7,6 @@ <translation id="1420684932347524586">Spiacenti, operazione di generazione della chiave privata RSA casuale non riuscita.</translation> <translation id="1445572445564823378">Questa estensione sta rallentando <ph name="PRODUCT_NAME" />. È necessario disabilitarla per ripristinare le prestazioni di <ph name="PRODUCT_NAME" />.</translation> <translation id="1468038450257740950">WebGL non è supportato.</translation> -<translation id="149347756975725155">Impossibile caricare l'icona estensione "<ph name="ICON" />".</translation> <translation id="1803557475693955505">Impossibile caricare la pagina di sfondo "<ph name="BACKGROUND_PAGE" />".</translation> <translation id="2159915644201199628">Impossibile decodificare l'immagine: "<ph name="IMAGE_NAME" />"</translation> <translation id="2350172092385603347">Localizzazione utilizzata, ma default_locale non era specificato nel file manifest.</translation> @@ -44,7 +43,6 @@ <translation id="6322279351188361895">Operazione di lettura della chiave privata non riuscita.</translation> <translation id="6391538222494443604">La directory di input deve essere esistente.</translation> <translation id="641087317769093025">Impossibile decomprimere l'estensione</translation> -<translation id="6413453408918378296">L'icona "<ph name="ICON" />" non è sufficientemente visibile.</translation> <translation id="6542618148162044354">"<ph name="APP_NAME" />" richiede l'accesso a uno o più dispositivi:</translation> <translation id="657064425229075395">Impossibile caricare lo script in background "<ph name="BACKGROUND_SCRIPT" />".</translation> <translation id="6580950983454333167"><ph name="PRODUCT_NAME" /> di <ph name="VENDOR_NAME" /> (numero di serie: <ph name="SERIAL_NUMBER" />)</translation>
diff --git a/extensions/strings/extensions_strings_iw.xtb b/extensions/strings/extensions_strings_iw.xtb index be2a1da..0e75acb5 100644 --- a/extensions/strings/extensions_strings_iw.xtb +++ b/extensions/strings/extensions_strings_iw.xtb
@@ -7,7 +7,6 @@ <translation id="1420684932347524586">אוי לא! אירע כשל ביצירת מפתח RSA פרטי אקראי.</translation> <translation id="1445572445564823378">תוסף זה מאט את <ph name="PRODUCT_NAME" />. עליך להשבית אותו כדי לשחזר את הביצועים של <ph name="PRODUCT_NAME" />.</translation> <translation id="1468038450257740950">WebGL אינו נתמך.</translation> -<translation id="149347756975725155">לא היתה אפשרות לטעון את אייקון התוסף '<ph name="ICON" />'.</translation> <translation id="1803557475693955505">לא היתה אפשרות לטעון את דף הרקע '<ph name="BACKGROUND_PAGE" />'.</translation> <translation id="2159915644201199628">לא ניתן לפענח תמונה: '<ph name="IMAGE_NAME" />'</translation> <translation id="2350172092385603347">נעשה שימוש בהתאמה למקום, אך default_locale לא צוין במניפסט.</translation> @@ -44,7 +43,6 @@ <translation id="6322279351188361895">נכשל בקריאת מפתח פרטי.</translation> <translation id="6391538222494443604">ספריית קלט חייבת להתקיים.</translation> <translation id="641087317769093025">לא ניתן לבטל את הדחיסה של התוסף</translation> -<translation id="6413453408918378296">הסמל לא מספיק בולט לעין '<ph name="ICON" />'.</translation> <translation id="6542618148162044354">האפליקציה "<ph name="APP_NAME" />" מבקשת גישה לאחד או יותר מהמכשירים שלך:</translation> <translation id="657064425229075395">לא ניתן להעלות את סקריפט הרקע '<ph name="BACKGROUND_SCRIPT" />'.</translation> <translation id="6580950983454333167"><ph name="PRODUCT_NAME" /> מ-<ph name="VENDOR_NAME" /> (מספר סידורי <ph name="SERIAL_NUMBER" />)</translation>
diff --git a/extensions/strings/extensions_strings_ja.xtb b/extensions/strings/extensions_strings_ja.xtb index 6cce6fd..0cdca9c 100644 --- a/extensions/strings/extensions_strings_ja.xtb +++ b/extensions/strings/extensions_strings_ja.xtb
@@ -7,7 +7,6 @@ <translation id="1420684932347524586">ランダムな RSA 秘密鍵を生成できませんでした。</translation> <translation id="1445572445564823378">この拡張機能によって <ph name="PRODUCT_NAME" /> の速度が低下しています。<ph name="PRODUCT_NAME" /> のパフォーマンスを回復するには、この拡張機能を無効にしてください。</translation> <translation id="1468038450257740950">WebGL はサポートされていません。</translation> -<translation id="149347756975725155">拡張機能アイコン「<ph name="ICON" />」を読み込むことができませんでした。</translation> <translation id="1803557475693955505">背景ページ「<ph name="BACKGROUND_PAGE" />」を読み込むことができませんでした。</translation> <translation id="2159915644201199628">画像をデコードできませんでした: <ph name="IMAGE_NAME" /></translation> <translation id="2350172092385603347">言語/地域機能は使用されていますが、マニフェストに default_locale が指定されていません。</translation> @@ -44,7 +43,6 @@ <translation id="6322279351188361895">秘密鍵を読み取ることができませんでした。</translation> <translation id="6391538222494443604">入力ディレクトリが存在している必要があります。</translation> <translation id="641087317769093025">拡張機能を解凍できませんでした</translation> -<translation id="6413453408918378296">アイコン「<ph name="ICON" />」の表示部分が十分ではありません。</translation> <translation id="6542618148162044354">「<ph name="APP_NAME" />」が次のデバイスへのアクセスをリクエストしています:</translation> <translation id="657064425229075395">バックグラウンド スクリプト「<ph name="BACKGROUND_SCRIPT" />」を読み込めませんでした。</translation> <translation id="6580950983454333167"><ph name="PRODUCT_NAME" />、提供元 <ph name="VENDOR_NAME" />(シリアル番号 <ph name="SERIAL_NUMBER" />)</translation>
diff --git a/extensions/strings/extensions_strings_ka.xtb b/extensions/strings/extensions_strings_ka.xtb index 4f29ec3..12cf18a 100644 --- a/extensions/strings/extensions_strings_ka.xtb +++ b/extensions/strings/extensions_strings_ka.xtb
@@ -7,7 +7,6 @@ <translation id="1420684932347524586">შემთხვევითი RSA პირადი გასაღები ვერ დაგენერირდა.</translation> <translation id="1445572445564823378">ეს გაფართოება ანელებს <ph name="PRODUCT_NAME" />-ის მუშაობას. უნდა გამორთოთ, რათა აღადგინოთ <ph name="PRODUCT_NAME" />-ის ეფექტურობა.</translation> <translation id="1468038450257740950">WebGL არ არის მხარდაჭერილი.</translation> -<translation id="149347756975725155">არ იტვირთება გაფართოების ხატულა „<ph name="ICON" />“.</translation> <translation id="1803557475693955505">ფონური გვერდი ვერ ჩაიტვირთა „<ph name="BACKGROUND_PAGE" />“.</translation> <translation id="2159915644201199628">გამოსახულების გაშიფვრა ვერ მოხერხდა: „<ph name="IMAGE_NAME" />“</translation> <translation id="2350172092385603347">გამოყენებულია ლოკალიზაცია, მაგრამ ნაგულისხმევი ლოკალი არ არის მითითებული მანიფესტში.</translation> @@ -44,7 +43,6 @@ <translation id="6322279351188361895">პირადი კლავიშის წაკითხვის შეცდომა.</translation> <translation id="6391538222494443604">შეყვანის დირექტორია უნდა არსებობდეს.</translation> <translation id="641087317769093025">გაფართოების არქივიდან ამოღება ვერ მოხერხდა</translation> -<translation id="6413453408918378296">ხატულა (<ph name="ICON" />) არასაკმარისად ჩანს.</translation> <translation id="6542618148162044354">„<ph name="APP_NAME" />“ თქვენს ერთ ან მეტ მოწყობილობაზე წვდომას ითხოვს:</translation> <translation id="657064425229075395">შუძლებელია ფონის სკრიპტის ჩატვირთვა „<ph name="BACKGROUND_SCRIPT" />“.</translation> <translation id="6580950983454333167"><ph name="PRODUCT_NAME" /> მომწოდებლისგან <ph name="VENDOR_NAME" /> (სერიული ნომერი <ph name="SERIAL_NUMBER" />)</translation>
diff --git a/extensions/strings/extensions_strings_kk.xtb b/extensions/strings/extensions_strings_kk.xtb index 6db4b0c..db60019 100644 --- a/extensions/strings/extensions_strings_kk.xtb +++ b/extensions/strings/extensions_strings_kk.xtb
@@ -7,7 +7,6 @@ <translation id="1420684932347524586">Кездейсоқ RSA жеке кілтін жасау сәтсіз аяқталды.</translation> <translation id="1445572445564823378">Бұл кеңейтім <ph name="PRODUCT_NAME" /> жұмысын баяулатады. <ph name="PRODUCT_NAME" /> жұмысын қалпына келтіру үшін кеңейтімді өшіруіңіз керек.</translation> <translation id="1468038450257740950">WebGL қолдау көрсетілмеген.</translation> -<translation id="149347756975725155">Кеңейтім белгішесін "<ph name="ICON" />" жүктеу мүмкін болмады.</translation> <translation id="1803557475693955505">"<ph name="BACKGROUND_PAGE" />" фондық бетін жүктеу мүмкін болмады.</translation> <translation id="2159915644201199628">Кескінді шифрсыздандыру мүмкін емес: "<ph name="IMAGE_NAME" />"</translation> <translation id="2350172092385603347">Локализациялау пайдаланылды, бірақ default_locale манифестте көрсетілмеген.</translation> @@ -44,7 +43,6 @@ <translation id="6322279351188361895">Жеке кілтті оқу әрекеті сәтсіз аяқталды.</translation> <translation id="6391538222494443604">Кіріс каталогі бар болуы керек.</translation> <translation id="641087317769093025">Кеңейтімді мұрағаттан шығару мүмкін болмады</translation> -<translation id="6413453408918378296">"<ph name="ICON" />" белгішесі дұрыс көрінбейді.</translation> <translation id="6542618148162044354">"<ph name="APP_NAME" />" бір не бірнеше құрылғыға кіруге рұқсат сұрауда:</translation> <translation id="657064425229075395">"<ph name="BACKGROUND_SCRIPT" />" фондық сценарийін жүктеу мүмкін болмады.</translation> <translation id="6580950983454333167"><ph name="VENDOR_NAME" /> ұсынған <ph name="PRODUCT_NAME" /> (сериялық нөмірі: <ph name="SERIAL_NUMBER" />)</translation>
diff --git a/extensions/strings/extensions_strings_km.xtb b/extensions/strings/extensions_strings_km.xtb index 86125e26..a3f0994 100644 --- a/extensions/strings/extensions_strings_km.xtb +++ b/extensions/strings/extensions_strings_km.xtb
@@ -7,7 +7,6 @@ <translation id="1420684932347524586">អីយ៉ាស! បានបរាជ័យក្នុងការបង្កើតសោឯកជនចៃដន្យ RSA។</translation> <translation id="1445572445564823378">កម្មវិធីបន្ថែមនេះកំពុងធ្វើឲ្យ <ph name="PRODUCT_NAME" /> យឺត។ អ្នកគួរតែបិទដំណើរការវាដើម្បីស្តារប្រតិបត្តិការ <ph name="PRODUCT_NAME" />។</translation> <translation id="1468038450257740950">WebGL មិនត្រូវបានគាំទ្រទេ។</translation> -<translation id="149347756975725155">មិនអាចដំណើរការរូបតំណាងកម្មវិធីបន្ថែម '<ph name="ICON" />' ទេ។</translation> <translation id="1803557475693955505">មិនអាចដំណើរការទំព័រផ្ទៃខាងក្រោយ '<ph name="BACKGROUND_PAGE" />' ទេ។</translation> <translation id="2159915644201199628">មិនអាចបម្លែងរូបភាព '<ph name="IMAGE_NAME" />' ទេ</translation> <translation id="2350172092385603347">មូលដ្ឋានីយកម្មត្រូវបានប្រើប្រាស់ ប៉ុន្តែ មូលដ្ឋាន_លំនាំដើម មិនត្រូវបានបញ្ជាក់នៅក្នុងមេនីហ្វេសទេ។</translation> @@ -44,7 +43,6 @@ <translation id="6322279351188361895">បានបរាជ័យក្នុងការអានសោឯកជន។</translation> <translation id="6391538222494443604">ត្រូវមានថតឯកសារធាតុបញ្ចូល។</translation> <translation id="641087317769093025">មិនអាចពន្លាកម្មវិធីបន្ថែមទេ</translation> -<translation id="6413453408918378296">មើលរូបតំណាងមិនសូវឃើញទេ '<ph name="ICON" />'។</translation> <translation id="6542618148162044354">"<ph name="APP_NAME" />" កំពុងស្នើសុំចូលប្រើឧបករណ៍មួយ ឬច្រើនរបស់អ្នក៖</translation> <translation id="657064425229075395">មិនអាចដំណើរការស្គ្រីបផ្ទៃខាងក្រោយ '<ph name="BACKGROUND_SCRIPT" />' ទេ។</translation> <translation id="6580950983454333167"><ph name="PRODUCT_NAME" /> មកពី <ph name="VENDOR_NAME" /> (លេខសេរ៊ី <ph name="SERIAL_NUMBER" />)</translation>
diff --git a/extensions/strings/extensions_strings_kn.xtb b/extensions/strings/extensions_strings_kn.xtb index 4caba36..0a266b1 100644 --- a/extensions/strings/extensions_strings_kn.xtb +++ b/extensions/strings/extensions_strings_kn.xtb
@@ -7,7 +7,6 @@ <translation id="1420684932347524586">ಅಯ್ಯೋ! ಯಾದೃಚ್ಛಿಕ RSA ಖಾಸಗಿ ಕೀಲಿಯನ್ನು ರಚಿಸಲು ವಿಫಲವಾಗಿದೆ.</translation> <translation id="1445572445564823378">ಈ ವಿಸ್ತರಣೆಯು <ph name="PRODUCT_NAME" /> ಅನ್ನು ನಿಧಾನವಾಗಿಸುತ್ತಿದೆ. ನೀವು <ph name="PRODUCT_NAME" /> ರ ಕಾರ್ಯಾಚರಣೆಯನ್ನು ಮತ್ತೊಮ್ಮೆ ಪ್ರಾರಂಭಿಸಲು ಇದನ್ನು ನಿಷ್ಕ್ರಿಯಗೊಳಿಸುವುದು ಅವಶ್ಯಕ.</translation> <translation id="1468038450257740950">WebGL ಬೆಂಬಲಿಸುವುದಿಲ್ಲ.</translation> -<translation id="149347756975725155">'<ph name="ICON" />' ಎಕ್ಸ್ಟೆನ್ಷನ್ ಐಕಾನ್ ಲೋಡ್ ಮಾಡಲಾಗಲಿಲ್ಲ.</translation> <translation id="1803557475693955505">'<ph name="BACKGROUND_PAGE" />' ಹಿನ್ನಲೆ ಪುಟವನ್ನು ಲೋಡ್ ಮಾಡಲಾಗುವುದಿಲ್ಲ.</translation> <translation id="2159915644201199628">ಚಿತ್ರವನ್ನು ಡಿಕೋಡ್ ಮಾಡಲು ಸಾಧ್ಯವಿಲ್ಲ: '<ph name="IMAGE_NAME" />'</translation> <translation id="2350172092385603347">ಲೋಕಲೈಜೇಷನ್ ಬಳಸಲಾಗಿದೆ, ಆದರೆ ಡಿಫಾಲ್ಟ್ _ಲೋಕಲ್ ಅನ್ನು ಮ್ಯಾನಿಫಾಸ್ಟ್ನಲ್ಲಿ ನಿರ್ದಿಷ್ಟಪಡಿಸಲಾಗಿಲ್ಲ.</translation> @@ -44,7 +43,6 @@ <translation id="6322279351188361895">ಗೌಪ್ಯತೆ ಕೀಲಿಯನ್ನು ಓದಲು ವಿಫಲವಾಗಿದೆ.</translation> <translation id="6391538222494443604">ಇನ್ಪುಟ್ ಡೈರೆಕ್ಟರಿ ಅಸ್ತಿತ್ವದಲ್ಲಿರಬೇಕು.</translation> <translation id="641087317769093025">ವಿಸ್ತರಣೆಯನ್ನು ಅನ್ ಜಿಪ್ ಮಾಡಲು ಸಾಧ್ಯವಿಲ್ಲ</translation> -<translation id="6413453408918378296">'<ph name="ICON" />' ಐಕಾನ್ ಸ್ಪಷ್ಟವಾಗಿ ಗೋಚರಿಸುತ್ತಿಲ್ಲ.</translation> <translation id="6542618148162044354">"<ph name="APP_NAME" />" ನಿಮ್ಮ ಸಾಧನಗಳಲ್ಲಿ ಒಂದು ಅಥವಾ ಹೆಚ್ಚಿನ ಸಾಧನಗಳಿಗೆ ಪ್ರವೇಶವನ್ನು ವಿನಂತಿಸುತ್ತಿದೆ:</translation> <translation id="657064425229075395">'<ph name="BACKGROUND_SCRIPT" />' ಹಿನ್ನೆಲೆ ಪುಟವನ್ನು ಲೋಡ್ ಮಾಡಲಾಗುವುದಿಲ್ಲ.</translation> <translation id="6580950983454333167"><ph name="PRODUCT_NAME" /> ದಿಂದ <ph name="VENDOR_NAME" /> (ಕ್ರಮಸಂಖ್ಯೆ <ph name="SERIAL_NUMBER" />)</translation>
diff --git a/extensions/strings/extensions_strings_ko.xtb b/extensions/strings/extensions_strings_ko.xtb index 7867952..08f80b2 100644 --- a/extensions/strings/extensions_strings_ko.xtb +++ b/extensions/strings/extensions_strings_ko.xtb
@@ -7,7 +7,6 @@ <translation id="1420684932347524586">임의의 RSA 비공개 키를 생성하지 못했습니다.</translation> <translation id="1445572445564823378">이 확장 프로그램은 <ph name="PRODUCT_NAME" />의 성능을 저하시킵니다. <ph name="PRODUCT_NAME" />의 성능을 복원하려면 확장 프로그램을 사용중지해야 합니다.</translation> <translation id="1468038450257740950">WebGL이 지원되지 않습니다.</translation> -<translation id="149347756975725155">확장 프로그램 아이콘('<ph name="ICON" />')을 로드하지 못했습니다.</translation> <translation id="1803557475693955505">배경 페이지('<ph name="BACKGROUND_PAGE" />')를 로드하지 못했습니다.</translation> <translation id="2159915644201199628">'<ph name="IMAGE_NAME" />' 이미지를 디코딩하지 못했습니다.</translation> <translation id="2350172092385603347">번역한 언어를 이용하였지만 매니페스트에 기본 언어(default_locale)를 지정하지 않았습니다.</translation> @@ -44,7 +43,6 @@ <translation id="6322279351188361895">비공개 키를 읽지 못했습니다.</translation> <translation id="6391538222494443604">입력 디렉터리가 있어야 합니다.</translation> <translation id="641087317769093025">확장 프로그램의 압축을 해제하지 못했습니다.</translation> -<translation id="6413453408918378296">'<ph name="ICON" />' 아이콘이 충분히 표시되지 않습니다.</translation> <translation id="6542618148162044354">'<ph name="APP_NAME" />'이(가) 사용자의 기기 하나 이상에 액세스 권한을 요청하고 있습니다.</translation> <translation id="657064425229075395">백그라운드 스크립트('<ph name="BACKGROUND_SCRIPT" />')를 로드하지 못했습니다.</translation> <translation id="6580950983454333167"><ph name="VENDOR_NAME" />의 제품 <ph name="PRODUCT_NAME" />(일련 번호 <ph name="SERIAL_NUMBER" />)</translation>
diff --git a/extensions/strings/extensions_strings_ky.xtb b/extensions/strings/extensions_strings_ky.xtb index 83d45fc..bbc9107 100644 --- a/extensions/strings/extensions_strings_ky.xtb +++ b/extensions/strings/extensions_strings_ky.xtb
@@ -7,7 +7,6 @@ <translation id="1420684932347524586">Башаламан RSA жеке ачкычы түзүлбөй калды.</translation> <translation id="1445572445564823378">Бул кеңейтүү күйгүзүлсө, <ph name="PRODUCT_NAME" /> жай иштеп калат. Андыктан <ph name="PRODUCT_NAME" /> ишинин майнаптуулугун калыбына келтирүү үчүн, аны өчүрүп коюшуңуз керек.</translation> <translation id="1468038450257740950">WebGL колдоого алынбайт.</translation> -<translation id="149347756975725155">'<ph name="ICON" />' кеңейтүү сүрөтчөсү жүктөлгөн жок.</translation> <translation id="1803557475693955505">'<ph name="BACKGROUND_PAGE" />' фондук баракча жүктөлгөн жок.</translation> <translation id="2159915644201199628">Сүрөттүн коддору чечилген жок: '<ph name="IMAGE_NAME" />'</translation> <translation id="2350172092385603347">Жергиликтештирилген, бирок демейки_тил стандарты манифестте көрсөтүлбөй калган.</translation> @@ -44,7 +43,6 @@ <translation id="6322279351188361895">Купуя ачкычты окуй албай койду.</translation> <translation id="6391538222494443604">Киргизүү каталогу чыгарылышы керек.</translation> <translation id="641087317769093025">Кысылган кеңейтүүнү чыгара алган жок</translation> -<translation id="6413453408918378296">"<ph name="ICON" />" сүрөтчөсү даана көрүнгөн жок.</translation> <translation id="6542618148162044354">"<ph name="APP_NAME" />" колдонмосу түзмөктөрүңүздүн бирин же бир нечесин пайдаланууга уруксат сурап жатат:</translation> <translation id="657064425229075395">'<ph name="BACKGROUND_SCRIPT" />' фондогу скрипт жүктөлгөн жок.</translation> <translation id="6580950983454333167"><ph name="VENDOR_NAME" /> дегенден <ph name="PRODUCT_NAME" /> (сериялык номери <ph name="SERIAL_NUMBER" />)</translation>
diff --git a/extensions/strings/extensions_strings_lo.xtb b/extensions/strings/extensions_strings_lo.xtb index e5132817..4f0b3e24 100644 --- a/extensions/strings/extensions_strings_lo.xtb +++ b/extensions/strings/extensions_strings_lo.xtb
@@ -7,7 +7,6 @@ <translation id="1420684932347524586">ຢະ! ສ້າງລະຫັດສ່ວນຕົວ RSA ແບບສຸ່ມບໍ່ສໍາເລັດ.</translation> <translation id="1445572445564823378">ສ່ວນຂະຫຍາຍນີ້ກໍາລັງຊ້າລົງ <ph name="PRODUCT_NAME" />. ທ່ານຄວນຈະປິດໃຊ້ງານມັນເພື່ອກູ້ຄືນການໃຊ້ງານຂອງ <ph name="PRODUCT_NAME" />.</translation> <translation id="1468038450257740950">WebGL ບໍ່ຮອງຮັບ.</translation> -<translation id="149347756975725155">ບໍ່ສາມາດໂຫຼດໄອຄອນສ່ວນຂະຫຍາຍໄດ້ '<ph name="ICON" />'.</translation> <translation id="1803557475693955505">ບໍ່ສາມາດໂຫຼດໜ້າພື້ນຫຼັງໄດ້ '<ph name="BACKGROUND_PAGE" />'.</translation> <translation id="2159915644201199628">ບໍ່ສາມາດຖອດລະຫັດຮູບໄດ້: '<ph name="IMAGE_NAME" />'</translation> <translation id="2350172092385603347">ໃຊ້ການຈໍາກັດແລ້ວ, ແຕ່ default_locale ບໍ່ໄດ້ກໍານົດຢູ່ໃນໃບລາຍການ.</translation> @@ -44,7 +43,6 @@ <translation id="6322279351188361895">ອ່ານປຸ່ມສ່ວນຕົວບໍ່ໄດ້.</translation> <translation id="6391538222494443604">ບັນຊີລາຍຊື່ການປ້ອນຕ້ອງມີຢູ່.</translation> <translation id="641087317769093025">ບໍ່ສາມາດແຍກຊິບສ່ວນຂະຫຍາຍໄດ້</translation> -<translation id="6413453408918378296">ໄອຄອນບໍ່ເຫັນໄດ້ຢ່າງພຽງພໍ '<ph name="ICON" />'.</translation> <translation id="6542618148162044354">"<ph name="APP_NAME" />" ກຳລັງຮ້ອງຂໍການເຂົ້າເຖິງອຸປະກອນຂອງທ່ານໜຶ່ງ ຫຼື ຫຼາຍເຄື່ອງ:</translation> <translation id="657064425229075395">ບໍ່ສາມາດໂຫຼດໜັງສືພື້ນຫຼັງໄດ້ ' <ph name="BACKGROUND_SCRIPT" /> .</translation> <translation id="6580950983454333167"><ph name="PRODUCT_NAME" /> ຈາກ <ph name="VENDOR_NAME" /> (ເລກລໍາດັບ <ph name="SERIAL_NUMBER" />)</translation>
diff --git a/extensions/strings/extensions_strings_lt.xtb b/extensions/strings/extensions_strings_lt.xtb index f758444f..58500cef7 100644 --- a/extensions/strings/extensions_strings_lt.xtb +++ b/extensions/strings/extensions_strings_lt.xtb
@@ -7,7 +7,6 @@ <translation id="1420684932347524586">Oi! Nepavyko sukurti atsitiktinio RSA privačiojo rakto.</translation> <translation id="1445572445564823378">Dėl šio plėtinio lėčiau veikia „<ph name="PRODUCT_NAME" />“. Kad atkurtumėte „<ph name="PRODUCT_NAME" />“ našumą, turite jo neleisti.</translation> <translation id="1468038450257740950">„WebGL“ nepalaikomas.</translation> -<translation id="149347756975725155">Nepavyko įkelti „<ph name="ICON" />“ plėtinio piktogramos.</translation> <translation id="1803557475693955505">Nepavyko įkelti fono puslapio „<ph name="BACKGROUND_PAGE" />“.</translation> <translation id="2159915644201199628">Nepavyko iššifruoti vaizdo: „<ph name="IMAGE_NAME" />“</translation> <translation id="2350172092385603347">Naudotas lokalizavimas, bet deklaracijoje nenurodyta numatytoji lokalė.</translation> @@ -44,7 +43,6 @@ <translation id="6322279351188361895">Nepavyko nuskaityti privačiojo rakto.</translation> <translation id="6391538222494443604">Turi būti įvesties katalogas.</translation> <translation id="641087317769093025">Nepavyko išarchyvuoti plėtinio</translation> -<translation id="6413453408918378296">Piktograma „<ph name="ICON" />“ nepakankamai matoma.</translation> <translation id="6542618148162044354">„<ph name="APP_NAME" />“ prašo leidimo pasiekti vieną ar daugiau jūsų įrenginių:</translation> <translation id="657064425229075395">Nepavyko įkelti foninio scenarijaus „<ph name="BACKGROUND_SCRIPT" />“.</translation> <translation id="6580950983454333167">„<ph name="PRODUCT_NAME" />“, pardavėjas „<ph name="VENDOR_NAME" />“ (serijos numeris <ph name="SERIAL_NUMBER" />)</translation>
diff --git a/extensions/strings/extensions_strings_lv.xtb b/extensions/strings/extensions_strings_lv.xtb index e7c7899f..17800fc4 100644 --- a/extensions/strings/extensions_strings_lv.xtb +++ b/extensions/strings/extensions_strings_lv.xtb
@@ -7,7 +7,6 @@ <translation id="1420684932347524586">Vai! Neizdevās ģenerēt nejauši izvēlētu RSA privāto atslēgu.</translation> <translation id="1445572445564823378">Šis paplašinājums palēnina <ph name="PRODUCT_NAME" /> darbību. Atspējojiet to, lai atjaunotu <ph name="PRODUCT_NAME" /> veiktspēju.</translation> <translation id="1468038450257740950">Tehnoloģija WebGL netiek atbalstīta.</translation> -<translation id="149347756975725155">Nevarēja ielādēt paplašinājuma ikonu “<ph name="ICON" />”.</translation> <translation id="1803557475693955505">Nevarēja ielādēt fona lapu “<ph name="BACKGROUND_PAGE" />”.</translation> <translation id="2159915644201199628">Nevarēja dekodēt attēlu: <ph name="IMAGE_NAME" /></translation> <translation id="2350172092385603347">Lokalizācija ir lietota, tomēr manifestā nav norādīta default_locale.</translation> @@ -44,7 +43,6 @@ <translation id="6322279351188361895">Neizdevās nolasīt privāto atslēgu.</translation> <translation id="6391538222494443604">Ievades katalogam jābūt.</translation> <translation id="641087317769093025">Paplašinājumu nevarēja izgūt no ZIP arhīva.</translation> -<translation id="6413453408918378296">Ikona <ph name="ICON" /> nav pietiekami labi redzama.</translation> <translation id="6542618148162044354">Lietotne <ph name="APP_NAME" /> pieprasa piekļuvi vienai vai vairākām jūsu ierīcēm:</translation> <translation id="657064425229075395">Nevarēja ielādēt fona skriptu <ph name="BACKGROUND_SCRIPT" />.</translation> <translation id="6580950983454333167"><ph name="PRODUCT_NAME" />, ko piedāvā <ph name="VENDOR_NAME" /> (sērijas numurs: <ph name="SERIAL_NUMBER" />)</translation>
diff --git a/extensions/strings/extensions_strings_mk.xtb b/extensions/strings/extensions_strings_mk.xtb index 3c63e8cc..6a9b07dd 100644 --- a/extensions/strings/extensions_strings_mk.xtb +++ b/extensions/strings/extensions_strings_mk.xtb
@@ -7,7 +7,6 @@ <translation id="1420684932347524586">Ужас! Не успеа да се генерира приватен клуч со RSA по случаен избор.</translation> <translation id="1445572445564823378">Оваа наставка забавува <ph name="PRODUCT_NAME" />. Треба да ја оневозможите за да ја обновите изведбата на <ph name="PRODUCT_NAME" />.</translation> <translation id="1468038450257740950">WebGL не е поддржан.</translation> -<translation id="149347756975725155">Не може да се вчита иконата на наставката „<ph name="ICON" />“.</translation> <translation id="1803557475693955505">Не можеше да се вчита заднинската страница „<ph name="BACKGROUND_PAGE" />“.</translation> <translation id="2159915644201199628">Не можеше да се декодира сликата: „<ph name="IMAGE_NAME" />“</translation> <translation id="2350172092385603347">Употребена е локализација, но default_locale не е наведен во манифестот.</translation> @@ -44,7 +43,6 @@ <translation id="6322279351188361895">Не успеа да прочита приватен клуч.</translation> <translation id="6391538222494443604">Мора да постои влезен директориум.</translation> <translation id="641087317769093025">Не може да се отпакува наставката</translation> -<translation id="6413453408918378296">Иконата „<ph name="ICON" />“ не е доволно видлива.</translation> <translation id="6542618148162044354">„<ph name="APP_NAME" />“ бара пристап до еден или повеќе од вашите уреди:</translation> <translation id="657064425229075395">Не може да вчита заднинска скрипта „<ph name="BACKGROUND_SCRIPT" />“.</translation> <translation id="6580950983454333167"><ph name="PRODUCT_NAME" /> од <ph name="VENDOR_NAME" /> (сериски број <ph name="SERIAL_NUMBER" />)</translation>
diff --git a/extensions/strings/extensions_strings_ml.xtb b/extensions/strings/extensions_strings_ml.xtb index b67ac45..53353f11 100644 --- a/extensions/strings/extensions_strings_ml.xtb +++ b/extensions/strings/extensions_strings_ml.xtb
@@ -7,7 +7,6 @@ <translation id="1420684932347524586">അയ്യോ! ക്രമരഹിത RSA സ്വകാര്യ കീ ജനറേറ്റ് ചെയ്യുന്നതിന് പരാജയപ്പെട്ടു. </translation> <translation id="1445572445564823378">ഈ വിപുലീകരണം <ph name="PRODUCT_NAME" />-നെ മന്ദഗതിയിലാക്കുന്നു. <ph name="PRODUCT_NAME" />-ന്റെ പ്രകടനം പുനഃസ്ഥാപിക്കുന്നതിനായി നിങ്ങൾ അതിനെ പ്രവർത്തനരഹിതമാക്കണം.</translation> <translation id="1468038450257740950">WebGL പിന്തുണയ്ക്കുന്നില്ല.</translation> -<translation id="149347756975725155">വിപുലീകരണ ഐക്കൺ '<ph name="ICON" />' ലോഡ് ചെയ്യാനായില്ല.</translation> <translation id="1803557475693955505">പശ്ചാത്തല പേജ് '<ph name="BACKGROUND_PAGE" />' ലോഡ് ചെയ്യാനായില്ല.</translation> <translation id="2159915644201199628">ചിത്രം ഡീകോഡ് ചെയ്യാൻ കഴിഞ്ഞില്ല: '<ph name="IMAGE_NAME" />'</translation> <translation id="2350172092385603347">പ്രാദേശികവൽക്കരണം ഉപയോഗിച്ചു, പക്ഷെ മാനിഫെസ്റ്റിൽ സ്ഥിര-ഭാഷ വ്യക്തമാക്കിയിട്ടില്ല.</translation> @@ -44,7 +43,6 @@ <translation id="6322279351188361895">സ്വകാര്യ കീ റീഡുചെയ്യുന്നതിന് പരാജയപ്പെട്ടു.</translation> <translation id="6391538222494443604">ഇന്പുട്ട് ഡയറക്റ്ററി നിലവിലുണ്ടായിരിക്കണം.</translation> <translation id="641087317769093025">വിപുലീകരണം അൺസിപ്പ് ചെയ്യാൻ കഴിഞ്ഞില്ല</translation> -<translation id="6413453408918378296">ഐക്കൺ '<ph name="ICON" />' വേണ്ടത്ര ദൃശ്യമല്ല.</translation> <translation id="6542618148162044354">"<ph name="APP_NAME" />" നിങ്ങളുടെ ഒന്നോ അതിലധികമോ ഉപകരണങ്ങളിലേക്ക് ആക്സസ് അഭ്യർത്ഥിക്കുന്നു:</translation> <translation id="657064425229075395">പശ്ചാത്തല സ്ക്രിപ്റ്റ് '<ph name="BACKGROUND_SCRIPT" />' ലോഡ് ചെയ്യാൻ കഴിഞ്ഞില്ല.</translation> <translation id="6580950983454333167"><ph name="VENDOR_NAME" /> എന്നതിൽ നിന്നുള്ള <ph name="PRODUCT_NAME" /> (സീരിയൽ നമ്പർ <ph name="SERIAL_NUMBER" />)</translation>
diff --git a/extensions/strings/extensions_strings_mn.xtb b/extensions/strings/extensions_strings_mn.xtb index 19122d70..ab2ee0d 100644 --- a/extensions/strings/extensions_strings_mn.xtb +++ b/extensions/strings/extensions_strings_mn.xtb
@@ -7,7 +7,6 @@ <translation id="1420684932347524586">Өө өө! Түр зуурын RSA хувийн түлхүүрийг үүсгэж чадсангүй.</translation> <translation id="1445572445564823378">Энэ өргөтгөл <ph name="PRODUCT_NAME" /> удааширч байна. Та <ph name="PRODUCT_NAME" />-ийн гүйцэтгэлийг дахин сэргээхийн тулд идэвхгүй болгох хэрэгтэй.</translation> <translation id="1468038450257740950">WebGL-ийг дэмжихгүй байна.</translation> -<translation id="149347756975725155">Өргөтгөлийн тэмдэглэгээг ачаалах боломжгүй байна <ph name="ICON" /> . '</translation> <translation id="1803557475693955505">'<ph name="BACKGROUND_PAGE" />' үндсэн хуудсыг ачаалж чадсангүй.</translation> <translation id="2159915644201199628">Дүрсний кодыг тайлах боломжгүй байна: <ph name="IMAGE_NAME" /> '</translation> <translation id="2350172092385603347">Байрлалыг ашигласан, анхдагч байрлалыг контентын жагсаалтанд зааж өгсөн.</translation> @@ -44,7 +43,6 @@ <translation id="6322279351188361895">Хувийн түлхүүрийг унших явцад алдаа гарсан байна.</translation> <translation id="6391538222494443604">Оролтын хадгалалтын сантай байх ёстой.</translation> <translation id="641087317769093025">Өргөтгөлийг задалж чадсангүй.</translation> -<translation id="6413453408918378296">Дүрс тэмдэг '<ph name="ICON" />' хангалттай сайн харагдахгүй байна.</translation> <translation id="6542618148162044354">"<ph name="APP_NAME" />" таны аль нэг, эсвэл хэд хэдэн төхөөрөмжид хандах хүсэлтэй байна:</translation> <translation id="657064425229075395">Дэвсгэрийн '<ph name="BACKGROUND_SCRIPT" />' скриптыг ачаалах боломжгүй байна.</translation> <translation id="6580950983454333167"><ph name="VENDOR_NAME" />-н <ph name="PRODUCT_NAME" /> (Серийн дугаар <ph name="SERIAL_NUMBER" />)</translation>
diff --git a/extensions/strings/extensions_strings_mr.xtb b/extensions/strings/extensions_strings_mr.xtb index 2d9c040..4da2e76f 100644 --- a/extensions/strings/extensions_strings_mr.xtb +++ b/extensions/strings/extensions_strings_mr.xtb
@@ -7,7 +7,6 @@ <translation id="1420684932347524586">अरेरे! यादृच्छिक RSA खासगी की व्युत्पन्न करण्यात अयशस्वी.</translation> <translation id="1445572445564823378">हे एक्स्टेंशन <ph name="PRODUCT_NAME" /> हळू चालत आहे. <ph name="PRODUCT_NAME" /> चे काम रिस्टोअर करण्यासाठी तुम्ही ते अक्षम करणे आवश्यक आहे.</translation> <translation id="1468038450257740950">WebGL समर्थित नाही.</translation> -<translation id="149347756975725155">एक्स्टेंशन प्रतीक '<ph name="ICON" />' लोड करणे शक्य नाही.</translation> <translation id="1803557475693955505">'पार्श्वभूमी पृष्ठ '<ph name="BACKGROUND_PAGE" />' लोड करणे शक्य नाही.</translation> <translation id="2159915644201199628">इमेज डीकोड करणे शक्य झाले नाही: '<ph name="IMAGE_NAME" />'</translation> <translation id="2350172092385603347">भाषांतर वापरले, परंतु मॅनिफेस्टमध्ये डीफॉल्ट_लोकॅल नमूद नाही.</translation> @@ -44,7 +43,6 @@ <translation id="6322279351188361895">खासगी की वाचण्यात अयशस्वी.</translation> <translation id="6391538222494443604">इनपुट डिरेक्टरी अस्तित्वात असणे आवश्यक आहे.</translation> <translation id="641087317769093025">एक्स्टेंशन अनझिप करणे शक्य झाले नाही</translation> -<translation id="6413453408918378296">आयकन पुरेसा दृश्यमान नाही '<ph name="ICON" />'.</translation> <translation id="6542618148162044354"><ph name="APP_NAME" /> तुमच्या एका किंवा अधिक डिव्हाइस ॲक्सेसची विनंती करत आहे:</translation> <translation id="657064425229075395">पार्श्वभूमी स्क्रिप्ट '<ph name="BACKGROUND_SCRIPT" />' लोड करू शकले नाही.</translation> <translation id="6580950983454333167"><ph name="VENDOR_NAME" /> (सिरीअल नंबर <ph name="SERIAL_NUMBER" />) कडील <ph name="PRODUCT_NAME" /></translation>
diff --git a/extensions/strings/extensions_strings_ms.xtb b/extensions/strings/extensions_strings_ms.xtb index d6e8900..dc35ee9 100644 --- a/extensions/strings/extensions_strings_ms.xtb +++ b/extensions/strings/extensions_strings_ms.xtb
@@ -7,7 +7,6 @@ <translation id="1420684932347524586">Yikes! Gagal untuk menjanakan kunci persendirian RSA rawak.</translation> <translation id="1445572445564823378">Sambungan ini melambatkan <ph name="PRODUCT_NAME" />. Anda perlu melumpuhkannya untuk memulihkan prestasi <ph name="PRODUCT_NAME" />.</translation> <translation id="1468038450257740950">WebGL tidak disokong.</translation> -<translation id="149347756975725155">Tidak dapat memuatkan ikon sambungan '<ph name="ICON" />'.</translation> <translation id="1803557475693955505">Tidak dapat memuatkan halaman latar belakang '<ph name="BACKGROUND_PAGE" />'.</translation> <translation id="2159915644201199628">Tidak dapat menyahkod imej: ' <ph name="IMAGE_NAME" /> '</translation> <translation id="2350172092385603347">Penempatan digunakan, tetapi default_locale tidak dinyatakan dalam ketara.</translation> @@ -44,7 +43,6 @@ <translation id="6322279351188361895">Gagal untuk membaca kunci persendirian.</translation> <translation id="6391538222494443604">Direktori input mesti wujud.</translation> <translation id="641087317769093025">Tidak boleh menyahzip sambungan</translation> -<translation id="6413453408918378296">Ikon tidak dapat dilihat dengan jelas '<ph name="ICON" />'.</translation> <translation id="6542618148162044354">"<ph name="APP_NAME" />" meminta akses kepada satu atau beberapa peranti anda.</translation> <translation id="657064425229075395">Tidak dapat memuatkan skrip latar belakang '<ph name="BACKGROUND_SCRIPT" />'.</translation> <translation id="6580950983454333167"><ph name="PRODUCT_NAME" /> daripada <ph name="VENDOR_NAME" /> (nombor siri <ph name="SERIAL_NUMBER" />)</translation>
diff --git a/extensions/strings/extensions_strings_my.xtb b/extensions/strings/extensions_strings_my.xtb index 4d576df..5aea5737 100644 --- a/extensions/strings/extensions_strings_my.xtb +++ b/extensions/strings/extensions_strings_my.xtb
@@ -7,7 +7,6 @@ <translation id="1420684932347524586">ဖြစ်မှဖြစ်ရတယ်! ကျပန်း RSA ကိုယ်ပိုင် သော့ ထုတ်လုပ် မရလိုက်ပါ။</translation> <translation id="1445572445564823378">ဒီတိုးချဲ့မှုက <ph name="PRODUCT_NAME" />ကို နှေးလာစေနေသည်။ သင်သည် <ph name="PRODUCT_NAME" />၏ လုပ်ကိုင်နိုင်စွမ်းကို ပြန်ဖေါ်ထုတ်ပေးရန် ၎င်းကို ပိတ်သင့်ပါသည်။</translation> <translation id="1468038450257740950">WebGL ကို မပံ့ပိုးပါ။</translation> -<translation id="149347756975725155">တိုးချဲ့မှု အိုင်ကွန် '<ph name="ICON" />' ကို တင် မပေးနိုင်ခဲ့ပါ။</translation> <translation id="1803557475693955505">နောက်ခံစာမျက်နှာ '<ph name="BACKGROUND_PAGE" />' အားဖွင့်၍မရပါ။</translation> <translation id="2159915644201199628">'<ph name="IMAGE_NAME" />' ပုံအား ကုဒ်မဖြုတ်နိုင်ပါ။</translation> <translation id="2350172092385603347">ဒေသတွင်း အသုံးပြုနိုင်ရန် ဖန်တီးရာတွင် အသုံးပြုခဲ့၊ သို့သော် default_locale အားသိသာစွာ သတ်မှတ်မထားပါ။</translation> @@ -44,7 +43,6 @@ <translation id="6322279351188361895">ကိုယ်ရေးကိုယ်တာ ကီးဖတ်ရန် မအောင်မြင်ပါ။</translation> <translation id="6391538222494443604">ထည့်သွင်းမှု လမ်းကြောင်းထွက်ရပါမည်။</translation> <translation id="641087317769093025">တိုးချဲ့မှု ဇီပ်ကို မဖွင့်နိုင်ခဲ့ပါ</translation> -<translation id="6413453408918378296">ဤသင်္ကေတသည် သိသာစွာ မြင်ရသော '<ph name="ICON" />' မဟုတ်ပါ။</translation> <translation id="6542618148162044354">"<ph name="APP_NAME" />" သည် သင့်စက်ပစ္စည်း တစ်ခုနှင့် အထက်ကို အသုံးပြုခွင့် တောင်းဆိုနေပါသည်−</translation> <translation id="657064425229075395">နောက်ခံ စာသားကို တင် မပေးနိုင်ခဲ့ပါ '<ph name="BACKGROUND_SCRIPT" />'။</translation> <translation id="6580950983454333167"><ph name="PRODUCT_NAME" /> <ph name="VENDOR_NAME" /> ထံမှ (နံပါတ်စဉ် <ph name="SERIAL_NUMBER" />)</translation>
diff --git a/extensions/strings/extensions_strings_ne.xtb b/extensions/strings/extensions_strings_ne.xtb index e48f7f1d..080bfcb5 100644 --- a/extensions/strings/extensions_strings_ne.xtb +++ b/extensions/strings/extensions_strings_ne.xtb
@@ -7,7 +7,6 @@ <translation id="1420684932347524586">ओह! अनियमित RSA निजी कुञ्जी उत्पन्न गर्न असफल भयो।</translation> <translation id="1445572445564823378">यस एक्स्टेन्शनले <ph name="PRODUCT_NAME" /> लाई सुस्त बनाइरहेको छ। तपाईंले <ph name="PRODUCT_NAME" /> को कार्यसम्पादन पुन: स्थापना गर्न यसलाई असक्षम पार्नुपर्छ।</translation> <translation id="1468038450257740950">WebGL समर्थित छैन।</translation> -<translation id="149347756975725155">विस्तार प्रतिमा '<ph name="ICON" />' लोड गर्न सकेन।</translation> <translation id="1803557475693955505">पृष्ठभूमि पृष्ठ '<ph name="BACKGROUND_PAGE" />' लोड गर्न सकिएन।</translation> <translation id="2159915644201199628">छवि डिकोड गर्न सकिएन: '<ph name="IMAGE_NAME" />'</translation> <translation id="2350172092385603347">अनुवाद प्रयोग गरिएको, तर सूचीमा पूर्वनिर्धारित_लोकेल तोकिएको</translation> @@ -44,7 +43,6 @@ <translation id="6322279351188361895">निजी कुञ्जी पढ्न असफल भयो।</translation> <translation id="6391538222494443604">इनपुट डाइरेक्ट्री हुनैपर्छ।</translation> <translation id="641087317769093025">विस्तार अनजिप गर्न सकेन</translation> -<translation id="6413453408918378296">यो आइकन राम्ररी देख्न सकिने अवस्थामा छैन '<ph name="ICON" />'।</translation> <translation id="6542618148162044354">"<ph name="APP_NAME" />" ले तपाईंको एक वा धेरै यन्त्र माथिको पहुँचका लागि अनुरोध गरिरहेको छ:</translation> <translation id="657064425229075395">पृष्ठभूमि स्क्रिपट '<ph name="BACKGROUND_SCRIPT" />' लोड गर््न सकिएन।</translation> <translation id="6580950983454333167"><ph name="VENDOR_NAME" /> बाट <ph name="PRODUCT_NAME" /> (क्रमिक सङ्ख्या <ph name="SERIAL_NUMBER" />)</translation>
diff --git a/extensions/strings/extensions_strings_nl.xtb b/extensions/strings/extensions_strings_nl.xtb index bcf6e8733..d5b0b14 100644 --- a/extensions/strings/extensions_strings_nl.xtb +++ b/extensions/strings/extensions_strings_nl.xtb
@@ -7,7 +7,6 @@ <translation id="1420684932347524586">O nee! Kan geen willekeurige persoonlijke RSA-sleutel genereren.</translation> <translation id="1445572445564823378"><ph name="PRODUCT_NAME" /> wordt door deze extensie vertraagd. Schakel de extensie uit om de prestaties van <ph name="PRODUCT_NAME" /> te verbeteren.</translation> <translation id="1468038450257740950">WebGL wordt niet ondersteund.</translation> -<translation id="149347756975725155">Kan extensiepictogram '<ph name="ICON" />' niet laden.</translation> <translation id="1803557475693955505">Kan achtergrondpagina '<ph name="BACKGROUND_PAGE" />' niet laden.</translation> <translation id="2159915644201199628">Kan afbeelding niet decoderen: '<ph name="IMAGE_NAME" />'</translation> <translation id="2350172092385603347">Lokalisatie gebruikt, maar er is geen 'default_locale' opgegeven in het manifest.</translation> @@ -44,7 +43,6 @@ <translation id="6322279351188361895">Lezen van persoonlijke sleutel is mislukt.</translation> <translation id="6391538222494443604">Er moet een invoerdirectory zijn.</translation> <translation id="641087317769093025">Kan extensie niet uitpakken</translation> -<translation id="6413453408918378296">Het pictogram <ph name="ICON" /> is niet voldoende zichtbaar.</translation> <translation id="6542618148162044354"><ph name="APP_NAME" /> vraagt om toegang tot een of meer van je apparaten:</translation> <translation id="657064425229075395">Kan achtergrondscript '<ph name="BACKGROUND_SCRIPT" />' niet laden.</translation> <translation id="6580950983454333167"><ph name="PRODUCT_NAME" /> van <ph name="VENDOR_NAME" /> (serienummer <ph name="SERIAL_NUMBER" />)</translation>
diff --git a/extensions/strings/extensions_strings_no.xtb b/extensions/strings/extensions_strings_no.xtb index 67d41eb..80ec813 100644 --- a/extensions/strings/extensions_strings_no.xtb +++ b/extensions/strings/extensions_strings_no.xtb
@@ -7,7 +7,6 @@ <translation id="1420684932347524586">Beklager. Forsøket på å opprette tilfeldig RSA-privatnøkkel mislyktes.</translation> <translation id="1445572445564823378">Denne utvidelsen gjør <ph name="PRODUCT_NAME" /> tregere. Du bør deaktivere den for å gjenopprette ytelsen til <ph name="PRODUCT_NAME" />.</translation> <translation id="1468038450257740950">WebGL støttes ikke.</translation> -<translation id="149347756975725155">Kan ikke laste inn utvidelsesikonet «<ph name="ICON" />».</translation> <translation id="1803557475693955505">Kan ikke laste inn bakgrunnssiden <ph name="BACKGROUND_PAGE" />.</translation> <translation id="2159915644201199628">Kunne ikke dekode bilde: «<ph name="IMAGE_NAME" />»</translation> <translation id="2350172092385603347">Lokaliseringen er brukt, men default_locale var ikke spesifisert i manifestet.</translation> @@ -44,7 +43,6 @@ <translation id="6322279351188361895">Kan ikke lese privatnøkkelen.</translation> <translation id="6391538222494443604">Inndatakatalogen må eksistere.</translation> <translation id="641087317769093025">Kunne ikke pakke ut utvidelsen</translation> -<translation id="6413453408918378296">Ikonet «<ph name="ICON" />» er ikke synlig nok.</translation> <translation id="6542618148162044354">«<ph name="APP_NAME" />» ber om tilgang til én eller flere av enhetene dine:</translation> <translation id="657064425229075395">Kunne ikke laste inn bakgrunnsskriptet «<ph name="BACKGROUND_SCRIPT" />».</translation> <translation id="6580950983454333167"><ph name="PRODUCT_NAME" /> fra <ph name="VENDOR_NAME" /> (serienummer <ph name="SERIAL_NUMBER" />)</translation>
diff --git a/extensions/strings/extensions_strings_or.xtb b/extensions/strings/extensions_strings_or.xtb index 44ec3a67..913593c5 100644 --- a/extensions/strings/extensions_strings_or.xtb +++ b/extensions/strings/extensions_strings_or.xtb
@@ -7,7 +7,6 @@ <translation id="1420684932347524586">ଓହ୍! ଅନିୟମିତ RSA ବ୍ୟକ୍ତିଗତ କୀ ସୃଷ୍ଟି କରିହେଲା ନାହିଁ।</translation> <translation id="1445572445564823378">ଏହି ଏକ୍ସଟେନ୍ସନ୍ଟି <ph name="PRODUCT_NAME" />କୁ ଧୀର କରିଦେଉଛି। <ph name="PRODUCT_NAME" />ର କାର୍ଯ୍ୟଦକ୍ଷତାକୁ ରିଷ୍ଟୋର୍ କରିବା ପାଇଁ ଆପଣ ଏହାକୁ ଅକ୍ଷମ କରିଦେବା ଉଚିତ୍।</translation> <translation id="1468038450257740950">WebGL ସମର୍ଥନ କରୁନାହିଁ।</translation> -<translation id="149347756975725155">ଏକ୍ସଟେନ୍ସନ୍ ଆଇକନ୍ '<ph name="ICON" />' ଲୋଡ୍ କରାଯାଇପାରିଲା ନାହିଁ।</translation> <translation id="1803557475693955505">'<ph name="BACKGROUND_PAGE" />' ପୃଷ୍ଠପଟ ପୃଷ୍ଠା ଲୋଡ୍ ହୋଇପାରିଲା ନାହିଁ।</translation> <translation id="2159915644201199628">ଛବି ଡିକୋଡ୍ କରିପାରିଲା ନାହିଁ: '<ph name="IMAGE_NAME" />'</translation> <translation id="2350172092385603347">ସ୍ଥାନୀୟକରଣ ବ୍ୟବହାର କରାଯାଇଛି, କିନ୍ତୁ ମାନିଫେଷ୍ଟରେ default_locale ନିର୍ଦ୍ଦିଷ୍ଟ କରାଯାଇନାହିଁ।</translation> @@ -44,7 +43,6 @@ <translation id="6322279351188361895">ବ୍ୟକ୍ତିଗତ କୀ'କୁ ପଢ଼ିବାରେ ବିଫଳ ହେଲା।</translation> <translation id="6391538222494443604">ଇନ୍ପୁଟ୍ ଡିରେକ୍ଟୋରୀ ରହିବା ଆବଶ୍ୟକ।</translation> <translation id="641087317769093025">ଏକ୍ସଟେନ୍ସନ୍ ଜିପ୍ ଖୋଲିହେଲା ନାହିଁ</translation> -<translation id="6413453408918378296">'<ph name="ICON" />' ଆଇକନ୍ ଯଥେଷ୍ଟ ଦୃଶ୍ୟମାନ ନୁହେଁ।</translation> <translation id="6542618148162044354">"<ph name="APP_NAME" />" ଆପଣଙ୍କର ଏକ ବା ଅଧିକ ଡିଭାଇସ୍ଗୁଡ଼ିକର ଆକ୍ସେସ୍ ଅନୁରୋଧ କରୁଛି:</translation> <translation id="657064425229075395">ପୃଷ୍ଠପଟ ସ୍କ୍ରିପ୍ଟ '<ph name="BACKGROUND_SCRIPT" />’କୁ ଲୋଡ୍ କରିହେଲା ନାହିଁ।</translation> <translation id="6580950983454333167"><ph name="PRODUCT_NAME" />ରୁ<ph name="VENDOR_NAME" /> (କ୍ରମିକ ସଂଖ୍ୟା <ph name="SERIAL_NUMBER" />)</translation>
diff --git a/extensions/strings/extensions_strings_pa.xtb b/extensions/strings/extensions_strings_pa.xtb index 36897a6..0b19ea2 100644 --- a/extensions/strings/extensions_strings_pa.xtb +++ b/extensions/strings/extensions_strings_pa.xtb
@@ -7,7 +7,6 @@ <translation id="1420684932347524586">Yikes! ਬੇਤਰਤੀਬ RSA ਨਿੱਜੀ ਕੁੰਜੀ ਬਣਾਉਣ ਵਿੱਚ ਅਸਫਲ।</translation> <translation id="1445572445564823378">ਇਹ ਐਕਸਟੈਂਸ਼ਨ <ph name="PRODUCT_NAME" /> ਨੂੰ ਹੌਲਾ ਕਰ ਰਿਹਾ ਹੈ। <ph name="PRODUCT_NAME" /> ਦੀ ਕਾਰਗੁਜ਼ਾਰੀ ਨੂੰ ਮੁੜ-ਬਹਾਲ ਕਰਨ ਲਈ ਐਕਸਟੈਂਸ਼ਨ ਨੂੰ ਬੰਦ ਕਰੋ।</translation> <translation id="1468038450257740950">WebGL ਸਮਰਥਿਤ ਨਹੀਂ ਹੈ।</translation> -<translation id="149347756975725155">ਐਕਸਟੈਂਸ਼ਨ ਪ੍ਰਤੀਕ '<ph name="ICON" />' ਲੋਡ ਨਹੀਂ ਕੀਤਾ ਜਾ ਸਕਿਆ।</translation> <translation id="1803557475693955505">ਬੈਕਗ੍ਰਾਊਂਡ ਪੰਨਾ '<ph name="BACKGROUND_PAGE" />' ਲੋਡ ਨਹੀਂ ਕੀਤਾ ਜਾ ਸਕਿਆ।</translation> <translation id="2159915644201199628">ਚਿੱਤਰ ਡੀਕੋਡ ਨਹੀਂ ਕਰ ਸਕਿਆ: '<ph name="IMAGE_NAME" />'</translation> <translation id="2350172092385603347">ਸਥਾਨੀਕਰਨ ਵਰਤਿਆ, ਪਰ default_locale ਮੈਨੀਫ਼ੈਸਟ ਵਿੱਚ ਨਹੀਂ ਦਿੱਤਾ ਹੋਇਆ ਸੀ।</translation> @@ -44,7 +43,6 @@ <translation id="6322279351188361895">ਨਿੱਜੀ ਕੁੰਜੀ ਪੜ੍ਹਨ ਵਿੱਚ ਅਸਫਲ।</translation> <translation id="6391538222494443604">ਇਨਪੁਟ ਡਾਇਰੈਕਟਰੀ ਮੌਜੂਦ ਹੋਣੀ ਚਾਹੀਦੀ ਹੈ।</translation> <translation id="641087317769093025">ਐਕਸਟੈਂਸ਼ਨ ਨੂੰ ਅਣਜ਼ਿਪ ਨਹੀਂ ਕਰ ਸਕਿਆ</translation> -<translation id="6413453408918378296">ਪ੍ਰਤੀਕ ਪੂਰੀ ਤਰ੍ਹਾਂ ਦਿਖਣਯੋਗ ਨਹੀਂ ਹੈ '<ph name="ICON" />'।</translation> <translation id="6542618148162044354">"<ph name="APP_NAME" />" ਵੱਲੋਂ ਤੁਹਾਡੀਆਂ ਇੱਕ ਜਾਂ ਵਧੇਰੇ ਡੀਵਾਈਸਾਂ ਤੱਕ ਪਹੁੰਚ ਪ੍ਰਾਪਤ ਕਰਨ ਦੀ ਬੇਨਤੀ ਕੀਤੀ ਜਾ ਰਹੀ ਹੈ:</translation> <translation id="657064425229075395">ਬੈਕਗ੍ਰਾਊਂਡ ਸਕ੍ਰਿਪਟ '<ph name="BACKGROUND_SCRIPT" />' ਲੋਡ ਨਹੀਂ ਕੀਤੀ ਜਾ ਸਕੀ।</translation> <translation id="6580950983454333167"><ph name="VENDOR_NAME" /> ਦਾ <ph name="PRODUCT_NAME" /> (ਸੀਰੀਅਲ ਨੰਬਰ <ph name="SERIAL_NUMBER" />)</translation>
diff --git a/extensions/strings/extensions_strings_pl.xtb b/extensions/strings/extensions_strings_pl.xtb index a316fd9..409ca63 100644 --- a/extensions/strings/extensions_strings_pl.xtb +++ b/extensions/strings/extensions_strings_pl.xtb
@@ -7,7 +7,6 @@ <translation id="1420684932347524586">Ojej! Nie można wygenerować losowego klucza prywatnego RSA.</translation> <translation id="1445572445564823378">To rozszerzenie spowalnia pracę <ph name="PRODUCT_NAME" />. Wyłącz je, aby przywrócić wydajność przeglądarki <ph name="PRODUCT_NAME" />.</translation> <translation id="1468038450257740950">Interfejs WebGL nie jest obsługiwany.</translation> -<translation id="149347756975725155">Nie można wczytać ikony rozszerzenia „<ph name="ICON" />”.</translation> <translation id="1803557475693955505">Nie można wczytać strony w tle „<ph name="BACKGROUND_PAGE" />”.</translation> <translation id="2159915644201199628">Nie można odkodować obrazu: „<ph name="IMAGE_NAME" />”</translation> <translation id="2350172092385603347">Lokalizacja została użyta, ale nie określono języka default_locale w pliku manifestu.</translation> @@ -44,7 +43,6 @@ <translation id="6322279351188361895">Nie można odczytać klucza prywatnego.</translation> <translation id="6391538222494443604">Katalog wejściowy musi istnieć.</translation> <translation id="641087317769093025">Nie można rozpakować rozszerzenia</translation> -<translation id="6413453408918378296">Ikona „<ph name="ICON" />” nie jest wystarczająco widoczna.</translation> <translation id="6542618148162044354"><ph name="APP_NAME" /> żąda dostępu do co najmniej jednego Twojego urządzenia:</translation> <translation id="657064425229075395">Nie udało się wczytać skryptu działającego w tle „<ph name="BACKGROUND_SCRIPT" />”.</translation> <translation id="6580950983454333167"><ph name="PRODUCT_NAME" /> firmy <ph name="VENDOR_NAME" /> (numer seryjny <ph name="SERIAL_NUMBER" />)</translation>
diff --git a/extensions/strings/extensions_strings_pt-BR.xtb b/extensions/strings/extensions_strings_pt-BR.xtb index 951a2084..bf879dc 100644 --- a/extensions/strings/extensions_strings_pt-BR.xtb +++ b/extensions/strings/extensions_strings_pt-BR.xtb
@@ -7,7 +7,6 @@ <translation id="1420684932347524586">Ops! Falha ao gerar a chave privada RSA aleatória.</translation> <translation id="1445572445564823378">Esta extensão está deixando <ph name="PRODUCT_NAME" /> mais lento. Você deve desativá-lo para restaurar o desempenho de <ph name="PRODUCT_NAME" />.</translation> <translation id="1468038450257740950">O WebGL não é suportado.</translation> -<translation id="149347756975725155">Não foi possível carregar o ícone de extensão "<ph name="ICON" />".</translation> <translation id="1803557475693955505">Não foi possível carregar a página de fundo "<ph name="BACKGROUND_PAGE" />".</translation> <translation id="2159915644201199628">Não foi possível decodificar a imagem: '<ph name="IMAGE_NAME" />'</translation> <translation id="2350172092385603347">Localização utilizada, mas default_locale não foi especificada no manifesto.</translation> @@ -44,7 +43,6 @@ <translation id="6322279351188361895">Falha ao ler a chave privada.</translation> <translation id="6391538222494443604">O diretório de entrada deve existir.</translation> <translation id="641087317769093025">Não foi possível descompactar a extensão</translation> -<translation id="6413453408918378296">O ícone "<ph name="ICON" />" não está suficientemente visível.</translation> <translation id="6542618148162044354">"<ph name="APP_NAME" />" está solicitando acesso a um ou mais dos seus dispositivos:</translation> <translation id="657064425229075395">Não foi possível carregar o script de plano de fundo "<ph name="BACKGROUND_SCRIPT" />".</translation> <translation id="6580950983454333167"><ph name="PRODUCT_NAME" /> de <ph name="VENDOR_NAME" /> (número de série <ph name="SERIAL_NUMBER" />)</translation>
diff --git a/extensions/strings/extensions_strings_pt-PT.xtb b/extensions/strings/extensions_strings_pt-PT.xtb index 39647c4b..994460f 100644 --- a/extensions/strings/extensions_strings_pt-PT.xtb +++ b/extensions/strings/extensions_strings_pt-PT.xtb
@@ -7,7 +7,6 @@ <translation id="1420684932347524586">Ora bolas! Falha ao gerar chave privada RSA aleatória.</translation> <translation id="1445572445564823378">Esta extensão está a tornar o <ph name="PRODUCT_NAME" /> lento. Deve desativá-la para restaurar o desempenho do <ph name="PRODUCT_NAME" />.</translation> <translation id="1468038450257740950">O WebGL não é suportado.</translation> -<translation id="149347756975725155">Não foi possível carregar o ícone de extensão "<ph name="ICON" />".</translation> <translation id="1803557475693955505">Não foi possível carregar a página de fundo "<ph name="BACKGROUND_PAGE" />".</translation> <translation id="2159915644201199628">Não foi possível descodificar a imagem: "<ph name="IMAGE_NAME" />"</translation> <translation id="2350172092385603347">Localização utilizada, mas não foi especificado default_locale no manifesto.</translation> @@ -44,7 +43,6 @@ <translation id="6322279351188361895">Falha ao ler a chave privada.</translation> <translation id="6391538222494443604">O directório de entrada tem de existir.</translation> <translation id="641087317769093025">Não foi possível descomprimir a extensão</translation> -<translation id="6413453408918378296">O ícone "<ph name="ICON" />" não está suficientemente visível.</translation> <translation id="6542618148162044354">"<ph name="APP_NAME" />" está a solicitar acesso a um ou mais dos seus dispositivos:</translation> <translation id="657064425229075395">Não foi possível carregar o script de segundo plano "<ph name="BACKGROUND_SCRIPT" />".</translation> <translation id="6580950983454333167"><ph name="PRODUCT_NAME" /> de <ph name="VENDOR_NAME" /> (número de série <ph name="SERIAL_NUMBER" />)</translation>
diff --git a/extensions/strings/extensions_strings_ro.xtb b/extensions/strings/extensions_strings_ro.xtb index e28a832c..7c74d86 100644 --- a/extensions/strings/extensions_strings_ro.xtb +++ b/extensions/strings/extensions_strings_ro.xtb
@@ -7,7 +7,6 @@ <translation id="1420684932347524586">Hopa! Generarea cheii private RSA aleatorii nu a reușit.</translation> <translation id="1445572445564823378">Această extensie încetinește <ph name="PRODUCT_NAME" />. Vă recomandăm să o dezactivați pentru a restabili performanțele produsului <ph name="PRODUCT_NAME" />.</translation> <translation id="1468038450257740950">WebGL nu este acceptat.</translation> -<translation id="149347756975725155">Nu se poate încărca pictograma „<ph name="ICON" />” a extensiei.</translation> <translation id="1803557475693955505">Nu se poate încărca pagina de fundal „<ph name="BACKGROUND_PAGE" />”.</translation> <translation id="2159915644201199628">Imaginea nu a putut fi decodificată: „<ph name="IMAGE_NAME" />”</translation> <translation id="2350172092385603347">A fost utilizată localizarea, dar nu s-a specificat default_locale în manifest.</translation> @@ -44,7 +43,6 @@ <translation id="6322279351188361895">Cheia privată nu a fost citită.</translation> <translation id="6391538222494443604">Directorul de intrare trebuie să existe.</translation> <translation id="641087317769093025">Extensia nu a putut fi dezarhivată</translation> -<translation id="6413453408918378296">Pictograma nu este suficient de vizibilă „<ph name="ICON" />”.</translation> <translation id="6542618148162044354">„<ph name="APP_NAME" />” solicită accesul la cel puțin unul dintre dispozitivele tale:</translation> <translation id="657064425229075395">Scriptul de fundal „<ph name="BACKGROUND_SCRIPT" />” nu a putut fi încărcat.</translation> <translation id="6580950983454333167"><ph name="PRODUCT_NAME" /> de la <ph name="VENDOR_NAME" /> (număr de serie <ph name="SERIAL_NUMBER" />)</translation>
diff --git a/extensions/strings/extensions_strings_ru.xtb b/extensions/strings/extensions_strings_ru.xtb index 4dbd724..50c3f33 100644 --- a/extensions/strings/extensions_strings_ru.xtb +++ b/extensions/strings/extensions_strings_ru.xtb
@@ -7,7 +7,6 @@ <translation id="1420684932347524586">Не удалось создать случайный закрытый ключ RSA.</translation> <translation id="1445572445564823378">Это расширение замедляет работу <ph name="PRODUCT_NAME" />. Чтобы восстановить нормальную работу <ph name="PRODUCT_NAME" />, отключите его.</translation> <translation id="1468038450257740950">WebGL не поддерживается.</translation> -<translation id="149347756975725155">Не удается загрузить значок расширения "<ph name="ICON" />".</translation> <translation id="1803557475693955505">Не удалось загрузить страницу фона "<ph name="BACKGROUND_PAGE" />".</translation> <translation id="2159915644201199628">Не удалось декодировать изображение: <ph name="IMAGE_NAME" /></translation> <translation id="2350172092385603347">Локализация используется, однако в манифесте не указан атрибут default_locale.</translation> @@ -44,7 +43,6 @@ <translation id="6322279351188361895">Не удалось прочитать закрытый ключ.</translation> <translation id="6391538222494443604">Каталог входа должен существовать.</translation> <translation id="641087317769093025">Не удалось распаковать расширение</translation> -<translation id="6413453408918378296">Значок "<ph name="ICON" />" недостаточно заметен.</translation> <translation id="6542618148162044354">Приложение "<ph name="APP_NAME" />" запрашивает доступ к нескольким устройствам.</translation> <translation id="657064425229075395">Не удалось загрузить фоновый скрипт <ph name="BACKGROUND_SCRIPT" />.</translation> <translation id="6580950983454333167"><ph name="PRODUCT_NAME" />, поставщик: <ph name="VENDOR_NAME" /> (серийный номер: <ph name="SERIAL_NUMBER" />)</translation>
diff --git a/extensions/strings/extensions_strings_si.xtb b/extensions/strings/extensions_strings_si.xtb index 018976d5..7ba490d2 100644 --- a/extensions/strings/extensions_strings_si.xtb +++ b/extensions/strings/extensions_strings_si.xtb
@@ -7,7 +7,6 @@ <translation id="1420684932347524586">චික්! අහඹු RSA පුද්ගලික යතුර සෑදීම අසාර්ථකයි.</translation> <translation id="1445572445564823378">මෙම දිගුව <ph name="PRODUCT_NAME" /> හි වේගය අඩාල කරයි. <ph name="PRODUCT_NAME" /> හි කාර්යක්ෂමතාව සඳහා එය අක්රීය කිරීමට සිදුවේ.</translation> <translation id="1468038450257740950">WebGLට සහාය නොවේ.</translation> -<translation id="149347756975725155">දිගු අයිකනය '<ph name="ICON" />' ප්රවේශනය කළ නොහැකි විය.</translation> <translation id="1803557475693955505">'<ph name="BACKGROUND_PAGE" />' පසුබිම් පිටුව ලබාගත නොහැකි විය.</translation> <translation id="2159915644201199628">අනුරුව විසංකේතනය කළ නොහැකි විය: '<ph name="IMAGE_NAME" />'</translation> <translation id="2350172092385603347">දේශීයකරණය භාවිතා කෙරිණ, නමුත් manifest හි default_locale නීර්ණය කර නොමැත.</translation> @@ -44,7 +43,6 @@ <translation id="6322279351188361895">පුද්ගලික යතුර කියවීම අසාර්ථක විය.</translation> <translation id="6391538222494443604">ආදාන නාමාවලිය පැවතිය යුතුය.</translation> <translation id="641087317769093025">දිගුව දිගහැරිය නොහැක</translation> -<translation id="6413453408918378296">නිරූපකය ප්රමාණවත්ව දෘශ්යමාන නොවේ '<ph name="ICON" />'.</translation> <translation id="6542618148162044354">"<ph name="APP_NAME" />" ඔබේ උපාංගවලින් එකකට හෝ කිහිපයකට ප්රවේශය ඉල්ලයි:</translation> <translation id="657064425229075395">'<ph name="BACKGROUND_SCRIPT" />' පසුබිම් ස්ක්රිප්ටය පූර්ණය කළ නොහැක.</translation> <translation id="6580950983454333167"><ph name="VENDOR_NAME" /> ගේ <ph name="PRODUCT_NAME" />නිශ්පාදනය (ඛන්ඩාංකය <ph name="SERIAL_NUMBER" />)</translation>
diff --git a/extensions/strings/extensions_strings_sk.xtb b/extensions/strings/extensions_strings_sk.xtb index b76df62e75b..af7654e 100644 --- a/extensions/strings/extensions_strings_sk.xtb +++ b/extensions/strings/extensions_strings_sk.xtb
@@ -7,7 +7,6 @@ <translation id="1420684932347524586">Generovanie náhodného súkromného kľúča RSA žiaľ zlyhalo.</translation> <translation id="1445572445564823378">Toto rozšírenie spomaľuje prehliadač <ph name="PRODUCT_NAME" />. Ak chcete obnoviť výkonnosť prehliadača <ph name="PRODUCT_NAME" />, zakážte ho.</translation> <translation id="1468038450257740950">Rozhranie WebGL nie je podporované.</translation> -<translation id="149347756975725155">Nepodarilo sa načítať ikonu rozšírenia „<ph name="ICON" />“.</translation> <translation id="1803557475693955505">Nepodarilo sa načítať stránku na pozadí „<ph name="BACKGROUND_PAGE" />“.</translation> <translation id="2159915644201199628">Nepodarilo sa dekódovať obrázok: <ph name="IMAGE_NAME" /></translation> <translation id="2350172092385603347">Lokalizácia sa použila, parameter default_locale však nebol v manifeste určený.</translation> @@ -44,7 +43,6 @@ <translation id="6322279351188361895">Prečítanie súkromného kľúča zlyhalo.</translation> <translation id="6391538222494443604">Vstupný adresár musí existovať.</translation> <translation id="641087317769093025">Rozšírenie sa nepodarilo rozbaliť</translation> -<translation id="6413453408918378296">Ikona <ph name="ICON" /> nie je dostatočne viditeľná.</translation> <translation id="6542618148162044354">Aplikácia <ph name="APP_NAME" /> žiada o prístup k jednému alebo viacerým vašim zariadeniam:</translation> <translation id="657064425229075395">Nepodarilo sa načítať skript na pozadí „<ph name="BACKGROUND_SCRIPT" />“.</translation> <translation id="6580950983454333167"><ph name="PRODUCT_NAME" /> od dodávateľa <ph name="VENDOR_NAME" /> (sériové číslo <ph name="SERIAL_NUMBER" />)</translation>
diff --git a/extensions/strings/extensions_strings_sl.xtb b/extensions/strings/extensions_strings_sl.xtb index 27327924..1277fb5 100644 --- a/extensions/strings/extensions_strings_sl.xtb +++ b/extensions/strings/extensions_strings_sl.xtb
@@ -7,7 +7,6 @@ <translation id="1420684932347524586">Ups! Ni bilo mogoče generirati naključnega zasebnega ključa RSA.</translation> <translation id="1445572445564823378">Ta razširitev upočasnjuje <ph name="PRODUCT_NAME" />. Onemogočite jo, če želite obnoviti delovanje storitve <ph name="PRODUCT_NAME" />.</translation> <translation id="1468038450257740950">WebGL ni podprt.</translation> -<translation id="149347756975725155">Ikone razširitve »<ph name="ICON" />« ni bilo mogoče naložiti.</translation> <translation id="1803557475693955505">Strani za ozadje »<ph name="BACKGROUND_PAGE" />« ni bilo mogoče naložiti.</translation> <translation id="2159915644201199628">Slike ni bilo mogoče dekodirati: »<ph name="IMAGE_NAME" />«</translation> <translation id="2350172092385603347">Uporabljena je bila lokalizacija, vendar v manifestu ni bil naveden parameter default_locale.</translation> @@ -44,7 +43,6 @@ <translation id="6322279351188361895">Zasebnega ključa ni bilo mogoče prebrati.</translation> <translation id="6391538222494443604">Obstajati mora imenik vnosa.</translation> <translation id="641087317769093025">Razširitve ni bilo mogoče odpakirati</translation> -<translation id="6413453408918378296">Ikona ni dovolj vidna »<ph name="ICON" />«.</translation> <translation id="6542618148162044354">Aplikacija »<ph name="APP_NAME" />« zahteva dostop do ene ali več vaših naprav:</translation> <translation id="657064425229075395">Skripta za ozadje »<ph name="BACKGROUND_SCRIPT" />« ni bilo mogoče naložiti.</translation> <translation id="6580950983454333167"><ph name="PRODUCT_NAME" /> proizvajalca <ph name="VENDOR_NAME" /> (serijska številka <ph name="SERIAL_NUMBER" />)</translation>
diff --git a/extensions/strings/extensions_strings_sq.xtb b/extensions/strings/extensions_strings_sq.xtb index 89d2df8..1aa1f824 100644 --- a/extensions/strings/extensions_strings_sq.xtb +++ b/extensions/strings/extensions_strings_sq.xtb
@@ -7,7 +7,6 @@ <translation id="1420684932347524586">Gabim! Krijimi i çelësin privat të rastësishëm RSA dështoi.</translation> <translation id="1445572445564823378">Kjo shtesë po e ngadalëson <ph name="PRODUCT_NAME" />. Duhet ta çaktivizosh për të restauruar cilësinë e funksionimit të <ph name="PRODUCT_NAME" />.</translation> <translation id="1468038450257740950">WebGL nuk mbështetet.</translation> -<translation id="149347756975725155">Nuk mundi të ngarkonte ikonën e shtesës "<ph name="ICON" />".</translation> <translation id="1803557475693955505">Faqja e sfondit "<ph name="BACKGROUND_PAGE" />" nuk mund të ngarkohej.</translation> <translation id="2159915644201199628">Nuk mund të dekodohet imazhi: "<ph name="IMAGE_NAME" />"</translation> <translation id="2350172092385603347">U përdor lokalizimi, por gjuha default_locale nuk ishte e specifikuar në manifest.</translation> @@ -44,7 +43,6 @@ <translation id="6322279351188361895">Dështoi në leximin e çelësit privat.</translation> <translation id="6391538222494443604">Duhet të ekzistojë një direktori e hyrjes.</translation> <translation id="641087317769093025">Nuk mundi të shpaketonte shtesën</translation> -<translation id="6413453408918378296">Ikona nuk është mjaft e dukshme "<ph name="ICON" />".</translation> <translation id="6542618148162044354">"<ph name="APP_NAME" />" po kërkon qasje te një ose më shumë nga pajisjet e tua:</translation> <translation id="657064425229075395">Nuk mund ta ngarkojë skriptin e sfondit "<ph name="BACKGROUND_SCRIPT" />".</translation> <translation id="6580950983454333167"><ph name="PRODUCT_NAME" /> nga <ph name="VENDOR_NAME" /> (numri i serisë <ph name="SERIAL_NUMBER" />)</translation>
diff --git a/extensions/strings/extensions_strings_sr.xtb b/extensions/strings/extensions_strings_sr.xtb index 45f6847..5772d19 100644 --- a/extensions/strings/extensions_strings_sr.xtb +++ b/extensions/strings/extensions_strings_sr.xtb
@@ -7,7 +7,6 @@ <translation id="1420684932347524586">Генерисање насумичног RSA приватног кључа није успело.</translation> <translation id="1445572445564823378">Овај додатак успорава <ph name="PRODUCT_NAME" />. Требало би да га онемогућите да би се учинак производа <ph name="PRODUCT_NAME" /> вратио.</translation> <translation id="1468038450257740950">WebGL није подржан.</translation> -<translation id="149347756975725155">Није могуће учитати икону додатка „<ph name="ICON" />“.</translation> <translation id="1803557475693955505">Није могуће учитати страницу у позадини „<ph name="BACKGROUND_PAGE" />“.</translation> <translation id="2159915644201199628">Није могуће декодирати слику: „<ph name="IMAGE_NAME" />“</translation> <translation id="2350172092385603347">Коришћена је локализација, али параметар default_locale није наведен у манифесту.</translation> @@ -44,7 +43,6 @@ <translation id="6322279351188361895">Читање приватног кључа није успело.</translation> <translation id="6391538222494443604">Улазни каталог мора да постоји.</translation> <translation id="641087317769093025">Није могуће распаковати додатак</translation> -<translation id="6413453408918378296">Икона „<ph name="ICON" />“ није довољно видљива.</translation> <translation id="6542618148162044354">„<ph name="APP_NAME" />“ захтева приступ једном или више уређаја:</translation> <translation id="657064425229075395">Није могуће учитати скрипту у позадини „<ph name="BACKGROUND_SCRIPT" />“.</translation> <translation id="6580950983454333167"><ph name="PRODUCT_NAME" /> продавца <ph name="VENDOR_NAME" /> (серијски број <ph name="SERIAL_NUMBER" />)</translation>
diff --git a/extensions/strings/extensions_strings_sv.xtb b/extensions/strings/extensions_strings_sv.xtb index bb5929f8..b2bbf52 100644 --- a/extensions/strings/extensions_strings_sv.xtb +++ b/extensions/strings/extensions_strings_sv.xtb
@@ -7,7 +7,6 @@ <translation id="1420684932347524586">Oj! Det gick inte att generera en slumpmässig privat RSA-nyckel.</translation> <translation id="1445572445564823378">Detta tillägg gör <ph name="PRODUCT_NAME" /> långsammare. Om du vill utnyttja den fulla prestandan i <ph name="PRODUCT_NAME" /> bör du inaktivera tillägget.</translation> <translation id="1468038450257740950">WebGL stöds inte.</translation> -<translation id="149347756975725155">Det gick inte att läsa in tilläggsikonen <ph name="ICON" />.</translation> <translation id="1803557475693955505">Det gick inte att läsa in bakgrundssidan <ph name="BACKGROUND_PAGE" />.</translation> <translation id="2159915644201199628">Det gick inte att avkoda bilden: <ph name="IMAGE_NAME" /></translation> <translation id="2350172092385603347">Lokalisering används, men default_locale specificeras inte i manifestet.</translation> @@ -44,7 +43,6 @@ <translation id="6322279351188361895">Det gick inte att läsa den privata nyckeln.</translation> <translation id="6391538222494443604">Indatakatalog måste finnas.</translation> <translation id="641087317769093025">Det gick inte att packa upp tillägget</translation> -<translation id="6413453408918378296">Ikonen syns inte tillräckligt <ph name="ICON" />.</translation> <translation id="6542618148162044354"><ph name="APP_NAME" /> begär åtkomst till en eller flera av dina enheter:</translation> <translation id="657064425229075395">Det gick inte att läsa in bakgrundsskriptet <ph name="BACKGROUND_SCRIPT" />.</translation> <translation id="6580950983454333167"><ph name="PRODUCT_NAME" /> från <ph name="VENDOR_NAME" /> (serienummer <ph name="SERIAL_NUMBER" />)</translation>
diff --git a/extensions/strings/extensions_strings_sw.xtb b/extensions/strings/extensions_strings_sw.xtb index c144c681..b2ddd49 100644 --- a/extensions/strings/extensions_strings_sw.xtb +++ b/extensions/strings/extensions_strings_sw.xtb
@@ -7,7 +7,6 @@ <translation id="1420684932347524586">Lo! Imeshindwa kuzindua ufunguo binafsi wa RSA usio na utaratibu.</translation> <translation id="1445572445564823378">Kiendelezi hiki kinapunguza kasi ya <ph name="PRODUCT_NAME" />. Unafa kukilemaza ili kurejesha upya utendaji wa <ph name="PRODUCT_NAME" />.</translation> <translation id="1468038450257740950">WebGL haihimiliwi.</translation> -<translation id="149347756975725155">Aikoni '<ph name="ICON" />' ya kiendelezi haikuweza kupakiwa.</translation> <translation id="1803557475693955505">Ukurasa wa mandhari '<ph name="BACKGROUND_PAGE" />' haukuweza kupakiwa.</translation> <translation id="2159915644201199628">Isingeweza kusimbua picha: '<ph name="IMAGE_NAME" />'</translation> <translation id="2350172092385603347">Usanidi wa eneo umetumiwa, lakini eneo_chaguo-msingi halikubainishwa katika ratiba</translation> @@ -44,7 +43,6 @@ <translation id="6322279351188361895">Imeshindwa kusoma ufunguo wa kibinafsi</translation> <translation id="6391538222494443604">Lazima kuwe na saraka ya uingizaji.</translation> <translation id="641087317769093025">Isingeweza kufungua kiendelezi</translation> -<translation id="6413453408918378296">Aikoni haionekani vizuri '<ph name="ICON" />'.</translation> <translation id="6542618148162044354">"<ph name="APP_NAME" />" inaomba idhini ya kufikia kifaa chako kimoja au vingi:</translation> <translation id="657064425229075395">Haikuweza kupakia hati ya mandharinyuma '<ph name="BACKGROUND_SCRIPT" />'.</translation> <translation id="6580950983454333167"><ph name="PRODUCT_NAME" /> kutoka kwa <ph name="VENDOR_NAME" /> (nambari ya ufuatiliaji <ph name="SERIAL_NUMBER" />)</translation>
diff --git a/extensions/strings/extensions_strings_ta.xtb b/extensions/strings/extensions_strings_ta.xtb index cb4cbe2..e31fa69 100644 --- a/extensions/strings/extensions_strings_ta.xtb +++ b/extensions/strings/extensions_strings_ta.xtb
@@ -8,7 +8,6 @@ <translation id="1445572445564823378">இந்த நீட்டிப்பு, <ph name="PRODUCT_NAME" /> ஐ மந்தமாக்குகிறது. <ph name="PRODUCT_NAME" /> இன் செயல்திறனை மீட்டமைக்க, இதை நீங்கள் முடக்க வேண்டும்.</translation> <translation id="1468038450257740950">WebGL ஆனது ஆதரவளிக்கப்படவில்லை.</translation> -<translation id="149347756975725155">நீட்டிப்புப் படவுரு '<ph name="ICON" />' ஐ ஏற்ற முடியவில்லை.</translation> <translation id="1803557475693955505">'<ph name="BACKGROUND_PAGE" />' என்ற பின்புலப் பக்கத்தை ஏற்ற முடியவில்லை.</translation> <translation id="2159915644201199628">இந்தப் படத்தை குறிநீக்க முடியவில்லை: '<ph name="IMAGE_NAME" />'</translation> <translation id="2350172092385603347">மொழிபெயர்ப்பு பயன்படுத்தப்பட்டது, ஆனால் மெனிபெஃஸ்ட்டில் default_locale குறிப்பிடப்படவில்லை.</translation> @@ -45,7 +44,6 @@ <translation id="6322279351188361895">தனிப்பட்ட விசையைப் படிப்பதில் தோல்வியடைந்தது.</translation> <translation id="6391538222494443604">உள்ளீட்டுக் கோப்பகம் இருப்பது அவசியம்.</translation> <translation id="641087317769093025">நீட்டிப்பின் ஜிப்பை திறக்க முடியவில்லை</translation> -<translation id="6413453408918378296">ஐகான் போதுமானளவு தெரியவில்லை '<ph name="ICON" />'.</translation> <translation id="6542618148162044354">"<ph name="APP_NAME" />" உங்கள் சாதனங்களில் ஒன்று அல்லது அதற்கு மேற்பட்டவற்றுக்கு அணுகலைக் கோருகிறது:</translation> <translation id="657064425229075395">'<ph name="BACKGROUND_SCRIPT" />' என்ற பின்புல ஸ்கிரிப்டை ஏற்ற முடியவில்லை.</translation> <translation id="6580950983454333167"><ph name="VENDOR_NAME" /> இடமிருந்து <ph name="PRODUCT_NAME" /> (வரிசை எண் <ph name="SERIAL_NUMBER" />)</translation>
diff --git a/extensions/strings/extensions_strings_te.xtb b/extensions/strings/extensions_strings_te.xtb index 5fec00d1..644f502 100644 --- a/extensions/strings/extensions_strings_te.xtb +++ b/extensions/strings/extensions_strings_te.xtb
@@ -7,7 +7,6 @@ <translation id="1420684932347524586">అరె! RSA ప్రైవేట్ కీని రాండమ్గా రూపొందించడంలో విఫలమైంది.</translation> <translation id="1445572445564823378">ఈ ఎక్స్టెన్షన్ <ph name="PRODUCT_NAME" />ను మందగింప చేస్తోంది. <ph name="PRODUCT_NAME" /> యొక్క పనితీరును పునరుద్ధరించడానికి మీరు దీన్ని నిలిపివేయాలి.</translation> <translation id="1468038450257740950">WebGLకి మద్దతు లేదు.</translation> -<translation id="149347756975725155">'<ph name="ICON" />' ఎక్స్టెన్షన్ చిహ్నాన్ని లోడ్ చేయడం సాధ్యపడలేదు.</translation> <translation id="1803557475693955505">నేపథ్య పేజీ '<ph name="BACKGROUND_PAGE" />'ను లోడ్ చేయడం సాధ్యపడలేదు.</translation> <translation id="2159915644201199628">ఈ చిత్రం డీకోడ్ చేయబడదు: '<ph name="IMAGE_NAME" />'</translation> <translation id="2350172092385603347">స్థానికీకరణ ఉపయోగించబడుతుంది, అయితే మానిఫెస్ట్లో default_localeను పేర్కొనలేదు.</translation> @@ -44,7 +43,6 @@ <translation id="6322279351188361895">ప్రైవేట్ కీని చదవడంలో విఫలమైంది.</translation> <translation id="6391538222494443604">ఇన్పుట్ డైరెక్టరీ తప్పనిసరిగా ఉనికిలో ఉండాలి.</translation> <translation id="641087317769093025">పొడిగింపు అన్జిప్ చేయబడదు</translation> -<translation id="6413453408918378296">చిహ్నం తగినంత బాగా కనిపించడం లేదు '<ph name="ICON" />'.</translation> <translation id="6542618148162044354">"<ph name="APP_NAME" />" మీ ఒకటి లేదా అంతకంటే ఎక్కువ పరికరాలకు యాక్సెస్ను అభ్యర్థిస్తోంది:</translation> <translation id="657064425229075395">'<ph name="BACKGROUND_SCRIPT" />' నేపథ్య స్క్రిప్ట్ను లోడ్ చేయడం సాధ్యం కాలేదు.</translation> <translation id="6580950983454333167"><ph name="VENDOR_NAME" /> నుండి <ph name="PRODUCT_NAME" /> (క్రమ సంఖ్య <ph name="SERIAL_NUMBER" />)</translation>
diff --git a/extensions/strings/extensions_strings_th.xtb b/extensions/strings/extensions_strings_th.xtb index 63fcfe9..18e4f38 100644 --- a/extensions/strings/extensions_strings_th.xtb +++ b/extensions/strings/extensions_strings_th.xtb
@@ -7,7 +7,6 @@ <translation id="1420684932347524586">อ้าว! ไม่สามารถสร้างคีย์ส่วนตัว RSA แบบสุ่มได้</translation> <translation id="1445572445564823378">ส่วนขยายนี้จะทำให้ <ph name="PRODUCT_NAME" /> ทำงานช้าลง คุณควรปิดใช้งานส่วนขยายเพื่อให้ประสิทธิภาพการทำงานของ <ph name="PRODUCT_NAME" /> กลับมาเป็นปกติ</translation> <translation id="1468038450257740950">WebGL ไม่ไ้ด้รับการสนับสนุน</translation> -<translation id="149347756975725155">ไม่สามารถโหลดไอคอนส่วนขยาย "<ph name="ICON" />"</translation> <translation id="1803557475693955505">ไม่สามารถโหลดหน้าพื้นหลัง "<ph name="BACKGROUND_PAGE" />"</translation> <translation id="2159915644201199628">ไม่สามารถถอดรหัสภาพ: '<ph name="IMAGE_NAME" />'</translation> <translation id="2350172092385603347">ใช้การแปลภาษาท้องถิ่นแล้ว แต่ไม่ได้ระบุ default_locale ในมานิเฟสต์</translation> @@ -44,7 +43,6 @@ <translation id="6322279351188361895">ไม่สามารถอ่านคีย์ส่วนตัว</translation> <translation id="6391538222494443604">ไดเรกทอรีที่ป้อนต้องมีอยู่จริง</translation> <translation id="641087317769093025">ไม่สามารถแตกไฟล์ซิปส่วนขยาย</translation> -<translation id="6413453408918378296">ไอคอน "<ph name="ICON" />" ไม่ค่อยชัดเจน</translation> <translation id="6542618148162044354">"<ph name="APP_NAME" />" ขอสิทธิ์ในการเข้าถึงอุปกรณ์ของคุณอย่างน้อย 1 เครื่อง:</translation> <translation id="657064425229075395">ไม่สามารถโหลดสคริปต์พื้นหลัง "<ph name="BACKGROUND_SCRIPT" />"</translation> <translation id="6580950983454333167"><ph name="PRODUCT_NAME" /> จาก <ph name="VENDOR_NAME" /> (หมายเลขซีเรียล <ph name="SERIAL_NUMBER" />)</translation>
diff --git a/extensions/strings/extensions_strings_tr.xtb b/extensions/strings/extensions_strings_tr.xtb index 7653498..67bc0e2 100644 --- a/extensions/strings/extensions_strings_tr.xtb +++ b/extensions/strings/extensions_strings_tr.xtb
@@ -7,7 +7,6 @@ <translation id="1420684932347524586">Hata! Rastgele RSA özel anahtarı oluşturulamadı.</translation> <translation id="1445572445564823378">Bu uzantı <ph name="PRODUCT_NAME" /> uygulamasını yavaşlatıyor. <ph name="PRODUCT_NAME" /> uygulamasının performansını eski haline getirmek için bu uzantıyı devre dışı bırakmalısınız.</translation> <translation id="1468038450257740950">WebGL desteklenmez.</translation> -<translation id="149347756975725155">'<ph name="ICON" />' uzantı simgesi yüklenemedi.</translation> <translation id="1803557475693955505">'<ph name="BACKGROUND_PAGE" />' arka plan sayfası yüklenemedi.</translation> <translation id="2159915644201199628">Resmin kodu çözülemedi: '<ph name="IMAGE_NAME" />'</translation> <translation id="2350172092385603347">Yerelleştirme kullanıldı, ancak bildiride default_locale belirtilmedi.</translation> @@ -44,7 +43,6 @@ <translation id="6322279351188361895">Özel anahtar okunamadı.</translation> <translation id="6391538222494443604">Giriş dizininin olması gerekir.</translation> <translation id="641087317769093025">Uzantı açılamadı</translation> -<translation id="6413453408918378296">Simge yeterince görünür değil "<ph name="ICON" />".</translation> <translation id="6542618148162044354">"<ph name="APP_NAME" />" uygulaması cihazlarınızdan birine veya birkaçına erişim izni istiyor:</translation> <translation id="657064425229075395">Arka plan komut dosyası '<ph name="BACKGROUND_SCRIPT" />' yüklenemedi.</translation> <translation id="6580950983454333167">Ürün: <ph name="PRODUCT_NAME" />, Firma: <ph name="VENDOR_NAME" /> (seri numarası: <ph name="SERIAL_NUMBER" />)</translation>
diff --git a/extensions/strings/extensions_strings_uk.xtb b/extensions/strings/extensions_strings_uk.xtb index 8bbd1d8..2af8ce9 100644 --- a/extensions/strings/extensions_strings_uk.xtb +++ b/extensions/strings/extensions_strings_uk.xtb
@@ -7,7 +7,6 @@ <translation id="1420684932347524586">Не вдалося згенерувати випадковий секретний ключ RSA.</translation> <translation id="1445572445564823378">Це розширення сповільнює <ph name="PRODUCT_NAME" />. Щоб відновити ефективність <ph name="PRODUCT_NAME" />, потрібно його вимкнути.</translation> <translation id="1468038450257740950">WebGL не підтримується.</translation> -<translation id="149347756975725155">Не вдалося завантажити піктограму розширення "<ph name="ICON" />".</translation> <translation id="1803557475693955505">Не вдалося завантажити фонову сторінку "<ph name="BACKGROUND_PAGE" />".</translation> <translation id="2159915644201199628">Не вдалося декодувати зображення: "<ph name="IMAGE_NAME" />"</translation> <translation id="2350172092385603347">Використано локалізацію, але параметр мови за умовчанням (default_locale) не визначено в маніфесті.</translation> @@ -44,7 +43,6 @@ <translation id="6322279351188361895">Не вдалося розпізнати секретний ключ.</translation> <translation id="6391538222494443604">Має бути каталог введення.</translation> <translation id="641087317769093025">Не вдалося розпакувати розширення</translation> -<translation id="6413453408918378296">Значок недостатньо видимий: "<ph name="ICON" />".</translation> <translation id="6542618148162044354"><ph name="APP_NAME" /> просить надати доступ до одного або кількох ваших пристроїв:</translation> <translation id="657064425229075395">Не вдалося завантажити фоновий сценарій "<ph name="BACKGROUND_SCRIPT" />".</translation> <translation id="6580950983454333167"><ph name="PRODUCT_NAME" /> від постачальника <ph name="VENDOR_NAME" /> (серійний номер <ph name="SERIAL_NUMBER" />)</translation>
diff --git a/extensions/strings/extensions_strings_ur.xtb b/extensions/strings/extensions_strings_ur.xtb index 03348ed..19191a2 100644 --- a/extensions/strings/extensions_strings_ur.xtb +++ b/extensions/strings/extensions_strings_ur.xtb
@@ -7,7 +7,6 @@ <translation id="1420684932347524586">اوہ! بے ترتیب RSA کی نجی کلید بنانے میں ناکام ہوگیا۔</translation> <translation id="1445572445564823378">یہ ایکسٹینشن <ph name="PRODUCT_NAME" /> کو سست کر رہی ہے۔ <ph name="PRODUCT_NAME" /> کی کارکردگی کو بحال کرنے کیلئے آپ کو اسے غیر فعال کر دینا چاہیے۔</translation> <translation id="1468038450257740950">WebGL تعاون یافتہ نہیں ہے۔</translation> -<translation id="149347756975725155">ایکسٹینشن آئیکن '<ph name="ICON" />' کو لوڈ نہیں کیا جا سکا۔</translation> <translation id="1803557475693955505">پس منظر کا صفحہ '<ph name="BACKGROUND_PAGE" />' لوڈ نہں کیا جا سکا۔</translation> <translation id="2159915644201199628">تصویر کو ڈیکوڈ نہیں کیا جا سکا: '<ph name="IMAGE_NAME" />'</translation> <translation id="2350172092385603347">لوکلائزیشن کا استعمال کیا گیا، لیکن مینی فیسٹ میں default_locale کی وضاحت نہیں کی گئی۔</translation> @@ -44,7 +43,6 @@ <translation id="6322279351188361895">نجی کلید کو پڑھنے میں ناکام۔</translation> <translation id="6391538222494443604">ان پٹ ڈائرکٹری موجود ہونا ضروری ہے۔</translation> <translation id="641087317769093025">ایکسٹینشن کو زپ سے نہیں نکالا نہیں جا سکا</translation> -<translation id="6413453408918378296">یہ آئیکن واضع طور پر نظر نہیں آ رہا ہے '<ph name="ICON" />'۔</translation> <translation id="6542618148162044354">"<ph name="APP_NAME" />" آپ کے آلات میں سے ایک یا زائد تک رسائی طلب کر رہی ہے:</translation> <translation id="657064425229075395">پس منظر کی اسکرپٹ '<ph name="BACKGROUND_SCRIPT" />' لوڈ نہیں کی جا سکی۔</translation> <translation id="6580950983454333167"><ph name="PRODUCT_NAME" /> منجانب <ph name="VENDOR_NAME" /> (نمبر شمار <ph name="SERIAL_NUMBER" />)</translation>
diff --git a/extensions/strings/extensions_strings_uz.xtb b/extensions/strings/extensions_strings_uz.xtb index 91cec65be..2f6f77cf 100644 --- a/extensions/strings/extensions_strings_uz.xtb +++ b/extensions/strings/extensions_strings_uz.xtb
@@ -7,7 +7,6 @@ <translation id="1420684932347524586">Obbo! Tasodifiy RSA xususiy kalitini tuzib bo‘lmadi.</translation> <translation id="1445572445564823378">Bu kengaytma <ph name="PRODUCT_NAME" />’ni sekinlashtirmoqda. <ph name="PRODUCT_NAME" /> samarali ishlashi uchun kengaytmani o‘chirib qo‘yishingiz lozim.</translation> <translation id="1468038450257740950">WebGL qo‘llab-quvvatlanmaydi.</translation> -<translation id="149347756975725155">“<ph name="ICON" />” kengaytmasi ikonkasini yuklab bo‘lmadi.</translation> <translation id="1803557475693955505">“<ph name="BACKGROUND_PAGE" />” orqa fon sahifasini yuklab bo‘lmadi.</translation> <translation id="2159915644201199628">Tasvirni dekodlab bo‘lmadi: “<ph name="IMAGE_NAME" />”</translation> <translation id="2350172092385603347">Mahalliylashtirish qo‘llanilmoqda, lekin manifest faylida “default_locale” qiymati belgilanmagan.</translation> @@ -44,7 +43,6 @@ <translation id="6322279351188361895">Yopiq kalitni o‘qib bo‘lmadi.</translation> <translation id="6391538222494443604">Joylashtiriladigan katalog mavjud bo‘lishi kerak.</translation> <translation id="641087317769093025">Kengaytmani arxivdan chiqarib bo‘lmadi</translation> -<translation id="6413453408918378296">“<ph name="ICON" />” ikonkasi yetarlicha aks etmayapti.</translation> <translation id="6542618148162044354">“<ph name="APP_NAME" />” ilovasi bir yoki bir nechta qurilmaga ruxsat so‘ramoqda:</translation> <translation id="657064425229075395">“<ph name="BACKGROUND_SCRIPT" />” orqa fon skriptini yuklab bo‘lmadi.</translation> <translation id="6580950983454333167"><ph name="PRODUCT_NAME" />, ta’minotchi: <ph name="VENDOR_NAME" /> (seriya raqami: <ph name="SERIAL_NUMBER" />)</translation>
diff --git a/extensions/strings/extensions_strings_vi.xtb b/extensions/strings/extensions_strings_vi.xtb index 497b5da..5bf61b5c 100644 --- a/extensions/strings/extensions_strings_vi.xtb +++ b/extensions/strings/extensions_strings_vi.xtb
@@ -7,7 +7,6 @@ <translation id="1420684932347524586">Rất tiếc! Không thể tạo khóa cá nhân RSA ngẫu nhiên.</translation> <translation id="1445572445564823378">Tiện ích này đang làm chậm <ph name="PRODUCT_NAME" />. Bạn phải tắt tiện ích để khôi phục hiệu suất của <ph name="PRODUCT_NAME" />.</translation> <translation id="1468038450257740950">WebGL không được hỗ trợ.</translation> -<translation id="149347756975725155">Không thể tải biểu tượng tiện ích '<ph name="ICON" />'.</translation> <translation id="1803557475693955505">Không thể tải trang nền '<ph name="BACKGROUND_PAGE" />'.</translation> <translation id="2159915644201199628">Không thể giải mã hình ảnh: '<ph name="IMAGE_NAME" />'</translation> <translation id="2350172092385603347">Sử dụng bản địa hóa nhưng không chỉ định default_locale trong tệp kê khai.</translation> @@ -44,7 +43,6 @@ <translation id="6322279351188361895">Không thể đọc khóa cá nhân.</translation> <translation id="6391538222494443604">Thư mục dữ liệu nhập phải tồn tại.</translation> <translation id="641087317769093025">Không thể giải nén tiện ích</translation> -<translation id="6413453408918378296">Biểu tượng này không phải là '<ph name="ICON" />' hiển thị đầy đủ.</translation> <translation id="6542618148162044354">"<ph name="APP_NAME" />" đang yêu cầu quyền truy cập vào một hoặc nhiều thiết bị của bạn:</translation> <translation id="657064425229075395">Không thể tải tập lệnh nền '<ph name="BACKGROUND_SCRIPT" />'.</translation> <translation id="6580950983454333167"><ph name="PRODUCT_NAME" /> của <ph name="VENDOR_NAME" /> (số sê-ri <ph name="SERIAL_NUMBER" />)</translation>
diff --git a/extensions/strings/extensions_strings_zh-CN.xtb b/extensions/strings/extensions_strings_zh-CN.xtb index 0fe7109..588fbae 100644 --- a/extensions/strings/extensions_strings_zh-CN.xtb +++ b/extensions/strings/extensions_strings_zh-CN.xtb
@@ -7,7 +7,6 @@ <translation id="1420684932347524586">糟糕!无法生成随机的 RSA 私有密钥。</translation> <translation id="1445572445564823378">此扩展程序拖慢了 <ph name="PRODUCT_NAME" />的运行速度。您应将其停用,以恢复 <ph name="PRODUCT_NAME" />的性能。</translation> <translation id="1468038450257740950">WebGL 不受支持。</translation> -<translation id="149347756975725155">无法加载扩展程序图标“<ph name="ICON" />”。</translation> <translation id="1803557475693955505">无法加载背景页“<ph name="BACKGROUND_PAGE" />”。</translation> <translation id="2159915644201199628">无法对图片解码:“<ph name="IMAGE_NAME" />”</translation> <translation id="2350172092385603347">已使用本地化功能,但未在清单中指定 default_locale。</translation> @@ -44,7 +43,6 @@ <translation id="6322279351188361895">无法读取私有密钥。</translation> <translation id="6391538222494443604">必须存在输入目录。</translation> <translation id="641087317769093025">无法解压缩扩展程序</translation> -<translation id="6413453408918378296"><ph name="ICON" /> 图标不够明显。</translation> <translation id="6542618148162044354">“<ph name="APP_NAME" />”请求访问您的一台或多台设备:</translation> <translation id="657064425229075395">无法加载背景脚本“<ph name="BACKGROUND_SCRIPT" />”。</translation> <translation id="6580950983454333167"><ph name="VENDOR_NAME" />提供的<ph name="PRODUCT_NAME" />(序列号:<ph name="SERIAL_NUMBER" />)</translation>
diff --git a/extensions/strings/extensions_strings_zh-HK.xtb b/extensions/strings/extensions_strings_zh-HK.xtb index 3b02a44..ccbc24b8 100644 --- a/extensions/strings/extensions_strings_zh-HK.xtb +++ b/extensions/strings/extensions_strings_zh-HK.xtb
@@ -7,7 +7,6 @@ <translation id="1420684932347524586">糟糕!產生隨機 RSA 私密金鑰失敗。</translation> <translation id="1445572445564823378">這個擴充功能使 <ph name="PRODUCT_NAME" /> 運作變慢。建議您停用這個擴充功能,以恢復 <ph name="PRODUCT_NAME" /> 的效能。</translation> <translation id="1468038450257740950">系統不支援 WebGL。</translation> -<translation id="149347756975725155">無法載入擴充功能圖示「<ph name="ICON" />」。</translation> <translation id="1803557475693955505">無法載入背景頁面「<ph name="BACKGROUND_PAGE" />」。</translation> <translation id="2159915644201199628">無法將圖片解碼:「<ph name="IMAGE_NAME" />」</translation> <translation id="2350172092385603347">已使用語言代碼,但是仍未在資訊清單中指定 default_locale。</translation> @@ -44,7 +43,6 @@ <translation id="6322279351188361895">讀取私密金鑰失敗。</translation> <translation id="6391538222494443604">輸入項目目錄必須存在。</translation> <translation id="641087317769093025">無法將擴充功能解壓縮</translation> -<translation id="6413453408918378296">圖示 <ph name="ICON" /> 不夠明顯。</translation> <translation id="6542618148162044354">「<ph name="APP_NAME" />」要求存取您一部或多部裝置:</translation> <translation id="657064425229075395">無法載入背景指令碼「<ph name="BACKGROUND_SCRIPT" />」。</translation> <translation id="6580950983454333167"><ph name="VENDOR_NAME" /> 的 <ph name="PRODUCT_NAME" /> (序號:<ph name="SERIAL_NUMBER" />)</translation>
diff --git a/extensions/strings/extensions_strings_zh-TW.xtb b/extensions/strings/extensions_strings_zh-TW.xtb index eb81f92..c29922f 100644 --- a/extensions/strings/extensions_strings_zh-TW.xtb +++ b/extensions/strings/extensions_strings_zh-TW.xtb
@@ -7,7 +7,6 @@ <translation id="1420684932347524586">哎呀!產生隨機 RSA 私密金鑰失敗。</translation> <translation id="1445572445564823378">這個擴充功能使得 <ph name="PRODUCT_NAME" /> 運作變慢。建議你停用這個擴充功能,以恢復 <ph name="PRODUCT_NAME" /> 的效能。</translation> <translation id="1468038450257740950">系統不支援 WebGL。</translation> -<translation id="149347756975725155">無法載入擴充功能圖示「<ph name="ICON" />」。</translation> <translation id="1803557475693955505">無法載入背景頁面「<ph name="BACKGROUND_PAGE" />」。</translation> <translation id="2159915644201199628">無法將圖片解碼:「<ph name="IMAGE_NAME" />」</translation> <translation id="2350172092385603347">已使用語言代碼,但是仍未在資訊清單中指定 default_locale。</translation> @@ -44,7 +43,6 @@ <translation id="6322279351188361895">讀取私密金鑰失敗。</translation> <translation id="6391538222494443604">輸入項目目錄必須存在</translation> <translation id="641087317769093025">無法將擴充功能解壓縮</translation> -<translation id="6413453408918378296">「<ph name="ICON" />」圖示不夠明顯。</translation> <translation id="6542618148162044354">「<ph name="APP_NAME" />」要求存取你的一或多個裝置:</translation> <translation id="657064425229075395">無法載入背景指令碼「<ph name="BACKGROUND_SCRIPT" />」。</translation> <translation id="6580950983454333167"><ph name="VENDOR_NAME" /> 的 <ph name="PRODUCT_NAME" /> (序號:<ph name="SERIAL_NUMBER" />)</translation>
diff --git a/extensions/strings/extensions_strings_zu.xtb b/extensions/strings/extensions_strings_zu.xtb index eb64742..f83ef4b 100644 --- a/extensions/strings/extensions_strings_zu.xtb +++ b/extensions/strings/extensions_strings_zu.xtb
@@ -7,7 +7,6 @@ <translation id="1420684932347524586">Eshu! Yehlulekile ukukhiqiza ukhiye oyimfihlo wase-RSA ongahleliwe.</translation> <translation id="1445572445564823378">Lesi sandiso senza i-<ph name="PRODUCT_NAME" /> ihambe kancane. Kuzomele uyikhubaze ukuze ubuyisele ukusebenza kwe-<ph name="PRODUCT_NAME" />.</translation> <translation id="1468038450257740950">I-WebGL ayisekelwe</translation> -<translation id="149347756975725155">Ayikwazanga ukulayisha isithonjana sesandiso se-'<ph name="ICON" />'.</translation> <translation id="1803557475693955505">Ayikwazanga ukulayisha ikhasi elingemuva le-'<ph name="BACKGROUND_PAGE" />'.</translation> <translation id="2159915644201199628">Ayikwazanga ukukhipha ikhodi kusithombe: '<ph name="IMAGE_NAME" />'</translation> <translation id="2350172092385603347">Kusetshenziswe ukwenza okwasendaweni, kodwa okwasendaweni_okuzenzakalelayo azange kucaciswe ekuvezweni.</translation> @@ -44,7 +43,6 @@ <translation id="6322279351188361895">Yehlulekile ukufunda ukhiye oyimfihlo.</translation> <translation id="6391538222494443604">Kumele kube khona umkhombandlela wokokufaka.</translation> <translation id="641087317769093025">Ayikwazanga ukususa ukuzipha kusandiso</translation> -<translation id="6413453408918378296">Isithonjana asibonakali ngokwanele se-'<ph name="ICON" />'.</translation> <translation id="6542618148162044354">I-"<ph name="APP_NAME" />" icela ukufinyelela kudivayisi yakho eyodwa noma amaningi:</translation> <translation id="657064425229075395">Ayikwazanga ukulayisha isikripthi esingemuva se-'<ph name="BACKGROUND_SCRIPT" />'.</translation> <translation id="6580950983454333167">I-<ph name="PRODUCT_NAME" /> kusukela ku-<ph name="VENDOR_NAME" /> (inombolo yomkhiqizo engu-<ph name="SERIAL_NUMBER" />)</translation>
diff --git a/google_apis/gcm/engine/checkin_request.cc b/google_apis/gcm/engine/checkin_request.cc index 0c472d3..7094057 100644 --- a/google_apis/gcm/engine/checkin_request.cc +++ b/google_apis/gcm/engine/checkin_request.cc
@@ -6,7 +6,7 @@ #include "base/bind.h" #include "base/location.h" -#include "base/metrics/histogram_macros.h" +#include "base/metrics/histogram_functions.h" #include "google_apis/gcm/monitoring/gcm_stats_recorder.h" #include "google_apis/gcm/protocol/checkin.pb.h" #include "net/base/load_flags.h" @@ -23,54 +23,62 @@ const int kDefaultUserSerialNumber = 0; // This enum is also used in an UMA histogram (GCMCheckinRequestStatus -// enum defined in tools/metrics/histograms/histogram.xml). Hence the entries -// here shouldn't be deleted or re-ordered and new ones should be added to -// the end, and update the GetCheckinRequestStatusString(...) below. -enum CheckinRequestStatus { - SUCCESS, // Checkin completed successfully. - URL_FETCHING_FAILED, // URL fetching failed. - HTTP_BAD_REQUEST, // The request was malformed. - HTTP_UNAUTHORIZED, // The security token didn't match the android id. - HTTP_NOT_OK, // HTTP status was not OK. - RESPONSE_PARSING_FAILED, // Check in response parsing failed. - ZERO_ID_OR_TOKEN, // Either returned android id or security token - // was zero. +// enum defined in tools/metrics/histograms/enums.xml). Hence the entries here +// shouldn't be deleted or re-ordered and new ones should be added to the end, +// and update the GetCheckinRequestStatusString(...) below. +enum class CheckinRequestStatus { + kSuccess = 0, // Checkin completed successfully. + // kUrlFetchingFailed = 1, + kBadRequest = 2, // The request was malformed. + kUnauthorized = 3, // The security token didn't match the AID. + kStatusNotOK = 4, // HTTP status was not OK. + kResponseParsingFailed = 5, // Check in response parsing failed. + kZeroIdOrToken = 6, // Either returned android id or security token + // was zero. + kFailedNetError = 7, // A network error was returned. + kFailedNoResponse = 8, // No or invalid response info was returned. + kFailedNoHeaders = 9, // No or invalid headers were returned. + // NOTE: always keep this entry at the end. Add new status types only // immediately above this line. Make sure to update the corresponding // histogram enum accordingly. - STATUS_COUNT + kMaxValue = kFailedNoHeaders, }; // Returns string representation of enum CheckinRequestStatus. std::string GetCheckinRequestStatusString(CheckinRequestStatus status) { switch (status) { - case SUCCESS: - return "SUCCESS"; - case URL_FETCHING_FAILED: - return "URL_FETCHING_FAILED"; - case HTTP_BAD_REQUEST: - return "HTTP_BAD_REQUEST"; - case HTTP_UNAUTHORIZED: - return "HTTP_UNAUTHORIZED"; - case HTTP_NOT_OK: - return "HTTP_NOT_OK"; - case RESPONSE_PARSING_FAILED: - return "RESPONSE_PARSING_FAILED"; - case ZERO_ID_OR_TOKEN: - return "ZERO_ID_OR_TOKEN"; - case STATUS_COUNT: - NOTREACHED(); - break; + case CheckinRequestStatus::kSuccess: + return "Success"; + case CheckinRequestStatus::kBadRequest: + return "Failed: HTTP 400 Bad Request"; + case CheckinRequestStatus::kUnauthorized: + return "Failed: HTTP 401 Unauthorized"; + case CheckinRequestStatus::kStatusNotOK: + return "Failed: HTTP not OK"; + case CheckinRequestStatus::kResponseParsingFailed: + return "Failed: Response parsing failed"; + case CheckinRequestStatus::kZeroIdOrToken: + return "Failed: Zero Android ID or security token"; + case CheckinRequestStatus::kFailedNetError: + return "Failed: Network error"; + case CheckinRequestStatus::kFailedNoResponse: + return "Failed: No response"; + case CheckinRequestStatus::kFailedNoHeaders: + return "Failed: No headers"; } - return "UNKNOWN_STATUS"; + + NOTREACHED(); + return "Failed: Unknown reason"; } // Records checkin status to both stats recorder and reports to UMA. void RecordCheckinStatusAndReportUMA(CheckinRequestStatus status, GCMStatsRecorder* recorder, bool will_retry) { - UMA_HISTOGRAM_ENUMERATION("GCM.CheckinRequestStatus", status, STATUS_COUNT); - if (status == SUCCESS) + base::UmaHistogramEnumeration("GCM.CheckinRequestStatus", status); + + if (status == CheckinRequestStatus::kSuccess) recorder->RecordCheckinSuccess(); else { recorder->RecordCheckinFailure(GetCheckinRequestStatusString(status), @@ -94,7 +102,7 @@ CheckinRequest::RequestInfo::RequestInfo(const RequestInfo& other) = default; -CheckinRequest::RequestInfo::~RequestInfo() {} +CheckinRequest::RequestInfo::~RequestInfo() = default; CheckinRequest::CheckinRequest( const GURL& checkin_url, @@ -114,7 +122,7 @@ DCHECK(io_task_runner_); } -CheckinRequest::~CheckinRequest() {} +CheckinRequest::~CheckinRequest() = default; void CheckinRequest::Start() { DCHECK(io_task_runner_->RunsTasksInCurrentSequence()); @@ -217,37 +225,56 @@ void CheckinRequest::OnURLLoadComplete(const network::SimpleURLLoader* source, std::unique_ptr<std::string> body) { - checkin_proto::AndroidCheckinResponse response_proto; - if (source->NetError() != net::OK || !source->ResponseInfo() || - !source->ResponseInfo()->headers) { - LOG(ERROR) << "Failed to get checkin response. Fetcher failed. Retrying."; - RecordCheckinStatusAndReportUMA(URL_FETCHING_FAILED, recorder_, true); + if (source->NetError() != net::OK) { + RecordCheckinStatusAndReportUMA(CheckinRequestStatus::kFailedNetError, + recorder_, /* will_retry= */ true); + base::UmaHistogramSparse("GCM.CheckinRequestStatusNetError", + std::abs(source->NetError())); + RetryWithBackoff(); return; } + if (!source->ResponseInfo()) { + RecordCheckinStatusAndReportUMA(CheckinRequestStatus::kFailedNoResponse, + recorder_, /* will_retry= */ true); + RetryWithBackoff(); + return; + } + + if (!source->ResponseInfo()->headers) { + RecordCheckinStatusAndReportUMA(CheckinRequestStatus::kFailedNoHeaders, + recorder_, /* will_retry= */ true); + RetryWithBackoff(); + return; + } + + checkin_proto::AndroidCheckinResponse response_proto; + net::HttpStatusCode response_status = static_cast<net::HttpStatusCode>( source->ResponseInfo()->headers->response_code()); if (response_status == net::HTTP_BAD_REQUEST || response_status == net::HTTP_UNAUTHORIZED) { // BAD_REQUEST indicates that the request was malformed. // UNAUTHORIZED indicates that security token didn't match the android id. - LOG(ERROR) << "No point retrying the checkin with status: " - << response_status << ". Checkin failed."; - CheckinRequestStatus status = response_status == net::HTTP_BAD_REQUEST ? - HTTP_BAD_REQUEST : HTTP_UNAUTHORIZED; - RecordCheckinStatusAndReportUMA(status, recorder_, false); + CheckinRequestStatus status = response_status == net::HTTP_BAD_REQUEST + ? CheckinRequestStatus::kBadRequest + : CheckinRequestStatus::kUnauthorized; + RecordCheckinStatusAndReportUMA(status, recorder_, /* will_retry= */ false); std::move(callback_).Run(response_status, response_proto); return; } if (response_status != net::HTTP_OK || !body || !response_proto.ParseFromString(*body)) { - LOG(ERROR) << "Failed to get checkin response. HTTP Status: " + LOG(ERROR) << "Failed to parse checkin response. HTTP Status: " << response_status << ". Retrying."; - CheckinRequestStatus status = response_status != net::HTTP_OK ? - HTTP_NOT_OK : RESPONSE_PARSING_FAILED; - RecordCheckinStatusAndReportUMA(status, recorder_, true); + + CheckinRequestStatus status = + response_status != net::HTTP_OK + ? CheckinRequestStatus::kStatusNotOK + : CheckinRequestStatus::kResponseParsingFailed; + RecordCheckinStatusAndReportUMA(status, recorder_, /* will_retry= */ true); RetryWithBackoff(); return; } @@ -256,13 +283,14 @@ !response_proto.has_security_token() || response_proto.android_id() == 0 || response_proto.security_token() == 0) { - LOG(ERROR) << "Android ID or security token is 0. Retrying."; - RecordCheckinStatusAndReportUMA(ZERO_ID_OR_TOKEN, recorder_, true); + RecordCheckinStatusAndReportUMA(CheckinRequestStatus::kZeroIdOrToken, + recorder_, /* will_retry= */ true); RetryWithBackoff(); return; } - RecordCheckinStatusAndReportUMA(SUCCESS, recorder_, false); + RecordCheckinStatusAndReportUMA(CheckinRequestStatus::kSuccess, recorder_, + /* will_retry= */ false); std::move(callback_).Run(response_status, response_proto); }
diff --git a/ios/chrome/app/strings/resources/ios_strings_af.xtb b/ios/chrome/app/strings/resources/ios_strings_af.xtb index 8582218..f62fb85 100644 --- a/ios/chrome/app/strings/resources/ios_strings_af.xtb +++ b/ios/chrome/app/strings/resources/ios_strings_af.xtb
@@ -161,6 +161,7 @@ <translation id="2923448633003185837">Plak en gaan</translation> <translation id="292639812446257861">Merk as ongelees</translation> <translation id="2958718410589002129">Wagwoorde</translation> +<translation id="2964349545761222050">Blokkeer derdepartywebkoekies</translation> <translation id="2969979262385602596">Kon nie aanmeld nie. Probeer asseblief later weer.</translation> <translation id="298306318844797842">Voeg betaalmetode by …</translation> <translation id="2989805286512600854">Maak in 'n nuwe oortjie oop</translation> @@ -304,6 +305,7 @@ <translation id="4979397965658815378">Meld met jou Google-rekening aan om jou boekmerke, wagwoorde, geskiedenis en ander instellings op al jou toestelle te kry</translation> <translation id="5005498671520578047">Kopieer wagwoord</translation> <translation id="5010803260590204777">Maak 'n incognito-oortjie oop om privaat deur die web te blaai.</translation> +<translation id="5039020240289137291">Blokkering van derdepartywebkoekies</translation> <translation id="5039804452771397117">Laat toe</translation> <translation id="5059136629401106827">OK</translation> <translation id="5062321486222145940">Installeer Google Drive</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_bs.xtb b/ios/chrome/app/strings/resources/ios_strings_bs.xtb index 38d314cf..1ab987c8 100644 --- a/ios/chrome/app/strings/resources/ios_strings_bs.xtb +++ b/ios/chrome/app/strings/resources/ios_strings_bs.xtb
@@ -161,6 +161,7 @@ <translation id="2923448633003185837">Zalijepi i kreni</translation> <translation id="292639812446257861">Označi kao nepročitano</translation> <translation id="2958718410589002129">Lozinke</translation> +<translation id="2964349545761222050">Blokiraj kolačiće trećih strana</translation> <translation id="2969979262385602596">Prijava nije uspjela. Pokušajte ponovo kasnije.</translation> <translation id="298306318844797842">Dodajte način plaćanja...</translation> <translation id="2989805286512600854">Otvori u novoj kartici</translation> @@ -304,6 +305,7 @@ <translation id="4979397965658815378">Prijavite se na svoj Google račun da dobijete oznake, lozinke, historiju i ostale postavke na svim svojim uređajima.</translation> <translation id="5005498671520578047">Kopiranje lozinke</translation> <translation id="5010803260590204777">Otvorite anonimnu karticu za privatno pregledanje weba.</translation> +<translation id="5039020240289137291">Blokiranje kolačića treće strane</translation> <translation id="5039804452771397117">Dozvoli</translation> <translation id="5059136629401106827">UREDU</translation> <translation id="5062321486222145940">Instaliraj Google Disk</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_ca.xtb b/ios/chrome/app/strings/resources/ios_strings_ca.xtb index 461e4bd..fcec19df 100644 --- a/ios/chrome/app/strings/resources/ios_strings_ca.xtb +++ b/ios/chrome/app/strings/resources/ios_strings_ca.xtb
@@ -161,6 +161,7 @@ <translation id="2923448633003185837">Enganxa i ves-hi</translation> <translation id="292639812446257861">Marca com a no llegit</translation> <translation id="2958718410589002129">Contrasenyes</translation> +<translation id="2964349545761222050">Bloqueja les galetes de tercers</translation> <translation id="2969979262385602596">No s'ha pogut iniciar la sessió. Torneu-ho a provar més tard.</translation> <translation id="298306318844797842">Afegeix una forma de pagament...</translation> <translation id="2989805286512600854">Obre en una pestanya nova</translation> @@ -236,7 +237,7 @@ <translation id="4006921758705478413">Envia als teus dispositius</translation> <translation id="4038354071007134711">Cap aplicació del dispos. no pot obrir el fitxer.</translation> <translation id="4042870976416480368">Cerca a la pàgina</translation> -<translation id="4049507953662678203">Assegureu-vos que teniu una connexió de xarxa i torneu-ho a provar.</translation> +<translation id="4049507953662678203">Assegureu-vos que teniu una connexió a la xarxa i torneu-ho a provar.</translation> <translation id="4071530748369333746">Vols cancel·lar la sincronització?</translation> <translation id="4082688844002261427">Controla com s'utilitza l'historial de navegació per personalitzar la Cerca, els anuncis i molt més</translation> <translation id="408404951701638773">Ara és més fàcil accedir a la barra de cerca</translation> @@ -304,6 +305,7 @@ <translation id="4979397965658815378">Inicia la sessió amb el compte de Google per tenir les adreces d'interès, l'historial, les contrasenyes i altres opcions de configuració en tots els dispositius.</translation> <translation id="5005498671520578047">Copia la contrasenya</translation> <translation id="5010803260590204777">Obriu una pestanya d'incògnit per navegar pel web de manera privada.</translation> +<translation id="5039020240289137291">Bloqueja les galetes de tercers</translation> <translation id="5039804452771397117">Permet</translation> <translation id="5059136629401106827">D'acord</translation> <translation id="5062321486222145940">Instal. de Google Drive</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_el.xtb b/ios/chrome/app/strings/resources/ios_strings_el.xtb index fba55bbc..05b8fff 100644 --- a/ios/chrome/app/strings/resources/ios_strings_el.xtb +++ b/ios/chrome/app/strings/resources/ios_strings_el.xtb
@@ -161,6 +161,7 @@ <translation id="2923448633003185837">Επικόλληση και μετάβαση</translation> <translation id="292639812446257861">Επισ. ως μη αναγνωσμένων</translation> <translation id="2958718410589002129">Κωδικοί πρόσβασης</translation> +<translation id="2964349545761222050">Αποκλεισμός cookie τρίτου μέρους</translation> <translation id="2969979262385602596">Αποτυχία σύνδεσης. Δοκιμάστε ξανά αργότερα.</translation> <translation id="298306318844797842">Προσθήκη τρόπου πληρωμής…</translation> <translation id="2989805286512600854">Άνοιγμα σε Νέα Καρτέλα</translation> @@ -304,6 +305,7 @@ <translation id="4979397965658815378">Συνδεθείτε στον Λογαριασμό σας Google για να λάβετε τους σελιδοδείκτες, τους κωδικούς πρόσβασης, το ιστορικό και άλλες ρυθμίσεις σε όλες τις συσκευές σας.</translation> <translation id="5005498671520578047">Αντιγραφή κωδικού πρόσβασης</translation> <translation id="5010803260590204777">Άνοιγμα καρτέλας ανώνυμης περιήγησης για ιδιωτική περιήγηση στον ιστό</translation> +<translation id="5039020240289137291">Αποκλεισμός cookie τρίτου μέρους</translation> <translation id="5039804452771397117">Επιτρέπεται</translation> <translation id="5059136629401106827">ΟΚ</translation> <translation id="5062321486222145940">Εγκατάσταση Google Drive</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_en-GB.xtb b/ios/chrome/app/strings/resources/ios_strings_en-GB.xtb index a2df383..8804edc8 100644 --- a/ios/chrome/app/strings/resources/ios_strings_en-GB.xtb +++ b/ios/chrome/app/strings/resources/ios_strings_en-GB.xtb
@@ -161,6 +161,7 @@ <translation id="2923448633003185837">Paste and Go</translation> <translation id="292639812446257861">Mark Unread</translation> <translation id="2958718410589002129">Passwords</translation> +<translation id="2964349545761222050">Block third-party cookies</translation> <translation id="2969979262385602596">Failed to sign in. Please try again later.</translation> <translation id="298306318844797842">Add Payment Method...</translation> <translation id="2989805286512600854">Open in New Tab</translation> @@ -304,6 +305,7 @@ <translation id="4979397965658815378">Sign in with your Google Account to get your bookmarks, passwords, history and other settings on all your devices</translation> <translation id="5005498671520578047">Copy password</translation> <translation id="5010803260590204777">Open an incognito tab to browse the web privately.</translation> +<translation id="5039020240289137291">Blocking third-party cookies</translation> <translation id="5039804452771397117">Allow</translation> <translation id="5059136629401106827">OK</translation> <translation id="5062321486222145940">Install Google Drive</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_es.xtb b/ios/chrome/app/strings/resources/ios_strings_es.xtb index 9664c68..691d07b 100644 --- a/ios/chrome/app/strings/resources/ios_strings_es.xtb +++ b/ios/chrome/app/strings/resources/ios_strings_es.xtb
@@ -161,6 +161,7 @@ <translation id="2923448633003185837">Pegar y acceder</translation> <translation id="292639812446257861">Marcar como no leídas</translation> <translation id="2958718410589002129">Contraseñas</translation> +<translation id="2964349545761222050">Bloquear cookies de terceros</translation> <translation id="2969979262385602596">Error al iniciar sesión. Inténtalo más tarde.</translation> <translation id="298306318844797842">Añadir método de pago...</translation> <translation id="2989805286512600854">Abrir en una pestaña nueva</translation> @@ -304,6 +305,7 @@ <translation id="4979397965658815378">Inicia sesión con tu cuenta de Google para acceder a tus marcadores, contraseñas, historial y otros ajustes desde todos tus dispositivos</translation> <translation id="5005498671520578047">Copiar contraseña</translation> <translation id="5010803260590204777">Abre una pestaña de incógnito para navegar por la Web de forma privada.</translation> +<translation id="5039020240289137291">Bloquear cookies de terceros</translation> <translation id="5039804452771397117">Permitir</translation> <translation id="5059136629401106827">Aceptar</translation> <translation id="5062321486222145940">Instalar Google Drive</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_et.xtb b/ios/chrome/app/strings/resources/ios_strings_et.xtb index 647e8dc..c5bf1721 100644 --- a/ios/chrome/app/strings/resources/ios_strings_et.xtb +++ b/ios/chrome/app/strings/resources/ios_strings_et.xtb
@@ -161,6 +161,7 @@ <translation id="2923448633003185837">Kleebi ja mine</translation> <translation id="292639812446257861">Märgi mitteloetuks</translation> <translation id="2958718410589002129">Paroolid</translation> +<translation id="2964349545761222050">Kolmanda osapoole küpsisefailide blokeerimine</translation> <translation id="2969979262385602596">Sisselogimine ebaõnnestus. Proovige hiljem uuesti.</translation> <translation id="298306318844797842">Makseviisi lisamine …</translation> <translation id="2989805286512600854">Ava uuel vahelehel</translation> @@ -304,6 +305,7 @@ <translation id="4979397965658815378">Logige sisse oma Google'i kontoga, et näha oma järjehoidjaid, paroole, ajalugu ja muid seadeid kõigis oma seadmetes</translation> <translation id="5005498671520578047">Parooli kopeerimine</translation> <translation id="5010803260590204777">Avage inkognito vaheleht ja sirvige veebi privaatselt.</translation> +<translation id="5039020240289137291">Kolmanda osapoole küpsisefailide blokeerimine</translation> <translation id="5039804452771397117">Luba</translation> <translation id="5059136629401106827">OK</translation> <translation id="5062321486222145940">Installi Google Drive</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_hr.xtb b/ios/chrome/app/strings/resources/ios_strings_hr.xtb index a1cae33e..99553b4b 100644 --- a/ios/chrome/app/strings/resources/ios_strings_hr.xtb +++ b/ios/chrome/app/strings/resources/ios_strings_hr.xtb
@@ -161,6 +161,7 @@ <translation id="2923448633003185837">Zalijepi i idi</translation> <translation id="292639812446257861">Označi kao nepročitano</translation> <translation id="2958718410589002129">Zaporke</translation> +<translation id="2964349545761222050">Blokiraj kolačiće trećih strana</translation> <translation id="2969979262385602596">Prijava nije uspjela. Pokušajte ponovo kasnije.</translation> <translation id="298306318844797842">Dodajte način plaćanja...</translation> <translation id="2989805286512600854">Otvori u novoj kartici</translation> @@ -304,6 +305,7 @@ <translation id="4979397965658815378">Prijavite se Google računom da biste imali pristup svojim oznakama, zaporkama, povijesti i ostalim postavkama na svim svojim uređajima</translation> <translation id="5005498671520578047">Kopiranje zaporke</translation> <translation id="5010803260590204777">Otvorite anonimnu karticu da biste pregledavali web u privatnosti.</translation> +<translation id="5039020240289137291">Blokirani su kolačići treće strane</translation> <translation id="5039804452771397117">Dopusti</translation> <translation id="5059136629401106827">U redu</translation> <translation id="5062321486222145940">Instaliraj Google disk</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_hu.xtb b/ios/chrome/app/strings/resources/ios_strings_hu.xtb index d7f2f53..cb75d477 100644 --- a/ios/chrome/app/strings/resources/ios_strings_hu.xtb +++ b/ios/chrome/app/strings/resources/ios_strings_hu.xtb
@@ -161,6 +161,7 @@ <translation id="2923448633003185837">Beillesztés és ugrás</translation> <translation id="292639812446257861">Megjelölés olvasatlanként</translation> <translation id="2958718410589002129">Jelszavak</translation> +<translation id="2964349545761222050">Harmadik féltől származó cookie-k letiltása</translation> <translation id="2969979262385602596">Nem sikerült bejelentkezni. Kérjük, próbálja újra később.</translation> <translation id="298306318844797842">Fizetési mód hozzáadása…</translation> <translation id="2989805286512600854">Megnyitás új lapon</translation> @@ -304,6 +305,7 @@ <translation id="4979397965658815378">Jelentkezzen be Google-fiókjába, így könyvjelzőit, előzményeit, jelszavait és más beállításait az összes eszközén elérheti.</translation> <translation id="5005498671520578047">Jelszó másolása</translation> <translation id="5010803260590204777">Nyisson meg egy inkognitólapot a privát böngészéshez.</translation> +<translation id="5039020240289137291">Harmadik féltől származó cookie-k letiltása</translation> <translation id="5039804452771397117">Engedélyezés</translation> <translation id="5059136629401106827">OK</translation> <translation id="5062321486222145940">Google Drive telepítése</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_is.xtb b/ios/chrome/app/strings/resources/ios_strings_is.xtb index 1f5f85a..332f7f7a 100644 --- a/ios/chrome/app/strings/resources/ios_strings_is.xtb +++ b/ios/chrome/app/strings/resources/ios_strings_is.xtb
@@ -161,6 +161,7 @@ <translation id="2923448633003185837">Líma og opna</translation> <translation id="292639812446257861">Merkja sem ólesið</translation> <translation id="2958718410589002129">Aðgangsorð</translation> +<translation id="2964349545761222050">Loka á fótspor frá þriðja aðila</translation> <translation id="2969979262385602596">Innskráning mistókst. Reyndu aftur síðar.</translation> <translation id="298306318844797842">Bæta við greiðslumáta...</translation> <translation id="2989805286512600854">Opna í nýjum flipa</translation> @@ -304,6 +305,7 @@ <translation id="4979397965658815378">Skráðu þig inn með Google reikningnum þínum til að fá bókamerkin þín, ferilinn, aðgangsorð og aðrar stillingar í öll tækin þín</translation> <translation id="5005498671520578047">Afrita aðgangsorð</translation> <translation id="5010803260590204777">Opnaðu huliðsflipa til að vafra í einrúmi.</translation> +<translation id="5039020240289137291">Lokað á fótspor frá þriðju aðilum</translation> <translation id="5039804452771397117">Leyfa</translation> <translation id="5059136629401106827">Í lagi</translation> <translation id="5062321486222145940">Setja upp Google Drive</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_it.xtb b/ios/chrome/app/strings/resources/ios_strings_it.xtb index f233355c..fdafd9b 100644 --- a/ios/chrome/app/strings/resources/ios_strings_it.xtb +++ b/ios/chrome/app/strings/resources/ios_strings_it.xtb
@@ -161,6 +161,7 @@ <translation id="2923448633003185837">Incolla e vai</translation> <translation id="292639812446257861">Segna come da leggere</translation> <translation id="2958718410589002129">Password</translation> +<translation id="2964349545761222050">Blocca cookie di terze parti</translation> <translation id="2969979262385602596">Impossibile accedere. Riprova più tardi.</translation> <translation id="298306318844797842">Aggiungi il metodo di pagamento…</translation> <translation id="2989805286512600854">Apri in un'altra scheda</translation> @@ -304,6 +305,7 @@ <translation id="4979397965658815378">Accedi con il tuo Account Google per avere preferiti, password, cronologia e altre impostazioni su tutti i tuoi dispositivi</translation> <translation id="5005498671520578047">Copia password</translation> <translation id="5010803260590204777">Apri una scheda di navigazione in incognito per navigare sul Web in privato.</translation> +<translation id="5039020240289137291">Blocco dei cookie di terze parti</translation> <translation id="5039804452771397117">Consenti</translation> <translation id="5059136629401106827">OK</translation> <translation id="5062321486222145940">Installa Google Drive</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_lt.xtb b/ios/chrome/app/strings/resources/ios_strings_lt.xtb index 98cc648b..7e10eb5 100644 --- a/ios/chrome/app/strings/resources/ios_strings_lt.xtb +++ b/ios/chrome/app/strings/resources/ios_strings_lt.xtb
@@ -161,6 +161,7 @@ <translation id="2923448633003185837">Įklijuoti ir eiti</translation> <translation id="292639812446257861">Pažymėti kaip neskaitytus</translation> <translation id="2958718410589002129">Slaptažodžiai</translation> +<translation id="2964349545761222050">Trečiosios šalies slapukų blokavimas</translation> <translation id="2969979262385602596">Nepavyko prisijungti. Bandykite dar kartą vėliau.</translation> <translation id="298306318844797842">Pridėti mokėjimo metodą...</translation> <translation id="2989805286512600854">Atidaryti naujame skirtuke</translation> @@ -304,6 +305,7 @@ <translation id="4979397965658815378">Prisijunkite naudodami „Google“ paskyrą, kad gautumėte žymes, slaptažodžius, istoriją ir kitus nustatymus visuose įrenginiuose</translation> <translation id="5005498671520578047">Kopijuoti slaptažodį</translation> <translation id="5010803260590204777">Norėdami naršyti žiniatinklį privačiai, atidarykite inkognito skirtuką.</translation> +<translation id="5039020240289137291">Trečiosios šalies slapukų blokavimas</translation> <translation id="5039804452771397117">Leisti</translation> <translation id="5059136629401106827">Gerai</translation> <translation id="5062321486222145940">Įdiegti „Google“ diską</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_mk.xtb b/ios/chrome/app/strings/resources/ios_strings_mk.xtb index 64adc35..cc52dcc 100644 --- a/ios/chrome/app/strings/resources/ios_strings_mk.xtb +++ b/ios/chrome/app/strings/resources/ios_strings_mk.xtb
@@ -161,6 +161,7 @@ <translation id="2923448633003185837">Залепи и оди</translation> <translation id="292639812446257861">Означи како непрочитано</translation> <translation id="2958718410589002129">Лозинки</translation> +<translation id="2964349545761222050">Блокирај колачиња од трети страни</translation> <translation id="2969979262385602596">Најавувањето не успеа. Обидете се повторно подоцна.</translation> <translation id="298306318844797842">Додајте начин на плаќање…</translation> <translation id="2989805286512600854">Отвори во нова картичка</translation> @@ -304,6 +305,7 @@ <translation id="4979397965658815378">Најавете се со сметката на Google за да ги добиете обележувачите, лозинките, историјата и другите поставки на сите ваши уреди.</translation> <translation id="5005498671520578047">Копирање лозинка</translation> <translation id="5010803260590204777">Отворете инкогнито картичка за да прелистувате приватно на интернет.</translation> +<translation id="5039020240289137291">Блокира колачиња од трети страни</translation> <translation id="5039804452771397117">Дозволи</translation> <translation id="5059136629401106827">Во ред</translation> <translation id="5062321486222145940">Инсталирајте Диск на Google</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_nl.xtb b/ios/chrome/app/strings/resources/ios_strings_nl.xtb index 6ba06f1..612a4a3 100644 --- a/ios/chrome/app/strings/resources/ios_strings_nl.xtb +++ b/ios/chrome/app/strings/resources/ios_strings_nl.xtb
@@ -161,6 +161,7 @@ <translation id="2923448633003185837">Plakken en zoeken</translation> <translation id="292639812446257861">Markeren als ongelezen</translation> <translation id="2958718410589002129">Wachtwoorden</translation> +<translation id="2964349545761222050">Cookies van derden blokkeren</translation> <translation id="2969979262385602596">Kan niet inloggen. Probeer het later opnieuw.</translation> <translation id="298306318844797842">Betaalmethode toevoegen…</translation> <translation id="2989805286512600854">Openen op nieuw tabblad</translation> @@ -304,6 +305,7 @@ <translation id="4979397965658815378">Log in met je Google-account om je bladwijzers, wachtwoorden, geschiedenis en andere instellingen op al je apparaten te gebruiken</translation> <translation id="5005498671520578047">Wachtwoord kopiëren</translation> <translation id="5010803260590204777">Open een incognitotabblad om privé op internet te surfen.</translation> +<translation id="5039020240289137291">Cookies van derden blokkeren</translation> <translation id="5039804452771397117">Toestaan</translation> <translation id="5059136629401106827">OK</translation> <translation id="5062321486222145940">Google Drive installeren</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_no.xtb b/ios/chrome/app/strings/resources/ios_strings_no.xtb index 6dd82c79..b2699c05 100644 --- a/ios/chrome/app/strings/resources/ios_strings_no.xtb +++ b/ios/chrome/app/strings/resources/ios_strings_no.xtb
@@ -161,6 +161,7 @@ <translation id="2923448633003185837">Lim inn og gå til</translation> <translation id="292639812446257861">Merk som ulest</translation> <translation id="2958718410589002129">Passord</translation> +<translation id="2964349545761222050">Blokkér informasjonskapsler fra tredjeparter</translation> <translation id="2969979262385602596">Kunne ikke logge på. Prøv igjen senere.</translation> <translation id="298306318844797842">Legg til betalingsmåte …</translation> <translation id="2989805286512600854">Åpne i ny fane</translation> @@ -304,6 +305,7 @@ <translation id="4979397965658815378">Logg på med Google-kontoen din for å få bokmerkene, passordene, loggoppføringene og de andre innstillingene dine på alle enhetene du bruker</translation> <translation id="5005498671520578047">Kopiér passordet</translation> <translation id="5010803260590204777">Åpne en inkognitofane for å surfe privat på nettet.</translation> +<translation id="5039020240289137291">Informasjonskapsler fra tredjepart blokkeres</translation> <translation id="5039804452771397117">Tillat</translation> <translation id="5059136629401106827">OK</translation> <translation id="5062321486222145940">Installer Google Disk</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_pl.xtb b/ios/chrome/app/strings/resources/ios_strings_pl.xtb index 80fe58c..acc3719 100644 --- a/ios/chrome/app/strings/resources/ios_strings_pl.xtb +++ b/ios/chrome/app/strings/resources/ios_strings_pl.xtb
@@ -161,6 +161,7 @@ <translation id="2923448633003185837">Wklej i otwórz</translation> <translation id="292639812446257861">Oznacz jako nieprzeczytane</translation> <translation id="2958718410589002129">Hasła</translation> +<translation id="2964349545761222050">Blokowanie plików cookie innych firm</translation> <translation id="2969979262385602596">Nie udało się zalogować. Spróbuj ponownie później.</translation> <translation id="298306318844797842">Dodaj formę płatności…</translation> <translation id="2989805286512600854">Otwórz w nowej karcie</translation> @@ -304,6 +305,7 @@ <translation id="4979397965658815378">Zaloguj się na konto Google, by korzystać z zakładek, haseł, historii i innych ustawień na wszystkich urządzeniach</translation> <translation id="5005498671520578047">Skopiuj hasło</translation> <translation id="5010803260590204777">Otwórz kartę incognito, by przeglądać strony prywatnie.</translation> +<translation id="5039020240289137291">Blokowanie plików cookie innych firm</translation> <translation id="5039804452771397117">Zezwalaj</translation> <translation id="5059136629401106827">OK</translation> <translation id="5062321486222145940">Zainstaluj Dysk Google</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_pt-BR.xtb b/ios/chrome/app/strings/resources/ios_strings_pt-BR.xtb index 9b99ee91..69e29a01 100644 --- a/ios/chrome/app/strings/resources/ios_strings_pt-BR.xtb +++ b/ios/chrome/app/strings/resources/ios_strings_pt-BR.xtb
@@ -161,6 +161,7 @@ <translation id="2923448633003185837">Colar e ir</translation> <translation id="292639812446257861">Marcar como não lidas</translation> <translation id="2958718410589002129">Senhas</translation> +<translation id="2964349545761222050">Bloquear cookies de terceiros</translation> <translation id="2969979262385602596">Falha durante o login. Tente novamente mais tarde.</translation> <translation id="298306318844797842">Adicionar forma de pagamento…</translation> <translation id="2989805286512600854">Abrir em uma nova guia</translation> @@ -304,6 +305,7 @@ <translation id="4979397965658815378">Faça login com sua Conta do Google para ter seus favoritos, senhas, histórico e outras configurações em todos os seus dispositivos</translation> <translation id="5005498671520578047">Copiar senha</translation> <translation id="5010803260590204777">Abra uma guia anônima para navegar com privacidade.</translation> +<translation id="5039020240289137291">Bloqueando cookies de terceiros</translation> <translation id="5039804452771397117">Permitir</translation> <translation id="5059136629401106827">OK</translation> <translation id="5062321486222145940">Instalar o Google Drive</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_si.xtb b/ios/chrome/app/strings/resources/ios_strings_si.xtb index 676ceef..44ee172 100644 --- a/ios/chrome/app/strings/resources/ios_strings_si.xtb +++ b/ios/chrome/app/strings/resources/ios_strings_si.xtb
@@ -161,6 +161,7 @@ <translation id="2923448633003185837">අලවා යන්න</translation> <translation id="292639812446257861">නොකියවූ ලෙස ලකුණු කරන්න</translation> <translation id="2958718410589002129">මුරපද</translation> +<translation id="2964349545761222050">තෙවන පාර්ශ්ව කුකී අවහිර කරන්න</translation> <translation id="2969979262385602596">පුරනය අසාර්ථක විය, කරුණාකර පසුව නැවත උත්සාහ කරන්න.</translation> <translation id="298306318844797842">ගෙවීමේ ක්රමය එක් කරන්න...</translation> <translation id="2989805286512600854">නව පටිත්තක විවෘත කරන්න</translation> @@ -304,6 +305,7 @@ <translation id="4979397965658815378">ඔබගේ සියලුම උපාංග මත පිටුසන්, මුරපද, ඉතිහාසය හා අනෙකුත් සැකසීම් ලබා ගැනීමට ඔබගේ Google ගිණුම සමඟ පුරනය වන්න</translation> <translation id="5005498671520578047">මුරපදය පිටපත් කරන්න</translation> <translation id="5010803260590204777">වෙබය පෞද්ගලිකව බ්රවුස් කිරීමට අප්රකට පටිත්තක් විවෘත කරන්න.</translation> +<translation id="5039020240289137291">තෙවන පාර්ශ්ව කුකී අවහිර කෙරේ</translation> <translation id="5039804452771397117">ඉඩදෙන්න</translation> <translation id="5059136629401106827">හරි</translation> <translation id="5062321486222145940">Google Drive ස්ථාපනය කරන්න</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_sl.xtb b/ios/chrome/app/strings/resources/ios_strings_sl.xtb index 903ae27..41a3e18c 100644 --- a/ios/chrome/app/strings/resources/ios_strings_sl.xtb +++ b/ios/chrome/app/strings/resources/ios_strings_sl.xtb
@@ -161,6 +161,7 @@ <translation id="2923448633003185837">Prilepi in nadaljuj</translation> <translation id="292639812446257861">Označi kot neprebrano</translation> <translation id="2958718410589002129">Gesla</translation> +<translation id="2964349545761222050">Blokiranje piškotkov drugih spletnih mest</translation> <translation id="2969979262385602596">Failed to sign in. Please try again later.</translation> <translation id="298306318844797842">Dodajanje plačilnega sredstva …</translation> <translation id="2989805286512600854">Odpri v novem zavihku</translation> @@ -304,6 +305,7 @@ <translation id="4979397965658815378">Prijavite se z Google Računom, da boste zaznamke, gesla, zgodovino in druge nastavitve imeli na voljo v vseh napravah.</translation> <translation id="5005498671520578047">Kopiranje gesla</translation> <translation id="5010803260590204777">Open an incognito tab to browse the web privately.</translation> +<translation id="5039020240289137291">Blokiranje piškotkov drugih spletnih mest</translation> <translation id="5039804452771397117">Dovoli</translation> <translation id="5059136629401106827">V redu</translation> <translation id="5062321486222145940">Namesti Google Drive</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_sr.xtb b/ios/chrome/app/strings/resources/ios_strings_sr.xtb index 3667bc2..92a8846 100644 --- a/ios/chrome/app/strings/resources/ios_strings_sr.xtb +++ b/ios/chrome/app/strings/resources/ios_strings_sr.xtb
@@ -161,6 +161,7 @@ <translation id="2923448633003185837">Налепи и иди</translation> <translation id="292639812446257861">Означи као непрочитано</translation> <translation id="2958718410589002129">Лозинке</translation> +<translation id="2964349545761222050">Блокирај колачиће треће стране</translation> <translation id="2969979262385602596">Пријављивање није успело. Пробајте поново касније.</translation> <translation id="298306318844797842">Додајте начин плаћања...</translation> <translation id="2989805286512600854">Отвори на новој картици</translation> @@ -304,6 +305,7 @@ <translation id="4979397965658815378">Пријавите се помоћу Google налога да бисте имали обележиваче, лозинке, историју и друга подешавања на свим уређајима</translation> <translation id="5005498671520578047">Копирање лозинке</translation> <translation id="5010803260590204777">Отворите картицу Без архивирања да бисте приватно прегледали веб.</translation> +<translation id="5039020240289137291">Блокира колачиће треће стране</translation> <translation id="5039804452771397117">Дозволи</translation> <translation id="5059136629401106827">Потврди</translation> <translation id="5062321486222145940">Инсталирај Google диск</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_sw.xtb b/ios/chrome/app/strings/resources/ios_strings_sw.xtb index e012bf0..ba5293f0 100644 --- a/ios/chrome/app/strings/resources/ios_strings_sw.xtb +++ b/ios/chrome/app/strings/resources/ios_strings_sw.xtb
@@ -161,6 +161,7 @@ <translation id="2923448633003185837">Bandika na Utafute</translation> <translation id="292639812446257861">Tia Alama Kuwa Hujasoma</translation> <translation id="2958718410589002129">Manenosiri</translation> +<translation id="2964349545761222050">Zuia Vidakuzi vya Tovuti Nyingine</translation> <translation id="2969979262385602596">Haikufaulu kuingia katika akaunti. Tafadhali jaribu tena baadaye.</translation> <translation id="298306318844797842">Weka Njia ya Kulipa...</translation> <translation id="2989805286512600854">Fungua katika Kichupo Kipya</translation> @@ -304,6 +305,7 @@ <translation id="4979397965658815378">Ingia katika akaunti kwa kutumia Akaunti yako ya Google ili upate alamisho, manenosiri, historia na mipangilio mingine kwenye vifaa vyako vyote.</translation> <translation id="5005498671520578047">Nakili nenosiri</translation> <translation id="5010803260590204777">Fungua kichupo fiche ili uvinjari wavuti kwa njia ya faragha.</translation> +<translation id="5039020240289137291">Kuzuia vidakuzi vya tovuti nyingine</translation> <translation id="5039804452771397117">Ruhusu</translation> <translation id="5059136629401106827">Sawa</translation> <translation id="5062321486222145940">Pakua Hifadhi ya Google</translation>
diff --git a/ios/chrome/browser/ui/ntp/BUILD.gn b/ios/chrome/browser/ui/ntp/BUILD.gn index faf43e5..ba22a12 100644 --- a/ios/chrome/browser/ui/ntp/BUILD.gn +++ b/ios/chrome/browser/ui/ntp/BUILD.gn
@@ -47,6 +47,8 @@ source_set("ntp_internal") { configs += [ "//build/config/compiler:enable_arc" ] sources = [ + "incognito_cookies_view.h", + "incognito_cookies_view.mm", "incognito_view.h", "incognito_view.mm", "incognito_view_controller.h", @@ -104,6 +106,8 @@ "//ios/chrome/browser/ui/context_menu", "//ios/chrome/browser/ui/favicon", "//ios/chrome/browser/ui/overscroll_actions", + "//ios/chrome/browser/ui/page_info:features", + "//ios/chrome/browser/ui/settings/cells", "//ios/chrome/browser/ui/toolbar/buttons", "//ios/chrome/browser/ui/toolbar/public", "//ios/chrome/browser/ui/util",
diff --git a/ios/chrome/browser/ui/ntp/incognito_cookies_view.h b/ios/chrome/browser/ui/ntp/incognito_cookies_view.h new file mode 100644 index 0000000..88a019c --- /dev/null +++ b/ios/chrome/browser/ui/ntp/incognito_cookies_view.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 IOS_CHROME_BROWSER_UI_NTP_INCOGNITO_COOKIES_VIEW_H_ +#define IOS_CHROME_BROWSER_UI_NTP_INCOGNITO_COOKIES_VIEW_H_ + +#import <UIKit/UIKit.h> + +// View for displaying the controls for cookies. +@interface IncognitoCookiesView : UIView + +- (instancetype)init NS_DESIGNATED_INITIALIZER; +- (instancetype)initWithFrame:(CGRect)frame NS_UNAVAILABLE; +- (instancetype)initWithCoder:(NSCoder*)aDecoder NS_UNAVAILABLE; + +// Switch to manage cookies blocking. +@property(nonatomic, strong, readonly) UISwitch* switchView; + +@end + +#endif // IOS_CHROME_BROWSER_UI_NTP_INCOGNITO_COOKIES_VIEW_H_
diff --git a/ios/chrome/browser/ui/ntp/incognito_cookies_view.mm b/ios/chrome/browser/ui/ntp/incognito_cookies_view.mm new file mode 100644 index 0000000..bb5f40e --- /dev/null +++ b/ios/chrome/browser/ui/ntp/incognito_cookies_view.mm
@@ -0,0 +1,119 @@ +// 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/ui/ntp/incognito_cookies_view.h" + +#include "components/strings/grit/components_strings.h" +#import "ios/chrome/browser/ui/util/uikit_ui_util.h" +#import "ios/chrome/common/ui/colors/UIColor+cr_semantic_colors.h" +#import "ios/chrome/common/ui/colors/dynamic_color_util.h" +#import "ios/chrome/common/ui/colors/semantic_color_names.h" +#import "ios/chrome/common/ui/util/constraints_ui_util.h" +#include "ios/chrome/grit/ios_strings.h" +#include "ui/base/l10n/l10n_util.h" + +#if !defined(__has_feature) || !__has_feature(objc_arc) +#error "This file requires ARC support." +#endif + +namespace { + +const CGFloat kHorizontalSpacing = 14.0f; + +const CGFloat kVerticalSpacing = 16.0f; + +const CGFloat kVerticalLabelMargin = 6.0f; + +} // namespace + +@implementation IncognitoCookiesView + +#pragma mark - UIView + +- (instancetype)init { + self = [super initWithFrame:CGRectZero]; + if (self) { + UIColor* bodyTextColor = color::DarkModeDynamicColor( + [UIColor colorNamed:kTextSecondaryColor], true, + [UIColor colorNamed:kTextSecondaryDarkColor]); + self.layer.borderWidth = 1; + self.layer.borderColor = bodyTextColor.CGColor; + self.layer.cornerRadius = 10; + + // Cookies title. + UILabel* titleLabel = [[UILabel alloc] init]; + titleLabel.textColor = UIColor.whiteColor; + titleLabel.adjustsFontForContentSizeCategory = YES; + titleLabel.numberOfLines = 0; + titleLabel.font = [UIFont preferredFontForTextStyle:UIFontTextStyleCallout]; + titleLabel.translatesAutoresizingMaskIntoConstraints = NO; + titleLabel.text = + l10n_util::GetNSString(IDS_NEW_TAB_OTR_THIRD_PARTY_COOKIE); + + [self addSubview:titleLabel]; + + // Cookies description. + UILabel* descriptionLabel = [[UILabel alloc] init]; + descriptionLabel.textColor = bodyTextColor; + descriptionLabel.adjustsFontForContentSizeCategory = YES; + descriptionLabel.numberOfLines = 0; + descriptionLabel.font = + [UIFont preferredFontForTextStyle:UIFontTextStyleFootnote]; + descriptionLabel.translatesAutoresizingMaskIntoConstraints = NO; + descriptionLabel.text = + l10n_util::GetNSString(IDS_NEW_TAB_OTR_THIRD_PARTY_COOKIE_SUBLABEL); + + [self addSubview:descriptionLabel]; + + // Cookies switch. + _switchView = [[UISwitch alloc] init]; + [_switchView setOn:NO]; + [_switchView addTarget:self + action:@selector(onCookieSwitchToggled:) + forControlEvents:UIControlEventValueChanged]; + _switchView.translatesAutoresizingMaskIntoConstraints = NO; + [self addSubview:_switchView]; + [_switchView + setContentCompressionResistancePriority:UILayoutPriorityDefaultHigh + 1 + forAxis: + UILayoutConstraintAxisHorizontal]; + + NSArray* constraints = @[ + // titleLabel constraints. + [titleLabel.leadingAnchor constraintEqualToAnchor:self.leadingAnchor + constant:kHorizontalSpacing], + [titleLabel.trailingAnchor + constraintEqualToAnchor:_switchView.leadingAnchor + constant:-kHorizontalSpacing], + [titleLabel.trailingAnchor + constraintEqualToAnchor:descriptionLabel.trailingAnchor], + [titleLabel.topAnchor constraintEqualToAnchor:self.topAnchor + constant:kVerticalSpacing], + + // descriptionLabel constraints. + [descriptionLabel.leadingAnchor + constraintEqualToAnchor:self.leadingAnchor + constant:kHorizontalSpacing], + [descriptionLabel.topAnchor + constraintEqualToAnchor:titleLabel.bottomAnchor + constant:kVerticalLabelMargin], + [descriptionLabel.bottomAnchor constraintEqualToAnchor:self.bottomAnchor + constant:-kVerticalSpacing], + + // switchView constraints. + [_switchView.trailingAnchor constraintEqualToAnchor:self.trailingAnchor + constant:-kHorizontalSpacing], + [_switchView.centerYAnchor constraintEqualToAnchor:self.centerYAnchor], + ]; + [NSLayoutConstraint activateConstraints:constraints]; + } + return self; +} + +#pragma mark - Private + +- (void)onCookieSwitchToggled:(UISwitch*)paramSender { + // TODO(crbug.com/1063824): Implement this. +} +@end
diff --git a/ios/chrome/browser/ui/ntp/incognito_view.mm b/ios/chrome/browser/ui/ntp/incognito_view.mm index 2cfb4f3..42971cd 100644 --- a/ios/chrome/browser/ui/ntp/incognito_view.mm +++ b/ios/chrome/browser/ui/ntp/incognito_view.mm
@@ -7,6 +7,8 @@ #include "components/google/core/common/google_util.h" #include "components/strings/grit/components_strings.h" #include "ios/chrome/browser/application_context.h" +#import "ios/chrome/browser/ui/ntp/incognito_cookies_view.h" +#import "ios/chrome/browser/ui/page_info/features.h" #import "ios/chrome/browser/ui/toolbar/public/toolbar_constants.h" #import "ios/chrome/browser/ui/toolbar/public/toolbar_utils.h" #include "ios/chrome/browser/ui/util/rtl_geometry.h" @@ -178,6 +180,9 @@ [self addTextSections]; + if (base::FeatureList::IsEnabled(kPageInfoChromeGuard)) + [self addCoockiesViewController]; + // |topGuide| and |bottomGuide| exist to vertically position the stackview // inside the container scrollview. UILayoutGuide* topGuide = [[UILayoutGuide alloc] init]; @@ -446,4 +451,9 @@ object:nil]; } +- (void)addCoockiesViewController { + IncognitoCookiesView* cookiesView = [[IncognitoCookiesView alloc] init]; + [_stackView addArrangedSubview:cookiesView]; +} + @end
diff --git a/ios/chrome/browser/ui/omnibox/popup/omnibox_icon_formatter.mm b/ios/chrome/browser/ui/omnibox/popup/omnibox_icon_formatter.mm index e2691006..4b9caa74 100644 --- a/ios/chrome/browser/ui/omnibox/popup/omnibox_icon_formatter.mm +++ b/ios/chrome/browser/ui/omnibox/popup/omnibox_icon_formatter.mm
@@ -67,7 +67,6 @@ case AutocompleteMatchType::SEARCH_OTHER_ENGINE: case AutocompleteMatchType::SEARCH_SUGGEST: case AutocompleteMatchType::SEARCH_SUGGEST_ENTITY: - case AutocompleteMatchType::SEARCH_SUGGEST_PERSONALIZED: case AutocompleteMatchType::SEARCH_SUGGEST_PROFILE: case AutocompleteMatchType::SEARCH_SUGGEST_TAIL: case AutocompleteMatchType::SEARCH_WHAT_YOU_TYPED: @@ -76,6 +75,7 @@ case AutocompleteMatchType::CLIPBOARD_IMAGE: return SEARCH; case AutocompleteMatchType::SEARCH_HISTORY: + case AutocompleteMatchType::SEARCH_SUGGEST_PERSONALIZED: return SEARCH_HISTORY; case AutocompleteMatchType::CALCULATOR: return CALCULATOR;
diff --git a/ios/chrome/browser/ui/webui/translate_internals/BUILD.gn b/ios/chrome/browser/ui/webui/translate_internals/BUILD.gn index dd5c8df..800ebf0 100644 --- a/ios/chrome/browser/ui/webui/translate_internals/BUILD.gn +++ b/ios/chrome/browser/ui/webui/translate_internals/BUILD.gn
@@ -17,7 +17,7 @@ "//ios/chrome/app/resources:ios_resources", "//ios/chrome/browser", "//ios/chrome/browser/browser_state", - "//ios/chrome/browser/tabs", + "//ios/chrome/browser/main:public", "//ios/chrome/browser/translate", "//ios/chrome/browser/web_state_list", "//ios/web/public/webui",
diff --git a/ios/chrome/browser/ui/webui/translate_internals/ios_translate_internals_handler.h b/ios/chrome/browser/ui/webui/translate_internals/ios_translate_internals_handler.h index 8b20c2e7..703aed9 100644 --- a/ios/chrome/browser/ui/webui/translate_internals/ios_translate_internals_handler.h +++ b/ios/chrome/browser/ui/webui/translate_internals/ios_translate_internals_handler.h
@@ -7,11 +7,9 @@ #include <string> -#include "base/macros.h" #include "base/scoped_observer.h" #include "components/language/ios/browser/ios_language_detection_tab_helper.h" #include "components/translate/translate_internals/translate_internals_handler.h" -#import "ios/chrome/browser/web_state_list/web_state_list.h" #import "ios/chrome/browser/web_state_list/web_state_list_observer.h" #include "ios/web/public/webui/web_ui_ios_message_handler.h" @@ -19,14 +17,20 @@ class WebState; } // namespace web +class AllWebStateListObservationRegistrar; + // The handler for JavaScript messages for chrome://translate-internals. class IOSTranslateInternalsHandler : public translate::TranslateInternalsHandler, public web::WebUIIOSMessageHandler, - public WebStateListObserver, + public language::IOSLanguageDetectionTabHelper::Observer { public: IOSTranslateInternalsHandler(); + // Not copyable or assignable. + IOSTranslateInternalsHandler(const IOSTranslateInternalsHandler&) = delete; + IOSTranslateInternalsHandler& operator=(const IOSTranslateInternalsHandler&) = + delete; ~IOSTranslateInternalsHandler() override; // translate::TranslateInternalsHandler. @@ -41,26 +45,12 @@ // web::WebUIIOSMessageHandler. void RegisterMessages() override; - // WebStateListObserver. - void WebStateInsertedAt(WebStateList* web_state_list, - web::WebState* web_state, - int index, - bool activating) override; - void WebStateReplacedAt(WebStateList* web_state_list, - web::WebState* old_web_state, - web::WebState* new_web_state, - int index) override; - void WebStateDetachedAt(WebStateList* web_state_list, - web::WebState* web_state, - int index) override; - // language::IOSLanguageDetectionTabHelper::Observer void OnLanguageDetermined( const translate::LanguageDetectionDetails& details) override; void IOSLanguageDetectionTabHelperWasDestroyed( language::IOSLanguageDetectionTabHelper* tab_helper) override; - private: // Adds this instance as an observer of the IOSLanguageDetectionTabHelper // associated with |web_state|. void AddLanguageDetectionObserverForWebState(web::WebState* web_state); @@ -68,14 +58,37 @@ // associated with |web_state|. void RemoveLanguageDetectionObserverForWebState(web::WebState* web_state); - std::unique_ptr<ScopedObserver<WebStateList, WebStateListObserver>> - scoped_web_state_list_observer_; + private: + // Inner observer class, owned by the |registrar_|. + class Observer : public WebStateListObserver { + public: + explicit Observer(IOSTranslateInternalsHandler* handler); + Observer(const Observer&) = delete; + Observer& operator=(const Observer&) = delete; + ~Observer() override; + + private: + // WebStateListObserver: + void WebStateInsertedAt(WebStateList* web_state_list, + web::WebState* web_state, + int index, + bool activating) override; + void WebStateReplacedAt(WebStateList* web_state_list, + web::WebState* old_web_state, + web::WebState* new_web_state, + int index) override; + void WebStateDetachedAt(WebStateList* web_state_list, + web::WebState* web_state, + int index) override; + + IOSTranslateInternalsHandler* handler_; + }; + + std::unique_ptr<AllWebStateListObservationRegistrar> registrar_; std::unique_ptr< ScopedObserver<language::IOSLanguageDetectionTabHelper, language::IOSLanguageDetectionTabHelper::Observer>> scoped_tab_helper_observer_; - - DISALLOW_COPY_AND_ASSIGN(IOSTranslateInternalsHandler); }; #endif // IOS_CHROME_BROWSER_UI_WEBUI_TRANSLATE_INTERNALS_IOS_TRANSLATE_INTERNALS_HANDLER_H_
diff --git a/ios/chrome/browser/ui/webui/translate_internals/ios_translate_internals_handler.mm b/ios/chrome/browser/ui/webui/translate_internals/ios_translate_internals_handler.mm index 55bdb1f..3c91585 100644 --- a/ios/chrome/browser/ui/webui/translate_internals/ios_translate_internals_handler.mm +++ b/ios/chrome/browser/ui/webui/translate_internals/ios_translate_internals_handler.mm
@@ -7,8 +7,10 @@ #include "components/translate/core/common/language_detection_details.h" #include "ios/chrome/browser/application_context.h" #include "ios/chrome/browser/browser_state/chrome_browser_state.h" -#import "ios/chrome/browser/tabs/tab_model.h" -#import "ios/chrome/browser/tabs/tab_model_list.h" +#import "ios/chrome/browser/main/all_web_state_list_observation_registrar.h" +#import "ios/chrome/browser/main/browser.h" +#import "ios/chrome/browser/main/browser_list.h" +#import "ios/chrome/browser/main/browser_list_factory.h" #include "ios/chrome/browser/translate/chrome_ios_translate_client.h" #include "ios/chrome/browser/translate/translate_service_ios.h" #import "ios/chrome/browser/web_state_list/web_state_list.h" @@ -19,10 +21,7 @@ #endif IOSTranslateInternalsHandler::IOSTranslateInternalsHandler() - : scoped_web_state_list_observer_( - std::make_unique<ScopedObserver<WebStateList, WebStateListObserver>>( - this)), - scoped_tab_helper_observer_( + : scoped_tab_helper_observer_( std::make_unique<ScopedObserver< language::IOSLanguageDetectionTabHelper, language::IOSLanguageDetectionTabHelper::Observer>>(this)) {} @@ -55,43 +54,30 @@ ChromeBrowserState* chrome_browser_state = ChromeBrowserState::FromBrowserState(browser_state) ->GetOriginalChromeBrowserState(); - NSArray<TabModel*>* tab_models = - TabModelList::GetTabModelsForChromeBrowserState(chrome_browser_state); - for (TabModel* tab_model in tab_models) { - scoped_web_state_list_observer_->Add(tab_model.webStateList); - for (int i = 0; i < tab_model.webStateList->count(); i++) { - AddLanguageDetectionObserverForWebState( - tab_model.webStateList->GetWebStateAt(i)); + + BrowserList* browser_list = + BrowserListFactory::GetForBrowserState(chrome_browser_state); + std::set<Browser*> browsers = chrome_browser_state->IsOffTheRecord() + ? browser_list->AllIncognitoBrowsers() + : browser_list->AllRegularBrowsers(); + + for (Browser* browser : browsers) { + WebStateList* web_state_list = browser->GetWebStateList(); + for (int i = 0; i < web_state_list->count(); i++) { + AddLanguageDetectionObserverForWebState(web_state_list->GetWebStateAt(i)); } } + AllWebStateListObservationRegistrar::Mode mode = + chrome_browser_state->IsOffTheRecord() + ? AllWebStateListObservationRegistrar::Mode::INCOGNITO + : AllWebStateListObservationRegistrar::Mode::REGULAR; + registrar_ = std::make_unique<AllWebStateListObservationRegistrar>( + chrome_browser_state, std::make_unique<Observer>(this), mode); + RegisterMessageCallbacks(); } -void IOSTranslateInternalsHandler::WebStateInsertedAt( - WebStateList* web_state_list, - web::WebState* web_state, - int index, - bool activating) { - AddLanguageDetectionObserverForWebState(web_state); -} - -void IOSTranslateInternalsHandler::WebStateReplacedAt( - WebStateList* web_state_list, - web::WebState* old_web_state, - web::WebState* new_web_state, - int index) { - RemoveLanguageDetectionObserverForWebState(old_web_state); - AddLanguageDetectionObserverForWebState(new_web_state); -} - -void IOSTranslateInternalsHandler::WebStateDetachedAt( - WebStateList* web_state_list, - web::WebState* web_state, - int index) { - RemoveLanguageDetectionObserverForWebState(web_state); -} - void IOSTranslateInternalsHandler::OnLanguageDetermined( const translate::LanguageDetectionDetails& details) { if (web_ui()->GetWebState()->GetBrowserState()->IsOffTheRecord() || @@ -123,3 +109,32 @@ language::IOSLanguageDetectionTabHelper::FromWebState(web_state); scoped_tab_helper_observer_->Remove(tab_helper); } + +IOSTranslateInternalsHandler::Observer::Observer( + IOSTranslateInternalsHandler* handler) + : handler_(handler) {} +IOSTranslateInternalsHandler::Observer::~Observer() {} + +void IOSTranslateInternalsHandler::Observer::WebStateInsertedAt( + WebStateList* web_state_list, + web::WebState* web_state, + int index, + bool activating) { + handler_->AddLanguageDetectionObserverForWebState(web_state); +} + +void IOSTranslateInternalsHandler::Observer::WebStateReplacedAt( + WebStateList* web_state_list, + web::WebState* old_web_state, + web::WebState* new_web_state, + int index) { + handler_->RemoveLanguageDetectionObserverForWebState(old_web_state); + handler_->AddLanguageDetectionObserverForWebState(new_web_state); +} + +void IOSTranslateInternalsHandler::Observer::WebStateDetachedAt( + WebStateList* web_state_list, + web::WebState* web_state, + int index) { + handler_->RemoveLanguageDetectionObserverForWebState(web_state); +}
diff --git a/ios/chrome/credential_provider_extension/BUILD.gn b/ios/chrome/credential_provider_extension/BUILD.gn index 8ea809ee..1bbac48 100644 --- a/ios/chrome/credential_provider_extension/BUILD.gn +++ b/ios/chrome/credential_provider_extension/BUILD.gn
@@ -51,6 +51,7 @@ deps = [ ":system_strings", "//base", + "//ios/chrome/common/app_group", "//ios/chrome/common/app_group:command", "//ios/chrome/common/ui/colors", "//ios/chrome/common/ui/reauthentication",
diff --git a/ios/chrome/credential_provider_extension/ui/credential_list_consumer.h b/ios/chrome/credential_provider_extension/ui/credential_list_consumer.h index 21d972a..19a84670 100644 --- a/ios/chrome/credential_provider_extension/ui/credential_list_consumer.h +++ b/ios/chrome/credential_provider_extension/ui/credential_list_consumer.h
@@ -12,6 +12,9 @@ // Called when the user taps the cancel button in the navigation bar. - (void)navigationCancelButtonWasPressed:(UIButton*)button; +// Called when the user is filtering results through search. +- (void)updateResultsWithFilter:(NSString*)filter; + @end @protocol CredentialListConsumer <NSObject>
diff --git a/ios/chrome/credential_provider_extension/ui/credential_list_mediator.mm b/ios/chrome/credential_provider_extension/ui/credential_list_mediator.mm index 21e5b60..e99654a 100644 --- a/ios/chrome/credential_provider_extension/ui/credential_list_mediator.mm +++ b/ios/chrome/credential_provider_extension/ui/credential_list_mediator.mm
@@ -54,7 +54,7 @@ [self.UIHandler showEmptyCredentials]; } -#pragma mark - CredentialListConsumer +#pragma mark - CredentialListConsumerDelegate - (void)navigationCancelButtonWasPressed:(UIButton*)button { NSError* error = @@ -64,4 +64,8 @@ [self.context cancelRequestWithError:error]; } +- (void)updateResultsWithFilter:(NSString*)filter { + // TODO(crbug.com/1045454): Implement this method. +} + @end
diff --git a/ios/chrome/credential_provider_extension/ui/credential_list_view_controller.h b/ios/chrome/credential_provider_extension/ui/credential_list_view_controller.h index 563ac47..5533d39a 100644 --- a/ios/chrome/credential_provider_extension/ui/credential_list_view_controller.h +++ b/ios/chrome/credential_provider_extension/ui/credential_list_view_controller.h
@@ -10,7 +10,7 @@ #import "ios/chrome/credential_provider_extension/ui/credential_list_consumer.h" @interface CredentialListViewController - : UIViewController <CredentialListConsumer> + : UITableViewController <CredentialListConsumer> @end #endif // IOS_CHROME_CREDENTIAL_PROVIDER_EXTENSION_UI_CREDENTIAL_LIST_VIEW_CONTROLLER_H_
diff --git a/ios/chrome/credential_provider_extension/ui/credential_list_view_controller.mm b/ios/chrome/credential_provider_extension/ui/credential_list_view_controller.mm index 18ed3a27..fd2ee60b 100644 --- a/ios/chrome/credential_provider_extension/ui/credential_list_view_controller.mm +++ b/ios/chrome/credential_provider_extension/ui/credential_list_view_controller.mm
@@ -10,6 +10,13 @@ #error "This file requires ARC support." #endif +@interface CredentialListViewController () <UISearchResultsUpdating> + +// Search controller that contains search bar. +@property(nonatomic, strong) UISearchController* searchController; + +@end + // TODO(crbug.com/1045454): Implement this view controller. @implementation CredentialListViewController @@ -19,6 +26,26 @@ [super viewDidLoad]; self.view.backgroundColor = [UIColor colorNamed:kBackgroundColor]; self.navigationItem.rightBarButtonItem = [self navigationCancelButton]; + + self.searchController = + [[UISearchController alloc] initWithSearchResultsController:nil]; + self.searchController.searchResultsUpdater = self; + self.searchController.obscuresBackgroundDuringPresentation = NO; + self.tableView.tableHeaderView = self.searchController.searchBar; + self.navigationController.navigationBar.translucent = NO; + + // Presentation of searchController will walk up the view controller hierarchy + // until it finds the root view controller or one that defines a presentation + // context. Make this class the presentation context so that the search + // controller does not present on top of the navigation controller. + self.definesPresentationContext = YES; +} + +#pragma mark - UISearchResultsUpdating + +- (void)updateSearchResultsForSearchController: + (UISearchController*)searchController { + [self.delegate updateResultsWithFilter:searchController.searchBar.text]; } #pragma mark - Private
diff --git a/ios/showcase/core/showcase_model.mm b/ios/showcase/core/showcase_model.mm index 7da05e9..d21e01d 100644 --- a/ios/showcase/core/showcase_model.mm +++ b/ios/showcase/core/showcase_model.mm
@@ -32,6 +32,11 @@ showcase::kUseCaseKey : @"Credential Provider Stale Credentials UI", }, @{ + showcase::kClassForDisplayKey : @"CredentialListViewController", + showcase::kClassForInstantiationKey : @"SCCredentialListCoordinator", + showcase::kUseCaseKey : @"Credential Provider Credentials List UI", + }, + @{ showcase::kClassForDisplayKey : @"ContentSuggestionsViewController", showcase::kClassForInstantiationKey : @"SCContentSuggestionsCoordinator", showcase::kUseCaseKey : @"Content Suggestions UI",
diff --git a/ios/showcase/credential_provider/BUILD.gn b/ios/showcase/credential_provider/BUILD.gn index 1eac6607..9bf6b5f 100644 --- a/ios/showcase/credential_provider/BUILD.gn +++ b/ios/showcase/credential_provider/BUILD.gn
@@ -3,8 +3,14 @@ # found in the LICENSE file. source_set("credential_provider") { - sources = [] - deps = [ "//ios/chrome/credential_provider_extension/ui" ] + sources = [ + "sc_credential_list_coordinator.h", + "sc_credential_list_coordinator.mm", + ] + deps = [ + "//ios/chrome/credential_provider_extension/ui", + "//ios/showcase/common", + ] libs = [ "UIKit.framework" ] configs += [ "//build/config/compiler:enable_arc" ] }
diff --git a/ios/showcase/credential_provider/sc_credential_list_coordinator.h b/ios/showcase/credential_provider/sc_credential_list_coordinator.h new file mode 100644 index 0000000..eacc7334 --- /dev/null +++ b/ios/showcase/credential_provider/sc_credential_list_coordinator.h
@@ -0,0 +1,13 @@ +// 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_SHOWCASE_CREDENTIAL_PROVIDER_SC_CREDENTIAL_LIST_COORDINATOR_H_ +#define IOS_SHOWCASE_CREDENTIAL_PROVIDER_SC_CREDENTIAL_LIST_COORDINATOR_H_ + +#import "ios/showcase/common/navigation_coordinator.h" + +@interface SCCredentialListCoordinator : NSObject <NavigationCoordinator> +@end + +#endif // IOS_SHOWCASE_CREDENTIAL_PROVIDER_SC_CREDENTIAL_LIST_COORDINATOR_H_
diff --git a/ios/showcase/credential_provider/sc_credential_list_coordinator.mm b/ios/showcase/credential_provider/sc_credential_list_coordinator.mm new file mode 100644 index 0000000..f6aed42 --- /dev/null +++ b/ios/showcase/credential_provider/sc_credential_list_coordinator.mm
@@ -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. + +#import "ios/showcase/credential_provider/sc_credential_list_coordinator.h" + +#import <UIKit/UIKit.h> + +#import "ios/chrome/credential_provider_extension/ui/credential_list_consumer.h" +#import "ios/chrome/credential_provider_extension/ui/credential_list_view_controller.h" + +#if !defined(__has_feature) || !__has_feature(objc_arc) +#error "This file requires ARC support." +#endif + +@interface SCCredentialListCoordinator () <CredentialListConsumerDelegate> +@property(nonatomic, strong) CredentialListViewController* viewController; +@end + +@implementation SCCredentialListCoordinator +@synthesize baseViewController = _baseViewController; +@synthesize viewController = _viewController; + +- (void)start { + self.viewController = [[CredentialListViewController alloc] init]; + self.viewController.title = @"Autofill Chrome Password"; + self.viewController.delegate = self; + [self.baseViewController setHidesBarsOnSwipe:NO]; + [self.baseViewController pushViewController:self.viewController animated:YES]; +} + +#pragma mark - CredentialListConsumerDelegate + +- (void)navigationCancelButtonWasPressed:(UIButton*)button { +} + +- (void)updateResultsWithFilter:(NSString*)filter { + // TODO(crbug.com/1045454): Implement this method. +} + +@end
diff --git a/ios/web/web_state/BUILD.gn b/ios/web/web_state/BUILD.gn index 5420639..0367a3f 100644 --- a/ios/web/web_state/BUILD.gn +++ b/ios/web/web_state/BUILD.gn
@@ -98,6 +98,7 @@ "//components/url_formatter", "//ios/web/common", "//ios/web/public", + "//ui/gfx", ] sources = [
diff --git a/ios/web/web_state/context_menu_constants.h b/ios/web/web_state/context_menu_constants.h index dd4482b..19247637 100644 --- a/ios/web/web_state/context_menu_constants.h +++ b/ios/web/web_state/context_menu_constants.h
@@ -38,6 +38,11 @@ // elements with href only). extern NSString* const kContextMenuElementInnerText; +// The maximum character length for the context menu title. +// Value was chosen for no particular reason; Usually results in a 2-3 line +// title. +extern const unsigned int kContextMenuMaxTitleLength; + } // namespace web #endif // IOS_WEB_WEB_STATE_CONTEXT_MENU_CONSTANTS_H_
diff --git a/ios/web/web_state/context_menu_constants.mm b/ios/web/web_state/context_menu_constants.mm index 9a7d499..04c4af16 100644 --- a/ios/web/web_state/context_menu_constants.mm +++ b/ios/web/web_state/context_menu_constants.mm
@@ -16,5 +16,6 @@ NSString* const kContextMenuElementTitle = @"title"; NSString* const kContextMenuElementReferrerPolicy = @"referrerPolicy"; NSString* const kContextMenuElementInnerText = @"innerText"; +const unsigned int kContextMenuMaxTitleLength = 101; } // namespace web
diff --git a/ios/web/web_state/context_menu_params_utils.mm b/ios/web/web_state/context_menu_params_utils.mm index d376851..bf47b99 100644 --- a/ios/web/web_state/context_menu_params_utils.mm +++ b/ios/web/web_state/context_menu_params_utils.mm
@@ -8,6 +8,7 @@ #include "components/url_formatter/url_formatter.h" #include "ios/web/common/referrer_util.h" #import "ios/web/web_state/context_menu_constants.h" +#include "ui/gfx/text_elider.h" #if !defined(__has_feature) || !__has_feature(objc_arc) #error "This file requires ARC support." @@ -64,6 +65,12 @@ if ([innerText length] > 0) { params.link_text = [innerText copy]; } + if ([params.menu_title length] > kContextMenuMaxTitleLength) { + base::string16 shortenedTitle; + gfx::ElideString(base::SysNSStringToUTF16(params.menu_title), + kContextMenuMaxTitleLength, &shortenedTitle); + params.menu_title = base::SysUTF16ToNSString(shortenedTitle); + } return params; }
diff --git a/ios/web/web_state/context_menu_params_utils_unittest.mm b/ios/web/web_state/context_menu_params_utils_unittest.mm index 8207e8da..fa08a18 100644 --- a/ios/web/web_state/context_menu_params_utils_unittest.mm +++ b/ios/web/web_state/context_menu_params_utils_unittest.mm
@@ -27,6 +27,9 @@ const char kLinkText[] = "link text"; const char kJavaScriptLinkUrl[] = "javascript://src.url/"; const char kDataUrl[] = "data://foo.bar/"; +const char kLinkToTruncate[] = + "https://subdomain.domain.com/site?key=value&key=value&key=value\ + &key=value&key=value&key=value&key=value&key=value"; } namespace web { @@ -46,7 +49,7 @@ EXPECT_EQ(params.link_text, nil); } -// Tests the the parsing of the element NSDictionary. +// Tests the parsing of the element NSDictionary. TEST_F(ContextMenuParamsUtilsTest, DictionaryConstructorTest) { web::ContextMenuParams params = web::ContextMenuParamsFromElementDictionary(@{ kContextMenuElementHyperlink : @(kLinkUrl), @@ -156,4 +159,14 @@ })); } +// Tests that the menu title is truncated when it is above the character limit. +TEST_F(ContextMenuParamsUtilsTest, DictionaryConstructorTestTruncateTitle) { + web::ContextMenuParams params = web::ContextMenuParamsFromElementDictionary(@{ + kContextMenuElementHyperlink : @(kLinkToTruncate), + }); + + EXPECT_GT(strlen(kLinkToTruncate), kContextMenuMaxTitleLength); + EXPECT_EQ(params.menu_title.length, kContextMenuMaxTitleLength); +} + } // namespace web
diff --git a/media/base/silent_sink_suspender_unittest.cc b/media/base/silent_sink_suspender_unittest.cc index e6b2c85..3d8316b 100644 --- a/media/base/silent_sink_suspender_unittest.cc +++ b/media/base/silent_sink_suspender_unittest.cc
@@ -2,19 +2,19 @@ // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. +#include "media/base/silent_sink_suspender.h" + #include "base/run_loop.h" +#include "base/test/gmock_callback_support.h" #include "base/test/test_message_loop.h" #include "media/base/fake_audio_render_callback.h" #include "media/base/mock_audio_renderer_sink.h" -#include "media/base/silent_sink_suspender.h" #include "testing/gmock/include/gmock/gmock.h" #include "testing/gtest/include/gtest/gtest.h" -namespace media { +using base::test::RunClosure; -ACTION_P(RunClosure, closure) { - closure.Run(); -} +namespace media { class SilentSinkSuspenderTest : public testing::Test { public: @@ -184,4 +184,4 @@ 0); } -} // namespace content +} // namespace media
diff --git a/media/capture/video/linux/v4l2_capture_delegate_unittest.cc b/media/capture/video/linux/v4l2_capture_delegate_unittest.cc index 755daf48..1219169 100644 --- a/media/capture/video/linux/v4l2_capture_delegate_unittest.cc +++ b/media/capture/video/linux/v4l2_capture_delegate_unittest.cc
@@ -8,6 +8,7 @@ #include "base/files/file_enumerator.h" #include "base/posix/eintr_wrapper.h" #include "base/run_loop.h" +#include "base/test/gmock_callback_support.h" #include "base/test/task_environment.h" #include "base/threading/thread_task_runner_handle.h" #include "build/build_config.h" @@ -19,16 +20,13 @@ #include "testing/gmock/include/gmock/gmock.h" #include "testing/gtest/include/gtest/gtest.h" +using base::test::RunClosure; using ::testing::_; namespace media { namespace { -ACTION_P(RunClosure, closure) { - closure.Run(); -} - // Base id and class identifiers for Controls to be modified and later tested // agains default values. static struct {
diff --git a/media/capture/video/video_capture_device_unittest.cc b/media/capture/video/video_capture_device_unittest.cc index 06da0c3..7e69078 100644 --- a/media/capture/video/video_capture_device_unittest.cc +++ b/media/capture/video/video_capture_device_unittest.cc
@@ -15,6 +15,7 @@ #include "base/memory/ref_counted.h" #include "base/run_loop.h" #include "base/single_thread_task_runner.h" +#include "base/test/gmock_callback_support.h" #include "base/test/task_environment.h" #include "base/test/test_timeouts.h" #include "base/threading/thread.h" @@ -129,18 +130,15 @@ #define WRAPPED_TEST_P(test_case_name, test_name) \ TEST_P(test_case_name, test_name) +using base::test::RunClosure; using ::testing::_; using ::testing::Invoke; -using ::testing::SaveArg; using ::testing::Return; +using ::testing::SaveArg; namespace media { namespace { -ACTION_P(RunClosure, closure) { - closure.Run(); -} - void DumpError(media::VideoCaptureError, const base::Location& location, const std::string& message) {
diff --git a/media/gpu/BUILD.gn b/media/gpu/BUILD.gn index be94066..dbe7144 100644 --- a/media/gpu/BUILD.gn +++ b/media/gpu/BUILD.gn
@@ -156,7 +156,10 @@ } if (use_vaapi) { - public_deps += [ "//media/gpu/vaapi" ] + public_deps += [ + "//media/gpu/vaapi", + "//media/gpu/vaapi:common", + ] } if (is_win) {
diff --git a/media/gpu/test/BUILD.gn b/media/gpu/test/BUILD.gn index 5dd95ec1..d146559 100644 --- a/media/gpu/test/BUILD.gn +++ b/media/gpu/test/BUILD.gn
@@ -35,9 +35,6 @@ if (use_ozone) { deps += [ "//ui/ozone" ] } - if (use_vaapi) { - deps += [ "//media/gpu/vaapi" ] - } } source_set("frame_validator") {
diff --git a/media/gpu/vaapi/BUILD.gn b/media/gpu/vaapi/BUILD.gn index 496ad83..7ef509f 100644 --- a/media/gpu/vaapi/BUILD.gn +++ b/media/gpu/vaapi/BUILD.gn
@@ -34,10 +34,6 @@ "h264_encoder.h", "h264_vaapi_video_decoder_delegate.cc", "h264_vaapi_video_decoder_delegate.h", - "va_surface.cc", - "va_surface.h", - "vaapi_common.cc", - "vaapi_common.h", "vaapi_dmabuf_video_frame_mapper.cc", "vaapi_dmabuf_video_frame_mapper.h", "vaapi_image_decode_accelerator_worker.cc", @@ -54,8 +50,6 @@ "vaapi_picture.h", "vaapi_picture_factory.cc", "vaapi_picture_factory.h", - "vaapi_utils.cc", - "vaapi_utils.h", "vaapi_video_decode_accelerator.cc", "vaapi_video_decode_accelerator.h", "vaapi_video_decoder.cc", @@ -66,8 +60,6 @@ "vaapi_video_encode_accelerator.h", "vaapi_webp_decoder.cc", "vaapi_webp_decoder.h", - "vaapi_wrapper.cc", - "vaapi_wrapper.h", "vp8_encoder.cc", "vp8_encoder.h", "vp8_vaapi_video_decoder_delegate.cc", @@ -78,13 +70,10 @@ "vp9_vaapi_video_decoder_delegate.h", ] - configs += [ - "//build/config/linux/libva", - "//third_party/libyuv:libyuv_config", - ] + configs += [ "//build/config/linux/libva" ] deps = [ - ":libva_stubs", + ":common", "//base", "//gpu/config", "//gpu/ipc/common", @@ -102,6 +91,7 @@ public_deps = [ "//media", "//skia", + "//ui/gl", ] if (is_chromeos) { @@ -148,6 +138,42 @@ } } +source_set("common") { + defines = [ "MEDIA_GPU_IMPLEMENTATION" ] + sources = [ + "va_surface.cc", + "va_surface.h", + "vaapi_common.cc", + "vaapi_common.h", + "vaapi_utils.cc", + "vaapi_utils.h", + "vaapi_wrapper.cc", + "vaapi_wrapper.h", + ] + public_deps = [ + "//base", + "//media", + "//media/gpu:common", + "//ui/gfx/geometry", + ] + deps = [ + ":libva_stubs", + "//third_party/libyuv", + "//ui/gfx:memory_buffer", + "//ui/gl", + ] + if (ozone_platform_gbm) { + deps += [ "//ui/ozone" ] + } + + if (use_x11) { + configs += [ "//build/config/linux:x11" ] + deps += [ "//ui/gfx/x" ] + } + + configs += [ "//build/config/linux/libva" ] +} + source_set("vaapi_test_utils") { testonly = true sources = [ @@ -155,7 +181,7 @@ "test_utils.h", ] deps = [ - ":vaapi", + ":common", "//base", "//testing/gtest", "//third_party/libyuv:libyuv", @@ -171,6 +197,7 @@ "vaapi_video_decode_accelerator_unittest.cc", ] deps = [ + ":common", ":vaapi", "//base", "//base/test:test_support", @@ -206,6 +233,7 @@ testonly = true sources = [ "vaapi_jpeg_decoder_unittest.cc" ] deps = [ + ":common", ":vaapi", ":vaapi_image_decoder_test_common", ":vaapi_test_utils", @@ -224,6 +252,7 @@ testonly = true sources = [ "vaapi_webp_decoder_unittest.cc" ] deps = [ + ":common", ":vaapi", ":vaapi_image_decoder_test_common", ":vaapi_test_utils", @@ -242,7 +271,7 @@ testonly = true sources = [ "vaapi_utils_unittest.cc" ] deps = [ - ":vaapi", + ":common", "//base", "//base/test:test_support", "//testing/gtest", @@ -253,7 +282,7 @@ test("vaapi_unittest") { sources = [ "vaapi_unittest.cc" ] deps = [ - ":vaapi", + ":common", ":vaapi_utils_unittest", "//base", "//media/gpu/test:helpers",
diff --git a/media/gpu/vaapi/vaapi_dmabuf_video_frame_mapper.cc b/media/gpu/vaapi/vaapi_dmabuf_video_frame_mapper.cc index 88769ece..fb86177 100644 --- a/media/gpu/vaapi/vaapi_dmabuf_video_frame_mapper.cc +++ b/media/gpu/vaapi/vaapi_dmabuf_video_frame_mapper.cc
@@ -129,16 +129,26 @@ return nullptr; } - if (!video_frame->HasDmaBufs()) { + if (!video_frame->HasDmaBufs()) + return nullptr; + + if (video_frame->format() != format_) { + VLOGF(1) << "Unexpected format, got: " + << VideoPixelFormatToString(video_frame->format()) + << ", expected: " << VideoPixelFormatToString(format_); return nullptr; } - if (video_frame->format() != format_) { - VLOGF(1) << "Unexpected format: " << video_frame->format(); + + scoped_refptr<gfx::NativePixmap> pixmap = + CreateNativePixmapDmaBuf(video_frame.get()); + if (!pixmap) { + VLOGF(1) << "Failed to create NativePixmap from VideoFrame"; return nullptr; } scoped_refptr<VASurface> va_surface = - vaapi_wrapper_->CreateVASurfaceForVideoFrame(video_frame.get()); + vaapi_wrapper_->CreateVASurfaceForPixmap(std::move(pixmap)); + if (!va_surface) { VLOGF(1) << "Failed to create VASurface"; return nullptr;
diff --git a/media/gpu/vaapi/vaapi_image_processor_backend.cc b/media/gpu/vaapi/vaapi_image_processor_backend.cc index dd9bbe8b..6f63daf 100644 --- a/media/gpu/vaapi/vaapi_image_processor_backend.cc +++ b/media/gpu/vaapi/vaapi_image_processor_backend.cc
@@ -172,14 +172,37 @@ DVLOGF(4); DCHECK_CALLED_ON_VALID_SEQUENCE(backend_sequence_checker_); - auto src_va_surface = - vaapi_wrapper_->CreateVASurfaceForVideoFrame(input_frame.get()); - auto dst_va_surface = - vaapi_wrapper_->CreateVASurfaceForVideoFrame(output_frame.get()); - if (!src_va_surface || !dst_va_surface) { - // Failed to create VASurface for frames. |cb| isn't executed in the case. + DCHECK(input_frame); + DCHECK(output_frame); + scoped_refptr<gfx::NativePixmap> input_pixmap = + CreateNativePixmapDmaBuf(input_frame.get()); + if (!input_pixmap) { + VLOGF(1) << "Failed to create NativePixmap from VideoFrame"; + error_cb_.Run(); return; } + + auto src_va_surface = + vaapi_wrapper_->CreateVASurfaceForPixmap(std::move(input_pixmap)); + + if (!src_va_surface) + return; + + scoped_refptr<gfx::NativePixmap> output_pixmap = + CreateNativePixmapDmaBuf(output_frame.get()); + if (!output_pixmap) { + VLOGF(1) << "Failed to create NativePixmap from VideoFrame"; + error_cb_.Run(); + return; + } + + auto dst_va_surface = + vaapi_wrapper_->CreateVASurfaceForPixmap(std::move(output_pixmap)); + + // Failed to create VASurface for frames. |cb| isn't executed in the case. + if (!dst_va_surface) + return; + // VA-API performs pixel format conversion and scaling without any filters. if (!vaapi_wrapper_->BlitSurface(*src_va_surface, *dst_va_surface, input_frame->visible_rect(),
diff --git a/media/gpu/vaapi/vaapi_jpeg_encode_accelerator.cc b/media/gpu/vaapi/vaapi_jpeg_encode_accelerator.cc index c8dd04d..40c3764d 100644 --- a/media/gpu/vaapi/vaapi_jpeg_encode_accelerator.cc +++ b/media/gpu/vaapi/vaapi_jpeg_encode_accelerator.cc
@@ -168,12 +168,21 @@ va_format_ = va_format; input_size_ = input_size; } + DCHECK(input_frame); + scoped_refptr<gfx::NativePixmap> pixmap = + CreateNativePixmapDmaBuf(input_frame.get()); + if (!pixmap) { + VLOGF(1) << "Failed to create NativePixmap from VideoFrame"; + notify_error_cb_.Run(task_id, PLATFORM_FAILURE); + return; + } // We need to explicitly blit the bound input surface here to make sure the // input we sent to VAAPI encoder is in tiled NV12 format since implicit // tiling logic is not contained in every driver. auto input_surface = - vpp_vaapi_wrapper_->CreateVASurfaceForVideoFrame(input_frame.get()); + vpp_vaapi_wrapper_->CreateVASurfaceForPixmap(std::move(pixmap)); + if (!input_surface) { VLOGF(1) << "Failed to create input va surface"; notify_error_cb_.Run(task_id, PLATFORM_FAILURE);
diff --git a/media/gpu/vaapi/vaapi_mjpeg_decode_accelerator.cc b/media/gpu/vaapi/vaapi_mjpeg_decode_accelerator.cc index eac39c8..0355099 100644 --- a/media/gpu/vaapi/vaapi_mjpeg_decode_accelerator.cc +++ b/media/gpu/vaapi/vaapi_mjpeg_decode_accelerator.cc
@@ -350,12 +350,21 @@ scoped_refptr<VideoFrame> video_frame) { DCHECK(decoder_task_runner_->BelongsToCurrentThread()); DCHECK(surface); + DCHECK(video_frame); TRACE_EVENT1("jpeg", __func__, "input_buffer_id", input_buffer_id); + scoped_refptr<gfx::NativePixmap> pixmap = + CreateNativePixmapDmaBuf(video_frame.get()); + if (!pixmap) { + VLOGF(1) << "Failed to create NativePixmap from VideoFrame"; + return false; + } + // Bind a VA surface to |video_frame|. scoped_refptr<VASurface> output_surface = - vpp_vaapi_wrapper_->CreateVASurfaceForVideoFrame(video_frame.get()); + vpp_vaapi_wrapper_->CreateVASurfaceForPixmap(std::move(pixmap)); + if (!output_surface) { VLOGF(1) << "Cannot create VA surface for output buffer"; return false;
diff --git a/media/gpu/vaapi/vaapi_video_decode_accelerator_unittest.cc b/media/gpu/vaapi/vaapi_video_decode_accelerator_unittest.cc index d546f6b..280fad78 100644 --- a/media/gpu/vaapi/vaapi_video_decode_accelerator_unittest.cc +++ b/media/gpu/vaapi/vaapi_video_decode_accelerator_unittest.cc
@@ -7,6 +7,7 @@ #include "base/bind.h" #include "base/memory/ptr_util.h" #include "base/run_loop.h" +#include "base/test/gmock_callback_support.h" #include "base/test/task_environment.h" #include "media/gpu/accelerated_video_decoder.h" #include "media/gpu/vaapi/vaapi_picture.h" @@ -15,6 +16,7 @@ #include "testing/gmock/include/gmock/gmock.h" #include "testing/gtest/include/gtest/gtest.h" +using base::test::RunClosure; using ::testing::_; using ::testing::DoAll; using ::testing::Invoke; @@ -27,10 +29,6 @@ namespace { -ACTION_P(RunClosure, closure) { - closure.Run(); -} - struct TestParams { VideoCodecProfile video_codec; bool decode_using_client_picture_buffers;
diff --git a/media/gpu/vaapi/vaapi_video_decoder.cc b/media/gpu/vaapi/vaapi_video_decoder.cc index ed2944a..b7f676a 100644 --- a/media/gpu/vaapi/vaapi_video_decoder.cc +++ b/media/gpu/vaapi/vaapi_video_decoder.cc
@@ -15,6 +15,7 @@ #include "media/base/video_frame.h" #include "media/base/video_util.h" #include "media/gpu/chromeos/dmabuf_video_frame_pool.h" +#include "media/gpu/chromeos/platform_video_frame_utils.h" #include "media/gpu/gpu_video_decode_accelerator_helpers.h" #include "media/gpu/macros.h" #include "media/gpu/vaapi/h264_vaapi_video_decoder_delegate.h" @@ -296,9 +297,18 @@ return nullptr; } + scoped_refptr<gfx::NativePixmap> pixmap = + CreateNativePixmapDmaBuf(frame.get()); + if (!pixmap) { + LOG(ERROR) << "Failed to create NativePixmap from VideoFrame"; + SetState(State::kError); + return nullptr; + } + // Create VASurface from the native pixmap. scoped_refptr<VASurface> va_surface = - vaapi_wrapper_->CreateVASurfaceForVideoFrame(frame.get()); + vaapi_wrapper_->CreateVASurfaceForPixmap(std::move(pixmap)); + if (!va_surface || va_surface->id() == VA_INVALID_ID) { LOG(ERROR) << "Failed to create VASurface from VideoFrame"; SetState(State::kError);
diff --git a/media/gpu/vaapi/vaapi_video_encode_accelerator.cc b/media/gpu/vaapi/vaapi_video_encode_accelerator.cc index 4b1b4c3..234754e1 100644 --- a/media/gpu/vaapi/vaapi_video_encode_accelerator.cc +++ b/media/gpu/vaapi/vaapi_video_encode_accelerator.cc
@@ -635,8 +635,17 @@ "Expected NV12, got: " << frame->format()); return nullptr; } + DCHECK(frame); - input_surface = vaapi_wrapper_->CreateVASurfaceForVideoFrame(frame.get()); + scoped_refptr<gfx::NativePixmap> pixmap = + CreateNativePixmapDmaBuf(frame.get()); + if (!pixmap) { + NOTIFY_ERROR(kPlatformFailureError, + "Failed to create NativePixmap from VideoFrame"); + return nullptr; + } + input_surface = vaapi_wrapper_->CreateVASurfaceForPixmap(std::move(pixmap)); + if (!input_surface) { NOTIFY_ERROR(kPlatformFailureError, "Failed to create VASurface"); return nullptr;
diff --git a/media/gpu/vaapi/vaapi_wrapper.cc b/media/gpu/vaapi/vaapi_wrapper.cc index 40426a7e..0a391158 100644 --- a/media/gpu/vaapi/vaapi_wrapper.cc +++ b/media/gpu/vaapi/vaapi_wrapper.cc
@@ -43,8 +43,6 @@ // Auto-generated for dlopen libva libraries #include "media/gpu/vaapi/va_stubs.h" -#include "media/gpu/chromeos/platform_video_frame_utils.h" -#include "media/gpu/vaapi/vaapi_picture.h" #include "media/gpu/vaapi/vaapi_utils.h" #include "third_party/libyuv/include/libyuv.h" #include "ui/gfx/buffer_format_util.h" @@ -1542,17 +1540,6 @@ return va_res == VA_STATUS_SUCCESS; } -scoped_refptr<VASurface> VaapiWrapper::CreateVASurfaceForVideoFrame( - const VideoFrame* frame) { - DCHECK(frame); - scoped_refptr<gfx::NativePixmap> pixmap = CreateNativePixmapDmaBuf(frame); - if (!pixmap) { - LOG(ERROR) << "Failed to create NativePixmap from VideoFrame"; - return nullptr; - } - return CreateVASurfaceForPixmap(std::move(pixmap)); -} - scoped_refptr<VASurface> VaapiWrapper::CreateVASurfaceForPixmap( scoped_refptr<gfx::NativePixmap> pixmap) { const gfx::BufferFormat buffer_format = pixmap->GetBufferFormat();
diff --git a/media/gpu/vaapi/vaapi_wrapper.h b/media/gpu/vaapi/vaapi_wrapper.h index 71e88dd..8eb661e 100644 --- a/media/gpu/vaapi/vaapi_wrapper.h +++ b/media/gpu/vaapi/vaapi_wrapper.h
@@ -252,13 +252,6 @@ const gfx::Size& size, const base::Optional<gfx::Size>& visible_size = base::nullopt); - // Creates a self-releasing VASurface from |frame|. The created VASurface - // doesn't have the ownership of |frame|, while it shares the ownership of the - // underlying buffer represented by |frame|. In other words, the buffer is - // alive at least until both |frame| and the created VASurface are destroyed. - scoped_refptr<VASurface> CreateVASurfaceForVideoFrame( - const VideoFrame* frame); - // Creates a self-releasing VASurface from |pixmap|. The created VASurface // shares the ownership of the underlying buffer represented by |pixmap|. The // ownership of the surface is transferred to the caller. A caller can destroy
diff --git a/media/gpu/windows/d3d11_texture_selector.cc b/media/gpu/windows/d3d11_texture_selector.cc index ffb1c3f..b3f0c78 100644 --- a/media/gpu/windows/d3d11_texture_selector.cc +++ b/media/gpu/windows/d3d11_texture_selector.cc
@@ -10,6 +10,7 @@ #include "media/base/media_log.h" #include "media/base/media_switches.h" #include "media/gpu/windows/d3d11_copying_texture_wrapper.h" +#include "media/gpu/windows/d3d11_video_device_format_support.h" #include "ui/gfx/geometry/size.h" #include "ui/gl/direct_composition_surface_win.h" @@ -39,6 +40,7 @@ const gpu::GpuDriverBugWorkarounds& workarounds, DXGI_FORMAT decoder_output_format, TextureSelector::HDRMode hdr_output_mode, + const FormatSupportChecker* format_checker, MediaLog* media_log) { bool supports_nv12_decode_swap_chain = gl::DirectCompositionSurfaceWin::IsDecodeSwapChainSupported(); @@ -82,17 +84,48 @@ // using an 11.1-capable device. // TODO(liberato): Get the context and ask it. const bool is_d3d_11_1 = true; + if (!is_d3d_11_1 || hdr_output_mode == HDRMode::kSDROnly) { - // SDR output, so just use 8 bit and sRGB. - MEDIA_LOG(INFO, media_log) << "D3D11VideoDecoder: 8 bit sRGB"; - output_dxgi_format = DXGI_FORMAT_B8G8R8A8_UNORM; - output_color_space = gfx::ColorSpace::CreateSRGB(); + if (format_checker->CheckOutputFormatSupport( + DXGI_FORMAT_B8G8R8A8_UNORM)) { + // SDR output, so just use 8 bit and sRGB. + // TODO(liberato): use the format checker, else bind P010. + MEDIA_LOG(INFO, media_log) << "D3D11VideoDecoder: 8 bit sRGB"; + output_dxgi_format = DXGI_FORMAT_B8G8R8A8_UNORM; + output_color_space = gfx::ColorSpace::CreateSRGB(); + } else { + // Bind P010 directly, since we can't copy. + MEDIA_LOG(INFO, media_log) + << "D3D11VideoDecoder: binding P010, no SDR output support"; + output_dxgi_format = DXGI_FORMAT_P010; + // PIXEL_FORMAT_YUV422P10 would probably be a better choice, but it's + // not supported by the rest of the pipeline yet. + output_pixel_format = PIXEL_FORMAT_NV12; + output_color_space.reset(); + } } else { // Will (may) be displayed in HDR, so switch to a high precision format. // For full screen, we might want 10 bit unorm instead of fp16. - MEDIA_LOG(INFO, media_log) << "D3D11VideoDecoder: fp16 bit scRGBLinear"; - output_dxgi_format = DXGI_FORMAT_R16G16B16A16_FLOAT; - output_color_space = gfx::ColorSpace::CreateSCRGBLinear(); + if (format_checker->CheckOutputFormatSupport( + DXGI_FORMAT_R16G16B16A16_FLOAT)) { + MEDIA_LOG(INFO, media_log) << "D3D11VideoDecoder: fp16 scRGBLinear"; + output_dxgi_format = DXGI_FORMAT_R16G16B16A16_FLOAT; + output_color_space = gfx::ColorSpace::CreateSCRGBLinear(); + } else if (format_checker->CheckOutputFormatSupport( + DXGI_FORMAT_R10G10B10A2_UNORM)) { + MEDIA_LOG(INFO, media_log) << "D3D11VideoDecoder: BGRA10 scRGBLinear"; + output_dxgi_format = DXGI_FORMAT_R10G10B10A2_UNORM; + output_color_space = gfx::ColorSpace::CreateSCRGBLinear(); + } else { + // No support at all. Just bind P010, and hope for the best. + MEDIA_LOG(INFO, media_log) + << "D3D11VideoDecoder: binding P010, no HDR output support"; + output_dxgi_format = DXGI_FORMAT_P010; + // PIXEL_FORMAT_YUV422P10 would probably be a better choice, but it's + // not supported by the rest of the pipeline yet. + output_pixel_format = PIXEL_FORMAT_NV12; + output_color_space.reset(); + } // TODO(liberato): Handle HLG, if we can get the input color space. // The rough outline looks something like this:
diff --git a/media/gpu/windows/d3d11_texture_selector.h b/media/gpu/windows/d3d11_texture_selector.h index aa2d5c9..1b8a3a50 100644 --- a/media/gpu/windows/d3d11_texture_selector.h +++ b/media/gpu/windows/d3d11_texture_selector.h
@@ -19,6 +19,7 @@ namespace media { class MediaLog; +class FormatSupportChecker; // Stores different pixel formats and DGXI formats, and checks for decoder // GUID support. @@ -39,6 +40,7 @@ const gpu::GpuDriverBugWorkarounds& workarounds, DXGI_FORMAT decoder_output_format, HDRMode hdr_output_mode, + const FormatSupportChecker* format_checker, MediaLog* media_log); virtual std::unique_ptr<Texture2DWrapper> CreateTextureWrapper(
diff --git a/media/gpu/windows/d3d11_texture_selector_unittest.cc b/media/gpu/windows/d3d11_texture_selector_unittest.cc index a059c06..381c1f9 100644 --- a/media/gpu/windows/d3d11_texture_selector_unittest.cc +++ b/media/gpu/windows/d3d11_texture_selector_unittest.cc
@@ -7,6 +7,7 @@ #include "media/base/media_util.h" #include "media/base/win/d3d11_mocks.h" #include "media/gpu/windows/d3d11_texture_selector.h" +#include "media/gpu/windows/d3d11_video_device_format_support.h" #include "testing/gmock/include/gmock/gmock.h" #include "testing/gtest/include/gtest/gtest.h" @@ -21,6 +22,15 @@ class D3D11TextureSelectorUnittest : public ::testing::Test { public: + class MockFormatSupportChecker : public FormatSupportChecker { + public: + MockFormatSupportChecker() : FormatSupportChecker(nullptr) {} + ~MockFormatSupportChecker() = default; + bool Initialize() override { return true; } + + MOCK_CONST_METHOD1(CheckOutputFormatSupport, bool(DXGI_FORMAT)); + }; + VideoDecoderConfig CreateDecoderConfig(VideoCodecProfile profile, gfx::Size size, bool encrypted) { @@ -43,11 +53,25 @@ workarounds.disable_dxgi_zero_copy_video = false; auto media_log = std::make_unique<NullMediaLog>(); return TextureSelector::Create(prefs, workarounds, decoder_output_format, - hdr_mode, media_log.get()); + hdr_mode, &format_checker_, media_log.get()); } + + // Set the format checker to succeed any check, except for |disallowed|. + void AllowFormatCheckerSupportExcept(std::vector<DXGI_FORMAT> disallowed) { + ON_CALL(format_checker_, CheckOutputFormatSupport(_)) + .WillByDefault(Return(true)); + for (auto format : disallowed) { + ON_CALL(format_checker_, CheckOutputFormatSupport(format)) + .WillByDefault(Return(false)); + } + } + + MockFormatSupportChecker format_checker_; }; TEST_F(D3D11TextureSelectorUnittest, NV12BindsToNV12) { + // Nothing should ask about VideoProcessor support, since we're binding. + EXPECT_CALL(format_checker_, CheckOutputFormatSupport(_)).Times(0); auto tex_sel = CreateWithDefaultGPUInfo(DXGI_FORMAT_NV12); // TODO(liberato): check "binds", somehow. @@ -56,18 +80,43 @@ } TEST_F(D3D11TextureSelectorUnittest, P010CopiesToFP16InHDR) { + // Allow all output formats, since it should prefer fp16 if possible. + AllowFormatCheckerSupportExcept({}); auto tex_sel = CreateWithDefaultGPUInfo(DXGI_FORMAT_P010, true, TextureSelector::HDRMode::kSDROrHDR); // TODO(liberato): check "copies", somehow. EXPECT_EQ(tex_sel->PixelFormat(), PIXEL_FORMAT_ARGB); - // Note that this might also produce 8 bit rgb, but for now always - // tries for fp16. EXPECT_EQ(tex_sel->OutputDXGIFormat(), DXGI_FORMAT_R16G16B16A16_FLOAT); // TODO(liberato): Check output color space, somehow. } +TEST_F(D3D11TextureSelectorUnittest, P010CopiesTo10BitRGBInHDR) { + // 10 bit RGB should be the second choice, if fp16 isn't available. + AllowFormatCheckerSupportExcept({DXGI_FORMAT_R16G16B16A16_FLOAT}); + auto tex_sel = CreateWithDefaultGPUInfo(DXGI_FORMAT_P010, true, + TextureSelector::HDRMode::kSDROrHDR); + + EXPECT_EQ(tex_sel->PixelFormat(), PIXEL_FORMAT_ARGB); + EXPECT_EQ(tex_sel->OutputDXGIFormat(), DXGI_FORMAT_R10G10B10A2_UNORM); +} + +TEST_F(D3D11TextureSelectorUnittest, P010BindsToP010InHDR) { + // If none of our output formats is supported by the video processor, then it + // should bind P010 directly. + AllowFormatCheckerSupportExcept( + {DXGI_FORMAT_R16G16B16A16_FLOAT, DXGI_FORMAT_R10G10B10A2_UNORM}); + auto tex_sel = CreateWithDefaultGPUInfo(DXGI_FORMAT_P010, true, + TextureSelector::HDRMode::kSDROrHDR); + + EXPECT_EQ(tex_sel->PixelFormat(), PIXEL_FORMAT_NV12); + EXPECT_EQ(tex_sel->OutputDXGIFormat(), DXGI_FORMAT_P010); +} + TEST_F(D3D11TextureSelectorUnittest, P010CopiesTo8BitInSDR) { + // Should copy to 8 bit RGB if the video processor can do it, if we're not in + // HDR mode. + AllowFormatCheckerSupportExcept({}); auto tex_sel = CreateWithDefaultGPUInfo(DXGI_FORMAT_P010, true, TextureSelector::HDRMode::kSDROnly); @@ -79,4 +128,15 @@ // TODO(liberato): Check output color space, somehow. } +TEST_F(D3D11TextureSelectorUnittest, P010BindsToP010InSDR) { + // Should bind P010 if the video processor can't convert to RGB8, if we're not + // int HDR mode. + AllowFormatCheckerSupportExcept({DXGI_FORMAT_B8G8R8A8_UNORM}); + auto tex_sel = CreateWithDefaultGPUInfo(DXGI_FORMAT_P010, true, + TextureSelector::HDRMode::kSDROnly); + + EXPECT_EQ(tex_sel->PixelFormat(), PIXEL_FORMAT_NV12); + EXPECT_EQ(tex_sel->OutputDXGIFormat(), DXGI_FORMAT_P010); +} + } // namespace media
diff --git a/media/gpu/windows/d3d11_video_decoder.cc b/media/gpu/windows/d3d11_video_decoder.cc index 12dc110..eae07b3 100644 --- a/media/gpu/windows/d3d11_video_decoder.cc +++ b/media/gpu/windows/d3d11_video_decoder.cc
@@ -29,6 +29,7 @@ #include "media/gpu/windows/d3d11_picture_buffer.h" #include "media/gpu/windows/d3d11_video_context_wrapper.h" #include "media/gpu/windows/d3d11_video_decoder_impl.h" +#include "media/gpu/windows/d3d11_video_device_format_support.h" #include "media/gpu/windows/supported_profile_helpers.h" #include "media/media_buildflags.h" #include "ui/gl/direct_composition_surface_win.h" @@ -278,6 +279,13 @@ return; } + FormatSupportChecker format_checker(device_); + if (!format_checker.Initialize()) { + // Don't fail; it'll just return no support a lot. + MEDIA_LOG(WARNING, media_log_) + << "Could not create format checker, continuing"; + } + // Use IsHDRSupported to guess whether the compositor can output HDR textures. // See TextureSelector for notes about why the decoder should not care. texture_selector_ = @@ -286,7 +294,7 @@ gl::DirectCompositionSurfaceWin::IsHDRSupported() ? TextureSelector::HDRMode::kSDROrHDR : TextureSelector::HDRMode::kSDROnly, - media_log_.get()); + &format_checker, media_log_.get()); if (!texture_selector_) { NotifyError("D3DD11: Cannot get TextureSelector for format"); return; @@ -745,6 +753,13 @@ VideoFrame::ReleaseMailboxCB(), picture_buffer->size(), visible_rect, GetNaturalSize(visible_rect, pixel_aspect_ratio), timestamp); + if (!frame) { + // This can happen if, somehow, we get an unsupported combination of + // pixel format, etc. + NotifyError("Failed to construct video frame"); + return false; + } + // TODO(liberato): bind this to the gpu main thread. frame->SetReleaseMailboxCB(media::BindToCurrentLoop( base::BindOnce(&D3D11VideoDecoderImpl::OnMailboxReleased, impl_weak_,
diff --git a/media/gpu/windows/d3d11_video_device_format_support.cc b/media/gpu/windows/d3d11_video_device_format_support.cc index 7d888613..4002a5a 100644 --- a/media/gpu/windows/d3d11_video_device_format_support.cc +++ b/media/gpu/windows/d3d11_video_device_format_support.cc
@@ -8,7 +8,6 @@ FormatSupportChecker::FormatSupportChecker(ComD3D11Device device) : device_(std::move(device)) { - DCHECK(device_); } FormatSupportChecker::~FormatSupportChecker() { @@ -19,6 +18,9 @@ bool FormatSupportChecker::Initialize() { ComD3D11VideoDevice v_device; + if (!device_) + return false; + if (!SUCCEEDED(device_.As(&v_device))) return false; @@ -39,6 +41,10 @@ if (!SUCCEEDED(v_device->CreateVideoProcessorEnumerator(&desc, &enumerator_))) return false; + // For tests, which don't provide one (successfully). + if (!enumerator_) + return false; + // Check that the |CheckFormatSupport| and |CheckVideoProcessorFormat| calls // won't be failing UINT unneeded = 0; @@ -53,8 +59,12 @@ return true; } -bool FormatSupportChecker::CheckOutputFormatSupport(DXGI_FORMAT format) { +bool FormatSupportChecker::CheckOutputFormatSupport(DXGI_FORMAT format) const { + if (!device_) + return false; + DCHECK(initialized_); + UINT device = 0, enumerator = 0; if (!SUCCEEDED(device_->CheckFormatSupport(format, &device))) return false;
diff --git a/media/gpu/windows/d3d11_video_device_format_support.h b/media/gpu/windows/d3d11_video_device_format_support.h index 009e0a6..0e07a4ec 100644 --- a/media/gpu/windows/d3d11_video_device_format_support.h +++ b/media/gpu/windows/d3d11_video_device_format_support.h
@@ -19,15 +19,16 @@ // DXVI_FORMAT. class MEDIA_GPU_EXPORT FormatSupportChecker { public: + // |device| may be null, mostly for tests. explicit FormatSupportChecker(ComD3D11Device device); - ~FormatSupportChecker(); + virtual ~FormatSupportChecker(); // Set up the device to be able to check format support. // Returns false if there is a failure. - bool Initialize(); + virtual bool Initialize(); // Checks if the device's texture processing pipeline supports output textures - bool CheckOutputFormatSupport(DXGI_FORMAT format); + virtual bool CheckOutputFormatSupport(DXGI_FORMAT format) const; private: ComD3D11Device device_;
diff --git a/media/gpu/windows/d3d11_video_device_format_support_unittest.cc b/media/gpu/windows/d3d11_video_device_format_support_unittest.cc index d55572e..274b417 100644 --- a/media/gpu/windows/d3d11_video_device_format_support_unittest.cc +++ b/media/gpu/windows/d3d11_video_device_format_support_unittest.cc
@@ -22,6 +22,13 @@ class FormatSupportCheckerUnittest : public ::testing::Test {}; +TEST_F(FormatSupportCheckerUnittest, NullDeviceDoesntCrash) { + FormatSupportChecker checker(nullptr); + // Init and Check should both fail, but not crash. + EXPECT_FALSE(checker.Initialize()); + EXPECT_FALSE(checker.CheckOutputFormatSupport(DXGI_FORMAT_NV12)); +} + TEST_F(FormatSupportCheckerUnittest, CheckInitializationCantCast) { auto device = CreateD3D11Mock<NiceMock<D3D11DeviceMock>>(); auto vdevice = CreateD3D11Mock<NiceMock<D3D11VideoDeviceMock>>();
diff --git a/remoting/host/linux/linux_me2me_host.py b/remoting/host/linux/linux_me2me_host.py index 2a016297..d6dd1bf 100755 --- a/remoting/host/linux/linux_me2me_host.py +++ b/remoting/host/linux/linux_me2me_host.py
@@ -613,8 +613,19 @@ # Use a separate profile for any instances of Chrome that are started in # the virtual session. Chrome doesn't support sharing a profile between # multiple DISPLAYs, but Chrome Sync allows for a reasonable compromise. + # + # M61 introduced CHROME_CONFIG_HOME, which allows specifying a different + # config base path while still using different user data directories for + # different channels (Stable, Beta, Dev). For existing users who only have + # chrome-profile, continue using CHROME_USER_DATA_DIR so they don't have to + # set up their profile again. chrome_profile = os.path.join(CONFIG_DIR, "chrome-profile") - self.child_env["CHROME_USER_DATA_DIR"] = chrome_profile + chrome_config_home = os.path.join(CONFIG_DIR, "chrome-config") + if (os.path.exists(chrome_profile) + and not os.path.exists(chrome_config_home)): + self.child_env["CHROME_USER_DATA_DIR"] = chrome_profile + else: + self.child_env["CHROME_CONFIG_HOME"] = chrome_config_home # Set SSH_AUTH_SOCK to the file name to listen on. if self.ssh_auth_sockname:
diff --git a/services/resource_coordinator/memory_instrumentation/coordinator_impl_unittest.cc b/services/resource_coordinator/memory_instrumentation/coordinator_impl_unittest.cc index 09395e2ef..fcc53335 100644 --- a/services/resource_coordinator/memory_instrumentation/coordinator_impl_unittest.cc +++ b/services/resource_coordinator/memory_instrumentation/coordinator_impl_unittest.cc
@@ -7,6 +7,7 @@ #include "base/bind.h" #include "base/run_loop.h" #include "base/strings/string_number_conversions.h" +#include "base/test/gmock_callback_support.h" #include "base/test/task_environment.h" #include "base/test/trace_event_analyzer.h" #include "base/threading/platform_thread.h" @@ -18,10 +19,7 @@ #include "testing/gmock/include/gmock/gmock.h" #include "testing/gtest/include/gtest/gtest.h" -ACTION_P(RunClosure, closure) { - closure.Run(); -} - +using base::test::RunOnceClosure; using ::testing::_; using ::testing::AllOf; using ::testing::Contains; @@ -293,7 +291,7 @@ MockGlobalMemoryDumpCallback callback; EXPECT_CALL(callback, OnCall(true, NotNull())) - .WillOnce(RunClosure(run_loop.QuitClosure())); + .WillOnce(RunOnceClosure(run_loop.QuitClosure())); RequestGlobalMemoryDump(callback.Get()); run_loop.Run(); } @@ -370,7 +368,7 @@ callback, OnCall(true, Pointee(Field(&mojom::GlobalMemoryDump::process_dumps, IsEmpty())))) - .WillOnce(RunClosure(run_loop.QuitClosure())); + .WillOnce(RunOnceClosure(run_loop.QuitClosure())); RequestGlobalMemoryDump(callback.Get()); run_loop.Run(); } @@ -394,7 +392,7 @@ callback, OnCall(true, Pointee(Field(&mojom::GlobalMemoryDump::process_dumps, IsEmpty())))) - .WillOnce(RunClosure(run_loop.QuitClosure())); + .WillOnce(RunOnceClosure(run_loop.QuitClosure())); RequestGlobalMemoryDump(callback.Get()); run_loop.Run(); } @@ -423,7 +421,7 @@ callback, OnCall(false, Pointee(Field(&mojom::GlobalMemoryDump::process_dumps, IsEmpty())))) - .WillOnce(RunClosure(run_loop.QuitClosure())); + .WillOnce(RunOnceClosure(run_loop.QuitClosure())); ReduceCoordinatorClientProcessTimeout(); RequestGlobalMemoryDump(callback.Get()); run_loop.Run(); @@ -534,7 +532,7 @@ MockGlobalMemoryDumpCallback callback; EXPECT_CALL(callback, OnCall(false, NotNull())) - .WillOnce(RunClosure(run_loop.QuitClosure())); + .WillOnce(RunOnceClosure(run_loop.QuitClosure())); RequestGlobalMemoryDump(callback.Get()); run_loop.Run(); } @@ -560,7 +558,7 @@ MockGlobalMemoryDumpCallback callback; EXPECT_CALL(callback, OnCall(false, NotNull())) - .WillOnce(RunClosure(run_loop.QuitClosure())); + .WillOnce(RunOnceClosure(run_loop.QuitClosure())); RequestGlobalMemoryDump(callback.Get()); run_loop.Run(); } @@ -802,7 +800,7 @@ callback, OnCall(true, Pointee(Field(&mojom::GlobalMemoryDump::process_dumps, IsEmpty())))) - .WillOnce(RunClosure(run_loop.QuitClosure())); + .WillOnce(RunOnceClosure(run_loop.QuitClosure())); trace_analyzer::Start(MemoryDumpManager::kTraceCategory); RequestGlobalMemoryDump(MemoryDumpType::EXPLICITLY_TRIGGERED, @@ -837,7 +835,7 @@ MockGlobalMemoryDumpAndAppendToTraceCallback callback; EXPECT_CALL(callback, OnCall(true, Ne(0ul))) - .WillOnce(RunClosure(run_loop.QuitClosure())); + .WillOnce(RunOnceClosure(run_loop.QuitClosure())); trace_analyzer::Start(MemoryDumpManager::kTraceCategory); RequestGlobalMemoryDumpAndAppendToTrace(callback.Get()); @@ -953,7 +951,7 @@ MockGlobalMemoryDumpCallback callback; EXPECT_CALL(callback, OnCall(false, nullptr)) - .WillOnce(RunClosure(run_loop.QuitClosure())); + .WillOnce(RunOnceClosure(run_loop.QuitClosure())); RequestGlobalMemoryDumpForPid(2, {}, callback.Get()); run_loop.Run();
diff --git a/services/shape_detection/barcode_detection_impl_mac_unittest.mm b/services/shape_detection/barcode_detection_impl_mac_unittest.mm index 196dfa6..91d6a89 100644 --- a/services/shape_detection/barcode_detection_impl_mac_unittest.mm +++ b/services/shape_detection/barcode_detection_impl_mac_unittest.mm
@@ -16,6 +16,7 @@ #include "base/mac/scoped_cftyperef.h" #include "base/mac/scoped_nsobject.h" #include "base/run_loop.h" +#include "base/test/gmock_callback_support.h" #include "base/test/task_environment.h" #include "services/shape_detection/barcode_detection_impl_mac_vision.h" #include "services/shape_detection/public/mojom/barcodedetection.mojom.h" @@ -24,6 +25,7 @@ #include "third_party/skia/include/utils/mac/SkCGUtils.h" #include "ui/gl/gl_switches.h" +using base::test::RunOnceClosure; using ::testing::TestWithParam; using ::testing::ValuesIn; @@ -31,10 +33,6 @@ namespace { -ACTION_P(RunClosure, closure) { - closure.Run(); -} - std::unique_ptr<mojom::BarcodeDetection> CreateBarcodeDetectorImplMacCoreImage( mojom::BarcodeDetectorOptionsPtr options) { return std::make_unique<BarcodeDetectionImplMac>(); @@ -178,7 +176,8 @@ base::RunLoop run_loop; // Send the image Detect() and expect the response in callback. - EXPECT_CALL(*this, Detection()).WillOnce(RunClosure(run_loop.QuitClosure())); + EXPECT_CALL(*this, Detection()) + .WillOnce(RunOnceClosure(run_loop.QuitClosure())); // TODO(crbug.com/938663): expect detected symbology. impl_->Detect(bitmap, base::BindOnce(&BarcodeDetectionImplMacTest::DetectCallback,
diff --git a/services/shape_detection/barcode_detection_provider_mac_unittest.mm b/services/shape_detection/barcode_detection_provider_mac_unittest.mm index 6a6e80e..6c47a6e 100644 --- a/services/shape_detection/barcode_detection_provider_mac_unittest.mm +++ b/services/shape_detection/barcode_detection_provider_mac_unittest.mm
@@ -12,6 +12,7 @@ #include "base/callback_forward.h" #include "base/run_loop.h" #include "base/test/bind_test_util.h" +#include "base/test/gmock_callback_support.h" #include "base/test/task_environment.h" #include "mojo/public/cpp/bindings/remote.h" #include "mojo/public/cpp/bindings/self_owned_receiver.h" @@ -22,6 +23,7 @@ #include "testing/gmock/include/gmock/gmock.h" #include "testing/gtest/include/gtest/gtest.h" +using base::test::RunClosure; using ::testing::NiceMock; using ::testing::Return; using ::testing::TestWithParam; @@ -31,10 +33,6 @@ namespace { -ACTION_P(RunClosure, closure) { - closure.Run(); -} - static const std::vector<mojom::BarcodeFormat>& CISupportedFormats = { mojom::BarcodeFormat::QR_CODE}; static const std::vector<mojom::BarcodeFormat>& VisionSupportedFormats = {
diff --git a/services/shape_detection/face_detection_impl_mac_unittest.mm b/services/shape_detection/face_detection_impl_mac_unittest.mm index e5d909de..40ad1e98 100644 --- a/services/shape_detection/face_detection_impl_mac_unittest.mm +++ b/services/shape_detection/face_detection_impl_mac_unittest.mm
@@ -17,6 +17,7 @@ #include "base/mac/scoped_nsobject.h" #include "base/path_service.h" #include "base/run_loop.h" +#include "base/test/gmock_callback_support.h" #include "base/test/task_environment.h" #include "services/shape_detection/face_detection_impl_mac_vision.h" #include "testing/gmock/include/gmock/gmock.h" @@ -25,6 +26,7 @@ #include "ui/gfx/codec/jpeg_codec.h" #include "ui/gl/gl_switches.h" +using base::test::RunOnceClosure; using ::testing::TestWithParam; using ::testing::ValuesIn; @@ -32,10 +34,6 @@ namespace { -ACTION_P(RunClosure, closure) { - closure.Run(); -} - std::unique_ptr<mojom::FaceDetection> CreateFaceDetectorImplMac( shape_detection::mojom::FaceDetectorOptionsPtr options) { return std::make_unique<FaceDetectionImplMac>( @@ -187,7 +185,8 @@ base::RunLoop run_loop; // Send the image to Detect() and expect the response in callback. - EXPECT_CALL(*this, Detection()).WillOnce(RunClosure(run_loop.QuitClosure())); + EXPECT_CALL(*this, Detection()) + .WillOnce(RunOnceClosure(run_loop.QuitClosure())); impl_->Detect( *image, base::BindOnce(&FaceDetectionImplMacTest::DetectCallback,
diff --git a/services/shape_detection/text_detection_impl_mac_unittest.mm b/services/shape_detection/text_detection_impl_mac_unittest.mm index b572cf0..ee447e5 100644 --- a/services/shape_detection/text_detection_impl_mac_unittest.mm +++ b/services/shape_detection/text_detection_impl_mac_unittest.mm
@@ -12,17 +12,16 @@ #include "base/mac/scoped_cftyperef.h" #include "base/mac/scoped_nsobject.h" #include "base/run_loop.h" +#include "base/test/gmock_callback_support.h" #include "base/test/task_environment.h" #include "testing/gmock/include/gmock/gmock.h" #include "testing/gtest/include/gtest/gtest.h" #include "third_party/skia/include/utils/mac/SkCGUtils.h" #include "ui/gl/gl_switches.h" -namespace shape_detection { +using base::test::RunOnceClosure; -ACTION_P(RunClosure, closure) { - closure.Run(); -} +namespace shape_detection { class TextDetectionImplMacTest : public ::testing::Test { public: @@ -93,7 +92,7 @@ base::RunLoop run_loop; // Send the image to Detect() and expect the response in callback. EXPECT_CALL(*this, Detection(1)) - .WillOnce(RunClosure(run_loop.QuitClosure())); + .WillOnce(RunOnceClosure(run_loop.QuitClosure())); impl_->Detect(bitmap, base::BindOnce(&TextDetectionImplMacTest::DetectCallback, base::Unretained(this)));
diff --git a/testing/buildbot/chromium.ci.json b/testing/buildbot/chromium.ci.json index 463d96e..cf72ea1 100644 --- a/testing/buildbot/chromium.ci.json +++ b/testing/buildbot/chromium.ci.json
@@ -44434,6 +44434,28 @@ "gtest_tests": [ { "args": [ + "--no-xvfb", + "--use-weston", + "--ozone-platform=wayland" + ], + "merge": { + "args": [], + "script": "//testing/merge_scripts/standard_gtest_merge.py" + }, + "swarming": { + "can_use_on_swarming_builders": true, + "dimension_sets": [ + { + "os": "Ubuntu-16.04" + } + ], + "service_account": "chromium-tester@chops-service-accounts.iam.gserviceaccount.com" + }, + "test": "ui_touch_selection_unittests", + "test_target": "//ui/touch_selection:ui_touch_selection_unittests" + }, + { + "args": [ "--test-launcher-filter-file=../../testing/buildbot/filters/ozone-linux.wayland_views_unittests.filter", "--no-xvfb", "--use-weston", @@ -44502,6 +44524,26 @@ }, { "args": [ + "--ozone-platform=x11" + ], + "merge": { + "args": [], + "script": "//testing/merge_scripts/standard_gtest_merge.py" + }, + "swarming": { + "can_use_on_swarming_builders": true, + "dimension_sets": [ + { + "os": "Ubuntu-16.04" + } + ], + "service_account": "chromium-tester@chops-service-accounts.iam.gserviceaccount.com" + }, + "test": "ui_touch_selection_unittests", + "test_target": "//ui/touch_selection:ui_touch_selection_unittests" + }, + { + "args": [ "--test-launcher-filter-file=../../testing/buildbot/filters/ozone-linux.x11_views_unittests.filter", "--ozone-platform=x11" ],
diff --git a/testing/buildbot/chromium.linux.json b/testing/buildbot/chromium.linux.json index 8433e63..8c22f212 100644 --- a/testing/buildbot/chromium.linux.json +++ b/testing/buildbot/chromium.linux.json
@@ -2720,6 +2720,28 @@ "gtest_tests": [ { "args": [ + "--no-xvfb", + "--use-weston", + "--ozone-platform=wayland" + ], + "merge": { + "args": [], + "script": "//testing/merge_scripts/standard_gtest_merge.py" + }, + "swarming": { + "can_use_on_swarming_builders": true, + "dimension_sets": [ + { + "os": "Ubuntu-16.04" + } + ], + "service_account": "chromium-tester@chops-service-accounts.iam.gserviceaccount.com" + }, + "test": "ui_touch_selection_unittests", + "test_target": "//ui/touch_selection:ui_touch_selection_unittests" + }, + { + "args": [ "--test-launcher-filter-file=../../testing/buildbot/filters/ozone-linux.wayland_views_unittests.filter", "--no-xvfb", "--use-weston", @@ -2788,6 +2810,26 @@ }, { "args": [ + "--ozone-platform=x11" + ], + "merge": { + "args": [], + "script": "//testing/merge_scripts/standard_gtest_merge.py" + }, + "swarming": { + "can_use_on_swarming_builders": true, + "dimension_sets": [ + { + "os": "Ubuntu-16.04" + } + ], + "service_account": "chromium-tester@chops-service-accounts.iam.gserviceaccount.com" + }, + "test": "ui_touch_selection_unittests", + "test_target": "//ui/touch_selection:ui_touch_selection_unittests" + }, + { + "args": [ "--test-launcher-filter-file=../../testing/buildbot/filters/ozone-linux.x11_views_unittests.filter", "--ozone-platform=x11" ],
diff --git a/testing/buildbot/filters/android.emulator.chrome_public_test_apk.filter b/testing/buildbot/filters/android.emulator.chrome_public_test_apk.filter index 6b75058..543c8f8 100644 --- a/testing/buildbot/filters/android.emulator.chrome_public_test_apk.filter +++ b/testing/buildbot/filters/android.emulator.chrome_public_test_apk.filter
@@ -131,6 +131,3 @@ # crbug.com/1064058 -org.chromium.chrome.features.start_surface.StartSurfaceLayoutTest.testRecycling_aspectRatioPoint75 - -# crbug.com/1064388 --org.chromium.chrome.browser.feed.FeedNewTabPageTest.testFeedDisabledByPolicy
diff --git a/testing/buildbot/test_suites.pyl b/testing/buildbot/test_suites.pyl index 8de5046..12e28bc 100644 --- a/testing/buildbot/test_suites.pyl +++ b/testing/buildbot/test_suites.pyl
@@ -3170,6 +3170,7 @@ }, 'ozone_linux_gtests_wayland': { + 'ui_touch_selection_unittests': {}, 'wayland_views_unittests': { 'args': [ '--test-launcher-filter-file=../../testing/buildbot/filters/ozone-linux.wayland_views_unittests.filter', @@ -3181,6 +3182,7 @@ 'ozone_linux_gtests_x11': { 'content_unittests': {}, 'ozone_x11_unittests': {}, + 'ui_touch_selection_unittests': {}, 'views_unittests': { 'args': [ '--test-launcher-filter-file=../../testing/buildbot/filters/ozone-linux.x11_views_unittests.filter',
diff --git a/third_party/blink/public/strings/translations/blink_strings_af.xtb b/third_party/blink/public/strings/translations/blink_strings_af.xtb index 18c67d1..6559c1c6 100644 --- a/third_party/blink/public/strings/translations/blink_strings_af.xtb +++ b/third_party/blink/public/strings/translations/blink_strings_af.xtb
@@ -23,6 +23,7 @@ <translation id="1727886345390570319">versteek kieslys vir geslote onderskrifte</translation> <translation id="1729654308190250600">Voer 'n nie-leë e-posadres in.</translation> <translation id="1758486001363313524">Ander …</translation> +<translation id="1787192514241997742">totale tyd: <ph name="REMAINING_TIME" /></translation> <translation id="1806710327868736751">waarskuwing_dialoog</translation> <translation id="1821985195704844674">boomrooster</translation> <translation id="1822429046913737220">AM/PM</translation>
diff --git a/third_party/blink/public/strings/translations/blink_strings_bs.xtb b/third_party/blink/public/strings/translations/blink_strings_bs.xtb index b8a186d4..61242eda 100644 --- a/third_party/blink/public/strings/translations/blink_strings_bs.xtb +++ b/third_party/blink/public/strings/translations/blink_strings_bs.xtb
@@ -23,6 +23,7 @@ <translation id="1727886345390570319">sakrij meni za titlove</translation> <translation id="1729654308190250600">Upišite adresu e-pošte.</translation> <translation id="1758486001363313524">Drugo…</translation> +<translation id="1787192514241997742">ukupno vrijeme: <ph name="REMAINING_TIME" /></translation> <translation id="1806710327868736751">dijaloški okvir upozorenja</translation> <translation id="1821985195704844674">mreža stabla</translation> <translation id="1822429046913737220">prijepodne/poslijepodne</translation>
diff --git a/third_party/blink/public/strings/translations/blink_strings_ca.xtb b/third_party/blink/public/strings/translations/blink_strings_ca.xtb index 2bf25a2..a60a90e 100644 --- a/third_party/blink/public/strings/translations/blink_strings_ca.xtb +++ b/third_party/blink/public/strings/translations/blink_strings_ca.xtb
@@ -23,6 +23,7 @@ <translation id="1727886345390570319">amaga el menú de subtítols</translation> <translation id="1729654308190250600">Introduïu una adreça electrònica.</translation> <translation id="1758486001363313524">Altres...</translation> +<translation id="1787192514241997742">temps total: <ph name="REMAINING_TIME" /></translation> <translation id="1806710327868736751">alert_dialog</translation> <translation id="1821985195704844674">quadrícula d'arbre</translation> <translation id="1822429046913737220">a. m./p. m.</translation>
diff --git a/third_party/blink/public/strings/translations/blink_strings_el.xtb b/third_party/blink/public/strings/translations/blink_strings_el.xtb index ff06f42..7bbb6a8 100644 --- a/third_party/blink/public/strings/translations/blink_strings_el.xtb +++ b/third_party/blink/public/strings/translations/blink_strings_el.xtb
@@ -23,6 +23,7 @@ <translation id="1727886345390570319">απόκρυψη μενού υποτίτλων</translation> <translation id="1729654308190250600">Καταχωρίστε μια διεύθυνση ηλεκτρονικού ταχυδρομείου.</translation> <translation id="1758486001363313524">Άλλες…</translation> +<translation id="1787192514241997742">συνολικός χρόνος: <ph name="REMAINING_TIME" /></translation> <translation id="1806710327868736751">παράθυρο διαλόγου ειδοποιήσεων</translation> <translation id="1821985195704844674">πλέγμα δέντρου</translation> <translation id="1822429046913737220">Π.Μ./Μ.Μ.</translation>
diff --git a/third_party/blink/public/strings/translations/blink_strings_en-GB.xtb b/third_party/blink/public/strings/translations/blink_strings_en-GB.xtb index 43840428..f3d3928 100644 --- a/third_party/blink/public/strings/translations/blink_strings_en-GB.xtb +++ b/third_party/blink/public/strings/translations/blink_strings_en-GB.xtb
@@ -23,6 +23,7 @@ <translation id="1727886345390570319">hide closed captions menu</translation> <translation id="1729654308190250600">Please enter a non-empty email address.</translation> <translation id="1758486001363313524">Other...</translation> +<translation id="1787192514241997742">total time: <ph name="REMAINING_TIME" /></translation> <translation id="1806710327868736751">alert_dialogue</translation> <translation id="1821985195704844674">tree grid</translation> <translation id="1822429046913737220">AM/PM</translation>
diff --git a/third_party/blink/public/strings/translations/blink_strings_es.xtb b/third_party/blink/public/strings/translations/blink_strings_es.xtb index bf9d514d..6add989 100644 --- a/third_party/blink/public/strings/translations/blink_strings_es.xtb +++ b/third_party/blink/public/strings/translations/blink_strings_es.xtb
@@ -23,6 +23,7 @@ <translation id="1727886345390570319">ocultar menú de subtítulos</translation> <translation id="1729654308190250600">Introduce una dirección de correo electrónico que no esté vacía.</translation> <translation id="1758486001363313524">Otra...</translation> +<translation id="1787192514241997742">Tiempo total: <ph name="REMAINING_TIME" /></translation> <translation id="1806710327868736751">alert_dialog</translation> <translation id="1821985195704844674">cuadrícula de árbol</translation> <translation id="1822429046913737220">A.M./P.M.</translation>
diff --git a/third_party/blink/public/strings/translations/blink_strings_et.xtb b/third_party/blink/public/strings/translations/blink_strings_et.xtb index e24a5a6..b1c18d5d 100644 --- a/third_party/blink/public/strings/translations/blink_strings_et.xtb +++ b/third_party/blink/public/strings/translations/blink_strings_et.xtb
@@ -23,6 +23,7 @@ <translation id="1727886345390570319">peida subtiitrite menüü</translation> <translation id="1729654308190250600">Sisestage mittetühi e-posti aadress.</translation> <translation id="1758486001363313524">Muu ...</translation> +<translation id="1787192514241997742">aeg kokku: <ph name="REMAINING_TIME" /></translation> <translation id="1806710327868736751">hoiatusdialoog</translation> <translation id="1821985195704844674">puuruudustik</translation> <translation id="1822429046913737220">AM/PM</translation>
diff --git a/third_party/blink/public/strings/translations/blink_strings_hr.xtb b/third_party/blink/public/strings/translations/blink_strings_hr.xtb index 8d23d10..786df9f7 100644 --- a/third_party/blink/public/strings/translations/blink_strings_hr.xtb +++ b/third_party/blink/public/strings/translations/blink_strings_hr.xtb
@@ -23,6 +23,7 @@ <translation id="1727886345390570319">sakrij izbornik titlova</translation> <translation id="1729654308190250600">Unesite e-adresu koja nije prazna vrijednost.</translation> <translation id="1758486001363313524">Drugo...</translation> +<translation id="1787192514241997742">ukupno vrijeme: <ph name="REMAINING_TIME" /></translation> <translation id="1806710327868736751">dijaloški okvir upozorenja</translation> <translation id="1821985195704844674">rešetka u obliku stabla</translation> <translation id="1822429046913737220">prijepodne/poslijepodne</translation>
diff --git a/third_party/blink/public/strings/translations/blink_strings_hu.xtb b/third_party/blink/public/strings/translations/blink_strings_hu.xtb index 2e721e96..39e1760 100644 --- a/third_party/blink/public/strings/translations/blink_strings_hu.xtb +++ b/third_party/blink/public/strings/translations/blink_strings_hu.xtb
@@ -23,6 +23,7 @@ <translation id="1727886345390570319">a feliratok menü elrejtése</translation> <translation id="1729654308190250600">Kérjük, ne hagyja üresen az e-mail-cím mezőjét.</translation> <translation id="1758486001363313524">Más...</translation> +<translation id="1787192514241997742">összes idő: <ph name="REMAINING_TIME" /></translation> <translation id="1806710327868736751">értesítő párbeszédpanel</translation> <translation id="1821985195704844674">farács</translation> <translation id="1822429046913737220">de./du.</translation>
diff --git a/third_party/blink/public/strings/translations/blink_strings_is.xtb b/third_party/blink/public/strings/translations/blink_strings_is.xtb index 182e455..4963ffa4 100644 --- a/third_party/blink/public/strings/translations/blink_strings_is.xtb +++ b/third_party/blink/public/strings/translations/blink_strings_is.xtb
@@ -23,6 +23,7 @@ <translation id="1727886345390570319">fela valmynd skjátexta</translation> <translation id="1729654308190250600">Sláðu inn gilt netfang.</translation> <translation id="1758486001363313524">Annað...</translation> +<translation id="1787192514241997742">heildartími: <ph name="REMAINING_TIME" /></translation> <translation id="1806710327868736751">viðvörunargluggi</translation> <translation id="1821985195704844674">trjátafla</translation> <translation id="1822429046913737220">f.h./e.h.</translation>
diff --git a/third_party/blink/public/strings/translations/blink_strings_it.xtb b/third_party/blink/public/strings/translations/blink_strings_it.xtb index 5b7f133e..81a8d90 100644 --- a/third_party/blink/public/strings/translations/blink_strings_it.xtb +++ b/third_party/blink/public/strings/translations/blink_strings_it.xtb
@@ -23,6 +23,7 @@ <translation id="1727886345390570319">nascondi menu sottotitoli</translation> <translation id="1729654308190250600">Inserisci un indirizzo email valido.</translation> <translation id="1758486001363313524">Altro...</translation> +<translation id="1787192514241997742">tempo totale: <ph name="REMAINING_TIME" /></translation> <translation id="1806710327868736751">alert_dialog</translation> <translation id="1821985195704844674">griglia ad albero</translation> <translation id="1822429046913737220">AM/PM</translation>
diff --git a/third_party/blink/public/strings/translations/blink_strings_lt.xtb b/third_party/blink/public/strings/translations/blink_strings_lt.xtb index ae0fb33..d0a4a99 100644 --- a/third_party/blink/public/strings/translations/blink_strings_lt.xtb +++ b/third_party/blink/public/strings/translations/blink_strings_lt.xtb
@@ -23,6 +23,7 @@ <translation id="1727886345390570319">slėpti subtitrų meniu</translation> <translation id="1729654308190250600">Įveskite el. pašto adresą (nepalikite lauko tuščio).</translation> <translation id="1758486001363313524">Kita...</translation> +<translation id="1787192514241997742">bendras laikas: <ph name="REMAINING_TIME" /></translation> <translation id="1806710327868736751">alert_dialog</translation> <translation id="1821985195704844674">medžio tinklelis</translation> <translation id="1822429046913737220">iki pietų / po pietų</translation>
diff --git a/third_party/blink/public/strings/translations/blink_strings_mk.xtb b/third_party/blink/public/strings/translations/blink_strings_mk.xtb index 5113090..0b43adf 100644 --- a/third_party/blink/public/strings/translations/blink_strings_mk.xtb +++ b/third_party/blink/public/strings/translations/blink_strings_mk.xtb
@@ -23,6 +23,7 @@ <translation id="1727886345390570319">сокриј го менито за затворени титли</translation> <translation id="1729654308190250600">Внесете адреса на е-пошта што не е празна.</translation> <translation id="1758486001363313524">Друго...</translation> +<translation id="1787192514241997742">вкупно време: <ph name="REMAINING_TIME" /></translation> <translation id="1806710327868736751">дијалог_за_предупредување</translation> <translation id="1821985195704844674">мрежа на дрвото</translation> <translation id="1822429046913737220">претпладне/попладне</translation>
diff --git a/third_party/blink/public/strings/translations/blink_strings_nl.xtb b/third_party/blink/public/strings/translations/blink_strings_nl.xtb index 01717370..c43eb474 100644 --- a/third_party/blink/public/strings/translations/blink_strings_nl.xtb +++ b/third_party/blink/public/strings/translations/blink_strings_nl.xtb
@@ -23,6 +23,7 @@ <translation id="1727886345390570319">ondertitelingsmenu verbergen</translation> <translation id="1729654308190250600">Geef een e-mailadres op.</translation> <translation id="1758486001363313524">Anders...</translation> +<translation id="1787192514241997742">totale tijd: <ph name="REMAINING_TIME" /></translation> <translation id="1806710327868736751">dialoogvenster voor meldingen</translation> <translation id="1821985195704844674">boomstructuur</translation> <translation id="1822429046913737220">a.m./p.m.</translation>
diff --git a/third_party/blink/public/strings/translations/blink_strings_no.xtb b/third_party/blink/public/strings/translations/blink_strings_no.xtb index 1499c1084..2a9d362 100644 --- a/third_party/blink/public/strings/translations/blink_strings_no.xtb +++ b/third_party/blink/public/strings/translations/blink_strings_no.xtb
@@ -23,6 +23,7 @@ <translation id="1727886345390570319">skjul menyen for teksting for hørselshemmede</translation> <translation id="1729654308190250600">Skriv inn en ikke-tom e-postadresse.</translation> <translation id="1758486001363313524">Andre</translation> +<translation id="1787192514241997742">total tid: <ph name="REMAINING_TIME" /></translation> <translation id="1806710327868736751">varseldialog</translation> <translation id="1821985195704844674">trerutenett</translation> <translation id="1822429046913737220">AM/PM</translation>
diff --git a/third_party/blink/public/strings/translations/blink_strings_pl.xtb b/third_party/blink/public/strings/translations/blink_strings_pl.xtb index 5d8f797..ec6044e 100644 --- a/third_party/blink/public/strings/translations/blink_strings_pl.xtb +++ b/third_party/blink/public/strings/translations/blink_strings_pl.xtb
@@ -23,6 +23,7 @@ <translation id="1727886345390570319">ukrywanie menu napisów</translation> <translation id="1729654308190250600">Podaj adres e-mail.</translation> <translation id="1758486001363313524">Inny...</translation> +<translation id="1787192514241997742">łączny czas: <ph name="REMAINING_TIME" /></translation> <translation id="1806710327868736751">alert_dialog</translation> <translation id="1821985195704844674">siatka drzewa</translation> <translation id="1822429046913737220">rano/po południu</translation>
diff --git a/third_party/blink/public/strings/translations/blink_strings_pt-BR.xtb b/third_party/blink/public/strings/translations/blink_strings_pt-BR.xtb index 6e498dc..8cf73c2 100644 --- a/third_party/blink/public/strings/translations/blink_strings_pt-BR.xtb +++ b/third_party/blink/public/strings/translations/blink_strings_pt-BR.xtb
@@ -23,6 +23,7 @@ <translation id="1727886345390570319">ocultar menu de closed captions</translation> <translation id="1729654308190250600">Insira um endereço de e-mail que não esteja vazio.</translation> <translation id="1758486001363313524">Outras...</translation> +<translation id="1787192514241997742">tempo total: <ph name="REMAINING_TIME" /></translation> <translation id="1806710327868736751">alert_dialog</translation> <translation id="1821985195704844674">grade de árvore</translation> <translation id="1822429046913737220">AM/PM</translation>
diff --git a/third_party/blink/public/strings/translations/blink_strings_si.xtb b/third_party/blink/public/strings/translations/blink_strings_si.xtb index 1f86425..b9300be7 100644 --- a/third_party/blink/public/strings/translations/blink_strings_si.xtb +++ b/third_party/blink/public/strings/translations/blink_strings_si.xtb
@@ -23,6 +23,7 @@ <translation id="1727886345390570319">සිරස්තල මෙනුව සඟවන්න</translation> <translation id="1729654308190250600">කරුණාකර හිස් නොවන ඊමේල් ලිපිනයක් ඇතුල් කරන්න.</translation> <translation id="1758486001363313524">වෙනත්...</translation> +<translation id="1787192514241997742">සම්පූර්ණ කාලය: <ph name="REMAINING_TIME" /></translation> <translation id="1806710327868736751">ඇඟවුම්_සංවාදය</translation> <translation id="1821985195704844674">රුක් ජාලය</translation> <translation id="1822429046913737220">පෙව/පව</translation>
diff --git a/third_party/blink/public/strings/translations/blink_strings_sl.xtb b/third_party/blink/public/strings/translations/blink_strings_sl.xtb index 8241f09..ea56d1e 100644 --- a/third_party/blink/public/strings/translations/blink_strings_sl.xtb +++ b/third_party/blink/public/strings/translations/blink_strings_sl.xtb
@@ -23,6 +23,7 @@ <translation id="1727886345390570319">skrij meni s podnapisi</translation> <translation id="1729654308190250600">Vnesite e-poštni naslov (polje ne sme biti prazno).</translation> <translation id="1758486001363313524">Drugo ...</translation> +<translation id="1787192514241997742">skupni čas: <ph name="REMAINING_TIME" /></translation> <translation id="1806710327868736751">pogovorno okno z opozorilom</translation> <translation id="1821985195704844674">drevesna mreža</translation> <translation id="1822429046913737220">Dopoldne/popoldne</translation>
diff --git a/third_party/blink/public/strings/translations/blink_strings_sr.xtb b/third_party/blink/public/strings/translations/blink_strings_sr.xtb index be35f21..288a0db 100644 --- a/third_party/blink/public/strings/translations/blink_strings_sr.xtb +++ b/third_party/blink/public/strings/translations/blink_strings_sr.xtb
@@ -23,6 +23,7 @@ <translation id="1727886345390570319">сакријте мени опционалног титла</translation> <translation id="1729654308190250600">Унесите имејл адресу која није празна.</translation> <translation id="1758486001363313524">Друго...</translation> +<translation id="1787192514241997742">укупно време: <ph name="REMAINING_TIME" /></translation> <translation id="1806710327868736751">дијалог обавештења</translation> <translation id="1821985195704844674">мрежа стабла</translation> <translation id="1822429046913737220">пре подне/по подне</translation>
diff --git a/third_party/blink/public/strings/translations/blink_strings_sw.xtb b/third_party/blink/public/strings/translations/blink_strings_sw.xtb index 40ba529..9e14006 100644 --- a/third_party/blink/public/strings/translations/blink_strings_sw.xtb +++ b/third_party/blink/public/strings/translations/blink_strings_sw.xtb
@@ -23,6 +23,7 @@ <translation id="1727886345390570319">kuficha menyu ya manukuu</translation> <translation id="1729654308190250600">Tafadhali jaza sehemu ya anwani ya barua pepe.</translation> <translation id="1758486001363313524">Nyingine...</translation> +<translation id="1787192514241997742">muda wote uliotumika: <ph name="REMAINING_TIME" /></translation> <translation id="1806710327868736751">kidirisha cha arifa</translation> <translation id="1821985195704844674">gridi ya mti</translation> <translation id="1822429046913737220">AM / PM</translation>
diff --git a/third_party/blink/renderer/core/dom/document.cc b/third_party/blink/renderer/core/dom/document.cc index ed15c580..95ab63d 100644 --- a/third_party/blink/renderer/core/dom/document.cc +++ b/third_party/blink/renderer/core/dom/document.cc
@@ -160,6 +160,7 @@ #include "third_party/blink/renderer/core/feature_policy/feature_policy_parser.h" #include "third_party/blink/renderer/core/frame/csp/content_security_policy.h" #include "third_party/blink/renderer/core/frame/csp/navigation_initiator_impl.h" +#include "third_party/blink/renderer/core/frame/document_policy_violation_report_body.h" #include "third_party/blink/renderer/core/frame/dom_timer.h" #include "third_party/blink/renderer/core/frame/dom_visual_viewport.h" #include "third_party/blink/renderer/core/frame/event_handler_registry.h" @@ -1103,7 +1104,7 @@ bool Document::IsFeatureEnabled(mojom::blink::DocumentPolicyFeature feature, ReportOptions report_option, const String& message, - const String& source_file) { + const String& source_file) const { return GetExecutionContext() && GetExecutionContext()->IsFeatureEnabled(feature, report_option, message, source_file); @@ -1113,7 +1114,7 @@ PolicyValue threshold_value, ReportOptions report_option, const String& message, - const String& source_file) { + const String& source_file) const { return GetExecutionContext() && GetExecutionContext()->IsFeatureEnabled( feature, threshold_value, report_option, message, source_file); @@ -8396,6 +8397,55 @@ } } +void Document::ReportDocumentPolicyViolation( + mojom::blink::DocumentPolicyFeature feature, + mojom::blink::FeaturePolicyDisposition disposition, + const String& message, + const String& source_file) const { + LocalFrame* frame = GetFrame(); + if (!frame) + return; + + // Construct the document policy violation report. + const String& feature_name = + GetDocumentPolicyFeatureInfoMap().at(feature).feature_name.c_str(); + bool is_report_only = + disposition == mojom::blink::FeaturePolicyDisposition::kReport; + const String& disp_str = is_report_only ? "report" : "enforce"; + const DocumentPolicy* relevant_document_policy = + is_report_only ? GetSecurityContext().GetReportOnlyDocumentPolicy() + : GetSecurityContext().GetDocumentPolicy(); + + DocumentPolicyViolationReportBody* body = + source_file.IsEmpty() + ? MakeGarbageCollected<DocumentPolicyViolationReportBody>( + feature_name, "Document policy violation", disp_str) + : MakeGarbageCollected<DocumentPolicyViolationReportBody>( + feature_name, "Document policy violation", disp_str, + source_file); + + Report* report = MakeGarbageCollected<Report>( + ReportType::kDocumentPolicyViolation, Url().GetString(), body); + + // Send the document policy violation report to any ReportingObservers. + auto* reporting_context = ReportingContext::From(domWindow()); + const base::Optional<std::string> endpoint = + relevant_document_policy->GetFeatureEndpoint(feature); + + reporting_context->QueueReport( + report, endpoint ? Vector<String>{endpoint->c_str()} : Vector<String>{}); + + // TODO(iclelland): Report something different in report-only mode + if (!is_report_only) { + frame->Console().AddMessage(MakeGarbageCollected<ConsoleMessage>( + mojom::blink::ConsoleMessageSource::kViolation, + mojom::blink::ConsoleMessageLevel::kError, + (message.IsEmpty() ? ("Document policy violation: " + feature_name + + " is not allowed in this document.") + : message))); + } +} + void Document::IncrementNumberOfCanvases() { num_canvases_++; }
diff --git a/third_party/blink/renderer/core/dom/document.h b/third_party/blink/renderer/core/dom/document.h index 3f8314b4..5294afb 100644 --- a/third_party/blink/renderer/core/dom/document.h +++ b/third_party/blink/renderer/core/dom/document.h
@@ -325,7 +325,14 @@ mojom::blink::FeaturePolicyFeature) const; void ReportFeaturePolicyViolation( mojom::blink::FeaturePolicyFeature, - mojom::FeaturePolicyDisposition, + mojom::blink::FeaturePolicyDisposition, + const String& message = g_empty_string, + // If source_file is set to empty string, + // current JS file would be used as source_file instead. + const String& source_file = g_empty_string) const; + void ReportDocumentPolicyViolation( + mojom::blink::DocumentPolicyFeature, + mojom::blink::FeaturePolicyDisposition disposition, const String& message = g_empty_string, // If source_file is set to empty string, // current JS file would be used as source_file instead. @@ -408,13 +415,13 @@ mojom::blink::DocumentPolicyFeature, ReportOptions report_option = ReportOptions::kDoNotReport, const String& message = g_empty_string, - const String& source_file = g_empty_string); + const String& source_file = g_empty_string) const; bool IsFeatureEnabled( mojom::blink::DocumentPolicyFeature, PolicyValue threshold_value, ReportOptions report_option = ReportOptions::kDoNotReport, const String& message = g_empty_string, - const String& source_file = g_empty_string); + const String& source_file = g_empty_string) const; String addressSpaceForBindings() const;
diff --git a/third_party/blink/renderer/core/execution_context/execution_context.cc b/third_party/blink/renderer/core/execution_context/execution_context.cc index a1121c9..0af0d19 100644 --- a/third_party/blink/renderer/core/execution_context/execution_context.cc +++ b/third_party/blink/renderer/core/execution_context/execution_context.cc
@@ -40,9 +40,6 @@ #include "third_party/blink/renderer/core/execution_context/execution_context_lifecycle_state_observer.h" #include "third_party/blink/renderer/core/fileapi/public_url_manager.h" #include "third_party/blink/renderer/core/frame/csp/execution_context_csp_delegate.h" -#include "third_party/blink/renderer/core/frame/document_policy_violation_report_body.h" -#include "third_party/blink/renderer/core/frame/report.h" -#include "third_party/blink/renderer/core/frame/reporting_context.h" #include "third_party/blink/renderer/core/inspector/console_message.h" #include "third_party/blink/renderer/core/origin_trials/origin_trial_context.h" #include "third_party/blink/renderer/core/probe/core_probes.h" @@ -453,7 +450,7 @@ mojom::blink::DocumentPolicyFeature feature, ReportOptions report_option, const String& message, - const String& source_file) { + const String& source_file) const { DCHECK(GetDocumentPolicyFeatureInfoMap().at(feature).default_value.Type() == mojom::blink::PolicyValueType::kBool); return IsFeatureEnabled(feature, PolicyValue(true), report_option, message, @@ -465,7 +462,7 @@ PolicyValue threshold_value, ReportOptions report_option, const String& message, - const String& source_file) { + const String& source_file) const { // The default value for any feature should be true unless restricted by // document policy if (!RuntimeEnabledFeatures::DocumentPolicyEnabled(this)) @@ -476,56 +473,17 @@ if (status.should_report && report_option == ReportOptions::kReportOnFailure) { // If both |enabled| and |should_report| are true, the usage must have - // violated the report-only policy, i.e. |is_report_only| == |enabled|. - ReportDocumentPolicyViolation(feature, status.enabled /* is_report_only */, - message, source_file); + // violated the report-only policy, i.e. |disposition| == + // mojom::blink::FeaturePolicyDisposition::kReport. + ReportDocumentPolicyViolation( + feature, + status.enabled ? mojom::blink::FeaturePolicyDisposition::kReport + : mojom::blink::FeaturePolicyDisposition::kEnforce, + message, source_file); } return status.enabled; } -void ExecutionContext::ReportDocumentPolicyViolation( - mojom::blink::DocumentPolicyFeature feature, - bool is_report_only, - const String& message, - const String& source_file) { - // Construct the document policy violation report. - const String& feature_name = - GetDocumentPolicyFeatureInfoMap().at(feature).feature_name.c_str(); - const String& disp_str = is_report_only ? "report" : "enforce"; - const DocumentPolicy* relevant_document_policy = - is_report_only ? GetSecurityContext().GetReportOnlyDocumentPolicy() - : GetSecurityContext().GetDocumentPolicy(); - - DocumentPolicyViolationReportBody* body = - source_file.IsEmpty() - ? MakeGarbageCollected<DocumentPolicyViolationReportBody>( - feature_name, "Document policy violation", disp_str) - : MakeGarbageCollected<DocumentPolicyViolationReportBody>( - feature_name, "Document policy violation", disp_str, - source_file); - - Report* report = MakeGarbageCollected<Report>( - ReportType::kDocumentPolicyViolation, Url().GetString(), body); - - // Send the feature policy violation report to any ReportingObservers. - auto* reporting_context = ReportingContext::From(this); - const base::Optional<std::string> endpoint = - relevant_document_policy->GetFeatureEndpoint(feature); - - reporting_context->QueueReport( - report, endpoint ? Vector<String>{endpoint->c_str()} : Vector<String>{}); - - // TODO(iclelland): Report something different in report-only mode - if (!is_report_only) { - AddConsoleMessage(MakeGarbageCollected<ConsoleMessage>( - mojom::blink::ConsoleMessageSource::kViolation, - mojom::blink::ConsoleMessageLevel::kError, - (message.IsEmpty() ? ("Document policy violation: " + feature_name + - " is not allowed in this document.") - : message))); - } -} - bool ExecutionContext::RequireTrustedTypes() const { return GetSecurityContext().TrustedTypesRequiredByPolicy() && RuntimeEnabledFeatures::TrustedDOMTypesEnabled(this);
diff --git a/third_party/blink/renderer/core/execution_context/execution_context.h b/third_party/blink/renderer/core/execution_context/execution_context.h index f25509b9..bae3e6be 100644 --- a/third_party/blink/renderer/core/execution_context/execution_context.h +++ b/third_party/blink/renderer/core/execution_context/execution_context.h
@@ -314,19 +314,28 @@ mojom::blink::DocumentPolicyFeature, ReportOptions report_option = ReportOptions::kDoNotReport, const String& message = g_empty_string, - const String& source_file = g_empty_string); + const String& source_file = g_empty_string) const; bool IsFeatureEnabled( mojom::blink::DocumentPolicyFeature, PolicyValue threshold_value, ReportOptions report_option = ReportOptions::kDoNotReport, const String& message = g_empty_string, - const String& source_file = g_empty_string); + const String& source_file = g_empty_string) const; virtual void CountPotentialFeaturePolicyViolation( mojom::blink::FeaturePolicyFeature) const {} + + // Report policy violations is delegated to Document because in order + // to both remain const qualified and output console message, needs + // to call |frame_->Console().AddMessage()| directly. virtual void ReportFeaturePolicyViolation( mojom::blink::FeaturePolicyFeature, - mojom::FeaturePolicyDisposition, + mojom::blink::FeaturePolicyDisposition, + const String& message = g_empty_string, + const String& source_file = g_empty_string) const {} + virtual void ReportDocumentPolicyViolation( + mojom::blink::DocumentPolicyFeature, + mojom::blink::FeaturePolicyDisposition, const String& message = g_empty_string, const String& source_file = g_empty_string) const {} @@ -357,12 +366,6 @@ void FeaturePolicyPotentialBehaviourChangeObserved( mojom::blink::FeaturePolicyFeature feature) const; - void ReportDocumentPolicyViolation( - mojom::blink::DocumentPolicyFeature, - bool is_report_only, - const String& message = g_empty_string, - const String& source_file = g_empty_string); - v8::Isolate* const isolate_; bool DispatchErrorEventInternal(ErrorEvent*, SanitizeScriptErrors);
diff --git a/third_party/blink/renderer/core/frame/local_dom_window.cc b/third_party/blink/renderer/core/frame/local_dom_window.cc index 046000ed..6de52f15 100644 --- a/third_party/blink/renderer/core/frame/local_dom_window.cc +++ b/third_party/blink/renderer/core/frame/local_dom_window.cc
@@ -375,13 +375,22 @@ void LocalDOMWindow::ReportFeaturePolicyViolation( mojom::blink::FeaturePolicyFeature feature, - mojom::FeaturePolicyDisposition disposition, + mojom::blink::FeaturePolicyDisposition disposition, const String& message, const String& source_file) const { document()->ReportFeaturePolicyViolation(feature, disposition, message, source_file); } +void LocalDOMWindow::ReportDocumentPolicyViolation( + mojom::blink::DocumentPolicyFeature feature, + mojom::blink::FeaturePolicyDisposition disposition, + const String& message, + const String& source_file) const { + document()->ReportDocumentPolicyViolation(feature, disposition, message, + source_file); +} + static void RunAddConsoleMessageTask(mojom::ConsoleMessageSource source, mojom::ConsoleMessageLevel level, const String& message,
diff --git a/third_party/blink/renderer/core/frame/local_dom_window.h b/third_party/blink/renderer/core/frame/local_dom_window.h index b0d44f8e..63e6382 100644 --- a/third_party/blink/renderer/core/frame/local_dom_window.h +++ b/third_party/blink/renderer/core/frame/local_dom_window.h
@@ -144,11 +144,19 @@ mojom::blink::FeaturePolicyFeature) const final; void ReportFeaturePolicyViolation( mojom::blink::FeaturePolicyFeature, - mojom::FeaturePolicyDisposition, + mojom::blink::FeaturePolicyDisposition, const String& message = g_empty_string, // If source_file is set to empty string, // current JS file would be used as source_file instead. const String& source_file = g_empty_string) const final; + void ReportDocumentPolicyViolation( + mojom::blink::DocumentPolicyFeature, + mojom::blink::FeaturePolicyDisposition, + const String& message = g_empty_string, + // If source_file is set to empty string, + // current JS file would be used as source_file instead. + const String& source_file = g_empty_string) const final; + void AddConsoleMessageImpl(ConsoleMessage*, bool discard_duplicates) final; // UseCounter orverrides:
diff --git a/third_party/blink/renderer/core/html/canvas/image_data.cc b/third_party/blink/renderer/core/html/canvas/image_data.cc index 072759a..eb28b74 100644 --- a/third_party/blink/renderer/core/html/canvas/image_data.cc +++ b/third_party/blink/renderer/core/html/canvas/image_data.cc
@@ -781,13 +781,16 @@ src_pixel_format = skcms_PixelFormat_RGBA_ffff; skcms_PixelFormat dst_pixel_format = skcms_PixelFormat_RGBA_8888; - if (canvas_pixel_format == CanvasColorParams::GetNativeCanvasPixelFormat() && - u8_color_type == kN32ColorType && - kN32_SkColorType == kBGRA_8888_SkColorType) { - dst_pixel_format = skcms_PixelFormat_BGRA_8888; - } else if (canvas_pixel_format == CanvasPixelFormat::kF16) { + if (canvas_pixel_format == CanvasPixelFormat::kF16) { dst_pixel_format = skcms_PixelFormat_RGBA_hhhh; } +#if SK_PMCOLOR_BYTE_ORDER(B, G, R, A) + else if (canvas_pixel_format == + CanvasColorParams::GetNativeCanvasPixelFormat() && + u8_color_type == kN32ColorType) { + dst_pixel_format = skcms_PixelFormat_BGRA_8888; + } +#endif skcms_AlphaFormat src_alpha_format = skcms_AlphaFormat_Unpremul; skcms_AlphaFormat dst_alpha_format = skcms_AlphaFormat_Unpremul;
diff --git a/third_party/blink/renderer/core/layout/svg/layout_svg_resource_container.h b/third_party/blink/renderer/core/layout/svg/layout_svg_resource_container.h index 1b31931..9e5ef61 100644 --- a/third_party/blink/renderer/core/layout/svg/layout_svg_resource_container.h +++ b/third_party/blink/renderer/core/layout/svg/layout_svg_resource_container.h
@@ -109,12 +109,12 @@ resource.ResourceType() == typeName) template <typename ContainerType> -inline bool IsResourceOfType(LayoutSVGResourceContainer* container) { +inline bool IsResourceOfType(const LayoutSVGResourceContainer* container) { return container->ResourceType() == ContainerType::kResourceType; } template <typename ContainerType> -inline ContainerType* GetSVGResourceAsType(SVGResource* resource) { +inline ContainerType* GetSVGResourceAsType(const SVGResource* resource) { if (!resource) return nullptr; if (LayoutSVGResourceContainer* container = resource->ResourceContainer()) { @@ -125,7 +125,8 @@ } template <typename ContainerType> -inline ContainerType* GetSVGResourceAsType(StyleSVGResource* style_resource) { +inline ContainerType* GetSVGResourceAsType( + const StyleSVGResource* style_resource) { if (!style_resource) return nullptr; return GetSVGResourceAsType<ContainerType>(style_resource->Resource());
diff --git a/third_party/blink/renderer/core/layout/svg/layout_svg_resource_paint_server.h b/third_party/blink/renderer/core/layout/svg/layout_svg_resource_paint_server.h index b42257b..9706a78 100644 --- a/third_party/blink/renderer/core/layout/svg/layout_svg_resource_paint_server.h +++ b/third_party/blink/renderer/core/layout/svg/layout_svg_resource_paint_server.h
@@ -116,7 +116,7 @@ template <> inline bool IsResourceOfType<LayoutSVGResourcePaintServer>( - LayoutSVGResourceContainer* container) { + const LayoutSVGResourceContainer* container) { return container->IsSVGPaintServer(); }
diff --git a/third_party/blink/renderer/modules/xr/xr_frame.cc b/third_party/blink/renderer/modules/xr/xr_frame.cc index 978554b..8e3bb4b 100644 --- a/third_party/blink/renderer/modules/xr/xr_frame.cc +++ b/third_party/blink/renderer/modules/xr/xr_frame.cc
@@ -42,6 +42,7 @@ XRViewerPose* XRFrame::getViewerPose(XRReferenceSpace* reference_space, ExceptionState& exception_state) const { + DVLOG(3) << __func__; if (!is_active_) { exception_state.ThrowDOMException(DOMExceptionCode::kInvalidStateError, kInactiveFrame); @@ -55,6 +56,7 @@ } if (!reference_space) { + DVLOG(1) << __func__ << ": reference space not present, returning null"; return nullptr; } @@ -77,6 +79,10 @@ // Can only update an XRViewerPose's views with an invertible matrix. if (!(offset_space_from_viewer && offset_space_from_viewer->IsInvertible())) { + DVLOG(1) << __func__ + << ": offset_space_from_viewer is invalid or not invertible - " + "returning nullptr, offset_space_from_viewer valid? " + << (offset_space_from_viewer ? true : false); return nullptr; }
diff --git a/third_party/blink/renderer/modules/xr/xr_frame_provider.cc b/third_party/blink/renderer/modules/xr/xr_frame_provider.cc index da958f35..5be7af5a 100644 --- a/third_party/blink/renderer/modules/xr/xr_frame_provider.cc +++ b/third_party/blink/renderer/modules/xr/xr_frame_provider.cc
@@ -257,9 +257,12 @@ immersive_frame_pose_ = std::move(data->pose); if (immersive_frame_pose_) { + DVLOG(3) << __func__ << ": pose available, emulated_position=" + << immersive_frame_pose_->emulated_position; is_immersive_frame_position_emulated_ = immersive_frame_pose_->emulated_position; } else { + DVLOG(2) << __func__ << ": emulating immersive frame position"; is_immersive_frame_position_emulated_ = true; }
diff --git a/third_party/blink/renderer/modules/xr/xr_session.cc b/third_party/blink/renderer/modules/xr/xr_session.cc index e7c21d3..094c87db 100644 --- a/third_party/blink/renderer/modules/xr/xr_session.cc +++ b/third_party/blink/renderer/modules/xr/xr_session.cc
@@ -471,6 +471,8 @@ ScriptState* script_state, const String& type, ExceptionState& exception_state) { + DVLOG(2) << __func__; + if (ended_) { exception_state.ThrowDOMException(DOMExceptionCode::kInvalidStateError, kSessionEnded); @@ -618,6 +620,8 @@ } int XRSession::requestAnimationFrame(V8XRFrameRequestCallback* callback) { + DVLOG(3) << __func__; + TRACE_EVENT0("gpu", __func__); // Don't allow any new frame requests once the session is ended. if (ended_) @@ -948,6 +952,10 @@ } } + DVLOG(3) << __func__ + << ": anchor count before update=" << anchor_ids_to_anchors_.size() + << ", after update=" << updated_anchors.size(); + anchor_ids_to_anchors_.swap(updated_anchors); DCHECK(newly_created_anchor_ids_to_resolvers_.IsEmpty()) @@ -1338,8 +1346,8 @@ int16_t frame_id, bool emulated_position) { TRACE_EVENT0("gpu", __func__); - DVLOG(2) << __func__ << " : frame_data valid? " - << (frame_data ? true : false); + DVLOG(2) << __func__ << " : frame_data valid? " << (frame_data ? true : false) + << ", emulated_position=" << emulated_position; // Don't process any outstanding frames once the session is ended. if (ended_) return; @@ -1409,7 +1417,8 @@ double timestamp, const base::Optional<gpu::MailboxHolder>& output_mailbox_holder) { TRACE_EVENT0("gpu", __func__); - DVLOG(2) << __func__; + DVLOG(2) << __func__ << ": ended_=" << ended_ + << ", pending_frame_=" << pending_frame_; // Don't process any outstanding frames once the session is ended. if (ended_) return; @@ -1425,10 +1434,14 @@ // session. That would allow tracking with no associated visuals. XRWebGLLayer* frame_base_layer = render_state_->baseLayer(); if (!frame_base_layer) { + DVLOG(2) << __func__ << ": frame_base_layer not present"; + // If we previously had a frame base layer, we need to still attempt to // submit a frame back to the runtime, as all "GetFrameData" calls need a // matching submit. if (prev_base_layer_) { + DVLOG(2) << __func__ + << ": prev_base_layer_ is valid, submitting frame to it"; prev_base_layer_->OnFrameStart(output_mailbox_holder); prev_base_layer_->OnFrameEnd(); prev_base_layer_ = nullptr; @@ -1438,16 +1451,23 @@ // Don't allow frames to be processed if an inline session doesn't have an // output canvas. - if (!immersive() && !render_state_->output_canvas()) + if (!immersive() && !render_state_->output_canvas()) { + DVLOG(2) << __func__ + << ": frames are not to be processed if an inline session " + "doesn't have an output canvas"; return; + } frame_base_layer->OnFrameStart(output_mailbox_holder); // Don't allow frames to be processed if the session's visibility state is // "hidden". if (visibility_state_ == XRVisibilityState::HIDDEN) { - // If the frame is skipped because of the visibility state, make sure we - // end the frame anyway. + DVLOG(2) << __func__ + << ": frames to be processed if the session's visibility state " + "is \"hidden\""; + // If the frame is skipped because of the visibility state, + // make sure we end the frame anyway. frame_base_layer->OnFrameEnd(); return; }
diff --git a/third_party/blink/renderer/modules/xr/xr_viewer_pose.cc b/third_party/blink/renderer/modules/xr/xr_viewer_pose.cc index acef2484..52b71f98 100644 --- a/third_party/blink/renderer/modules/xr/xr_viewer_pose.cc +++ b/third_party/blink/renderer/modules/xr/xr_viewer_pose.cc
@@ -13,6 +13,8 @@ XRViewerPose::XRViewerPose(XRSession* session, const TransformationMatrix& pose_model_matrix) : XRPose(pose_model_matrix, session->EmulatedPosition()) { + DVLOG(3) << __func__ << ": emulatedPosition()=" << emulatedPosition(); + Vector<XRViewData>& view_data = session->views(); // Snapshot the session's current views.
diff --git a/third_party/blink/renderer/platform/graphics/gpu/webgl_image_conversion.cc b/third_party/blink/renderer/platform/graphics/gpu/webgl_image_conversion.cc index 08aea5a6..0736906 100644 --- a/third_party/blink/renderer/platform/graphics/gpu/webgl_image_conversion.cc +++ b/third_party/blink/renderer/platform/graphics/gpu/webgl_image_conversion.cc
@@ -2858,7 +2858,11 @@ if (!skia_image) return; - image_source_format_ = SK_B32_SHIFT ? kDataFormatRGBA8 : kDataFormatBGRA8; +#if SK_B32_SHIFT + image_source_format_ = kDataFormatRGBA8; +#else + image_source_format_ = kDataFormatBGRA8; +#endif image_source_unpack_alignment_ = 0; // FIXME: this seems to always be zero - why use at all?
diff --git a/third_party/blink/web_tests/TestExpectations b/third_party/blink/web_tests/TestExpectations index cdc6dfc..836f970 100644 --- a/third_party/blink/web_tests/TestExpectations +++ b/third_party/blink/web_tests/TestExpectations
@@ -2027,7 +2027,6 @@ crbug.com/613672 [ Mac ] virtual/threaded/synthetic_gestures/synthetic-pinch-zoom-gesture-touchscreen-zoom-in-slow-desktop.html [ Skip ] crbug.com/613672 [ Mac ] virtual/threaded/synthetic_gestures/synthetic-pinch-zoom-gesture-touchscreen-desktop.html [ Skip ] -crbug.com/652536 fast/events/mouse-cursor-change-after-image-load.html [ Failure Pass Crash ] crbug.com/520188 [ Win ] http/tests/local/fileapi/file-last-modified-after-delete.html [ Failure Pass ] crbug.com/520611 [ Debug ] fast/filesystem/workers/file-writer-events-shared-worker.html [ Failure Pass ] crbug.com/520194 http/tests/xmlhttprequest/timeout/xmlhttprequest-timeout-worker-overridesexpires.html [ Failure Pass ] @@ -3236,8 +3235,6 @@ crbug.com/626703 external/wpt/webvtt/rendering/cues-with-video/processing-model/selectors/cue/vertical_text-combine-upright.html [ Failure ] crbug.com/626703 virtual/speech-with-unified-autoplay/external/wpt/speech-api/SpeechSynthesisUtterance-volume-manual.html [ Skip ] crbug.com/626703 external/wpt/speech-api/SpeechSynthesisUtterance-volume-manual.html [ Skip ] -crbug.com/626703 [ Mac10.10 ] external/wpt/animation-worklet/worklet-animation-with-scroll-timeline-and-display-none.https.html [ Failure ] -crbug.com/626703 [ Mac10.11 ] external/wpt/animation-worklet/worklet-animation-with-scroll-timeline-and-display-none.https.html [ Failure ] crbug.com/626703 [ Mac10.11 ] external/wpt/webrtc/no-media-call.html [ Timeout ] crbug.com/626703 external/wpt/css/css-writing-modes/writing-mode-vlr-table-001-manual.html [ Skip ] crbug.com/626703 external/wpt/css/css-writing-modes/writing-mode-vlr-009-manual.html [ Skip ] @@ -5505,13 +5502,7 @@ # Sheriff 2019-02-28 crbug.com/936827 external/wpt/fullscreen/api/element-request-fullscreen-and-remove-manual.html [ Failure Pass ] -# Enable WPT animation-worklet test to run with threaded-compositing -crbug.com/915352 virtual/threaded/external/wpt/animation-worklet/worklet-animation-pause-resume.https.html [ Pass Failure ] - -crbug.com/915352 [ Mac10.10 ] virtual/threaded/external/wpt/animation-worklet/worklet-animation-with-scroll-timeline.https.html [ Pass Failure ] -crbug.com/915352 [ Mac10.11 ] virtual/threaded/external/wpt/animation-worklet/worklet-animation-with-scroll-timeline.https.html [ Pass Failure ] -crbug.com/915352 [ Mac10.10 ] virtual/threaded/external/wpt/animation-worklet/worklet-animation-with-scroll-timeline-and-display-none.https.html [ Pass Failure ] -crbug.com/915352 [ Mac10.11 ] virtual/threaded/external/wpt/animation-worklet/worklet-animation-with-scroll-timeline-and-display-none.https.html [ Pass Failure ] +crbug.com/930462 virtual/threaded/external/wpt/animation-worklet/worklet-animation-pause-resume.https.html [ Pass Failure ] # Paint Timing failures crbug.com/1062984 external/wpt/paint-timing/border-image.html [ Pass Failure ] @@ -5584,8 +5575,6 @@ # Sheriff 2019-03-05 crbug.com/938200 http/tests/devtools/network/network-blocked-reason.js [ Timeout Pass ] -crbug.com/938780 [ Mac10.10 ] virtual/threaded/external/wpt/animation-worklet/worklet-animation-with-scroll-timeline-root-scroller.https.html [ Pass Failure ] -crbug.com/938780 [ Mac10.11 ] virtual/threaded/external/wpt/animation-worklet/worklet-animation-with-scroll-timeline-root-scroller.https.html [ Pass Failure ] # Caused a revert of a good change. crbug.com/931533 media/video-played-collapse.html [ Pass Failure ] @@ -5703,9 +5692,25 @@ # Sheriff 2019-04-25 crbug.com/956736 virtual/gpu-rasterization/images/imagemap-focus-ring-outline-color-not-inherited-from-map.html [ Pass Failure ] -# Sheriff 2019-04-30 +crbug.com/946534 [ Mac10.10 ] external/wpt/animation-worklet/worklet-animation-with-scroll-timeline.https.html [ Pass Failure ] +crbug.com/946534 [ Mac10.11 ] external/wpt/animation-worklet/worklet-animation-with-scroll-timeline.https.html [ Pass Failure ] crbug.com/946534 [ Mac10.10 ] external/wpt/animation-worklet/worklet-animation-with-scroll-timeline-root-scroller.https.html [ Pass Failure ] crbug.com/946534 [ Mac10.11 ] external/wpt/animation-worklet/worklet-animation-with-scroll-timeline-root-scroller.https.html [ Pass Failure ] +crbug.com/946534 [ Mac10.10 ] external/wpt/animation-worklet/worklet-animation-with-scroll-timeline-and-display-none.https.html [ Pass Failure ] +crbug.com/946534 [ Mac10.11 ] external/wpt/animation-worklet/worklet-animation-with-scroll-timeline-and-display-none.https.html [ Pass Failure ] +crbug.com/946534 [ Mac10.10 ] virtual/threaded/external/wpt/animation-worklet/worklet-animation-with-scroll-timeline.https.html [ Pass Failure ] +crbug.com/946534 [ Mac10.11 ] virtual/threaded/external/wpt/animation-worklet/worklet-animation-with-scroll-timeline.https.html [ Pass Failure ] +crbug.com/946534 [ Mac10.10 ] virtual/threaded/external/wpt/animation-worklet/worklet-animation-with-scroll-timeline-root-scroller.https.html [ Pass Failure ] +crbug.com/946534 [ Mac10.11 ] virtual/threaded/external/wpt/animation-worklet/worklet-animation-with-scroll-timeline-root-scroller.https.html [ Pass Failure ] +crbug.com/946534 [ Mac10.10 ] virtual/threaded/external/wpt/animation-worklet/worklet-animation-with-scroll-timeline-and-display-none.https.html [ Pass Failure ] +crbug.com/946534 [ Mac10.11 ] virtual/threaded/external/wpt/animation-worklet/worklet-animation-with-scroll-timeline-and-display-none.https.html [ Pass Failure ] + +crbug.com/1065059 [ Linux ] virtual/threaded-no-composited-antialiasing/animations/animationworklet/scroll-timeline-non-scrollable.html [ Pass Crash ] +crbug.com/1065059 [ Linux ] virtual/threaded-no-composited-antialiasing/animations/animationworklet/playback-rate-scroll-timeline-accelerated-property.html [ Pass Crash ] +crbug.com/1065059 [ Linux ] virtual/threaded/external/wpt/animation-worklet/worklet-animation-with-scroll-timeline.https.html [ Pass Crash ] +crbug.com/1065059 [ Linux ] virtual/threaded/external/wpt/animation-worklet/worklet-animation-with-scroll-timeline-root-scroller.https.html [ Pass Crash ] + +# Sheriff 2019-04-30 crbug.com/948785 [ Debug ] fast/events/pointerevents/pointer-event-consumed-touchstart-in-slop-region.html [ Pass Failure ] # Sheriff 2019-05-01 @@ -5720,10 +5725,6 @@ crbug.com/959002 crbug.com/959042 http/tests/devtools/elements/styles-4/styles-keyframes.js [ Pass Timeout ] crbug.com/959002 crbug.com/959042 http/tests/devtools/elements/styles-4/undo-add-new-rule.js [ Pass Timeout ] -# Sheriff 2019-05-07 -crbug.com/960443 [ Mac10.10 ] external/wpt/animation-worklet/worklet-animation-with-scroll-timeline.https.html [ Failure Pass ] -crbug.com/960443 [ Mac10.11 ] external/wpt/animation-worklet/worklet-animation-with-scroll-timeline.https.html [ Failure Pass ] - # Sheriff 2019-05-10 crbug.com/960623 [ Win ] http/tests/misc/resource-timing-sizes-multipart.html [ Pass Failure ] @@ -6652,11 +6653,6 @@ crbug.com/1058785 external/wpt/html/cross-origin-embedder-policy/cache-storage-reporting-shared-worker.https.html [ Timeout ] # Sheriff 2020-03-12 -crbug.com/1061131 [ Linux ] virtual/threaded-no-composited-antialiasing/animations/animationworklet/playback-rate-scroll-timeline-accelerated-property.html [ Pass Crash ] -crbug.com/1061131 [ Linux ] virtual/threaded-no-composited-antialiasing/animations/animationworklet/scroll-timeline-non-scrollable.html [ Pass Crash ] -crbug.com/1061131 [ Linux ] virtual/threaded/external/wpt/animation-worklet/worklet-animation-with-scroll-timeline-root-scroller.https.html [ Pass Crash ] -crbug.com/1061131 [ Linux ] virtual/threaded/external/wpt/animation-worklet/worklet-animation-with-scroll-timeline.https.html [ Pass Crash ] - crbug.com/1061131 [ Linux ] virtual/threaded-prefer-compositing/fast/scrolling/middle-click-autoscroll-latching-clicked-node.html [ Pass Failure Timeout ] crbug.com/1060974 [ Debug ] virtual/threaded/external/wpt/scroll-animations/two-animations-attach-to-same-scroll-timeline-cancel-one.html [ Pass Failure ]
diff --git a/third_party/blink/web_tests/external/WPT_BASE_MANIFEST_7.json b/third_party/blink/web_tests/external/WPT_BASE_MANIFEST_7.json index 823e8db1..28b7f94 100644 --- a/third_party/blink/web_tests/external/WPT_BASE_MANIFEST_7.json +++ b/third_party/blink/web_tests/external/WPT_BASE_MANIFEST_7.json
@@ -44613,6 +44613,18 @@ {} ] ], + "css/css-flexbox/columns-center-with-margins-and-wrap-001.html": [ + [ + "css/css-flexbox/columns-center-with-margins-and-wrap-001.html", + [ + [ + "/css/css-flexbox/reference/columns-center-with-margins-and-wrap-001-ref.html", + "==" + ] + ], + {} + ] + ], "css/css-flexbox/content-height-with-scrollbars.html": [ [ "css/css-flexbox/content-height-with-scrollbars.html", @@ -142145,6 +142157,9 @@ "css/css-flexbox/reference/auto-height-with-flex-ref.html": [ [] ], + "css/css-flexbox/reference/columns-center-with-margins-and-wrap-001-ref.html": [ + [] + ], "css/css-flexbox/reference/content-height-with-scrollbars-ref.html": [ [] ], @@ -381552,6 +381567,10 @@ "4c84a258658d8a0576a03e0e430677945e6eb005", "testharness" ], + "css/css-flexbox/columns-center-with-margins-and-wrap-001.html": [ + "7bdc28776b6c4d2671fa4c696920b56f3fa363f4", + "reftest" + ], "css/css-flexbox/columns-height-set-via-top-bottom.html": [ "80cdcc6974df9bb0b79bc91c2d4dc0aad881cf4d", "testharness" @@ -384700,6 +384719,10 @@ "d56fe356dcbb6ce87414a2075b5f47c515628016", "support" ], + "css/css-flexbox/reference/columns-center-with-margins-and-wrap-001-ref.html": [ + "415a36f42dec838b3419b80d0d9b5fc2f536808e", + "support" + ], "css/css-flexbox/reference/content-height-with-scrollbars-ref.html": [ "8a1484f6934dc3e30aae299380c82308cd1fec42", "support" @@ -481901,7 +481924,7 @@ "support" ], "interfaces/clipboard-apis.idl": [ - "9e35287696b94cb4aad99292bf11e398f1d71f2b", + "c99113059ec77b266911fe0ce2c2bf520444fcd0", "support" ], "interfaces/compat.idl": [
diff --git a/third_party/blink/web_tests/css3/flexbox/cross-axis-scrollbar.html b/third_party/blink/web_tests/external/wpt/css/css-flexbox/cross-axis-scrollbar.html similarity index 89% rename from third_party/blink/web_tests/css3/flexbox/cross-axis-scrollbar.html rename to third_party/blink/web_tests/external/wpt/css/css-flexbox/cross-axis-scrollbar.html index bd47193..6bb32517 100644 --- a/third_party/blink/web_tests/css3/flexbox/cross-axis-scrollbar.html +++ b/third_party/blink/web_tests/external/wpt/css/css-flexbox/cross-axis-scrollbar.html
@@ -1,7 +1,11 @@ <!DOCTYPE html> <html> -<head> -<link href="resources/flexbox.css" rel="stylesheet"> +<title>CSS Flexbox: Scrollbars and flex-direction.</title> +<link href="support/flexbox.css" rel="stylesheet"> +<link rel="help" href="https://www.w3.org/TR/css-flexbox-1/#flex-direction-property"> +<link rel="help" href="https://www.w3.org/TR/css-overflow-4/#classic-scrollbars"> +<link rel="match" href="reference/cross-axis-scrollbar-ref.html"> +<meta name="assert" content="This test ensures that flexbox scrollbars take flex-direction into account."/> <style> body { margin: 0; @@ -45,7 +49,6 @@ } </style> -</head> <body> This test passes if no red is showing.
diff --git a/third_party/blink/web_tests/external/wpt/css/css-flexbox/gap-009-ltr.html b/third_party/blink/web_tests/external/wpt/css/css-flexbox/gap-009-ltr.html index 43a4cef..462b5b6 100644 --- a/third_party/blink/web_tests/external/wpt/css/css-flexbox/gap-009-ltr.html +++ b/third_party/blink/web_tests/external/wpt/css/css-flexbox/gap-009-ltr.html
@@ -5,7 +5,7 @@ <link rel="help" href="https://www.w3.org/TR/css-grid-1/#gutters"> <link rel="help" href="https://www.w3.org/TR/css-align-3/#column-row-gap"> <link rel="help" href="https://www.w3.org/TR/css-align-3/#gap-legacy"> -<link rel="match" href="gap-008-ltr-ref.html"> +<link rel="match" href="gap-009-ltr-ref.html"> <meta name="flags" content=""> <meta name="assert" content="The 'gap' property enables putting space exclusively between items"> <style>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-flexbox/gap-010-ltr.html b/third_party/blink/web_tests/external/wpt/css/css-flexbox/gap-010-ltr.html index f57a167..85dba78 100644 --- a/third_party/blink/web_tests/external/wpt/css/css-flexbox/gap-010-ltr.html +++ b/third_party/blink/web_tests/external/wpt/css/css-flexbox/gap-010-ltr.html
@@ -5,7 +5,7 @@ <link rel="help" href="https://www.w3.org/TR/css-grid-1/#gutters"> <link rel="help" href="https://www.w3.org/TR/css-align-3/#column-row-gap"> <link rel="help" href="https://www.w3.org/TR/css-align-3/#gap-legacy"> -<link rel="match" href="gap-008-ltr-ref.html"> +<link rel="match" href="gap-010-ltr-ref.html"> <meta name="flags" content=""> <meta name="assert" content="The 'gap' property enables putting space exclusively between items"> <style>
diff --git a/third_party/blink/web_tests/css3/flexbox/intrinsic-min-width-applies-with-fixed-width.html b/third_party/blink/web_tests/external/wpt/css/css-flexbox/intrinsic-min-width-applies-with-fixed-width.html similarity index 76% rename from third_party/blink/web_tests/css3/flexbox/intrinsic-min-width-applies-with-fixed-width.html rename to third_party/blink/web_tests/external/wpt/css/css-flexbox/intrinsic-min-width-applies-with-fixed-width.html index 8e9db79d..080169b 100644 --- a/third_party/blink/web_tests/css3/flexbox/intrinsic-min-width-applies-with-fixed-width.html +++ b/third_party/blink/web_tests/external/wpt/css/css-flexbox/intrinsic-min-width-applies-with-fixed-width.html
@@ -1,4 +1,8 @@ <!DOCTYPE html> +<title>CSS Flexbox: Proper min-width intrinsic size with display: flex</title> +<link rel="help" href="https://www.w3.org/TR/css-flexbox-1/#flex-containers"> +<link rel="help" href="https://www.w3.org/TR/CSS2/visudet.html#min-max-widths"> +<meta name="assert" content="This test checks that min-width intrinsic size still applies if a fixed width is set."> <style> .min-content { width: 10px; @@ -43,13 +47,12 @@ line-height: 0; } </style> -<script src="../../resources/testharness.js"></script> -<script src="../../resources/testharnessreport.js"></script> -<script src="../../resources/check-layout-th.js"></script> +<script src="/resources/testharness.js"></script> +<script src="/resources/testharnessreport.js"></script> +<script src="/resources/check-layout-th.js"></script> <body onload="checkLayout('body > div')"> <div id=log></div> -<p>Check that min-width intrinsic size still applies if a fixed width is set.</p> <div class="min-content" data-expected-width=20> <div class="child"></div><div class="child"></div>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-flexbox/justify-content_space-between.html b/third_party/blink/web_tests/external/wpt/css/css-flexbox/justify-content_space-between-001.html similarity index 100% rename from third_party/blink/web_tests/external/wpt/css/css-flexbox/justify-content_space-between.html rename to third_party/blink/web_tests/external/wpt/css/css-flexbox/justify-content_space-between-001.html
diff --git a/third_party/blink/web_tests/css3/flexbox/cross-axis-scrollbar-expected.html b/third_party/blink/web_tests/external/wpt/css/css-flexbox/reference/cross-axis-scrollbar-ref.html similarity index 100% rename from third_party/blink/web_tests/css3/flexbox/cross-axis-scrollbar-expected.html rename to third_party/blink/web_tests/external/wpt/css/css-flexbox/reference/cross-axis-scrollbar-ref.html
diff --git a/third_party/blink/web_tests/external/wpt/interfaces/clipboard-apis.idl b/third_party/blink/web_tests/external/wpt/interfaces/clipboard-apis.idl index 9e35287..c991130 100644 --- a/third_party/blink/web_tests/external/wpt/interfaces/clipboard-apis.idl +++ b/third_party/blink/web_tests/external/wpt/interfaces/clipboard-apis.idl
@@ -7,8 +7,9 @@ DataTransfer? clipboardData = null; }; -[Constructor(DOMString type, optional ClipboardEventInit eventInitDict = {}), Exposed=Window] +[Exposed=Window] interface ClipboardEvent : Event { + constructor(DOMString type, optional ClipboardEventInit eventInitDict = {}); readonly attribute DataTransfer? clipboardData; }; @@ -30,9 +31,9 @@ callback ClipboardItemDelayedCallback = ClipboardItemData (); -[Constructor(record<DOMString, ClipboardItemData> items, - optional ClipboardItemOptions options = {}), - Exposed=Window] interface ClipboardItem { +[Exposed=Window] interface ClipboardItem { + constructor(record<DOMString, ClipboardItemData> items, + optional ClipboardItemOptions options = {}); static ClipboardItem createDelayed( record<DOMString, ClipboardItemDelayedCallback> items, optional ClipboardItemOptions options = {});
diff --git a/third_party/blink/web_tests/fast/events/mouse-cursor-change-after-image-load.html b/third_party/blink/web_tests/fast/events/mouse-cursor-change-after-image-load.html index 6572e35..9dad516a 100644 --- a/third_party/blink/web_tests/fast/events/mouse-cursor-change-after-image-load.html +++ b/third_party/blink/web_tests/fast/events/mouse-cursor-change-after-image-load.html
@@ -34,10 +34,8 @@ } function testSetCursorImage(url, expectedCursorInfo, complete) { - const currentCursorInfo = internals.getCurrentCursorInfo(); target.style.cursor = `url(${url}),auto`; - waitForCondition(() => internals.getCurrentCursorInfo() != currentCursorInfo, cursorTest.step_func(() => { - assert_equals(internals.getCurrentCursorInfo(), expectedCursorInfo); + waitForCondition(() => internals.getCurrentCursorInfo() != expectedCursorInfo, cursorTest.step_func(() => { complete(); })); }
diff --git a/third_party/blink/web_tests/platform/linux/virtual/dark-color-scheme/checkbox/checkbox-appearance-basic-actual.png b/third_party/blink/web_tests/platform/linux/virtual/dark-color-scheme/checkbox/checkbox-appearance-basic-actual.png new file mode 100644 index 0000000..223b77b4 --- /dev/null +++ b/third_party/blink/web_tests/platform/linux/virtual/dark-color-scheme/checkbox/checkbox-appearance-basic-actual.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/linux/virtual/dark-color-scheme/radio/radio-appearance-basic-actual.png b/third_party/blink/web_tests/platform/linux/virtual/dark-color-scheme/radio/radio-appearance-basic-actual.png new file mode 100644 index 0000000..2eb94a89 --- /dev/null +++ b/third_party/blink/web_tests/platform/linux/virtual/dark-color-scheme/radio/radio-appearance-basic-actual.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/mac/virtual/dark-color-scheme/checkbox/checkbox-appearance-basic-expected.png b/third_party/blink/web_tests/platform/mac/virtual/dark-color-scheme/checkbox/checkbox-appearance-basic-expected.png new file mode 100644 index 0000000..ec3ea4d --- /dev/null +++ b/third_party/blink/web_tests/platform/mac/virtual/dark-color-scheme/checkbox/checkbox-appearance-basic-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/mac/virtual/dark-color-scheme/radio/radio-appearance-basic-expected.png b/third_party/blink/web_tests/platform/mac/virtual/dark-color-scheme/radio/radio-appearance-basic-expected.png new file mode 100644 index 0000000..8dc623fa --- /dev/null +++ b/third_party/blink/web_tests/platform/mac/virtual/dark-color-scheme/radio/radio-appearance-basic-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/virtual/dark-color-scheme/checkbox/checkbox-appearance-basic-expected.png b/third_party/blink/web_tests/platform/win/virtual/dark-color-scheme/checkbox/checkbox-appearance-basic-expected.png new file mode 100644 index 0000000..223b77b4 --- /dev/null +++ b/third_party/blink/web_tests/platform/win/virtual/dark-color-scheme/checkbox/checkbox-appearance-basic-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/virtual/dark-color-scheme/radio/radio-appearance-basic-expected.png b/third_party/blink/web_tests/platform/win/virtual/dark-color-scheme/radio/radio-appearance-basic-expected.png new file mode 100644 index 0000000..2eb94a89 --- /dev/null +++ b/third_party/blink/web_tests/platform/win/virtual/dark-color-scheme/radio/radio-appearance-basic-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/virtual/dark-color-scheme/checkbox/checkbox-appearance-basic.html b/third_party/blink/web_tests/virtual/dark-color-scheme/checkbox/checkbox-appearance-basic.html new file mode 100644 index 0000000..e8c3328 --- /dev/null +++ b/third_party/blink/web_tests/virtual/dark-color-scheme/checkbox/checkbox-appearance-basic.html
@@ -0,0 +1,49 @@ +<!DOCTYPE html> +<meta name="color-scheme" content="dark"> +<script src="../../../resources/run-after-layout-and-paint.js"></script> +<script src="../../../fast/forms/resources/common.js"></script> + +<!-- no style for reference --> +<input type="checkbox" style="color-scheme:dark;"> +<input type="checkbox" checked style="color-scheme:dark;"> +<br> + +<!-- border --> +<input type="checkbox" style="color-scheme:dark; border: 3px solid lime;"> +<input type="checkbox" style="color-scheme:dark; border-radius: 6px;"> <br> + +<!-- background --> +<input type="checkbox" style="color-scheme:dark; background: linear-gradient(to bottom, #dea 0%,#9c7 44%,#494 100%);"> <br> + +<!-- shadow --> +<input type="checkbox" style="color-scheme:dark; box-shadow: 4px 4px 10px rgba(255,0,0,0.5), inset 4px 4px 4px rgba(0,255,0,0.5);"> <br> + +<!-- size --> +<input type="checkbox" style="color-scheme:dark; width: 8px; height; 8px;"> +<input type="checkbox" style="color-scheme:dark; width: 16px; height; 16px;"> +<input type="checkbox" style="color-scheme:dark; width: 24px; height; 24px;"> +<input type="checkbox" style="color-scheme:dark; width: 26px; height: 20px;"> +<input type="checkbox" style="color-scheme:dark; width: 1px; height: 1px;"> <br> + +<!-- disabled --> +<input type="checkbox" disabled style="color-scheme:dark;"> +<input type="checkbox" disabled checked style="color-scheme:dark;"> <br> + +<!-- zoom --> +<input type="checkbox" style="color-scheme:dark; zoom: 1.5;"> +<input type="checkbox" style="color-scheme:dark; zoom: 2;"> +<input type="checkbox" style="color-scheme:dark; zoom: 4;"> <br> + +<input type="checkbox" id="hoverTarget" style="color-scheme:dark;"/> +<input type="checkbox" id="pressTarget" style="color-scheme:dark;"/> + +<script> + +runAfterLayoutAndPaint(function() { + var target = document.getElementById('hoverTarget'); + var target2 = document.getElementById('pressTarget'); + internals.setPseudoClassState(target, ":hover", true); + internals.setPseudoClassState(target2, ":active", true); +}, true); +</script> +</body>
diff --git a/third_party/blink/web_tests/virtual/dark-color-scheme/radio/radio-appearance-basic.html b/third_party/blink/web_tests/virtual/dark-color-scheme/radio/radio-appearance-basic.html new file mode 100644 index 0000000..350c3a5 --- /dev/null +++ b/third_party/blink/web_tests/virtual/dark-color-scheme/radio/radio-appearance-basic.html
@@ -0,0 +1,49 @@ +<!DOCTYPE html> +<meta name="color-scheme" content="dark"> +<script src="../../../resources/run-after-layout-and-paint.js"></script> +<script src="../../../fast/forms/resources/common.js"></script> + +<!-- no style for reference --> +<input type="radio" style="color-scheme:dark;"> +<input type="radio" checked style="color-scheme:dark;"> +<br> + +<!-- border --> +<input type="radio" style="color-scheme:dark; border: 3px solid lime;"> +<input type="radio" style="color-scheme:dark; border-radius: 6px;"> <br> + +<!-- background --> +<input type="radio" style="color-scheme:dark; background: linear-gradient(to bottom, #dea 0%,#9c7 44%,#494 100%);"> <br> + +<!-- shadow --> +<input type="radio" style="color-scheme:dark; box-shadow: 4px 4px 10px rgba(255,0,0,0.5), inset 4px 4px 4px rgba(0,255,0,0.5);"> <br> + +<!-- size --> +<input type="radio" style="color-scheme:dark; width: 8px; height; 8px;"> +<input type="radio" style="color-scheme:dark; width: 16px; height; 16px;"> +<input type="radio" style="color-scheme:dark; width: 24px; height; 24px;"> +<input type="radio" style="color-scheme:dark; width: 26px; height: 20px;"> +<input type="radio" style="color-scheme:dark; width: 1px; height: 1px;"> <br> + +<!-- disabled --> +<input type="radio" disabled style="color-scheme:dark;"> +<input type="radio" disabled checked style="color-scheme:dark;"> <br> + +<!-- zoom --> +<input type="radio" style="color-scheme:dark; zoom: 1.5;"> +<input type="radio" style="color-scheme:dark; zoom: 2;"> +<input type="radio" style="color-scheme:dark; zoom: 4;"> <br> + +<input type="radio" id="hoverTarget" style="color-scheme:dark;"/> +<input type="radio" id="pressTarget" style="color-scheme:dark;"/> + +<script> + +runAfterLayoutAndPaint(function() { + var target = document.getElementById('hoverTarget'); + var target2 = document.getElementById('pressTarget'); + internals.setPseudoClassState(target, ":hover", true); + internals.setPseudoClassState(target2, ":active", true); +}, true); +</script> +</body>
diff --git a/third_party/webxr_test_pages/webxr-samples/proposals/phone-ar-local-anchor.html b/third_party/webxr_test_pages/webxr-samples/proposals/phone-ar-local-anchor.html new file mode 100644 index 0000000..3cd1df5 --- /dev/null +++ b/third_party/webxr_test_pages/webxr-samples/proposals/phone-ar-local-anchor.html
@@ -0,0 +1,316 @@ +<!doctype html> +<!-- +Copyright 2018 The Immersive Web Community Group + +Permission is hereby granted, free of charge, to any person obtaining a copy of +this software and associated documentation files (the "Software"), to deal in +the Software without restriction, including without limitation the rights to +use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of +the Software, and to permit persons to whom the Software is furnished to do so, +subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS +FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR +COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER +IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN +CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. +--> +<html> + <head> + <meta charset='utf-8'> + <meta name='viewport' content='width=device-width, initial-scale=1, user-scalable=no'> + <meta name='mobile-web-app-capable' content='yes'> + <meta name='apple-mobile-web-app-capable' content='yes'> + + <!-- Origin Trial Token, feature = WebXR Device API, origin = https://immersive-web.github.io, expires = 2018-08-28 --> +<meta http-equiv="origin-trial" data-feature="WebXR Device API" data-expires="2018-08-28" content="AnNpu7ceXvLew05ccD8Zr1OZsdZiB2hLQKK82kTTMDwF7oRKtP3QEJ4RzkeHrmB8Sq0vSV6ZNmszpBCZ0I8p9gAAAABceyJvcmlnaW4iOiJodHRwczovL2ltbWVyc2l2ZS13ZWIuZ2l0aHViLmlvOjQ0MyIsImZlYXR1cmUiOiJXZWJYUkRldmljZSIsImV4cGlyeSI6MTUzNTQxNDQwMH0="> + + <title>AR Local Space and Anchor test</title> + + <link href='../css/common.css' rel='stylesheet'></link> + + <!--The polyfill is not needed for browser that have native API support, + but is linked by these samples for wider compatibility.--> + <!--script src='https://cdn.jsdelivr.net/npm/webxr-polyfill@latest/build/webxr-polyfill.js'></script--> + <script src='../js/xrray-polyfill.js' type='module'></script> + <script src='../js/webxr-polyfill.js'></script> + + <script src='../js/webxr-button.js'></script> + </head> + <body> + <header> + <details open> + <summary>AR Local Space and Anchor test</summary> + This sample places an anchor at local origin at session creation + to help visualise local space drift compared to an anchor. + <p> + <input id="useDomOverlay" type="checkbox" checked style="visibility: hidden;"> + <!-- <label for="useDomOverlay">Enable DOM Overlay</label><br/> --> + + <a class="back" href="./index.html">Back</a> + </p> + <p> + Viewer pose emulated? <span id="viewer_pose">No viewer pose yet.</span><br/> + Anchor position=<span id="anchor_pose">No anchor placed yet.</span><br/> + Anchor drift=<span id="anchor_drift">No anchor placed yet.</span> + </p> + </details> + </header> + <script type="module"> + import {Scene} from '../js/cottontail/src/scenes/scene.js'; + import {Renderer, createWebGLContext} from '../js/cottontail/src/core/renderer.js'; + import {RayNode} from '../js/cottontail/src/nodes/ray-node.js'; + import {QueryArgs} from '../js/cottontail/src/util/query-args.js'; + import {FallbackHelper} from '../js/cottontail/src/util/fallback-helper.js'; + import {Node} from '../js/cottontail/src/core/node.js'; + import {vec3, vec4, quat} from '../js/cottontail/src/math/gl-matrix.js'; + import {DebugSources} from '../js/debug-sources.js'; + + // If requested, initialize the WebXR polyfill + if (QueryArgs.getBool('allowPolyfill', false)) { + var polyfill = new WebXRPolyfill(); + } + + let debugSources; + if (QueryArgs.getBool('debugSources', false)) { + debugSources = new DebugSources(); + } + + const useDomOverlay = document.getElementById('useDomOverlay'); + + const viewerPoseEmulatedElement = document.getElementById('viewer_pose'); + const anchorPoseElement = document.getElementById('anchor_pose'); + const anchorDriftElement = document.getElementById('anchor_drift'); + + // Suppress XR events for interactions with the DOM overlay + document.querySelector('header').addEventListener('beforexrselect', (ev) => { + console.log(ev.type); + ev.preventDefault(); + }); + + // XR globals. + let xrButton = null; + let xrRefSpace = null; + let xrAnchor = null; + + // WebGL scene globals. + let gl = null; + let renderer = null; + let scene = new Scene(); + scene.enableStats(false); + + // Visualise the origin. + { + let xRay = new RayNode({direction : [5, 0, 0], baseColor : [1, 0, 0, 1]}); + let yRay = new RayNode({direction : [0, 5, 0], baseColor : [0, 1, 0, 1]}); + let zRay = new RayNode({direction : [0, 0, 5], baseColor : [0, 0, 1, 1]}); + + scene.addNode(xRay); + scene.addNode(yRay); + scene.addNode(zRay); + } + + // Ensure the background is transparent for AR. + scene.clear = false; + + function initXR() { + xrButton = new XRDeviceButton({ + onRequestSession: onRequestSession, + onEndSession: onEndSession, + textEnterXRTitle: "START AR", + textXRNotFoundTitle: "AR NOT FOUND", + textExitXRTitle: "EXIT AR", + supportedSessionTypes: ['immersive-ar'], + height: 36, + }); + document.querySelector('header').appendChild(xrButton.domElement); + } + + function onRequestSession() { + let sessionInit = {}; + if (useDomOverlay.checked) { + sessionInit.optionalFeatures = ['dom-overlay']; + sessionInit.domOverlay = {root: document.body}; + } + navigator.xr.requestSession('immersive-ar', sessionInit).then((session) => { + session.mode = 'immersive-ar'; + xrButton.setSession(session); + onSessionStarted(session); + }); + } + + function onSessionStarted(session) { + useDomOverlay.disabled = true; + session.addEventListener('end', onSessionEnded); + session.addEventListener('select', onSelect); + + if (debugSources) debugSources.startSession(session); + + if (!gl) { + gl = createWebGLContext({ + xrCompatible: true, + alpha : true, + }); + + renderer = new Renderer(gl); + gl.lineWidth(5); + + scene.setRenderer(renderer); + } + + session.updateRenderState({ + baseLayer: new XRWebGLLayer(session, gl) + }); + + session.requestReferenceSpace('local').then((refSpace) => { + xrRefSpace = refSpace; + + session.requestAnimationFrame(onXRFrame); + }); + } + + function onEndSession(session) { + session.end(); + } + + function onSessionEnded(event) { + useDomOverlay.disabled = false; + xrButton.setSession(null); + } + + function onCreateAnchor(anchor) { + console.debug("Anchor created"); + + anchor.context = {}; + + let sceneObject = new Node(); + sceneObject.visible = false; + + let xRay = new RayNode({direction : [5, 0, 0], baseColor : [1, 1, 0, 1]}); + let yRay = new RayNode({direction : [0, 5, 0], baseColor : [0, 1, 1, 1]}); + let zRay = new RayNode({direction : [0, 0, 5], baseColor : [1, 0, 1, 1]}); + + sceneObject.addNode(xRay); + sceneObject.addNode(yRay); + sceneObject.addNode(zRay); + + scene.addNode(sceneObject); + + anchor.context.sceneObject = sceneObject; + sceneObject.anchor = anchor; + } + + let anchorRequesed = false; + let anchorRemoved = false; + + function onSelect(event) { + } + + function getAngle(a, b) { + let dotproduct = quat.dot(a, b); + return Math.acos(2 * dotproduct * dotproduct - 1); + } + + // Set with all anchors tracked in a previous frame. + let all_previous_anchors = new Set(); + + // Called every time a XRSession requests that a new frame be drawn. + async function onXRFrame(t, frame) { + let session = frame.session; + session.requestAnimationFrame(onXRFrame); + + if (debugSources) debugSources.update(frame, xrRefSpace); + + let pose = frame.getViewerPose(xrRefSpace); + if(pose) { + viewerPoseEmulatedElement.innerText = pose.emulatedPosition.toString(); + } else { + viewerPoseEmulatedElement.innerText = "Viewer pose is null."; + } + + if(!anchorRequesed) { + frame.createAnchor(new XRRigidTransform(), xrRefSpace) + .then((anchor) => { + console.debug("Anchor created."); + xrAnchor = anchor; + onCreateAnchor(anchor); + }) + .catch((error) => { + console.error("Anchor failed to create."); + anchorRequesed = false; + }); + + anchorRequesed = true; + } + + const tracked_anchors = frame.trackedAnchors; + + if(tracked_anchors){ + all_previous_anchors.forEach(anchor => { + if(!tracked_anchors.has(anchor)){ + scene.removeNode(anchor.sceneObject); + if(anchor === xrAnchor) { + anchorRemoved = true; + console.debug("Anchor removed."); + } + } + }); + + tracked_anchors.forEach(anchor => { + anchor.context.sceneObject.matrix = frame.getPose(anchor.anchorSpace, xrRefSpace).transform.matrix; + anchor.context.sceneObject.visible = true; + }); + + all_previous_anchors = tracked_anchors; + } else { + all_previous_anchors.forEach(anchor => { + scene.removeNode(anchor.sceneObject); + }); + + all_previous_anchors = new Set(); + } + + if(xrAnchor) { + const anchorPose = frame.getPose(xrAnchor.anchorSpace, xrRefSpace); + const pos = anchorPose.transform.position; + const rot = anchorPose.transform.orientation; + + const degs = getAngle( + quat.fromValues(rot.x, rot.y, rot.z, rot.w), + quat.create() + ) * 180 / Math.PI; + + anchorPoseElement.innerText = pos.x.toFixed(3) + "m," + + pos.y.toFixed(3) + "m," + + pos.z.toFixed(3) + "m," + + degs.toFixed(3) + "deg"; + + const drift = Math.sqrt(pos.x * pos.x + pos.y * pos.y + pos.z * pos.z); + anchorDriftElement.innerText = drift.toFixed(3) + "m"; + + console.debug(pos, rot, drift); + } else if(anchorRemoved) { + anchorPoseElement.innerText = "Anchor already gone."; + anchorDriftElement.innerText = "Anchor already gone."; + } + else { + anchorPoseElement.innerText = "Anchor not created yet."; + anchorDriftElement.innerText = "Anchor not created yet."; + } + + await scene.waitForComplete(); + + scene.startFrame(); + scene.drawXRFrame(frame, pose); + scene.endFrame(); + } + + // Start the XR application. + initXR(); + </script> + </body> +</html>
diff --git a/tools/clang/blink_gc_plugin/tests/trace_if_needed.txt b/tools/clang/blink_gc_plugin/tests/trace_if_needed.txt index 79a24e8..c1664e7a 100644 --- a/tools/clang/blink_gc_plugin/tests/trace_if_needed.txt +++ b/tools/clang/blink_gc_plugin/tests/trace_if_needed.txt
@@ -1,4 +1,4 @@ -trace_if_needed.cpp:9:1: warning: [blink-gc] Class 'TemplatedObject<blink::Member<blink::HeapObject> >' has untraced fields that require tracing. +trace_if_needed.cpp:9:1: warning: [blink-gc] Class 'TemplatedObject<blink::Member<blink::HeapObject>>' has untraced fields that require tracing. template<typename T> ^ ./trace_if_needed.h:20:5: note: [blink-gc] Untraced field 'm_two' declared here:
diff --git a/tools/metrics/histograms/enums.xml b/tools/metrics/histograms/enums.xml index a4ea71ff..416e182a 100644 --- a/tools/metrics/histograms/enums.xml +++ b/tools/metrics/histograms/enums.xml
@@ -30393,12 +30393,15 @@ <enum name="GCMCheckinRequestStatus"> <int value="0" label="Success"/> - <int value="1" label="URL fetching failed"/> + <int value="1" label="URL fetching failed (until M82)"/> <int value="2" label="HTTP bad request"/> <int value="3" label="HTTP unauthorized"/> <int value="4" label="HTTP not OK"/> <int value="5" label="Response parsing failed"/> <int value="6" label="Zero ID or token"/> + <int value="7" label="URL fetching failed: network error"/> + <int value="8" label="URL fetching failed: no response info"/> + <int value="9" label="URL fetching failed: no headers"/> </enum> <enum name="GCMClientResult"> @@ -37408,6 +37411,7 @@ <int value="-2080657940" label="DirectActions:disabled"/> <int value="-2080504230" label="TabHoverCards:disabled"/> <int value="-2077268643" label="disable-device-enumeration"/> + <int value="-2076313806" label="TrustTokens:disabled"/> <int value="-2075870708" label="MediaRemotingEncrypted:disabled"/> <int value="-2075807193" label="enable-webusb-on-any-origin"/> <int value="-2075725205" label="disable-new-zip-unpacker"/> @@ -38063,6 +38067,7 @@ <int value="-1331831950" label="site-isolation-for-password-sites:enabled"/> <int value="-1330409814" label="ContextMenuCopyImage:enabled"/> <int value="-1327676774" label="disable-accelerated-mjpeg-decode"/> + <int value="-1326671705" label="TrustTokens:enabled"/> <int value="-1326463296" label="SSLCommittedInterstitials:disabled"/> <int value="-1325887476" label="NewPrintPreview:enabled"/> <int value="-1324634193" label="EnablePalmOnMaxTouchMajor:disabled"/> @@ -68140,8 +68145,8 @@ <int value="5" label="Developer API prompt via an Android Custom Tab"/> <int value="6" label="Via a debug source"/> <int value="7" label="Extensions management API (not reported)"/> - <int value="8" label="Ambient badge in an Android Custom Tab"/> - <int value="9" label="Ambient badge in a browser tab"/> + <int value="8" label="Ambient badge in a browser tab"/> + <int value="9" label="Ambient badge in an Android Custom Tab"/> <int value="10" label="Via ARC on Chrome OS"/> <int value="11" label="Internal default-install on Chrome OS"/> <int value="12" label="External default-install on Chrome OS"/>
diff --git a/tools/metrics/histograms/histograms.xml b/tools/metrics/histograms/histograms.xml index 8f47b9f..0f1bb94 100644 --- a/tools/metrics/histograms/histograms.xml +++ b/tools/metrics/histograms/histograms.xml
@@ -57990,6 +57990,16 @@ <summary>Status code of the outcome of a GCM checkin request.</summary> </histogram> +<histogram name="GCM.CheckinRequestStatusNetError" enum="NetErrorCodes" + expires_after="2020-08-30"> + <owner>peter@chromium.org</owner> + <owner>knollr@chromium.org</owner> + <summary> + Network error code for a GCM checkin request that failed because of a + network error. + </summary> +</histogram> + <histogram name="GCM.CheckinRetryCount" units="units" expires_after="2018-08-30"> <obsolete>
diff --git a/tools/run-swarmed.py b/tools/run-swarmed.py index 313f23b..3311c1ba 100755 --- a/tools/run-swarmed.py +++ b/tools/run-swarmed.py
@@ -184,8 +184,12 @@ help='Number of copies to spawn.') parser.add_argument('--device-os', default='M', help='Run tests on the given version of Android.') - parser.add_argument('--pool', default='chromium.tests', - help='Use the given swarming pool.') + # TODO(crbug.com/812428): Switch this back to chromium.tests once + # that pool runs with task templates. + parser.add_argument( + '--pool', + default='chromium.tests.template', + help='Use the given swarming pool.') parser.add_argument('--results', '-r', default='results', help='Directory in which to store results.') parser.add_argument('--gtest_filter',
diff --git a/ui/chromeos/translations/ui_chromeos_strings_hi.xtb b/ui/chromeos/translations/ui_chromeos_strings_hi.xtb index e3cdd7b0..8233339 100644 --- a/ui/chromeos/translations/ui_chromeos_strings_hi.xtb +++ b/ui/chromeos/translations/ui_chromeos_strings_hi.xtb
@@ -509,6 +509,7 @@ <translation id="6878261347041253038">देवनागरी कीबोर्ड (फ़ोनेटिक)</translation> <translation id="6885780034956018177">घोंघा</translation> <translation id="6896758677409633944">कॉपी बनाएं</translation> +<translation id="6898028766943174120">और उप फ़़ोल्डर...</translation> <translation id="691516599546977041"><ph name="FOLDER_NAME" /> पर सेव नहीं किया जा सकता. बदलाव की गई इमेज डाउनलोड फ़ोल्डर में सेव की जाएंगी.</translation> <translation id="6915678159055240887">Chromebox</translation> <translation id="6918340160281024199">यूएस वर्कमैन</translation>
diff --git a/ui/native_theme/native_theme_base.cc b/ui/native_theme/native_theme_base.cc index a83498fd..27442a1 100644 --- a/ui/native_theme/native_theme_base.cc +++ b/ui/native_theme/native_theme_base.cc
@@ -1627,9 +1627,13 @@ ControlColorId color_id) const { switch (color_id) { case kAccent: + return SkColorSetRGB(0xC3, 0xC3, 0xC3); case kHoveredAccent: + return SkColorSetRGB(0xD8, 0xD8, 0xD8); case kPressedAccent: + return SkColorSetRGB(0xB9, 0xB9, 0xB9); case kDisabledAccent: + return SkColorSetARGB(0x4D, 0xC3, 0xC3, 0xC3); case kFill: case kLightenLayer: case kProgressValue:
diff --git a/ui/views/background.cc b/ui/views/background.cc index 56e24f7e..d8fc630 100644 --- a/ui/views/background.cc +++ b/ui/views/background.cc
@@ -12,8 +12,8 @@ #include "build/build_config.h" #include "cc/paint/paint_flags.h" #include "ui/gfx/canvas.h" -#include "ui/gfx/color_palette.h" #include "ui/gfx/color_utils.h" +#include "ui/native_theme/native_theme_color_id.h" #include "ui/views/painter.h" #include "ui/views/view.h" #include "ui/views/view_observer.h" @@ -108,7 +108,7 @@ DISALLOW_COPY_AND_ASSIGN(BackgroundPainter); }; -Background::Background() : color_(SK_ColorWHITE) {} +Background::Background() = default; Background::~Background() = default; @@ -131,11 +131,6 @@ return std::make_unique<ThemedSolidBackground>(view, color_id); } -std::unique_ptr<Background> CreateStandardPanelBackground() { - // TODO(beng): Should be in NativeTheme. - return CreateSolidBackground(SK_ColorWHITE); -} - std::unique_ptr<Background> CreateBackgroundFromPainter( std::unique_ptr<Painter> painter) { return std::make_unique<BackgroundPainter>(std::move(painter));
diff --git a/ui/views/background.h b/ui/views/background.h index 29f3688b..366ce9d 100644 --- a/ui/views/background.h +++ b/ui/views/background.h
@@ -12,6 +12,7 @@ #include "base/macros.h" #include "build/build_config.h" #include "third_party/skia/include/core/SkColor.h" +#include "ui/gfx/color_palette.h" #include "ui/native_theme/native_theme.h" #include "ui/views/views_export.h" @@ -59,7 +60,7 @@ SkColor get_color() const { return color_; } private: - SkColor color_; + SkColor color_ = gfx::kPlaceholderColor; DISALLOW_COPY_AND_ASSIGN(Background); }; @@ -78,9 +79,6 @@ View* view, ui::NativeTheme::ColorId color_id); -// Creates Chrome's standard panel background -VIEWS_EXPORT std::unique_ptr<Background> CreateStandardPanelBackground(); - // Creates a Background from the specified Painter. VIEWS_EXPORT std::unique_ptr<Background> CreateBackgroundFromPainter( std::unique_ptr<Painter> painter);
diff --git a/ui/views/controls/table/table_header.cc b/ui/views/controls/table/table_header.cc index 31c7970..44218ff 100644 --- a/ui/views/controls/table/table_header.cc +++ b/ui/views/controls/table/table_header.cc
@@ -260,10 +260,10 @@ int new_width = column.width; switch (direction) { - case TableView::ADVANCE_INCREMENT: + case TableView::AdvanceDirection::kIncrement: new_width += kResizeKeyboardAmount; break; - case TableView::ADVANCE_DECREMENT: + case TableView::AdvanceDirection::kDecrement: new_width -= kResizeKeyboardAmount; break; }
diff --git a/ui/views/controls/table/table_view.cc b/ui/views/controls/table/table_view.cc index f457255..5cca017 100644 --- a/ui/views/controls/table/table_view.cc +++ b/ui/views/controls/table/table_view.cc
@@ -465,10 +465,10 @@ if (GetRowCount()) SelectByViewIndex(0); } else { - AdvanceSelection(ADVANCE_DECREMENT); + AdvanceSelection(AdvanceDirection::kDecrement); } #else - AdvanceSelection(ADVANCE_DECREMENT); + AdvanceSelection(AdvanceDirection::kDecrement); #endif return true; @@ -478,10 +478,10 @@ if (GetRowCount()) SelectByViewIndex(GetRowCount() - 1); } else { - AdvanceSelection(ADVANCE_INCREMENT); + AdvanceSelection(AdvanceDirection::kIncrement); } #else - AdvanceSelection(ADVANCE_INCREMENT); + AdvanceSelection(AdvanceDirection::kIncrement); #endif return true; @@ -490,13 +490,14 @@ if (IsCmdOrCtrl(event)) { if (active_visible_column_index_ != -1 && header_) { const AdvanceDirection direction = - base::i18n::IsRTL() ? ADVANCE_INCREMENT : ADVANCE_DECREMENT; + base::i18n::IsRTL() ? AdvanceDirection::kIncrement + : AdvanceDirection::kDecrement; header_->ResizeColumnViaKeyboard(active_visible_column_index_, direction); focus_ring_->SchedulePaint(); } } else { - AdvanceActiveVisibleColumn(ADVANCE_DECREMENT); + AdvanceActiveVisibleColumn(AdvanceDirection::kDecrement); } return true; } @@ -507,13 +508,14 @@ if (IsCmdOrCtrl(event)) { if (active_visible_column_index_ != -1 && header_) { const AdvanceDirection direction = - base::i18n::IsRTL() ? ADVANCE_DECREMENT : ADVANCE_INCREMENT; + base::i18n::IsRTL() ? AdvanceDirection::kDecrement + : AdvanceDirection::kIncrement; header_->ResizeColumnViaKeyboard(active_visible_column_index_, direction); focus_ring_->SchedulePaint(); } } else { - AdvanceActiveVisibleColumn(ADVANCE_INCREMENT); + AdvanceActiveVisibleColumn(AdvanceDirection::kIncrement); } return true; } @@ -630,15 +632,17 @@ break; case ax::mojom::Action::kScrollRight: { - const AdvanceDirection direction = - base::i18n::IsRTL() ? ADVANCE_DECREMENT : ADVANCE_INCREMENT; + const AdvanceDirection direction = base::i18n::IsRTL() + ? AdvanceDirection::kDecrement + : AdvanceDirection::kIncrement; AdvanceActiveVisibleColumn(direction); break; } case ax::mojom::Action::kScrollLeft: { - const AdvanceDirection direction = - base::i18n::IsRTL() ? ADVANCE_INCREMENT : ADVANCE_DECREMENT; + const AdvanceDirection direction = base::i18n::IsRTL() + ? AdvanceDirection::kIncrement + : AdvanceDirection::kDecrement; AdvanceActiveVisibleColumn(direction); break; } @@ -1051,7 +1055,7 @@ return; } - if (direction == ADVANCE_DECREMENT) { + if (direction == AdvanceDirection::kDecrement) { SetActiveVisibleColumnIndex(std::max(0, active_visible_column_index_ - 1)); } else { SetActiveVisibleColumnIndex( @@ -1129,7 +1133,7 @@ return; } int view_index = ModelToView(selection_model_.active()); - if (direction == ADVANCE_DECREMENT) + if (direction == AdvanceDirection::kDecrement) view_index = std::max(0, view_index - 1); else view_index = std::min(GetRowCount() - 1, view_index + 1);
diff --git a/ui/views/controls/table/table_view.h b/ui/views/controls/table/table_view.h index f7854c5d..6a5546c7 100644 --- a/ui/views/controls/table/table_view.h +++ b/ui/views/controls/table/table_view.h
@@ -67,9 +67,9 @@ // Used by AdvanceActiveVisibleColumn(), AdvanceSelection() and // ResizeColumnViaKeyboard() to determine the direction to change the // selection. - enum AdvanceDirection { - ADVANCE_DECREMENT, - ADVANCE_INCREMENT, + enum class AdvanceDirection { + kDecrement, + kIncrement, }; // Used to track a visible column. Useful only for the header.
diff --git a/ui/webui/resources/cr_components/chromeos/network/network_shared_css.html b/ui/webui/resources/cr_components/chromeos/network/network_shared_css.html index 55f5ea9b..8d9bdc9 100644 --- a/ui/webui/resources/cr_components/chromeos/network/network_shared_css.html +++ b/ui/webui/resources/cr_components/chromeos/network/network_shared_css.html
@@ -11,10 +11,9 @@ } .property-box { - @apply --cr-section; - border-top: none; + align-items: center; + display: flex; min-height: var(--cr-section-min-height); - padding: 0; } .property-box.hr {
diff --git a/weblayer/browser/android/javatests/src/org/chromium/weblayer/test/DownloadCallbackTest.java b/weblayer/browser/android/javatests/src/org/chromium/weblayer/test/DownloadCallbackTest.java index d7e950b..f1fba7fb 100644 --- a/weblayer/browser/android/javatests/src/org/chromium/weblayer/test/DownloadCallbackTest.java +++ b/weblayer/browser/android/javatests/src/org/chromium/weblayer/test/DownloadCallbackTest.java
@@ -145,8 +145,8 @@ mCallback = new Callback(); TestThreadUtils.runOnUiThreadBlocking(() -> { - mActivity.getTab().setDownloadCallback(mCallback); Profile profile = mActivity.getBrowser().getProfile(); + profile.setDownloadCallback(mCallback); profile.setDownloadDirectory(new File(tempDownloadDirectory)); }); }
diff --git a/weblayer/browser/download_browsertest.cc b/weblayer/browser/download_browsertest.cc index 78980b86..a6392d17 100644 --- a/weblayer/browser/download_browsertest.cc +++ b/weblayer/browser/download_browsertest.cc
@@ -47,10 +47,10 @@ failed_run_loop_ = std::make_unique<base::RunLoop>(); Tab* tab = shell()->tab(); - - tab->SetDownloadDelegate(this); - TabImpl* tab_impl = static_cast<TabImpl*>(tab); + + tab_impl->profile()->SetDownloadDelegate(this); + auto* browser_context = tab_impl->web_contents()->GetBrowserContext(); auto* download_manager_delegate = content::BrowserContext::GetDownloadManager(browser_context)
diff --git a/weblayer/browser/download_callback_proxy.cc b/weblayer/browser/download_callback_proxy.cc index 4602d1e..adda1bf9 100644 --- a/weblayer/browser/download_callback_proxy.cc +++ b/weblayer/browser/download_callback_proxy.cc
@@ -8,6 +8,7 @@ #include "url/gurl.h" #include "weblayer/browser/download_impl.h" #include "weblayer/browser/java/jni/DownloadCallbackProxy_jni.h" +#include "weblayer/browser/profile_impl.h" #include "weblayer/browser/tab_impl.h" using base::android::AttachCurrentThread; @@ -16,13 +17,15 @@ namespace weblayer { -DownloadCallbackProxy::DownloadCallbackProxy(JNIEnv* env, jobject obj, Tab* tab) - : tab_(tab), java_delegate_(env, obj) { - tab_->SetDownloadDelegate(this); +DownloadCallbackProxy::DownloadCallbackProxy(JNIEnv* env, + jobject obj, + Profile* profile) + : profile_(profile), java_delegate_(env, obj) { + profile_->SetDownloadDelegate(this); } DownloadCallbackProxy::~DownloadCallbackProxy() { - tab_->SetDownloadDelegate(nullptr); + profile_->SetDownloadDelegate(nullptr); } bool DownloadCallbackProxy::InterceptDownload( @@ -99,9 +102,9 @@ static jlong JNI_DownloadCallbackProxy_CreateDownloadCallbackProxy( JNIEnv* env, const base::android::JavaParamRef<jobject>& proxy, - jlong tab) { - return reinterpret_cast<jlong>( - new DownloadCallbackProxy(env, proxy, reinterpret_cast<TabImpl*>(tab))); + jlong profile) { + return reinterpret_cast<jlong>(new DownloadCallbackProxy( + env, proxy, reinterpret_cast<ProfileImpl*>(profile))); } static void JNI_DownloadCallbackProxy_DeleteDownloadCallbackProxy(JNIEnv* env,
diff --git a/weblayer/browser/download_callback_proxy.h b/weblayer/browser/download_callback_proxy.h index 8731969..4af0809 100644 --- a/weblayer/browser/download_callback_proxy.h +++ b/weblayer/browser/download_callback_proxy.h
@@ -14,12 +14,12 @@ namespace weblayer { -class Tab; +class Profile; // Forwards DownloadDelegate calls to the java-side DownloadCallbackProxy. class DownloadCallbackProxy : public DownloadDelegate { public: - DownloadCallbackProxy(JNIEnv* env, jobject obj, Tab* tab); + DownloadCallbackProxy(JNIEnv* env, jobject obj, Profile* profile); ~DownloadCallbackProxy() override; // DownloadDelegate: @@ -38,7 +38,7 @@ void DownloadFailed(Download* download) override; private: - Tab* tab_; + Profile* profile_; base::android::ScopedJavaGlobalRef<jobject> java_delegate_; DISALLOW_COPY_AND_ASSIGN(DownloadCallbackProxy);
diff --git a/weblayer/browser/download_manager_delegate_impl.cc b/weblayer/browser/download_manager_delegate_impl.cc index 18ce54b..eb85613 100644 --- a/weblayer/browser/download_manager_delegate_impl.cc +++ b/weblayer/browser/download_manager_delegate_impl.cc
@@ -207,17 +207,22 @@ if (!web_contents) return nullptr; - auto* tab = TabImpl::FromWebContents(web_contents); - if (!tab) + return GetDelegate(web_contents->GetBrowserContext()); +} + +DownloadDelegate* DownloadManagerDelegateImpl::GetDelegate( + content::BrowserContext* browser_context) { + auto* profile = ProfileImpl::FromBrowserContext(browser_context); + if (!profile) return nullptr; - return tab->download_delegate(); + return profile->download_delegate(); } DownloadDelegate* DownloadManagerDelegateImpl::GetDelegate( download::DownloadItem* item) { - auto* web_contents = content::DownloadItemUtils::GetWebContents(item); - return GetDelegate(web_contents); + auto* browser_context = content::DownloadItemUtils::GetBrowserContext(item); + return GetDelegate(browser_context); } } // namespace weblayer
diff --git a/weblayer/browser/download_manager_delegate_impl.h b/weblayer/browser/download_manager_delegate_impl.h index b4e3a25..83d8b8e 100644 --- a/weblayer/browser/download_manager_delegate_impl.h +++ b/weblayer/browser/download_manager_delegate_impl.h
@@ -68,6 +68,7 @@ // Helper methods to get a DownloadDelegate. DownloadDelegate* GetDelegate(content::WebContents* web_contents); + DownloadDelegate* GetDelegate(content::BrowserContext* browser_context); DownloadDelegate* GetDelegate(download::DownloadItem* item); content::DownloadManager* download_manager_;
diff --git a/weblayer/browser/java/org/chromium/weblayer_private/DownloadCallbackProxy.java b/weblayer/browser/java/org/chromium/weblayer_private/DownloadCallbackProxy.java index 101e747..3d887e7 100644 --- a/weblayer/browser/java/org/chromium/weblayer_private/DownloadCallbackProxy.java +++ b/weblayer/browser/java/org/chromium/weblayer_private/DownloadCallbackProxy.java
@@ -21,15 +21,13 @@ @JNINamespace("weblayer") public final class DownloadCallbackProxy { private long mNativeDownloadCallbackProxy; - private BrowserImpl mBrowser; private IDownloadCallbackClient mClient; - DownloadCallbackProxy(BrowserImpl browser, long tab, IDownloadCallbackClient client) { + DownloadCallbackProxy(long profile, IDownloadCallbackClient client) { assert client != null; - mBrowser = browser; mClient = client; mNativeDownloadCallbackProxy = - DownloadCallbackProxyJni.get().createDownloadCallbackProxy(this, tab); + DownloadCallbackProxyJni.get().createDownloadCallbackProxy(this, profile); } public void setClient(IDownloadCallbackClient client) { @@ -72,7 +70,7 @@ @CalledByNative private DownloadImpl createDownload(long nativeDownloadImpl) { - return new DownloadImpl(mBrowser, mClient, nativeDownloadImpl); + return new DownloadImpl(mClient, nativeDownloadImpl); } @CalledByNative
diff --git a/weblayer/browser/java/org/chromium/weblayer_private/DownloadImpl.java b/weblayer/browser/java/org/chromium/weblayer_private/DownloadImpl.java index 7b6199b..686e3bb 100644 --- a/weblayer/browser/java/org/chromium/weblayer_private/DownloadImpl.java +++ b/weblayer/browser/java/org/chromium/weblayer_private/DownloadImpl.java
@@ -56,7 +56,6 @@ private static final String CHANNEL_ID = "org.chromium.weblayer.downloads.channel"; private static final String TAG = "DownloadImpl"; - private BrowserImpl mBrowser; private final IDownloadCallbackClient mClient; private final IClientDownload mClientDownload; // WARNING: DownloadImpl may outlive the native side, in which case this member is set to 0. @@ -132,9 +131,7 @@ return nextId; } - public DownloadImpl( - BrowserImpl browser, IDownloadCallbackClient client, long nativeDownloadImpl) { - mBrowser = browser; + public DownloadImpl(IDownloadCallbackClient client, long nativeDownloadImpl) { mClient = client; mNativeDownloadImpl = nativeDownloadImpl; try { @@ -309,22 +306,22 @@ // See PendingIntent's documentation on why we must use a different requestId as we need // multiple distinct PendingIntents at a time, one for each notification. - PendingIntent pausePendingIntent = - PendingIntent.getBroadcast(mBrowser.getContext(), mNotificationId, pauseIntent, 0); + PendingIntent pausePendingIntent = PendingIntent.getBroadcast( + ContextUtils.getApplicationContext(), mNotificationId, pauseIntent, 0); Intent cancelIntent = createIntent(); cancelIntent.setAction(CANCEL_INTENT); cancelIntent.putExtra(EXTRA_NOTIFICATION_ID, mNotificationId); - PendingIntent cancelPendingIntent = - PendingIntent.getBroadcast(mBrowser.getContext(), mNotificationId, cancelIntent, 0); + PendingIntent cancelPendingIntent = PendingIntent.getBroadcast( + ContextUtils.getApplicationContext(), mNotificationId, cancelIntent, 0); Intent deleteIntent = createIntent(); deleteIntent.setAction(DELETE_INTENT); deleteIntent.putExtra(EXTRA_NOTIFICATION_ID, mNotificationId); - PendingIntent deletePendingIntent = - PendingIntent.getBroadcast(mBrowser.getContext(), mNotificationId, deleteIntent, 0); + PendingIntent deletePendingIntent = PendingIntent.getBroadcast( + ContextUtils.getApplicationContext(), mNotificationId, deleteIntent, 0); - mBuilder = new NotificationCompat.Builder(mBrowser.getContext(), CHANNEL_ID) + mBuilder = new NotificationCompat.Builder(ContextUtils.getApplicationContext(), CHANNEL_ID) .setSmallIcon(android.R.drawable.stat_sys_download) .setContentTitle((new File(getLocation())).getName()) .setOngoing(true) @@ -382,7 +379,8 @@ NotificationChannel channel = new NotificationChannel(CHANNEL_ID, "Downloads", importance); NotificationManager notificationManager = - mBrowser.getContext().getSystemService(NotificationManager.class); + ContextUtils.getApplicationContext().getSystemService( + NotificationManager.class); notificationManager.createNotificationChannel(channel); } @@ -413,7 +411,7 @@ openIntent.putExtra(EXTRA_NOTIFICATION_LOCATION, getLocation()); openIntent.putExtra(EXTRA_NOTIFICATION_MIME_TYPE, getMimeType()); PendingIntent openPendingIntent = PendingIntent.getBroadcast( - mBrowser.getContext(), mNotificationId, openIntent, 0); + ContextUtils.getApplicationContext(), mNotificationId, openIntent, 0); mBuilder.setProgress(100, 100, false) .setOngoing(false) @@ -430,7 +428,7 @@ pauseIntent.setAction(PAUSE_INTENT); pauseIntent.putExtra(EXTRA_NOTIFICATION_ID, mNotificationId); PendingIntent pausePendingIntent = PendingIntent.getBroadcast( - mBrowser.getContext(), mNotificationId, pauseIntent, 0); + ContextUtils.getApplicationContext(), mNotificationId, pauseIntent, 0); mBuilder.addAction(0 /* no icon */, "Pause", pausePendingIntent) .setSmallIcon(android.R.drawable.stat_sys_download); } else if (state == DownloadState.PAUSED) { @@ -438,7 +436,7 @@ resumeIntent.setAction(RESUME_INTENT); resumeIntent.putExtra(EXTRA_NOTIFICATION_ID, mNotificationId); PendingIntent resumePendingIntent = PendingIntent.getBroadcast( - mBrowser.getContext(), mNotificationId, resumeIntent, 0); + ContextUtils.getApplicationContext(), mNotificationId, resumeIntent, 0); mBuilder.addAction(0 /* no icon */, "Resume", resumePendingIntent) .setSmallIcon(android.R.drawable.ic_media_pause); } @@ -448,7 +446,7 @@ cancelIntent.setAction(CANCEL_INTENT); cancelIntent.putExtra(EXTRA_NOTIFICATION_ID, mNotificationId); PendingIntent cancelPendingIntent = PendingIntent.getBroadcast( - mBrowser.getContext(), mNotificationId, cancelIntent, 0); + ContextUtils.getApplicationContext(), mNotificationId, cancelIntent, 0); mBuilder.addAction(0 /* no icon */, "Cancel", cancelPendingIntent); } @@ -462,10 +460,10 @@ * fragment is moving between activies or when the activity is destroyed before the fragment. */ private NotificationManagerCompat getNotificationManager() { - if (mBrowser.getContext() == null) { + if (ContextUtils.getApplicationContext() == null) { return null; } - return NotificationManagerCompat.from(mBrowser.getContext()); + return NotificationManagerCompat.from(ContextUtils.getApplicationContext()); } @CalledByNative
diff --git a/weblayer/browser/java/org/chromium/weblayer_private/ProfileImpl.java b/weblayer/browser/java/org/chromium/weblayer_private/ProfileImpl.java index ccba0fb1..15c3b600 100644 --- a/weblayer/browser/java/org/chromium/weblayer_private/ProfileImpl.java +++ b/weblayer/browser/java/org/chromium/weblayer_private/ProfileImpl.java
@@ -13,6 +13,7 @@ import org.chromium.base.annotations.JNINamespace; import org.chromium.base.annotations.NativeMethods; import org.chromium.weblayer_private.interfaces.BrowsingDataType; +import org.chromium.weblayer_private.interfaces.IDownloadCallbackClient; import org.chromium.weblayer_private.interfaces.IObjectWrapper; import org.chromium.weblayer_private.interfaces.IProfile; import org.chromium.weblayer_private.interfaces.ObjectWrapper; @@ -30,6 +31,7 @@ private long mNativeProfile; private Runnable mOnDestroyCallback; private boolean mBeingDeleted; + private DownloadCallbackProxy mDownloadCallbackProxy; public static void enumerateAllProfileNames(ValueCallback<String[]> callback) { final Callback<String[]> baseCallback = (String[] names) -> callback.onReceiveValue(names); @@ -49,6 +51,12 @@ public void destroy() { StrictModeWorkaround.apply(); if (mBeingDeleted) return; + + if (mDownloadCallbackProxy != null) { + mDownloadCallbackProxy.destroy(); + mDownloadCallbackProxy = null; + } + deleteNativeProfile(); maybeRunDestroyCallback(); } @@ -108,6 +116,21 @@ ProfileImplJni.get().setDownloadDirectory(mNativeProfile, directory); } + @Override + public void setDownloadCallbackClient(IDownloadCallbackClient client) { + StrictModeWorkaround.apply(); + if (client != null) { + if (mDownloadCallbackProxy == null) { + mDownloadCallbackProxy = new DownloadCallbackProxy(mNativeProfile, client); + } else { + mDownloadCallbackProxy.setClient(client); + } + } else if (mDownloadCallbackProxy != null) { + mDownloadCallbackProxy.destroy(); + mDownloadCallbackProxy = null; + } + } + void checkNotDestroyed() { if (!mBeingDeleted) return; throw new IllegalArgumentException("Profile being destroyed: " + mName);
diff --git a/weblayer/browser/java/org/chromium/weblayer_private/TabImpl.java b/weblayer/browser/java/org/chromium/weblayer_private/TabImpl.java index 8f25eff..b29c817 100644 --- a/weblayer/browser/java/org/chromium/weblayer_private/TabImpl.java +++ b/weblayer/browser/java/org/chromium/weblayer_private/TabImpl.java
@@ -65,7 +65,6 @@ private WebContentsObserver mWebContentsObserver; private TabCallbackProxy mTabCallbackProxy; private NavigationControllerImpl mNavigationController; - private DownloadCallbackProxy mDownloadCallbackProxy; private ErrorPageCallbackProxy mErrorPageCallbackProxy; private FullscreenCallbackProxy mFullscreenCallbackProxy; private ViewAndroidDelegate mViewAndroidDelegate; @@ -319,16 +318,7 @@ @Override public void setDownloadCallbackClient(IDownloadCallbackClient client) { StrictModeWorkaround.apply(); - if (client != null) { - if (mDownloadCallbackProxy == null) { - mDownloadCallbackProxy = new DownloadCallbackProxy(mBrowser, mNativeTab, client); - } else { - mDownloadCallbackProxy.setClient(client); - } - } else if (mDownloadCallbackProxy != null) { - mDownloadCallbackProxy.destroy(); - mDownloadCallbackProxy = null; - } + mProfile.setDownloadCallbackClient(client); } @Override @@ -530,10 +520,6 @@ mTabCallbackProxy.destroy(); mTabCallbackProxy = null; } - if (mDownloadCallbackProxy != null) { - mDownloadCallbackProxy.destroy(); - mDownloadCallbackProxy = null; - } if (mErrorPageCallbackProxy != null) { mErrorPageCallbackProxy.destroy(); mErrorPageCallbackProxy = null;
diff --git a/weblayer/browser/java/org/chromium/weblayer_private/interfaces/IProfile.aidl b/weblayer/browser/java/org/chromium/weblayer_private/interfaces/IProfile.aidl index 1df55d0..019d6da 100644 --- a/weblayer/browser/java/org/chromium/weblayer_private/interfaces/IProfile.aidl +++ b/weblayer/browser/java/org/chromium/weblayer_private/interfaces/IProfile.aidl
@@ -4,6 +4,7 @@ package org.chromium.weblayer_private.interfaces; +import org.chromium.weblayer_private.interfaces.IDownloadCallbackClient; import org.chromium.weblayer_private.interfaces.IObjectWrapper; interface IProfile { @@ -18,4 +19,7 @@ // Added in Version 82. void destroyAndDeleteDataFromDisk(in IObjectWrapper completionCallback) = 4; + + // Added in Version 83. + void setDownloadCallbackClient(IDownloadCallbackClient client) = 5; }
diff --git a/weblayer/browser/java/org/chromium/weblayer_private/interfaces/ITab.aidl b/weblayer/browser/java/org/chromium/weblayer_private/interfaces/ITab.aidl index 17ed215..e959ff71 100644 --- a/weblayer/browser/java/org/chromium/weblayer_private/interfaces/ITab.aidl +++ b/weblayer/browser/java/org/chromium/weblayer_private/interfaces/ITab.aidl
@@ -18,6 +18,7 @@ INavigationController createNavigationController(in INavigationControllerClient client) = 1; + // Deprecated, use Profile.setDownloadCallbackClient. void setDownloadCallbackClient(IDownloadCallbackClient client) = 2; void setErrorPageCallbackClient(IErrorPageCallbackClient client) = 3;
diff --git a/weblayer/browser/profile_impl.cc b/weblayer/browser/profile_impl.cc index acfb500..0f12a85 100644 --- a/weblayer/browser/profile_impl.cc +++ b/weblayer/browser/profile_impl.cc
@@ -166,8 +166,7 @@ // static base::FilePath ProfileImpl::GetCachePath(content::BrowserContext* context) { DCHECK(context); - ProfileImpl* profile = - static_cast<BrowserContextImpl*>(context)->profile_impl(); + ProfileImpl* profile = FromBrowserContext(context); #if defined(OS_POSIX) base::FilePath path = ComputeCachePath(profile->name_); { @@ -206,6 +205,11 @@ browser_context_->ShutdownStoragePartitions(); } +ProfileImpl* ProfileImpl::FromBrowserContext( + content::BrowserContext* browser_context) { + return static_cast<BrowserContextImpl*>(browser_context)->profile_impl(); +} + content::BrowserContext* ProfileImpl::GetBrowserContext() { if (browser_context_) return browser_context_.get(); @@ -264,6 +268,10 @@ download_directory_ = directory; } +void ProfileImpl::SetDownloadDelegate(DownloadDelegate* delegate) { + download_delegate_ = delegate; +} + void ProfileImpl::ClearRendererCache() { for (content::RenderProcessHost::iterator iter = content::RenderProcessHost::AllHostsIterator();
diff --git a/weblayer/browser/profile_impl.h b/weblayer/browser/profile_impl.h index 57eeeef3..3a798af 100644 --- a/weblayer/browser/profile_impl.h +++ b/weblayer/browser/profile_impl.h
@@ -36,10 +36,15 @@ explicit ProfileImpl(const std::string& name); ~ProfileImpl() override; + // Returns the ProfileImpl from the specified BrowserContext. + static ProfileImpl* FromBrowserContext( + content::BrowserContext* browser_context); + content::BrowserContext* GetBrowserContext(); // Path data is stored at, empty if off-the-record. const base::FilePath& data_path() const { return data_path_; } + DownloadDelegate* download_delegate() { return download_delegate_; } // Profile implementation: bool DeleteDataFromDisk(base::OnceClosure done_callback) override; @@ -48,6 +53,7 @@ base::Time to_time, base::OnceClosure callback) override; void SetDownloadDirectory(const base::FilePath& directory) override; + void SetDownloadDelegate(DownloadDelegate* delegate) override; #if defined(OS_ANDROID) ProfileImpl(JNIEnv* env, const base::android::JavaParamRef<jstring>& path); @@ -90,6 +96,8 @@ base::FilePath download_directory_; + DownloadDelegate* download_delegate_ = nullptr; + std::unique_ptr<i18n::LocaleChangeSubscription> locale_change_subscription_; size_t num_browser_impl_ = 0u;
diff --git a/weblayer/browser/tab_impl.cc b/weblayer/browser/tab_impl.cc index 5e0b944..aa0fecb 100644 --- a/weblayer/browser/tab_impl.cc +++ b/weblayer/browser/tab_impl.cc
@@ -34,7 +34,6 @@ #include "weblayer/browser/navigation_controller_impl.h" #include "weblayer/browser/persistence/browser_persister.h" #include "weblayer/browser/profile_impl.h" -#include "weblayer/public/download_delegate.h" #include "weblayer/public/fullscreen_delegate.h" #include "weblayer/public/new_tab_delegate.h" #include "weblayer/public/tab_observer.h" @@ -229,7 +228,9 @@ // Destruct WebContents now to avoid it calling back when this object is // partially destructed. DidFinishNavigation can be called while destroying - // WebContents, so stop observing first. + // WebContents, so stop observing first. Similarly WebContents destructor + // can callback to delegate such as NavigationStateChanged, so clear its + // Delegate as well. Observe(nullptr); web_contents_->SetDelegate(nullptr); web_contents_.reset(); @@ -242,10 +243,6 @@ ->controller; } -void TabImpl::SetDownloadDelegate(DownloadDelegate* delegate) { - download_delegate_ = delegate; -} - void TabImpl::SetErrorPageDelegate(ErrorPageDelegate* delegate) { error_page_delegate_ = delegate; }
diff --git a/weblayer/browser/tab_impl.h b/weblayer/browser/tab_impl.h index f83e3fb3..50a71813 100644 --- a/weblayer/browser/tab_impl.h +++ b/weblayer/browser/tab_impl.h
@@ -122,12 +122,10 @@ base::android::ScopedJavaLocalRef<jstring> GetGuid(JNIEnv* env); #endif - DownloadDelegate* download_delegate() { return download_delegate_; } ErrorPageDelegate* error_page_delegate() { return error_page_delegate_; } FullscreenDelegate* fullscreen_delegate() { return fullscreen_delegate_; } // Tab: - void SetDownloadDelegate(DownloadDelegate* delegate) override; void SetErrorPageDelegate(ErrorPageDelegate* delegate) override; void SetFullscreenDelegate(FullscreenDelegate* delegate) override; void SetNewTabDelegate(NewTabDelegate* delegate) override; @@ -229,7 +227,6 @@ void UpdateBrowserVisibleSecurityStateIfNecessary(); BrowserImpl* browser_ = nullptr; - DownloadDelegate* download_delegate_ = nullptr; ErrorPageDelegate* error_page_delegate_ = nullptr; FullscreenDelegate* fullscreen_delegate_ = nullptr; NewTabDelegate* new_tab_delegate_ = nullptr;
diff --git a/weblayer/public/java/org/chromium/weblayer/Profile.java b/weblayer/public/java/org/chromium/weblayer/Profile.java index fe1aeb71..c48a843 100644 --- a/weblayer/public/java/org/chromium/weblayer/Profile.java +++ b/weblayer/public/java/org/chromium/weblayer/Profile.java
@@ -4,14 +4,22 @@ package org.chromium.weblayer; +import android.content.Intent; +import android.net.Uri; import android.os.RemoteException; +import android.webkit.ValueCallback; import androidx.annotation.NonNull; import androidx.annotation.Nullable; import org.chromium.weblayer_private.interfaces.APICallException; +import org.chromium.weblayer_private.interfaces.IClientDownload; +import org.chromium.weblayer_private.interfaces.IDownload; +import org.chromium.weblayer_private.interfaces.IDownloadCallbackClient; +import org.chromium.weblayer_private.interfaces.IObjectWrapper; import org.chromium.weblayer_private.interfaces.IProfile; import org.chromium.weblayer_private.interfaces.ObjectWrapper; +import org.chromium.weblayer_private.interfaces.StrictModeWorkaround; import java.io.File; import java.util.Collection; @@ -54,6 +62,7 @@ private final String mName; private IProfile mImpl; + private DownloadCallbackClientImpl mDownloadCallbackClient; // Constructor for test mocking. protected Profile() { @@ -156,4 +165,103 @@ throw new APICallException(e); } } + + /** + * Allows embedders to control how downloads function. + * + * @param callback the callback interface implemented by the embedder. + * + * @since 83 + */ + public void setDownloadCallback(@Nullable DownloadCallback callback) { + ThreadCheck.ensureOnUiThread(); + if (WebLayer.getSupportedMajorVersionInternal() < 83) { + throw new UnsupportedOperationException(); + } + try { + if (callback != null) { + mDownloadCallbackClient = new DownloadCallbackClientImpl(callback); + mImpl.setDownloadCallbackClient(mDownloadCallbackClient); + } else { + mDownloadCallbackClient = null; + mImpl.setDownloadCallbackClient(null); + } + } catch (RemoteException e) { + throw new APICallException(e); + } + } + + private static final class DownloadCallbackClientImpl extends IDownloadCallbackClient.Stub { + private final DownloadCallback mCallback; + + DownloadCallbackClientImpl(DownloadCallback callback) { + mCallback = callback; + } + + public DownloadCallback getCallback() { + return mCallback; + } + + @Override + public boolean interceptDownload(String uriString, String userAgent, + String contentDisposition, String mimetype, long contentLength) { + StrictModeWorkaround.apply(); + return mCallback.onInterceptDownload( + Uri.parse(uriString), userAgent, contentDisposition, mimetype, contentLength); + } + + @Override + public void allowDownload(String uriString, String requestMethod, + String requestInitiatorString, IObjectWrapper valueCallback) { + StrictModeWorkaround.apply(); + Uri requestInitiator; + if (requestInitiatorString != null) { + requestInitiator = Uri.parse(requestInitiatorString); + } else { + requestInitiator = Uri.EMPTY; + } + mCallback.allowDownload(Uri.parse(uriString), requestMethod, requestInitiator, + (ValueCallback<Boolean>) ObjectWrapper.unwrap( + valueCallback, ValueCallback.class)); + } + + @Override + public IClientDownload createClientDownload(IDownload downloadImpl) { + StrictModeWorkaround.apply(); + return new Download(downloadImpl); + } + + @Override + public void downloadStarted(IClientDownload download) { + StrictModeWorkaround.apply(); + mCallback.onDownloadStarted((Download) download); + } + + @Override + public void downloadProgressChanged(IClientDownload download) { + StrictModeWorkaround.apply(); + mCallback.onDownloadProgressChanged((Download) download); + } + + @Override + public void downloadCompleted(IClientDownload download) { + StrictModeWorkaround.apply(); + mCallback.onDownloadCompleted((Download) download); + } + + @Override + public void downloadFailed(IClientDownload download) { + StrictModeWorkaround.apply(); + mCallback.onDownloadFailed((Download) download); + } + + @Override + public Intent createIntent() { + StrictModeWorkaround.apply(); + // Intent objects need to be created in the client library so they can refer to the + // broadcast receiver that will handle them. The broadcast receiver needs to be in the + // client library because it's referenced in the manifest. + return new Intent(WebLayer.getAppContext(), DownloadBroadcastReceiver.class); + } + } }
diff --git a/weblayer/public/java/org/chromium/weblayer/Tab.java b/weblayer/public/java/org/chromium/weblayer/Tab.java index d55c900f..743ff538 100644 --- a/weblayer/public/java/org/chromium/weblayer/Tab.java +++ b/weblayer/public/java/org/chromium/weblayer/Tab.java
@@ -4,7 +4,6 @@ package org.chromium.weblayer; -import android.content.Intent; import android.net.Uri; import android.os.RemoteException; import android.webkit.ValueCallback; @@ -16,9 +15,6 @@ import org.json.JSONObject; import org.chromium.weblayer_private.interfaces.APICallException; -import org.chromium.weblayer_private.interfaces.IClientDownload; -import org.chromium.weblayer_private.interfaces.IDownload; -import org.chromium.weblayer_private.interfaces.IDownloadCallbackClient; import org.chromium.weblayer_private.interfaces.IErrorPageCallbackClient; import org.chromium.weblayer_private.interfaces.IFullscreenCallbackClient; import org.chromium.weblayer_private.interfaces.IObjectWrapper; @@ -48,7 +44,6 @@ private final FindInPageController mFindInPageController; private final ObserverList<TabCallback> mCallbacks; private Browser mBrowser; - private DownloadCallbackClientImpl mDownloadCallbackClient; private FullscreenCallbackClientImpl mFullscreenCallbackClient; private NewTabCallback mNewTabCallback; // Id from the remote side. @@ -115,19 +110,13 @@ return mBrowser; } + /** + * Deprecated. Use Profile.setDownloadCallback instead. For now this works by always using + * the last DownloadCallback that has been set by any tab in the same Profile. + */ public void setDownloadCallback(@Nullable DownloadCallback callback) { ThreadCheck.ensureOnUiThread(); - try { - if (callback != null) { - mDownloadCallbackClient = new DownloadCallbackClientImpl(callback); - mImpl.setDownloadCallbackClient(mDownloadCallbackClient); - } else { - mDownloadCallbackClient = null; - mImpl.setDownloadCallbackClient(null); - } - } catch (RemoteException e) { - throw new APICallException(e); - } + mBrowser.getProfile().setDownloadCallback(callback); } public void setErrorPageCallback(@Nullable ErrorPageCallback callback) { @@ -155,12 +144,6 @@ } } - @Nullable - public DownloadCallback getDownloadCallback() { - ThreadCheck.ensureOnUiThread(); - return mDownloadCallbackClient != null ? mDownloadCallbackClient.getCallback() : null; - } - /** * Executes the script, and returns the result as a JSON object to the callback if provided. The * object passed to the callback will have a single key SCRIPT_RESULT_KEY which will hold the @@ -379,80 +362,6 @@ } } - private static final class DownloadCallbackClientImpl extends IDownloadCallbackClient.Stub { - private final DownloadCallback mCallback; - - DownloadCallbackClientImpl(DownloadCallback callback) { - mCallback = callback; - } - - public DownloadCallback getCallback() { - return mCallback; - } - - @Override - public boolean interceptDownload(String uriString, String userAgent, - String contentDisposition, String mimetype, long contentLength) { - StrictModeWorkaround.apply(); - return mCallback.onInterceptDownload( - Uri.parse(uriString), userAgent, contentDisposition, mimetype, contentLength); - } - - @Override - public void allowDownload(String uriString, String requestMethod, - String requestInitiatorString, IObjectWrapper valueCallback) { - StrictModeWorkaround.apply(); - Uri requestInitiator; - if (requestInitiatorString != null) { - requestInitiator = Uri.parse(requestInitiatorString); - } else { - requestInitiator = Uri.EMPTY; - } - mCallback.allowDownload(Uri.parse(uriString), requestMethod, requestInitiator, - (ValueCallback<Boolean>) ObjectWrapper.unwrap( - valueCallback, ValueCallback.class)); - } - - @Override - public IClientDownload createClientDownload(IDownload downloadImpl) { - StrictModeWorkaround.apply(); - return new Download(downloadImpl); - } - - @Override - public void downloadStarted(IClientDownload download) { - StrictModeWorkaround.apply(); - mCallback.onDownloadStarted((Download) download); - } - - @Override - public void downloadProgressChanged(IClientDownload download) { - StrictModeWorkaround.apply(); - mCallback.onDownloadProgressChanged((Download) download); - } - - @Override - public void downloadCompleted(IClientDownload download) { - StrictModeWorkaround.apply(); - mCallback.onDownloadCompleted((Download) download); - } - - @Override - public void downloadFailed(IClientDownload download) { - StrictModeWorkaround.apply(); - mCallback.onDownloadFailed((Download) download); - } - - @Override - public Intent createIntent() { - StrictModeWorkaround.apply(); - // Intent objects need to be created in the client library so they can refer to the - // broadcast receiver that will handle them. The broadcast receiver needs to be in the - // client library because it's referenced in the manifest. - return new Intent(WebLayer.getAppContext(), DownloadBroadcastReceiver.class); - } - } - private static final class ErrorPageCallbackClientImpl extends IErrorPageCallbackClient.Stub { private final ErrorPageCallback mCallback;
diff --git a/weblayer/public/profile.h b/weblayer/public/profile.h index 845529e..bfb8d0f 100644 --- a/weblayer/public/profile.h +++ b/weblayer/public/profile.h
@@ -13,6 +13,7 @@ } namespace weblayer { +class DownloadDelegate; // GENERATED_JAVA_ENUM_PACKAGE: org.chromium.weblayer_private // GENERATED_JAVA_CLASS_NAME_OVERRIDE: ImplBrowsingDataType @@ -45,6 +46,9 @@ // system download directory on Android and on other platforms it's in the // home directory. virtual void SetDownloadDirectory(const base::FilePath& directory) = 0; + + // Sets the DownloadDelegate. If none is set, downloads will be dropped. + virtual void SetDownloadDelegate(DownloadDelegate* delegate) = 0; }; } // namespace weblayer
diff --git a/weblayer/public/tab.h b/weblayer/public/tab.h index 7936771e..eeec5ff 100644 --- a/weblayer/public/tab.h +++ b/weblayer/public/tab.h
@@ -23,7 +23,6 @@ #endif namespace weblayer { -class DownloadDelegate; class ErrorPageDelegate; class FullscreenDelegate; class NavigationController; @@ -42,9 +41,6 @@ virtual ~Tab() {} - // Sets the DownloadDelegate. If none is set, downloads will be dropped. - virtual void SetDownloadDelegate(DownloadDelegate* delegate) = 0; - // Sets the ErrorPageDelegate. If none is set, a default action will be taken // for any given interaction with an error page. virtual void SetErrorPageDelegate(ErrorPageDelegate* delegate) = 0;
diff --git a/weblayer/shell/BUILD.gn b/weblayer/shell/BUILD.gn index b9f0e7e..f360356 100644 --- a/weblayer/shell/BUILD.gn +++ b/weblayer/shell/BUILD.gn
@@ -94,6 +94,7 @@ if (toolkit_views) { sources += [ "browser/shell_views.cc" ] deps += [ + "//ui/native_theme", "//ui/resources", "//ui/views:test_support", "//ui/views/controls/webview",
diff --git a/weblayer/shell/DEPS b/weblayer/shell/DEPS index f45c486..e0b45c8d 100644 --- a/weblayer/shell/DEPS +++ b/weblayer/shell/DEPS
@@ -4,6 +4,7 @@ "+ui/base", "+ui/events", "+ui/gfx", + "+ui/native_theme", "+ui/views", "+ui/wm", ]
diff --git a/weblayer/shell/android/shell_apk/src/org/chromium/weblayer/shell/WebLayerShellActivity.java b/weblayer/shell/android/shell_apk/src/org/chromium/weblayer/shell/WebLayerShellActivity.java index 1e7be3f7..44d74b9 100644 --- a/weblayer/shell/android/shell_apk/src/org/chromium/weblayer/shell/WebLayerShellActivity.java +++ b/weblayer/shell/android/shell_apk/src/org/chromium/weblayer/shell/WebLayerShellActivity.java
@@ -230,8 +230,8 @@ // when the shell is rotated in the foreground). fragment.setRetainInstance(true); mBrowser = Browser.fromFragment(fragment); - setTabCallbacks(mBrowser.getActiveTab(), fragment); mProfile = mBrowser.getProfile(); + setTabCallbacks(mBrowser.getActiveTab(), fragment); mBrowser.setTopView(mTopContentsContainer); mTabListCallback = new TabListCallback() { @@ -354,7 +354,7 @@ mLoadProgressBar.setProgress((int) Math.round(100 * progress)); } }); - tab.setDownloadCallback(new DownloadCallback() { + mProfile.setDownloadCallback(new DownloadCallback() { @Override public boolean onInterceptDownload(Uri uri, String userAgent, String contentDisposition, String mimetype, long contentLength) {
diff --git a/weblayer/shell/browser/shell.cc b/weblayer/shell/browser/shell.cc index 7177a4f5..557fad6 100644 --- a/weblayer/shell/browser/shell.cc +++ b/weblayer/shell/browser/shell.cc
@@ -16,8 +16,9 @@ #include "base/strings/string_util.h" #include "build/build_config.h" #include "url/gurl.h" +#include "weblayer/browser/profile_impl.h" +#include "weblayer/browser/tab_impl.h" #include "weblayer/public/navigation_controller.h" -#include "weblayer/public/tab.h" namespace weblayer { @@ -40,7 +41,7 @@ // TODO: how will tests work with this on android? can we get to the // concrete type? - tab_->SetDownloadDelegate(this); + static_cast<TabImpl*>(tab_.get())->profile()->SetDownloadDelegate(this); #endif } }
diff --git a/weblayer/shell/browser/shell_views.cc b/weblayer/shell/browser/shell_views.cc index 252bf39..e8dc7ac 100644 --- a/weblayer/shell/browser/shell_views.cc +++ b/weblayer/shell/browser/shell_views.cc
@@ -17,6 +17,7 @@ #include "ui/base/clipboard/clipboard.h" #include "ui/base/resource/resource_bundle.h" #include "ui/events/event.h" +#include "ui/native_theme/native_theme_color_id.h" #include "ui/views/background.h" #include "ui/views/controls/button/md_text_button.h" #include "ui/views/controls/textfield/textfield.h" @@ -107,7 +108,8 @@ private: // Initialize the UI control contained in shell window void InitShellWindow() { - SetBackground(views::CreateStandardPanelBackground()); + SetBackground(CreateThemedSolidBackground( + this, ui::NativeTheme::kColorId_WindowBackground)); auto contents_view = std::make_unique<views::View>(); auto toolbar_view = std::make_unique<views::View>();