diff --git a/DEPS b/DEPS index db3c1160..b2d5cc97 100644 --- a/DEPS +++ b/DEPS
@@ -96,11 +96,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': '97c1108607584b6050a6880d6ce22846e4913a92', + 'skia_revision': 'ef4f7b4dc1e4c315dab7bd387627cfb9e04bcefd', # 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': '9c5f77a1382ee3825f708aba48f5675fb55c84e1', + 'v8_revision': 'e3f3bcb29041e7e926c0a6542bfb85d98b8667da', # 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. @@ -108,7 +108,7 @@ # Three lines of non-changing comments so that # the commit queue can handle CLs rolling ANGLE # and whatever else without interference from each other. - 'angle_revision': 'e95a7f077e8bda81cbff51bf84ee80cbf2841e1d', + 'angle_revision': 'a932b6b51505763b4569d4378e98db7d319df62d', # Three lines of non-changing comments so that # the commit queue can handle CLs rolling build tools # and whatever else without interference from each other. @@ -120,7 +120,7 @@ # Three lines of non-changing comments so that # the commit queue can handle CLs rolling PDFium # and whatever else without interference from each other. - 'pdfium_revision': '27924e6c9d43f0eba57d14004853d5a8ba47de26', + 'pdfium_revision': '7e28208d26764438bef62e051d2e1fed13e1e0ec', # Three lines of non-changing comments so that # the commit queue can handle CLs rolling openmax_dl # and whatever else without interference from each other. @@ -156,7 +156,7 @@ # Three lines of non-changing comments so that # the commit queue can handle CLs rolling catapult # and whatever else without interference from each other. - 'catapult_revision': '483449aa724f5374a883584d8bf06c0402fb855b', + 'catapult_revision': '4a13b64861dc64457f225a772233438ae35f311d', # Three lines of non-changing comments so that # the commit queue can handle CLs rolling libFuzzer # and whatever else without interference from each other. @@ -498,7 +498,7 @@ # Build tools for Chrome OS. Note: This depends on third_party/pyelftools. 'src/third_party/chromite': { - 'url': Var('chromium_git') + '/chromiumos/chromite.git' + '@' + '7aaefdbb734f398eab1da8c47bc122626b803c81', + 'url': Var('chromium_git') + '/chromiumos/chromite.git' + '@' + '96caad126bb21a8f7593d96fdb0aafdace0183a4', 'condition': 'checkout_linux', }, @@ -523,7 +523,7 @@ }, 'src/third_party/depot_tools': - Var('chromium_git') + '/chromium/tools/depot_tools.git' + '@' + 'afec759dca62d9239f75ec5643592331a6aa18a2', + Var('chromium_git') + '/chromium/tools/depot_tools.git' + '@' + 'b61d387fa2d4e0ea7da1807d2922a4f946343d2d', 'src/third_party/devtools-node-modules': Var('chromium_git') + '/external/github.com/ChromeDevTools/devtools-node-modules' + '@' + Var('devtools_node_modules_revision'), @@ -968,7 +968,7 @@ Var('chromium_git') + '/external/khronosgroup/webgl.git' + '@' + '7c0541da63f571512c49758cbc0767117997a270', 'src/third_party/webrtc': - Var('webrtc_git') + '/src.git' + '@' + 'a29b148557b0f04a5f4c5d0cfe7b005909c411d9', # commit position 21742 + Var('webrtc_git') + '/src.git' + '@' + 'e1f222e5c5a45f9ec211874e8140dd3f961db3c7', # commit position 21742 'src/third_party/xdg-utils': { 'url': Var('chromium_git') + '/chromium/deps/xdg-utils.git' + '@' + 'd80274d5869b17b8c9067a1022e4416ee7ed5e0d',
diff --git a/PRESUBMIT.py b/PRESUBMIT.py index 51f6d86..ad88d57 100644 --- a/PRESUBMIT.py +++ b/PRESUBMIT.py
@@ -596,6 +596,7 @@ _JAVA_MULTIPLE_DEFINITION_EXCLUDED_PATHS = [ r".*[\\\/]BuildHooksAndroidImpl\.java", + r".*[\\\/]ClassRegisterImpl\.java", r".*[\\\/]LicenseContentProvider\.java", r".*[\\\/]PlatformServiceBridgeImpl.java", ]
diff --git a/android_webview/java/src/org/chromium/android_webview/AwContents.java b/android_webview/java/src/org/chromium/android_webview/AwContents.java index 82bff9e..4ed3e5b 100644 --- a/android_webview/java/src/org/chromium/android_webview/AwContents.java +++ b/android_webview/java/src/org/chromium/android_webview/AwContents.java
@@ -138,8 +138,7 @@ private static class ForceAuxiliaryBitmapRendering { private static final boolean sResult = lazyCheck(); private static boolean lazyCheck() { - return "goldfish".equals(Build.HARDWARE) || "ranchu".equals(Build.HARDWARE) - || !nativeHasRequiredHardwareExtensions(); + return !nativeHasRequiredHardwareExtensions(); } }
diff --git a/android_webview/java/src/org/chromium/android_webview/VariationsSeedLoader.java b/android_webview/java/src/org/chromium/android_webview/VariationsSeedLoader.java index f31e4a6..916ab07 100644 --- a/android_webview/java/src/org/chromium/android_webview/VariationsSeedLoader.java +++ b/android_webview/java/src/org/chromium/android_webview/VariationsSeedLoader.java
@@ -23,6 +23,7 @@ import org.chromium.base.metrics.CachedMetrics.EnumeratedHistogramSample; import org.chromium.base.metrics.CachedMetrics.TimesHistogramSample; import org.chromium.components.variations.LoadSeedResult; +import org.chromium.components.variations.firstrun.VariationsSeedBridge; import org.chromium.components.variations.firstrun.VariationsSeedFetcher.SeedInfo; import java.io.File; @@ -125,7 +126,7 @@ private FutureTask<SeedInfo> mLoadTask = new FutureTask<>(() -> { mEnabledByExperiment = checkEnabledByExperiment(); - if (!(mEnabledByCmd || mEnabledByExperiment)) return null; + if (!isVariationsEnabled()) return null; AwMetricsServiceClient.preloadClientId(); @@ -338,15 +339,12 @@ // variations. public void finishVariationsInit() { SeedInfo seed = getSeedBlockingAndLog(); - - // If enabled by experiment but not cmd, then also enable by cmd. - // isVariationsEnabled() must not be called before getSeedBlockingAndLog() returns. - // TODO(paulmiller): Remove this after completing the experiment. - if (mRunnable.isVariationsEnabled() && !isEnabledByCmd()) { - CommandLine.getInstance().appendSwitch(AwSwitches.ENABLE_WEBVIEW_VARIATIONS); + if (seed != null) { + if (!isEnabledByCmd()) { + CommandLine.getInstance().appendSwitch(AwSwitches.ENABLE_WEBVIEW_VARIATIONS); + } + VariationsSeedBridge.setVariationsFirstRunSeed( + seed.seedData, seed.signature, seed.country, seed.date, seed.isGzipCompressed); } - - // TODO(paulmiller): Once we have actual seeds, this would be the place to do: - // if (seed != null) { VariationsSeedBridge.setVariationsFirstRunSeed(seed); } } }
diff --git a/ash/BUILD.gn b/ash/BUILD.gn index bb48399..ceabc8f 100644 --- a/ash/BUILD.gn +++ b/ash/BUILD.gn
@@ -1206,7 +1206,6 @@ public_deps = [ "//ash/public/cpp", "//ash/public/cpp/vector_icons", - "//ash/resources", "//ash/resources/vector_icons", "//ash/strings", "//ash/wayland", @@ -1829,7 +1828,6 @@ "//ash/public/cpp", "//ash/public/cpp:unit_tests", "//ash/public/cpp/vector_icons", - "//ash/resources", "//ash/resources/vector_icons", "//ash/strings", "//ash/touch_hud", @@ -2128,7 +2126,6 @@ "//ash/components/fast_ink", "//ash/public/cpp", "//ash/public/interfaces:test_interfaces", - "//ash/resources", "//base", "//base:i18n", "//base/test:test_support", @@ -2230,7 +2227,6 @@ output = "$root_out_dir/ash_service_resources.pak" sources = [ "$root_gen_dir/ash/components/resources/ash_components_resources_100_percent.pak", - "$root_gen_dir/ash/resources/ash_resources_100_percent.pak", "$root_gen_dir/ash/strings/ash_strings_en-US.pak", "$root_gen_dir/ui/chromeos/resources/ui_chromeos_resources_100_percent.pak", "$root_gen_dir/ui/chromeos/strings/ui_chromeos_strings_en-US.pak", @@ -2241,7 +2237,6 @@ ] deps = [ "//ash/components/resources", - "//ash/resources", "//ash/strings", "//ui/chromeos/resources", "//ui/chromeos/strings", @@ -2256,14 +2251,12 @@ output = "$root_out_dir/ash_service_resources_200.pak" sources = [ "$root_gen_dir/ash/components/resources/ash_components_resources_200_percent.pak", - "$root_gen_dir/ash/resources/ash_resources_200_percent.pak", "$root_gen_dir/ui/chromeos/resources/ui_chromeos_resources_200_percent.pak", "$root_gen_dir/ui/resources/ui_resources_200_percent.pak", "$root_gen_dir/ui/views/resources/views_resources_200_percent.pak", ] deps = [ "//ash/components/resources", - "//ash/resources", "//ui/chromeos/resources", "//ui/resources", "//ui/views/resources",
diff --git a/ash/components/strings/ash_components_strings_de.xtb b/ash/components/strings/ash_components_strings_de.xtb index 3f053d5..7f365c1 100644 --- a/ash/components/strings/ash_components_strings_de.xtb +++ b/ash/components/strings/ash_components_strings_de.xtb
@@ -102,7 +102,7 @@ <translation id="5236674127086649162">Aktuelle Seite ohne zwischengespeicherte Inhalte aktualisieren</translation> <translation id="526651782186312376">Text bis zum Zeilenanfang markieren</translation> <translation id="5316716239522500219">Monitore spiegeln</translation> -<translation id="5487187679583934283">Tippen der Spracheingabe starten oder stoppen</translation> +<translation id="5487187679583934283">Eingeben der Spracheingabe als Text starten oder stoppen</translation> <translation id="5541719484267030947">Beim Ziehen des Tabs die Taste "<ph name="ESC" />" drücken</translation> <translation id="5554139136362089836">Auf der aktuellen Seite suchen</translation> <translation id="5563050856984839829">"<ph name="CTRL" />" <ph name="SEPARATOR" /> "<ph name="SHIFT" />" gedrückt halten und auf einen Link klicken</translation>
diff --git a/ash/components/strings/ash_components_strings_it.xtb b/ash/components/strings/ash_components_strings_it.xtb index 2abd1ac..336b883b 100644 --- a/ash/components/strings/ash_components_strings_it.xtb +++ b/ash/components/strings/ash_components_strings_it.xtb
@@ -145,7 +145,7 @@ <translation id="6981982820502123353">Accessibilità</translation> <translation id="7020813747703216897">Nessun risultato corrispondente trovato</translation> <translation id="7025325401470358758">Riquadro successivo</translation> -<translation id="7076878155205969899">Disattiva suono</translation> +<translation id="7076878155205969899">Disattiva audio</translation> <translation id="7077383985738259936">Consente di mettere in evidenza o impostare lo stato attivo nella barra dei Preferiti (se visibile)</translation> <translation id="7237562915163138771">Digita un indirizzo web nella barra degli indirizzi, quindi premi <ph name="ALT" /><ph name="SEPARATOR" /><ph name="ENTER" /></translation> <translation id="7254764037241667478">Consente di attivare la modalità di sospensione del dispositivo</translation>
diff --git a/ash/components/strings/ash_components_strings_ta.xtb b/ash/components/strings/ash_components_strings_ta.xtb index 8dabe4c0..24323abd 100644 --- a/ash/components/strings/ash_components_strings_ta.xtb +++ b/ash/components/strings/ash_components_strings_ta.xtb
@@ -102,7 +102,7 @@ <translation id="5236674127086649162">தற்காலிக சேமிப்பு உள்ளடக்கத்தைப் பயன்படுத்தாமல் உங்கள் தற்போதைய பக்கத்தை மீண்டும் ஏற்றும்</translation> <translation id="526651782186312376">வரியின் தொடக்கத்தில் உள்ள உரையைத் தேர்ந்தெடுக்கும்</translation> <translation id="5316716239522500219">மானிட்டர்களைப் பிரதிபலி</translation> -<translation id="5487187679583934283">நீங்கள் சொல்வதை உள்ளிடத் தொடங்கலாம் அல்லது நிறுத்தலாம்</translation> +<translation id="5487187679583934283">நீங்கள் சொல்வதை எழுதத் தொடங்கும் அல்லது நிறுத்தும்</translation> <translation id="5541719484267030947">தாவலை இழுக்கும் போது, <ph name="ESC" />ஐ அழுத்தவும்</translation> <translation id="5554139136362089836">தற்போதைய பக்கத்தில் தேடும்</translation> <translation id="5563050856984839829"><ph name="CTRL" /><ph name="SEPARATOR" /><ph name="SHIFT" />ஐ அழுத்தி, இணைப்பைக் கிளிக் செய்யவும்</translation> @@ -145,7 +145,7 @@ <translation id="6981982820502123353">அணுகல் தன்மை</translation> <translation id="7020813747703216897">பொருந்தும் முடிவுகள் எதுவுமில்லை</translation> <translation id="7025325401470358758">அடுத்த பலகம்</translation> -<translation id="7076878155205969899">ஒலியை முடக்கலாம்</translation> +<translation id="7076878155205969899">ஒலியை முடக்கும்</translation> <translation id="7077383985738259936">புக்மார்க் பட்டியில் ஃபோகஸ் செய்யும் அல்லது ஹைலைட் செய்யும் (காட்டப்பட்டால்)</translation> <translation id="7237562915163138771">முகவரிப் பட்டியில் இணைய முகவரியைத் தட்டச்சு செய்து, <ph name="ALT" /><ph name="SEPARATOR" /><ph name="ENTER" />ஐ அழுத்தவும்</translation> <translation id="7254764037241667478">சாதனத்தை உறக்கப் பயன்முறைக்கு அமைக்கும் (இடைநிறுத்தப்பட்டது)</translation>
diff --git a/ash/display/resolution_notification_controller.cc b/ash/display/resolution_notification_controller.cc index 22e7bb2..7d31f4e 100644 --- a/ash/display/resolution_notification_controller.cc +++ b/ash/display/resolution_notification_controller.cc
@@ -6,7 +6,7 @@ #include <utility> -#include "ash/resources/grit/ash_resources.h" +#include "ash/resources/vector_icons/vector_icons.h" #include "ash/session/session_controller.h" #include "ash/shell.h" #include "ash/strings/grit/ash_strings.h" @@ -14,7 +14,6 @@ #include "base/strings/utf_string_conversions.h" #include "ui/base/l10n/l10n_util.h" #include "ui/base/l10n/time_format.h" -#include "ui/base/resource/resource_bundle.h" #include "ui/display/display.h" #include "ui/display/manager/display_manager.h" #include "ui/display/manager/managed_display_info.h" @@ -221,17 +220,22 @@ base::UTF8ToUTF16( change_info_->current_resolution.size().ToString())); - ui::ResourceBundle& bundle = ui::ResourceBundle::GetSharedInstance(); - auto notification = std::make_unique<Notification>( - message_center::NOTIFICATION_TYPE_SIMPLE, kNotificationId, message, - timeout_message, bundle.GetImageNamed(IDR_AURA_NOTIFICATION_DISPLAY), - base::string16() /* display_source */, GURL(), - message_center::NotifierId(message_center::NotifierId::SYSTEM_COMPONENT, - kNotifierDisplayResolutionChange), - data, - base::MakeRefCounted<message_center::ThunkNotificationDelegate>( - weak_factory_.GetWeakPtr())); - notification->SetSystemPriority(); + std::unique_ptr<Notification> notification = + Notification::CreateSystemNotification( + message_center::NOTIFICATION_TYPE_SIMPLE, kNotificationId, message, + timeout_message, gfx::Image(), + base::string16(), // display_source + GURL(), + message_center::NotifierId( + message_center::NotifierId::SYSTEM_COMPONENT, + kNotifierDisplayResolutionChange), + data, + base::MakeRefCounted<message_center::ThunkNotificationDelegate>( + weak_factory_.GetWeakPtr()), + kNotificationScreenIcon, + message_center::SystemNotificationWarningLevel::NORMAL); + notification->set_priority(message_center::SYSTEM_PRIORITY); + message_center->AddNotification(std::move(notification)); }
diff --git a/ash/public/cpp/menu_struct_mojom_traits.h b/ash/public/cpp/menu_struct_mojom_traits.h index 37aaf56..629e8d22 100644 --- a/ash/public/cpp/menu_struct_mojom_traits.h +++ b/ash/public/cpp/menu_struct_mojom_traits.h
@@ -8,6 +8,7 @@ #include "ash/public/cpp/ash_public_export.h" #include "ash/public/interfaces/menu.mojom-shared.h" #include "ui/base/models/menu_model.h" +#include "ui/base/models/menu_separator_types.h" namespace mojo { @@ -62,6 +63,49 @@ } }; +template <> +struct EnumTraits<ash::mojom::MenuSeparatorType, ui::MenuSeparatorType> { + static ash::mojom::MenuSeparatorType ToMojom(ui::MenuSeparatorType input) { + switch (input) { + case ui::MenuSeparatorType::NORMAL_SEPARATOR: + return ash::mojom::MenuSeparatorType::NORMAL_SEPARATOR; + case ui::MenuSeparatorType::UPPER_SEPARATOR: + return ash::mojom::MenuSeparatorType::UPPER_SEPARATOR; + case ui::MenuSeparatorType::LOWER_SEPARATOR: + return ash::mojom::MenuSeparatorType::LOWER_SEPARATOR; + case ui::MenuSeparatorType::SPACING_SEPARATOR: + return ash::mojom::MenuSeparatorType::SPACING_SEPARATOR; + case ui::MenuSeparatorType::VERTICAL_SEPARATOR: + return ash::mojom::MenuSeparatorType::VERTICAL_SEPARATOR; + } + NOTREACHED(); + return ash::mojom::MenuSeparatorType::NORMAL_SEPARATOR; + } + + static bool FromMojom(ash::mojom::MenuSeparatorType input, + ui::MenuSeparatorType* out) { + switch (input) { + case ash::mojom::MenuSeparatorType::NORMAL_SEPARATOR: + *out = ui::MenuSeparatorType::NORMAL_SEPARATOR; + return true; + case ash::mojom::MenuSeparatorType::UPPER_SEPARATOR: + *out = ui::MenuSeparatorType::UPPER_SEPARATOR; + return true; + case ash::mojom::MenuSeparatorType::LOWER_SEPARATOR: + *out = ui::MenuSeparatorType::LOWER_SEPARATOR; + return true; + case ash::mojom::MenuSeparatorType::SPACING_SEPARATOR: + *out = ui::MenuSeparatorType::SPACING_SEPARATOR; + return true; + case ash::mojom::MenuSeparatorType::VERTICAL_SEPARATOR: + *out = ui::MenuSeparatorType::VERTICAL_SEPARATOR; + return true; + } + NOTREACHED(); + return false; + } +}; + } // namespace mojo #endif // ASH_PUBLIC_CPP_MENU_STRUCT_MOJOM_TRAITS_H_
diff --git a/ash/public/cpp/menu_utils.cc b/ash/public/cpp/menu_utils.cc index 516b9f2..ebce149 100644 --- a/ash/public/cpp/menu_utils.cc +++ b/ash/public/cpp/menu_utils.cc
@@ -30,6 +30,7 @@ item->type == ui::MenuModel::TYPE_ACTIONABLE_SUBMENU) { item->submenu = GetMojoMenuItemsFromModel(model->GetSubmenuModelAt(i)); } + item->separator_type = model->GetSeparatorTypeAt(i); gfx::Image icon; if (model->GetIconAt(i, &icon)) item->image = icon.AsImageSkia(); @@ -55,7 +56,7 @@ item->radio_group_id); break; case ui::MenuModel::TYPE_SEPARATOR: - model->AddSeparator(ui::NORMAL_SEPARATOR); + model->AddSeparator(item->separator_type); break; case ui::MenuModel::TYPE_BUTTON_ITEM: NOTREACHED() << "TYPE_BUTTON_ITEM is not yet supported.";
diff --git a/ash/public/interfaces/menu.mojom b/ash/public/interfaces/menu.mojom index 971cd9c6..4a4778e 100644 --- a/ash/public/interfaces/menu.mojom +++ b/ash/public/interfaces/menu.mojom
@@ -16,17 +16,46 @@ SEPARATOR, // Shows a horizontal line separator. SUBMENU, // Presents a submenu within another menu. ACTIONABLE_SUBMENU, // A SUBMENU that is also a COMMAND. - }; +}; + +// For a separator we have the following types. +enum MenuSeparatorType { + // Normal - top to bottom: Spacing, line, spacing + NORMAL_SEPARATOR = 0, + + // Upper - top to bottom: Line, spacing + UPPER_SEPARATOR, + + // Lower - top to bottom: Spacing, line + LOWER_SEPARATOR, + + // Spacing - top to bottom: Spacing only. + SPACING_SEPARATOR, + + // Vertical separator within a row. + VERTICAL_SEPARATOR, +}; // MenuItems are used to populate application menus for shelf items. -// Note: Some menus only support a subset of these item features (eg. no icons). +// Note: Some menu item types only support a subset of these item features. +// Please update comments below (MenuItemType -> [fields expected for usage]) +// when anything changed to MenuItemType or MenuItem. +// +// COMMAND -> [command_id, label, image, enabled, checked]. +// CHECK -> [command_id, label, image, enabled, checked]. +// RADIO -> [command_id, label, image, enabled, checked, radio_group_id]. +// SEPARATOR -> [separator_type]. +// SUBMENU -> [command_id, label, image, enabled, submenu]. +// ACTIONABLE_SUBMENU -> [command_id, label, image, enabled, submenu]. +// struct MenuItem { - MenuItemType type; // The type of the menu item. - int32 command_id; // The client's arbitrary item command id. - mojo_base.mojom.String16 label; // The string label, may be empty. - gfx.mojom.ImageSkia? image; // The image icon, may be null. - array<MenuItem>? submenu; // The optional nested submenu item list. - bool enabled; // The enabled state. - bool checked; // The checked state. - int64 radio_group_id; // The radio group id. + MenuItemType type; // The type of the menu item. + int32 command_id; // The client's arbitrary item command id. + mojo_base.mojom.String16 label; // The string label, may be empty. + gfx.mojom.ImageSkia? image; // The image icon, may be null. + array<MenuItem>? submenu; // The optional nested submenu item list. + bool enabled; // The enabled state. + bool checked; // The checked state. + int64 radio_group_id; // The radio group id. + MenuSeparatorType separator_type; // The separator type. };
diff --git a/ash/public/interfaces/menu.typemap b/ash/public/interfaces/menu.typemap index 6ab9dd3..6f8b8eed 100644 --- a/ash/public/interfaces/menu.typemap +++ b/ash/public/interfaces/menu.typemap
@@ -3,10 +3,16 @@ # found in the LICENSE file. mojom = "//ash/public/interfaces/menu.mojom" -public_headers = [ "//ui/base/models/menu_model.h" ] +public_headers = [ + "//ui/base/models/menu_model.h", + "//ui/base/models/menu_separator_types.h", +] traits_headers = [ "//ash/public/cpp/menu_struct_mojom_traits.h" ] public_deps = [ "//ui/base", "//ui/gfx/image/mojo:struct_traits", ] -type_mappings = [ "ash.mojom.MenuItemType=ui::MenuModel::ItemType" ] +type_mappings = [ + "ash.mojom.MenuItemType=ui::MenuModel::ItemType", + "ash.mojom.MenuSeparatorType=ui::MenuSeparatorType", +]
diff --git a/ash/resources/BUILD.gn b/ash/resources/BUILD.gn index 625e6dc..630351a 100644 --- a/ash/resources/BUILD.gn +++ b/ash/resources/BUILD.gn
@@ -9,15 +9,6 @@ assert(is_chromeos) assert(enable_hidpi) -grit("resources") { - source = "ash_resources.grd" - outputs = [ - "grit/ash_resources.h", - "ash_resources_100_percent.pak", - "ash_resources_200_percent.pak", - ] -} - # Repacks resources needed for ash_unittests, etc. at a given scale. # TODO(msw): Use ui_test.pak instead of its pieces? (no 200% support?) template("ash_test_resources") { @@ -29,7 +20,6 @@ sources = [ "$root_gen_dir/ash/components/resources/ash_components_resources_${percent}_percent.pak", "$root_gen_dir/ash/public/cpp/resources/ash_public_unscaled_resources.pak", - "$root_gen_dir/ash/resources/ash_resources_${percent}_percent.pak", "$root_gen_dir/ui/app_list/resources/app_list_resources_${percent}_percent.pak", "$root_gen_dir/ui/chromeos/resources/ui_chromeos_resources_${percent}_percent.pak", "$root_gen_dir/ui/resources/ui_resources_${percent}_percent.pak", @@ -50,7 +40,6 @@ deps = [ "//ash/components/resources", "//ash/public/cpp/resources:ash_public_unscaled_resources", - "//ash/resources", "//mojo/public/js:resources", "//ui/app_list/resources", "//ui/chromeos/resources",
diff --git a/ash/resources/ash_resources.grd b/ash/resources/ash_resources.grd deleted file mode 100644 index 1edf3c9..0000000 --- a/ash/resources/ash_resources.grd +++ /dev/null
@@ -1,19 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<grit latest_public_release="0" current_release="1" output_all_resource_defines="false"> - <outputs> - <output filename="grit/ash_resources.h" type="rc_header" context="default_100_percent"> - <emit emit_type='prepend'></emit> - </output> - <output filename="ash_resources_100_percent.pak" type="data_package" context="default_100_percent" /> - <output filename="ash_resources_200_percent.pak" type="data_package" context="default_200_percent" /> - </outputs> - <release seq="1"> - <structures fallback_to_low_resolution="true"> - <!-- KEEP THESE IN ALPHABETICAL ORDER! DO NOT ADD TO RANDOM PLACES JUST - BECAUSE YOUR RESOURCES ARE FUNCTIONALLY RELATED OR FALL UNDER THE - SAME CONDITIONALS. --> - - <structure type="chrome_scaled_image" name="IDR_AURA_NOTIFICATION_DISPLAY" file="cros/notification/display_notification_icon.png" /> - </structures> - </release> -</grit>
diff --git a/ash/resources/default_100_percent/cros/notification/display_notification_icon.png b/ash/resources/default_100_percent/cros/notification/display_notification_icon.png deleted file mode 100644 index e49d82a2..0000000 --- a/ash/resources/default_100_percent/cros/notification/display_notification_icon.png +++ /dev/null Binary files differ
diff --git a/ash/resources/default_200_percent/cros/notification/display_notification_icon.png b/ash/resources/default_200_percent/cros/notification/display_notification_icon.png deleted file mode 100644 index 832e974f..0000000 --- a/ash/resources/default_200_percent/cros/notification/display_notification_icon.png +++ /dev/null Binary files differ
diff --git a/ash/shell/content/shell_with_content_main.cc b/ash/shell/content/shell_with_content_main.cc index c30d500e..b1a6b73a 100644 --- a/ash/shell/content/shell_with_content_main.cc +++ b/ash/shell/content/shell_with_content_main.cc
@@ -21,7 +21,8 @@ settings.log_file = log_filename.value().c_str(); settings.delete_old = logging::DELETE_OLD_LOG_FILE; logging::InitLogging(settings); - + logging::SetLogItems(true /* process_id */, true /* thread_id */, + true /* timestamp */, false /* tick_count */); ash::shell::ShellMainDelegate delegate; content::ContentMainParams params(&delegate); params.argc = argc;
diff --git a/ash/strings/ash_strings_am.xtb b/ash/strings/ash_strings_am.xtb index ab8a2bc..f36db683 100644 --- a/ash/strings/ash_strings_am.xtb +++ b/ash/strings/ash_strings_am.xtb
@@ -266,7 +266,6 @@ <translation id="698231206551913481">አንዴ ይህ ተጠቃሚ ከተወገደ በኋላ ከዚህ ተጠቃሚ ጋር የተጎዳኙ ሁሉም ፋይሎች እና አካባቢያዊ ውሂብ በቋሚነት ይሰረዛሉ።</translation> <translation id="7029814467594812963">ከክፍለ-ጊዜ ውጣ</translation> <translation id="7034339000180558234"><ph name="TAB_NAME" />ን ወደ <ph name="RECEIVER_NAME" /> Cast በማድረግ ላይ</translation> -<translation id="7052914147756339792">ልጣፍ አዘጋጅ...</translation> <translation id="7066646422045619941">ይህ አውታረ መረብ በአስተዳዳሪዎ ነው የተሰናከለው።</translation> <translation id="7067196344162293536">በራስ-አሽከርክር</translation> <translation id="7098389117866926363">USB-C መሣሪያ (የግራ ወደብ ከኋላ በኩል)</translation> @@ -355,6 +354,7 @@ <translation id="9194617393863864469">ሌላ ተጠቃሚ በመለያ አስገባ...</translation> <translation id="9201131092683066720">ባትሪው <ph name="PERCENTAGE" />% ሙሉ ነው።</translation> <translation id="9210037371811586452">ከተዋሃደ የዴስክቶፕ ሁነታ በመውጣት ላይ</translation> +<translation id="9215934040295798075">ልጣፍ ያዘጋጁ</translation> <translation id="923686485342484400">ዘግተው ለመውጣት Ctrl Shift Qን ሁለቴ ይጫኑ።</translation> <translation id="945522503751344254">ግብረ መልስ ላክ</translation> <translation id="98515147261107953">በወርድ</translation>
diff --git a/ash/strings/ash_strings_ar.xtb b/ash/strings/ash_strings_ar.xtb index 11417efa..2d326c7e 100644 --- a/ash/strings/ash_strings_ar.xtb +++ b/ash/strings/ash_strings_ar.xtb
@@ -267,7 +267,6 @@ <translation id="698231206551913481">سيتم حذف جميع الملفات والبيانات المحلية المرتبطة بهذا المستخدم نهائيًا بمجرد إزالة هذا المستخدم.</translation> <translation id="7029814467594812963">إنهاء الجلسة</translation> <translation id="7034339000180558234">إرسال <ph name="TAB_NAME" /> إلى <ph name="RECEIVER_NAME" />.</translation> -<translation id="7052914147756339792">تعيين خلفية...</translation> <translation id="7066646422045619941">تم إيقاف هذه الشبكة من قِبل مشرفك.</translation> <translation id="7067196344162293536">تدوير تلقائي</translation> <translation id="7098389117866926363">جهاز USB-C (المنفذ الأيسر في الخلف)</translation> @@ -356,6 +355,7 @@ <translation id="9194617393863864469">تسجيل دخول مستخدم آخر...</translation> <translation id="9201131092683066720">اكتمل شحن <ph name="PERCENTAGE" />% من البطارية.</translation> <translation id="9210037371811586452">جارٍ الخروج من وضع سطح المكتب الموحد</translation> +<translation id="9215934040295798075">تعيين خلفية</translation> <translation id="923686485342484400">للخروج اضغط على Ctrl Shift Q مرتين.</translation> <translation id="945522503751344254">إرسال تعليقات</translation> <translation id="98515147261107953">أفقي</translation>
diff --git a/ash/strings/ash_strings_bg.xtb b/ash/strings/ash_strings_bg.xtb index d2e3dfc..95782e5 100644 --- a/ash/strings/ash_strings_bg.xtb +++ b/ash/strings/ash_strings_bg.xtb
@@ -266,7 +266,6 @@ <translation id="698231206551913481">След като този потребител бъде премахнат, всички свързани с него файлове и локални данни ще се изтрият за постоянно.</translation> <translation id="7029814467594812963">Изход от сесията</translation> <translation id="7034339000180558234">„<ph name="TAB_NAME" />“ се предава към „<ph name="RECEIVER_NAME" />“</translation> -<translation id="7052914147756339792">Задаване на тапет...</translation> <translation id="7066646422045619941">Тази мрежа е деактивирана от администратора ви.</translation> <translation id="7067196344162293536">Автоматично завъртане</translation> <translation id="7098389117866926363">Устройство с USB-C (левият порт на гърба)</translation> @@ -355,6 +354,7 @@ <translation id="9194617393863864469">Влизане в профила на друг потребител...</translation> <translation id="9201131092683066720">Батерията е <ph name="PERCENTAGE" />% пълна.</translation> <translation id="9210037371811586452">Излиза се от режима на обединен работен плот</translation> +<translation id="9215934040295798075">Задаване на тапета</translation> <translation id="923686485342484400">Натиснете два пъти „Control+Shift+Q“ за изход.</translation> <translation id="945522503751344254">Изпращане на отзиви</translation> <translation id="98515147261107953">Хоризонтално</translation>
diff --git a/ash/strings/ash_strings_bn.xtb b/ash/strings/ash_strings_bn.xtb index a2cd0e41..9037369 100644 --- a/ash/strings/ash_strings_bn.xtb +++ b/ash/strings/ash_strings_bn.xtb
@@ -265,7 +265,6 @@ <translation id="698231206551913481">একবার এই ব্যবহারকারীকে সরানো হলে এর সঙ্গে সংশ্লিষ্ট সমস্ত ফাইল এবং স্থানীয় ডেটা স্থায়ীভাবে মুছে ফেলা হবে।</translation> <translation id="7029814467594812963">সেশন থেকে প্রস্থান</translation> <translation id="7034339000180558234"><ph name="TAB_NAME" /> কে <ph name="RECEIVER_NAME" /> এ কাস্ট করা হচ্ছে</translation> -<translation id="7052914147756339792">ওয়ালপেপার সেট করুন...</translation> <translation id="7066646422045619941">এই নেটওয়ার্কটি আপনার প্রশাসকের দ্বারা অক্ষম করা হয়েছে৷</translation> <translation id="7067196344162293536">স্বতঃ ঘূর্ণন</translation> <translation id="7098389117866926363">USB-C ডিভাইস (পিছনের বাঁ পোর্ট)</translation> @@ -351,6 +350,7 @@ <translation id="9194617393863864469">অন্য ব্যবহারকারীকে প্রবেশ করান...</translation> <translation id="9201131092683066720">ব্যাটারি <ph name="PERCENTAGE" />% পূর্ণ৷</translation> <translation id="9210037371811586452">সমন্বিত ডেস্কটপ মোড থেকে প্রস্থান করছে</translation> +<translation id="9215934040295798075">ওয়ালপেপার সেট করুন</translation> <translation id="923686485342484400">প্রস্থান করার জন্য দুবার Control Shift Q টিপুন৷</translation> <translation id="945522503751344254">প্রতিক্রিয়া পাঠান</translation> <translation id="98515147261107953">ল্যান্ডস্কেপ</translation>
diff --git a/ash/strings/ash_strings_ca.xtb b/ash/strings/ash_strings_ca.xtb index 60049cb..560f961f 100644 --- a/ash/strings/ash_strings_ca.xtb +++ b/ash/strings/ash_strings_ca.xtb
@@ -266,7 +266,6 @@ <translation id="698231206551913481">Tots els fitxers i les dades locals associats amb aquest usuari se suprimiran definitivament quan aquest usuari se suprimeixi.</translation> <translation id="7029814467594812963">Tanca la sessió</translation> <translation id="7034339000180558234">S'està emetent <ph name="TAB_NAME" /> a <ph name="RECEIVER_NAME" /></translation> -<translation id="7052914147756339792">Estableix fons de pantalla...</translation> <translation id="7066646422045619941">L'administrador ha desactivat aquesta xarxa.</translation> <translation id="7067196344162293536">Rotació automàtica</translation> <translation id="7098389117866926363">Dispositiu USB-C (port posterior esquerre)</translation> @@ -355,6 +354,7 @@ <translation id="9194617393863864469">Inicia la sessió amb un altre usuari...</translation> <translation id="9201131092683066720">La bateria està carregada fins al <ph name="PERCENTAGE" />%.</translation> <translation id="9210037371811586452">S'està sortint del mode d'escriptori unificat</translation> +<translation id="9215934040295798075">Estableix fons de pantalla</translation> <translation id="923686485342484400">Premeu Control+Maj+Q dues vegades per tancar la sessió.</translation> <translation id="945522503751344254">Envia suggeriments</translation> <translation id="98515147261107953">Horitzontal</translation>
diff --git a/ash/strings/ash_strings_cs.xtb b/ash/strings/ash_strings_cs.xtb index b0841c0..91ee90f2 100644 --- a/ash/strings/ash_strings_cs.xtb +++ b/ash/strings/ash_strings_cs.xtb
@@ -266,7 +266,6 @@ <translation id="698231206551913481">Po odebrání tohoto uživatele budou trvale smazány všechny soubory a místní data, která jsou k němu přiřazena.</translation> <translation id="7029814467594812963">Ukončit relaci</translation> <translation id="7034339000180558234">Odesílání karty <ph name="TAB_NAME" /> do zařízení <ph name="RECEIVER_NAME" /></translation> -<translation id="7052914147756339792">Nastavení tapety...</translation> <translation id="7066646422045619941">Tato síť je zakázána vaším administrátorem.</translation> <translation id="7067196344162293536">Automatické otáčení</translation> <translation id="7098389117866926363">Zařízení USB Type-C (levý zadní port)</translation> @@ -355,6 +354,7 @@ <translation id="9194617393863864469">Přihlásit dalšího uživatele...</translation> <translation id="9201131092683066720">Baterie je nabita na <ph name="PERCENTAGE" /> %.</translation> <translation id="9210037371811586452">Ukončování režimu jednotné plochy</translation> +<translation id="9215934040295798075">Nastavit tapetu</translation> <translation id="923686485342484400">Odhlásíte se dvojitým stisknutím kombinace kláves Control Shift Q.</translation> <translation id="945522503751344254">Odeslat zpětnou vazbu</translation> <translation id="98515147261107953">Na šířku</translation>
diff --git a/ash/strings/ash_strings_da.xtb b/ash/strings/ash_strings_da.xtb index eb93b7e..5e6af169 100644 --- a/ash/strings/ash_strings_da.xtb +++ b/ash/strings/ash_strings_da.xtb
@@ -267,7 +267,6 @@ <translation id="698231206551913481">Alle filer og lokale data, der er knyttet til denne bruger, slettes permanent, når brugeren fjernes.</translation> <translation id="7029814467594812963">Afslut session</translation> <translation id="7034339000180558234">Caster <ph name="TAB_NAME" /> til <ph name="RECEIVER_NAME" /></translation> -<translation id="7052914147756339792">Vælg baggrund...</translation> <translation id="7066646422045619941">Din administrator har deaktiveret dette netværk.</translation> <translation id="7067196344162293536">Automatisk rotering</translation> <translation id="7098389117866926363">USB-C-enhed (porten bagpå i venstre side)</translation> @@ -356,6 +355,7 @@ <translation id="9194617393863864469">Log ind med en anden bruger...</translation> <translation id="9201131092683066720">Batteriet er <ph name="PERCENTAGE" /> % opladet.</translation> <translation id="9210037371811586452">Lukker tilstanden Kombineret skrivebord</translation> +<translation id="9215934040295798075">Vælg baggrund</translation> <translation id="923686485342484400">Tryk på Control+Shift+Q to gange for at logge ud.</translation> <translation id="945522503751344254">Send feedback</translation> <translation id="98515147261107953">Liggende</translation>
diff --git a/ash/strings/ash_strings_de.xtb b/ash/strings/ash_strings_de.xtb index d0c805e3..2767210 100644 --- a/ash/strings/ash_strings_de.xtb +++ b/ash/strings/ash_strings_de.xtb
@@ -266,7 +266,6 @@ <translation id="698231206551913481">Durch das Entfernen des Nutzers werden alle mit ihm verknüpften Dateien und lokalen Daten endgültig gelöscht.</translation> <translation id="7029814467594812963">Sitzung beenden</translation> <translation id="7034339000180558234"><ph name="TAB_NAME" /> wird an <ph name="RECEIVER_NAME" /> gestreamt</translation> -<translation id="7052914147756339792">Hintergrund ändern</translation> <translation id="7066646422045619941">Dieses Netzwerk wurde von Ihrem Administrator deaktiviert.</translation> <translation id="7067196344162293536">Automatisch drehen</translation> <translation id="7098389117866926363">USB-C-Gerät (linker Port hinten)</translation> @@ -355,6 +354,7 @@ <translation id="9194617393863864469">Anderen Nutzer anmelden...</translation> <translation id="9201131092683066720">Akku ist zu <ph name="PERCENTAGE" /> % geladen.</translation> <translation id="9210037371811586452">Unified Desktop-Modus wird beendet</translation> +<translation id="9215934040295798075">Hintergrund festlegen</translation> <translation id="923686485342484400">Drücken Sie zum Abmelden zweimal Steuerung - Umschalttaste - Q.</translation> <translation id="945522503751344254">Feedback geben</translation> <translation id="98515147261107953">Querformat</translation>
diff --git a/ash/strings/ash_strings_el.xtb b/ash/strings/ash_strings_el.xtb index a035850e..60fddf2 100644 --- a/ash/strings/ash_strings_el.xtb +++ b/ash/strings/ash_strings_el.xtb
@@ -266,7 +266,6 @@ <translation id="698231206551913481">Όλα τα αρχεία και τα τοπικά δεδομένα που σχετίζονται με τον χρήστη θα διαγραφούν οριστικά μόλις καταργηθεί ο χρήστης.</translation> <translation id="7029814467594812963">Έξοδος από συνεδρία</translation> <translation id="7034339000180558234">Μετάδοση <ph name="TAB_NAME" /> σε <ph name="RECEIVER_NAME" /></translation> -<translation id="7052914147756339792">Ορισμός ταπετσαρίας...</translation> <translation id="7066646422045619941">Το δίκτυο αυτό έχει απενεργοποιηθεί από το διαχειριστή σας.</translation> <translation id="7067196344162293536">Αυτόματη περιστροφή</translation> <translation id="7098389117866926363">Συσκευή USB-C (πίσω αριστερή θύρα)</translation> @@ -355,6 +354,7 @@ <translation id="9194617393863864469">Σύνδεση με άλλον χρήστη...</translation> <translation id="9201131092683066720">Η μπαταρία είναι πλήρης <ph name="PERCENTAGE" />%.</translation> <translation id="9210037371811586452">Έξοδος από λειτουργία ενοποιημένης επιφάνειας εργασίας</translation> +<translation id="9215934040295798075">Ορισμός ταπετσαρίας</translation> <translation id="923686485342484400">Πατήστε Ctrl + Shift + Q δύο φορές για να αποσυνδεθείτε.</translation> <translation id="945522503751344254">Αποστολή σχολίων</translation> <translation id="98515147261107953">Οριζόντια</translation>
diff --git a/ash/strings/ash_strings_en-GB.xtb b/ash/strings/ash_strings_en-GB.xtb index d89dd3b3..5642e46 100644 --- a/ash/strings/ash_strings_en-GB.xtb +++ b/ash/strings/ash_strings_en-GB.xtb
@@ -266,7 +266,6 @@ <translation id="698231206551913481">All files and local data associated with this user will be permanently deleted once this user is removed.</translation> <translation id="7029814467594812963">Exit session</translation> <translation id="7034339000180558234">Casting <ph name="TAB_NAME" /> to <ph name="RECEIVER_NAME" /></translation> -<translation id="7052914147756339792">Set wallpaper...</translation> <translation id="7066646422045619941">This network is disabled by your administrator.</translation> <translation id="7067196344162293536">Auto rotate</translation> <translation id="7098389117866926363">USB-C device (left port in the back)</translation> @@ -355,6 +354,7 @@ <translation id="9194617393863864469">Sign in another user...</translation> <translation id="9201131092683066720">Battery is <ph name="PERCENTAGE" />% full.</translation> <translation id="9210037371811586452">Exiting unified desktop mode</translation> +<translation id="9215934040295798075">Set wallpaper</translation> <translation id="923686485342484400">Press Control Shift Q twice to sign out.</translation> <translation id="945522503751344254">Send feedback</translation> <translation id="98515147261107953">Landscape</translation>
diff --git a/ash/strings/ash_strings_es-419.xtb b/ash/strings/ash_strings_es-419.xtb index 6ab5b5f1..429ae504 100644 --- a/ash/strings/ash_strings_es-419.xtb +++ b/ash/strings/ash_strings_es-419.xtb
@@ -163,6 +163,7 @@ <translation id="4379531060876907730">Estas son las herramientas de la pluma stylus</translation> <translation id="4421231901400348175">Se está compartiendo el control de la pantalla con <ph name="HELPER_NAME" /> mediante la Asistencia remota.</translation> <translation id="4430019312045809116">Volumen</translation> +<translation id="4450893287417543264">No volver a mostrar</translation> <translation id="4479639480957787382">Ethernet</translation> <translation id="4481530544597605423">Dispositivos no sincronizados</translation> <translation id="4508225577814909926"><ph name="NAME" />: Conectando...</translation> @@ -195,6 +196,7 @@ <translation id="54609108002486618">Gestionado</translation> <translation id="553675580533261935">Salir de la sesión</translation> <translation id="5548285847212963613">La extensión "<ph name="EXTENSION_NAME" />" puede ayudarte a conectarte a la red.</translation> +<translation id="554893713779400387">Activar o desactivar el dictado</translation> <translation id="5571066253365925590">Bluetooth activado</translation> <translation id="5597451508971090205"><ph name="SHORT_WEEKDAY" />, <ph name="DATE" /></translation> <translation id="5600837773213129531">Presiona Ctrl + Alt + Z para inhabilitar los comentarios por voz.</translation> @@ -264,7 +266,6 @@ <translation id="698231206551913481">Todos los archivos y datos locales asociados a este usuario se borrarán de forma permanente una vez que se quite este usuario.</translation> <translation id="7029814467594812963">Salir de la sesión</translation> <translation id="7034339000180558234">Transmitiendo <ph name="TAB_NAME" /> a <ph name="RECEIVER_NAME" /></translation> -<translation id="7052914147756339792">Establecer fondo de pantalla...</translation> <translation id="7066646422045619941">El administrador inhabilitó esta red.</translation> <translation id="7067196344162293536">Rotación automática</translation> <translation id="7098389117866926363">Dispositivo USB-C (puerto izquierdo en la parte posterior)</translation> @@ -283,6 +284,7 @@ <translation id="7536035074519304529">Dirección IP: <ph name="ADDRESS" /></translation> <translation id="7561014039265304140"><ph name="DISPLAY_NAME" /> no admite una resolución de <ph name="SPECIFIED_RESOLUTION" />. La resolución se cambió a <ph name="FALLBACK_RESOLUTION" />.</translation> <translation id="7562368315689366235">Paleta de emoji</translation> +<translation id="7564874036684306347">Si mueves las ventanas a otro escritorio, puede producirse un comportamiento inesperado. Es posible que las próximas notificaciones, ventanas y cuadros de diálogo se dividan entre los escritorios.</translation> <translation id="7569509451529460200">Se habilitaron el braille y ChromeVox</translation> <translation id="7593891976182323525">Tecla de búsqueda o Mayús</translation> <translation id="7645176681409127223"><ph name="USER_NAME" /> (propietario/a)</translation> @@ -295,6 +297,7 @@ <translation id="7798302898096527229">Presiona mayúscula o la tecla de búsqueda para cancelarlo.</translation> <translation id="7814236020522506259"><ph name="HOUR" /> y <ph name="MINUTE" /></translation> <translation id="7829386189513694949">Señal fuerte</translation> +<translation id="7842569679327885685">Advertencia: Función experimental</translation> <translation id="7904094684485781019">El administrador de esta cuenta inhabilitó el acceso múltiple.</translation> <translation id="7933084174919150729">El Asistente de Google solo está disponible para el perfil principal.</translation> <translation id="79341161159229895">Cuenta administrada por <ph name="FIRST_PARENT_EMAIL" /> y <ph name="SECOND_PARENT_EMAIL" /></translation> @@ -347,9 +350,11 @@ <translation id="9091626656156419976">Se quitó la pantalla <ph name="DISPLAY_NAME" /></translation> <translation id="9111102763498581341">Desbloquear</translation> <translation id="9151726767154816831">Reiniciar y aplicar Powerwash para actualizar</translation> +<translation id="9179259655489829027">Esta función te permite alternar de forma rápida entre los usuarios que hayan accedido a su cuenta, sin necesidad de escribir la contraseña. Usa esta función solo con cuentas de confianza.</translation> <translation id="9194617393863864469">Acceder con otro usuario…</translation> <translation id="9201131092683066720">La batería tiene un <ph name="PERCENTAGE" /> % de carga.</translation> <translation id="9210037371811586452">Saliendo del modo de escritorio unificado</translation> +<translation id="9215934040295798075">Establecer fondo de pantalla</translation> <translation id="923686485342484400">Presiona Control Mayús Q dos veces para salir.</translation> <translation id="945522503751344254">Enviar comentarios</translation> <translation id="98515147261107953">Horizontal</translation>
diff --git a/ash/strings/ash_strings_es.xtb b/ash/strings/ash_strings_es.xtb index 987885c..4db58d5 100644 --- a/ash/strings/ash_strings_es.xtb +++ b/ash/strings/ash_strings_es.xtb
@@ -266,7 +266,6 @@ <translation id="698231206551913481">Una vez que se haya quitado este usuario, todos los archivos y datos asociados a él se eliminarán de forma permanente.</translation> <translation id="7029814467594812963">Cerrar sesión</translation> <translation id="7034339000180558234">Enviando <ph name="TAB_NAME" /> a <ph name="RECEIVER_NAME" /></translation> -<translation id="7052914147756339792">Establecer fondo de pantalla...</translation> <translation id="7066646422045619941">El administrador ha inhabilitado esta red.</translation> <translation id="7067196344162293536">Rotación automática</translation> <translation id="7098389117866926363">Dispositivo USB tipo C (puerto izquierdo situado en la parte trasera)</translation> @@ -355,6 +354,7 @@ <translation id="9194617393863864469">Iniciar sesión de otro usuario...</translation> <translation id="9201131092683066720">La batería está al <ph name="PERCENTAGE" />%.</translation> <translation id="9210037371811586452">Saliendo del modo de escritorio unificado</translation> +<translation id="9215934040295798075">Establecer fondo de pantalla</translation> <translation id="923686485342484400">Pulsa Control Mayús Q dos veces para cerrar sesión.</translation> <translation id="945522503751344254">Enviar comentarios</translation> <translation id="98515147261107953">Horizontal</translation>
diff --git a/ash/strings/ash_strings_et.xtb b/ash/strings/ash_strings_et.xtb index 2136e7d..1ad8eb2 100644 --- a/ash/strings/ash_strings_et.xtb +++ b/ash/strings/ash_strings_et.xtb
@@ -163,6 +163,7 @@ <translation id="4379531060876907730">Need on teie elektronpliiatsi tööriistad</translation> <translation id="4421231901400348175">Ekraani juhtimise jagamine isikuga <ph name="HELPER_NAME" /> kaugabi kaudu.</translation> <translation id="4430019312045809116">Helitugevus</translation> +<translation id="4450893287417543264">Ära kuva uuesti</translation> <translation id="4479639480957787382">Ethernet</translation> <translation id="4481530544597605423">Sidumata seadmed</translation> <translation id="4508225577814909926"><ph name="NAME" />: ühendamine ...</translation> @@ -195,6 +196,7 @@ <translation id="54609108002486618">Hallatud</translation> <translation id="553675580533261935">Seansist väljumine</translation> <translation id="5548285847212963613">Laiendus „<ph name="EXTENSION_NAME" />” aitab selle võrguga ühenduse loomisel.</translation> +<translation id="554893713779400387">Dikteerimise sisse-/väljalülitamine</translation> <translation id="5571066253365925590">Bluetooth on lubatud</translation> <translation id="5597451508971090205"><ph name="SHORT_WEEKDAY" />, <ph name="DATE" /></translation> <translation id="5600837773213129531">Vajutage suulise tagasiside keelamiseks klahvikombinatsiooni Ctrl + Alt + Z.</translation> @@ -264,7 +266,6 @@ <translation id="698231206551913481">Kõik selle kasutajaga seotud failid ja kohalikud andmed kustutatakse jäädavalt kohe, kui see kasutaja eemaldatakse.</translation> <translation id="7029814467594812963">Välju seansist</translation> <translation id="7034339000180558234">Vahelehe <ph name="TAB_NAME" /> ülekandmine seadmesse <ph name="RECEIVER_NAME" /></translation> -<translation id="7052914147756339792">Määra taustapilt ...</translation> <translation id="7066646422045619941">Teie administraator on selle võrgu keelanud.</translation> <translation id="7067196344162293536">Automaatne pööramine</translation> <translation id="7098389117866926363">C-tüüpi USB-seade (vasakpoolne port taga)</translation> @@ -283,6 +284,7 @@ <translation id="7536035074519304529">IP-adress: <ph name="ADDRESS" /></translation> <translation id="7561014039265304140">Üksus <ph name="DISPLAY_NAME" /> ei toeta eraldusvõimet <ph name="SPECIFIED_RESOLUTION" />. Eraldusvõime muudeti tagasi väärtusele <ph name="FALLBACK_RESOLUTION" /></translation> <translation id="7562368315689366235">Emotikonide palett</translation> +<translation id="7564874036684306347">Kui teisaldate aknad teisele töölauale, võib tagajärjeks olla ootamatu käitumine. Järgmised märguanded, aknad ja dialoogid võivad jaguneda eri töölaudade vahel.</translation> <translation id="7569509451529460200">Punktkiri ja ChromeVox on lubatud</translation> <translation id="7593891976182323525">Otsinguklahv või tõstuklahv</translation> <translation id="7645176681409127223"><ph name="USER_NAME" /> (omanik)</translation> @@ -295,6 +297,7 @@ <translation id="7798302898096527229">Tühistamiseks vajutage otsinguklahvi või tõstuklahvi.</translation> <translation id="7814236020522506259"><ph name="HOUR" /> ja <ph name="MINUTE" /></translation> <translation id="7829386189513694949">Tugev signaal</translation> +<translation id="7842569679327885685">Hoiatus: katseline funktsioon</translation> <translation id="7904094684485781019">Selle konto administraator on mitmesse kontosse sisselogimise keelanud.</translation> <translation id="7933084174919150729">Google'i assistent on saadaval ainult peamisel profiilil.</translation> <translation id="79341161159229895">Kontohaldurid: <ph name="FIRST_PARENT_EMAIL" /> ja <ph name="SECOND_PARENT_EMAIL" /></translation> @@ -347,9 +350,11 @@ <translation id="9091626656156419976">Ekraan <ph name="DISPLAY_NAME" /> eemaldati</translation> <translation id="9111102763498581341">Ava lukk</translation> <translation id="9151726767154816831">Värskendamiseks tuleb arvuti taaskäivitada ja teha Powerwash</translation> +<translation id="9179259655489829027">See funktsioon võimaldab teil parooli sisestamata pääseda kiirelt juurde kõigile sisselogitud kasutajatele. Kasutage seda funktsiooni vaid kontode puhul, mida usaldate.</translation> <translation id="9194617393863864469">Logi sisse teine kasutaja ...</translation> <translation id="9201131092683066720">Aku on <ph name="PERCENTAGE" />% täis.</translation> <translation id="9210037371811586452">Ühendatud töölaua režiimist väljumine</translation> +<translation id="9215934040295798075">Taustapildi määramine</translation> <translation id="923686485342484400">Väljalogimiseks vajutage kaks korda klahvikombinatsiooni Ctrl + tõstuklahv + Q.</translation> <translation id="945522503751344254">Saada tagasisidet</translation> <translation id="98515147261107953">Horisontaalpaigutus</translation>
diff --git a/ash/strings/ash_strings_fa.xtb b/ash/strings/ash_strings_fa.xtb index c0f10fd..186659b05 100644 --- a/ash/strings/ash_strings_fa.xtb +++ b/ash/strings/ash_strings_fa.xtb
@@ -267,7 +267,6 @@ <translation id="698231206551913481">اگر کاربر حذف شود، همه فایلها و دادههای محلی مربوط به او بهطور دائم حذف خواهند شد.</translation> <translation id="7029814467594812963">خروج از جلسه</translation> <translation id="7034339000180558234">ارسال محتوای <ph name="TAB_NAME" /> به <ph name="RECEIVER_NAME" /></translation> -<translation id="7052914147756339792">تنظیم کاغذدیواری...</translation> <translation id="7066646422045619941">این شبکه توسط سرپرست شما غیرفعال شده است.</translation> <translation id="7067196344162293536">چرخش خودکار</translation> <translation id="7098389117866926363">دستگاه USB-C (درگاه عقب سمت چپ)</translation> @@ -356,6 +355,7 @@ <translation id="9194617393863864469">ورود به سیستم حسابی دیگر...</translation> <translation id="9201131092683066720">باتری <ph name="PERCENTAGE" /> درصد پر است.</translation> <translation id="9210037371811586452">خروج از حالت میزکار یکپارچه</translation> +<translation id="9215934040295798075">تنظیم کاغذدیواری</translation> <translation id="923686485342484400">برای خروج از سیستم Control Shift Q را دو بار فشار دهید.</translation> <translation id="945522503751344254">ارسال بازخورد</translation> <translation id="98515147261107953">افقی</translation>
diff --git a/ash/strings/ash_strings_fi.xtb b/ash/strings/ash_strings_fi.xtb index 4db77a09..0748041 100644 --- a/ash/strings/ash_strings_fi.xtb +++ b/ash/strings/ash_strings_fi.xtb
@@ -269,7 +269,6 @@ <translation id="698231206551913481">Kun käyttäjä poistetaan, kaikki kyseiseen käyttäjään yhdistetyt tiedostot ja paikalliset tiedot poistetaan pysyvästi.</translation> <translation id="7029814467594812963">Sulje käyttökerta</translation> <translation id="7034339000180558234">Välilehti <ph name="TAB_NAME" /> peilataan kohteeseen <ph name="RECEIVER_NAME" />.</translation> -<translation id="7052914147756339792">Aseta taustakuva...</translation> <translation id="7066646422045619941">Järjestelmänvalvoja on poistanut tämän verkon käytöstä.</translation> <translation id="7067196344162293536">Automaattinen kierto</translation> <translation id="7098389117866926363">C-tyypin USB-laite (vasemmanpuoleinen takaportti)</translation> @@ -358,6 +357,7 @@ <translation id="9194617393863864469">Kirjaa sisään toinen käyttäjä…</translation> <translation id="9201131092683066720">Akussa on virtaa <ph name="PERCENTAGE" /> %.</translation> <translation id="9210037371811586452">Poistutaan yhtenäisen työpöydän tilasta</translation> +<translation id="9215934040295798075">Aseta taustakuva</translation> <translation id="923686485342484400">Kirjaudu ulos painamalla Control Shift Q kahdesti.</translation> <translation id="945522503751344254">Lähetä palautetta</translation> <translation id="98515147261107953">Vaakasuunta</translation>
diff --git a/ash/strings/ash_strings_fil.xtb b/ash/strings/ash_strings_fil.xtb index 6067052..c28424b 100644 --- a/ash/strings/ash_strings_fil.xtb +++ b/ash/strings/ash_strings_fil.xtb
@@ -266,7 +266,6 @@ <translation id="698231206551913481">Permanenteng made-delete ang lahat ng file at lokal na data na nauugnay sa user na ito kapag inalis na ang user na ito.</translation> <translation id="7029814467594812963">Lumabas sa session</translation> <translation id="7034339000180558234">Kina-cast ang <ph name="TAB_NAME" /> sa <ph name="RECEIVER_NAME" /></translation> -<translation id="7052914147756339792">Magtakda ng wallpaper...</translation> <translation id="7066646422045619941">Na-disable ng iyong administrator ang network na ito.</translation> <translation id="7067196344162293536">Awtomatikong pag-rotate</translation> <translation id="7098389117866926363">USB-C device (kaliwang port sa likod)</translation> @@ -355,6 +354,7 @@ <translation id="9194617393863864469">Mag-sign in ng isa pang user...</translation> <translation id="9201131092683066720">Ang baterya ay <ph name="PERCENTAGE" />% na puno.</translation> <translation id="9210037371811586452">Lumalabas sa unified desktop mode</translation> +<translation id="9215934040295798075">Magtakda ng wallpaper</translation> <translation id="923686485342484400">Pindutin ang Control Shift Q nang dalawang beses upang mag-sign out.</translation> <translation id="945522503751344254">Magpadala ng feedback...</translation> <translation id="98515147261107953">Landscape</translation>
diff --git a/ash/strings/ash_strings_fr.xtb b/ash/strings/ash_strings_fr.xtb index b09737b5..ebade7d 100644 --- a/ash/strings/ash_strings_fr.xtb +++ b/ash/strings/ash_strings_fr.xtb
@@ -267,7 +267,6 @@ <translation id="698231206551913481">L'ensemble des données locales et des fichiers associés à cet utilisateur seront définitivement supprimés en même temps que ce dernier.</translation> <translation id="7029814467594812963">Quitter la session</translation> <translation id="7034339000180558234">Diffusion de l'onglet "<ph name="TAB_NAME" />" sur "<ph name="RECEIVER_NAME" />"</translation> -<translation id="7052914147756339792">Définir un fond d'écran…</translation> <translation id="7066646422045619941">Votre administrateur a désactivé ce réseau.</translation> <translation id="7067196344162293536">Rotation automatique</translation> <translation id="7098389117866926363">Appareil USB de type C (port situé sur l'arrière de l'appareil, à gauche)</translation> @@ -356,6 +355,7 @@ <translation id="9194617393863864469">Se connecter avec un autre compte utilisateur…</translation> <translation id="9201131092683066720">La batterie est chargée à <ph name="PERCENTAGE" /> %.</translation> <translation id="9210037371811586452">Sortie du mode Bureau unifié</translation> +<translation id="9215934040295798075">Définir le fond d'écran</translation> <translation id="923686485342484400">Appuyez deux fois sur Contrôle + Maj + Q pour vous déconnecter.</translation> <translation id="945522503751344254">Envoyer le commentaire</translation> <translation id="98515147261107953">Paysage</translation>
diff --git a/ash/strings/ash_strings_gu.xtb b/ash/strings/ash_strings_gu.xtb index be3b1744..0d91bf4 100644 --- a/ash/strings/ash_strings_gu.xtb +++ b/ash/strings/ash_strings_gu.xtb
@@ -264,7 +264,6 @@ <translation id="698231206551913481">આ વપરાશકર્તા દૂર કરી દેવામાં આવે તે પછી આ વપરાશકર્તા સાથે સંકળાયેલ તમામ ફાઇલો અને સ્થાનિક ડેટા કાયમીરૂપે કાઢી નાખવામાં આવશે.</translation> <translation id="7029814467594812963">સત્રમાંથી બહાર નીકળો</translation> <translation id="7034339000180558234"><ph name="RECEIVER_NAME" /> પર <ph name="TAB_NAME" /> ને કાસ્ટ કરી રહ્યાં છીએ</translation> -<translation id="7052914147756339792">વૉલપેપર સેટ કરો...</translation> <translation id="7066646422045619941">આ નેટવર્ક તમારા વ્યવસ્થાપક દ્વારા અક્ષમ કરેલ છે.</translation> <translation id="7067196344162293536">સ્વતઃ ફેરવો</translation> <translation id="7098389117866926363">USB-C ઉપકરણ (પાછળની બાજુએ ડાબું પોર્ટ)</translation> @@ -350,6 +349,7 @@ <translation id="9194617393863864469">અન્ય વપરાશકર્તા સાઇન ઇન કરો...</translation> <translation id="9201131092683066720">બેટરી <ph name="PERCENTAGE" /> % પૂર્ણ છે.</translation> <translation id="9210037371811586452">એકીકૃત ડેસ્કટૉપ મોડથી બહાર નીકળે છે</translation> +<translation id="9215934040295798075">વૉલપેપર સેટ કરો</translation> <translation id="923686485342484400">સાઇન આઉટ કરવા માટે બે વાર Control Shift Q દબાવો.</translation> <translation id="945522503751344254">પ્રતિસાદ મોકલો</translation> <translation id="98515147261107953">લેન્ડસ્કૅપ</translation>
diff --git a/ash/strings/ash_strings_hi.xtb b/ash/strings/ash_strings_hi.xtb index 8a4136f2..3be68a0 100644 --- a/ash/strings/ash_strings_hi.xtb +++ b/ash/strings/ash_strings_hi.xtb
@@ -264,7 +264,6 @@ <translation id="698231206551913481">इस उपयोगकर्ता को निकाल दिए जाने पर, इस उपयोगकर्ता से संबद्ध सभी फ़ाइलों और स्थानीय डेटा को स्थायी रूप से हटा दिया जाएगा.</translation> <translation id="7029814467594812963">सत्र से बाहर निकलें</translation> <translation id="7034339000180558234"><ph name="TAB_NAME" /> को <ph name="RECEIVER_NAME" /> पर कास्ट किया जा रहा है</translation> -<translation id="7052914147756339792">वॉलपेपर सेट करें...</translation> <translation id="7066646422045619941">यह नेटवर्क आपके व्यवस्थापक द्वारा अक्षम किया गया है.</translation> <translation id="7067196344162293536">स्वत: घुमाएं</translation> <translation id="7098389117866926363">USB-C डिवाइस (पीछे बायां पोर्ट)</translation> @@ -350,6 +349,7 @@ <translation id="9194617393863864469">किसी अन्य उपयोगकर्ता में प्रवेश करें...</translation> <translation id="9201131092683066720">बैटरी <ph name="PERCENTAGE" />% भरी हुई है.</translation> <translation id="9210037371811586452">संयुक्त डेस्कटॉप मोड से बाहर निकाला जा रहा है</translation> +<translation id="9215934040295798075">वॉलपेपर सेट करें</translation> <translation id="923686485342484400">प्रस्थान करने के लिए दो बार Control Shift Q दबाएं.</translation> <translation id="945522503751344254">सुझाव भेजें</translation> <translation id="98515147261107953">भू-दृश्य</translation>
diff --git a/ash/strings/ash_strings_hr.xtb b/ash/strings/ash_strings_hr.xtb index ffc9b22..4c8a9519 100644 --- a/ash/strings/ash_strings_hr.xtb +++ b/ash/strings/ash_strings_hr.xtb
@@ -266,7 +266,6 @@ <translation id="698231206551913481">Sve datoteke i lokalni podaci povezani s ovim korisnikom trajno će se izbrisati nakon uklanjanja korisnika.</translation> <translation id="7029814467594812963">Izlazak iz sesije</translation> <translation id="7034339000180558234">Emitiranje kartice <ph name="TAB_NAME" /> na <ph name="RECEIVER_NAME" /></translation> -<translation id="7052914147756339792">Postavljanje pozadinske slike...</translation> <translation id="7066646422045619941">Tu mrežu onemogućio je vaš administrator.</translation> <translation id="7067196344162293536">Automatski izmjenjuj</translation> <translation id="7098389117866926363">USB-C uređaj (lijevi priključak sa stražnje strane)</translation> @@ -355,6 +354,7 @@ <translation id="9194617393863864469">Prijavljivanje drugog korisnika...</translation> <translation id="9201131092683066720">Baterija je <ph name="PERCENTAGE" />% puna.</translation> <translation id="9210037371811586452">Izlaz iz načina jedinstvene radne površine</translation> +<translation id="9215934040295798075">Postavi pozadinu</translation> <translation id="923686485342484400">Pritisnite Ctrl, Shift i Q dvaput da biste se odjavili.</translation> <translation id="945522503751344254">Slanje povratnih informacija</translation> <translation id="98515147261107953">Pejzaž</translation>
diff --git a/ash/strings/ash_strings_hu.xtb b/ash/strings/ash_strings_hu.xtb index e477a7f..8205e7e 100644 --- a/ash/strings/ash_strings_hu.xtb +++ b/ash/strings/ash_strings_hu.xtb
@@ -266,7 +266,6 @@ <translation id="698231206551913481">A felhasználó eltávolításakor az összes hozzá tartozó fájl és helyi adat is véglegesen törlődik.</translation> <translation id="7029814467594812963">Kilépés a munkamenetből</translation> <translation id="7034339000180558234"><ph name="TAB_NAME" /> átküldése ide: <ph name="RECEIVER_NAME" /></translation> -<translation id="7052914147756339792">Háttérkép beállítása...</translation> <translation id="7066646422045619941">Ezt a hálózatot letiltotta a rendszergazda.</translation> <translation id="7067196344162293536">Automatikus forgatás</translation> <translation id="7098389117866926363">C típusú USB-vel kompatibilis eszköz (bal hátsó port)</translation> @@ -355,6 +354,7 @@ <translation id="9194617393863864469">Bejelentkezés másik felhasználóként…</translation> <translation id="9201131092683066720">Az akkumulátor töltöttsége: <ph name="PERCENTAGE" />%.</translation> <translation id="9210037371811586452">Kilépés az Egységes asztali módból</translation> +<translation id="9215934040295798075">Háttérkép beállítása</translation> <translation id="923686485342484400">Nyomja meg a Ctrl Shift Q billentyűkombinációt kétszer a kijelentkezéshez.</translation> <translation id="945522503751344254">Visszajelzés küldése</translation> <translation id="98515147261107953">Fekvő</translation>
diff --git a/ash/strings/ash_strings_id.xtb b/ash/strings/ash_strings_id.xtb index a890ac6e..ecb997f 100644 --- a/ash/strings/ash_strings_id.xtb +++ b/ash/strings/ash_strings_id.xtb
@@ -266,7 +266,6 @@ <translation id="698231206551913481">Semua file dan data lokal yang dikaitkan ke pengguna ini akan dihapus secara permanen setelah pengguna ini dihapus.</translation> <translation id="7029814467594812963">Keluar dari sesi</translation> <translation id="7034339000180558234">Mentransmisi <ph name="TAB_NAME" /> ke <ph name="RECEIVER_NAME" /></translation> -<translation id="7052914147756339792">Setel wallpaper...</translation> <translation id="7066646422045619941">Jaringan ini dinonaktifkan oleh administrator Anda.</translation> <translation id="7067196344162293536">Putar otomatis</translation> <translation id="7098389117866926363">Perangkat USB-C (port belakang sebelah kiri)</translation> @@ -355,6 +354,7 @@ <translation id="9194617393863864469">Masukkan pengguna lain...</translation> <translation id="9201131092683066720">Baterai terisi <ph name="PERCENTAGE" />%.</translation> <translation id="9210037371811586452">Keluar dari mode desktop terpadu</translation> +<translation id="9215934040295798075">Setel wallpaper</translation> <translation id="923686485342484400">Tekan Control Shift Q dua kali untuk keluar.</translation> <translation id="945522503751344254">Kirim masukan</translation> <translation id="98515147261107953">Lanskap</translation>
diff --git a/ash/strings/ash_strings_it.xtb b/ash/strings/ash_strings_it.xtb index 02b0a038..cceb70a 100644 --- a/ash/strings/ash_strings_it.xtb +++ b/ash/strings/ash_strings_it.xtb
@@ -163,6 +163,7 @@ <translation id="4379531060876907730">Ecco gli strumenti per il tuo stilo</translation> <translation id="4421231901400348175">Condividi il controllo dello schermo con <ph name="HELPER_NAME" /> tramite Assistenza remota.</translation> <translation id="4430019312045809116">Volume</translation> +<translation id="4450893287417543264">Non mostrare più</translation> <translation id="4479639480957787382">Ethernet</translation> <translation id="4481530544597605423">Dispositivi disaccoppiati</translation> <translation id="4508225577814909926"><ph name="NAME" />: connessione...</translation> @@ -195,6 +196,7 @@ <translation id="54609108002486618">Gestita</translation> <translation id="553675580533261935">Uscita dalla sessione</translation> <translation id="5548285847212963613">L'estensione "<ph name="EXTENSION_NAME" />" può essere utile per il collegamento a questa rete.</translation> +<translation id="554893713779400387">Attiva/disattiva la dettatura</translation> <translation id="5571066253365925590">Bluetooth attivo</translation> <translation id="5597451508971090205"><ph name="SHORT_WEEKDAY" />, <ph name="DATE" /></translation> <translation id="5600837773213129531">Premi CTRL + ALT + Z per disattivare la funzione di lettura vocale.</translation> @@ -264,7 +266,6 @@ <translation id="698231206551913481">Tutti i file e i dati locali associati a questo utente verranno eliminati definitivamente in seguito alla rimozione dell'utente.</translation> <translation id="7029814467594812963">Esci da sessione</translation> <translation id="7034339000180558234">Trasmissione di <ph name="TAB_NAME" /> a <ph name="RECEIVER_NAME" /> in corso</translation> -<translation id="7052914147756339792">Imposta sfondo...</translation> <translation id="7066646422045619941">Questa rete è stata disattivata dall'amministratore.</translation> <translation id="7067196344162293536">Ruota in modo automatico</translation> <translation id="7098389117866926363">Dispositivo USB-C (porta posteriore sinistra)</translation> @@ -283,6 +284,7 @@ <translation id="7536035074519304529">Indirizzo IP: <ph name="ADDRESS" /></translation> <translation id="7561014039265304140"><ph name="DISPLAY_NAME" /> non supporta <ph name="SPECIFIED_RESOLUTION" />. La risoluzione è stata modificata in <ph name="FALLBACK_RESOLUTION" /></translation> <translation id="7562368315689366235">Riquadro di emoji</translation> +<translation id="7564874036684306347">Lo spostamento delle finestre su un altro desktop potrebbe causare comportamenti imprevisti. Le finestre, le notifiche e le finestre di dialogo successive potrebbero essere divise tra i desktop.</translation> <translation id="7569509451529460200">Braille e ChromeVox attivati</translation> <translation id="7593891976182323525">Tasto per la ricerca o Maiusc</translation> <translation id="7645176681409127223"><ph name="USER_NAME" /> (proprietario)</translation> @@ -295,6 +297,7 @@ <translation id="7798302898096527229">Premi il tasto per la ricerca o MAIUSC per annullare.</translation> <translation id="7814236020522506259"><ph name="HOUR" /> e <ph name="MINUTE" /></translation> <translation id="7829386189513694949">Segnale forte</translation> +<translation id="7842569679327885685">Avviso: funzione sperimentale</translation> <translation id="7904094684485781019">L'amministratore di questo account ha bloccato l'accesso simultaneo.</translation> <translation id="7933084174919150729">L'Assistente Google è disponibile solo per il profilo principale.</translation> <translation id="79341161159229895">Account gestito da <ph name="FIRST_PARENT_EMAIL" /> e <ph name="SECOND_PARENT_EMAIL" /></translation> @@ -347,9 +350,11 @@ <translation id="9091626656156419976">Schermo <ph name="DISPLAY_NAME" /> rimosso</translation> <translation id="9111102763498581341">Sblocca</translation> <translation id="9151726767154816831">Riavvia ed esegui Powerwash per aggiornare</translation> +<translation id="9179259655489829027">Questa funzione consente di accedere rapidamente a qualsiasi utente che abbia effettuato l'accesso, senza bisogno di una password. Utilizza questa funzione solo con gli account che consideri attendibili.</translation> <translation id="9194617393863864469">Accedi con un altro account utente...</translation> <translation id="9201131092683066720">Percentuale di caricamento della batteria: <ph name="PERCENTAGE" />%.</translation> <translation id="9210037371811586452">Uscita dalla modalità Desktop unificato</translation> +<translation id="9215934040295798075">Imposta sfondo</translation> <translation id="923686485342484400">Premi due volte Control Maiusc Q per uscire.</translation> <translation id="945522503751344254">Invia feedback</translation> <translation id="98515147261107953">Orizzontale</translation>
diff --git a/ash/strings/ash_strings_iw.xtb b/ash/strings/ash_strings_iw.xtb index b100986..bf90e65 100644 --- a/ash/strings/ash_strings_iw.xtb +++ b/ash/strings/ash_strings_iw.xtb
@@ -266,7 +266,6 @@ <translation id="698231206551913481">כל הקבצים והנתונים המשויכים למשתמש זה יימחקו לצמיתות ברגע שהמשתמש יוסר.</translation> <translation id="7029814467594812963">צא מההפעלה</translation> <translation id="7034339000180558234">מעביר את <ph name="TAB_NAME" /> אל <ph name="RECEIVER_NAME" /></translation> -<translation id="7052914147756339792">הגדר טפט...</translation> <translation id="7066646422045619941">מנהל המערכת השבית את הרשת הזו.</translation> <translation id="7067196344162293536">סיבוב אוטומטי</translation> <translation id="7098389117866926363">מכשיר עם יציאת USB-C (יציאה שמאלית מאחור)</translation> @@ -359,6 +358,7 @@ <translation id="9194617393863864469">הוסף משתמש אחר...</translation> <translation id="9201131092683066720">הסוללה טעונה ברמה של <ph name="PERCENTAGE" />%.</translation> <translation id="9210037371811586452">יציאה ממצב Unified Desktop</translation> +<translation id="9215934040295798075">הגדר טפט</translation> <translation id="923686485342484400">הקש פעמיים על Control Shift Q כדי לצאת.</translation> <translation id="945522503751344254"> שליחת משוב</translation> <translation id="98515147261107953">לרוחב</translation>
diff --git a/ash/strings/ash_strings_ja.xtb b/ash/strings/ash_strings_ja.xtb index 40edd79a2..0604232 100644 --- a/ash/strings/ash_strings_ja.xtb +++ b/ash/strings/ash_strings_ja.xtb
@@ -266,7 +266,6 @@ <translation id="698231206551913481">このユーザーを削除すると、このユーザーに関連付けられているファイルとローカルデータもすべて完全に削除されます。</translation> <translation id="7029814467594812963">セッションを終了</translation> <translation id="7034339000180558234"><ph name="TAB_NAME" /> を <ph name="RECEIVER_NAME" /> にキャスト中</translation> -<translation id="7052914147756339792">壁紙を設定...</translation> <translation id="7066646422045619941">このネットワークは管理者によって無効にされています。</translation> <translation id="7067196344162293536">自動回転</translation> <translation id="7098389117866926363">USB-C デバイス(背面左のポート)</translation> @@ -356,6 +355,7 @@ <translation id="9194617393863864469">別のユーザーとしてログイン...</translation> <translation id="9201131092683066720">バッテリー残量: <ph name="PERCENTAGE" />%。</translation> <translation id="9210037371811586452">デスクトップ統合モードの終了中</translation> +<translation id="9215934040295798075">壁紙を設定</translation> <translation id="923686485342484400">ログアウトするには、Ctrl Shift Q を 2 回押します。</translation> <translation id="945522503751344254">フィードバックを送信</translation> <translation id="98515147261107953">横</translation>
diff --git a/ash/strings/ash_strings_kn.xtb b/ash/strings/ash_strings_kn.xtb index 0425b123..fe612992 100644 --- a/ash/strings/ash_strings_kn.xtb +++ b/ash/strings/ash_strings_kn.xtb
@@ -265,7 +265,6 @@ <translation id="698231206551913481">ಒಮ್ಮೆ ಈ ಬಳಕೆದಾರರನ್ನು ತೆಗೆದುಹಾಕಿದಾಗ ಈ ಬಳಕೆದಾರರೊಂದಿಗೆ ಸಂಯೋಜಿತವಾಗಿರುವ ಎಲ್ಲಾ ಫೈಲ್ಗಳು ಮತ್ತು ಸ್ಥಳೀಯ ಡೇಟಾವನ್ನು ಶಾಶ್ವತವಾಗಿ ಅಳಿಸಲಾಗುತ್ತದೆ.</translation> <translation id="7029814467594812963">ಸೆಶನ್ನಿಂದ ನಿರ್ಗಮಿಸಿ</translation> <translation id="7034339000180558234"><ph name="TAB_NAME" /> ಅನ್ನು <ph name="RECEIVER_NAME" /> ಗೆ ಬಿತ್ತರಿಸಲಾಗುತ್ತಿದೆ</translation> -<translation id="7052914147756339792">ವಾಲ್ಪೇಪರ್ ಅನ್ನು ಹೊಂದಿಸಿ...</translation> <translation id="7066646422045619941">ಈ ನೆಟ್ವರ್ಕ್ ಅನ್ನು ನಿಮ್ಮ ನಿರ್ವಾಹಕರು ನಿಷ್ಕ್ರಿಯಗೊಳಿಸಿದ್ದಾರೆ.</translation> <translation id="7067196344162293536">ಸ್ವಯಂ ತಿರುಗಿಸು</translation> <translation id="7098389117866926363">USB-C ಸಾಧನ (ಹಿಂಭಾಗದಲ್ಲಿ ಎಡ ಪೋರ್ಟ್)</translation> @@ -351,6 +350,7 @@ <translation id="9194617393863864469">ಮತ್ತೊಂದು ಬಳಕೆದಾರರಾಗಿ ಸೈನ್ ಇನ್ ಮಾಡಿ...</translation> <translation id="9201131092683066720">ಬ್ಯಾಟರಿ <ph name="PERCENTAGE" />% ಪೂರ್ಣವಾಗಿದೆ.</translation> <translation id="9210037371811586452">ಏಕೀಕೃತ ಡೆಸ್ಕ್ಟಾಪ್ ಮೋಡ್ನಿಂದ ನಿರ್ಗಮಿಸಲಾಗುತ್ತಿದೆ</translation> +<translation id="9215934040295798075">ವಾಲ್ಪೇಪರ್ ಹೊಂದಿಸಿ</translation> <translation id="923686485342484400">ಸೈನ್ ಔಟ್ ಮಾಡಲು Control Shift Q ಅನ್ನು ಎರಡುಬಾರಿ ಒತ್ತಿರಿ.</translation> <translation id="945522503751344254">ಪ್ರತಿಕ್ರಿಯೆಯನ್ನು ಕಳುಹಿಸಿ</translation> <translation id="98515147261107953">ಲ್ಯಾಂಡ್ಸ್ಕೇಪ್</translation>
diff --git a/ash/strings/ash_strings_ko.xtb b/ash/strings/ash_strings_ko.xtb index f14b288..27fbdb9 100644 --- a/ash/strings/ash_strings_ko.xtb +++ b/ash/strings/ash_strings_ko.xtb
@@ -163,6 +163,7 @@ <translation id="4379531060876907730">스타일러스 도구입니다</translation> <translation id="4421231901400348175">원격 지원을 통해 <ph name="HELPER_NAME" />와(과) 화면 제어 공유</translation> <translation id="4430019312045809116">볼륨</translation> +<translation id="4450893287417543264">다시 표시하지 않음</translation> <translation id="4479639480957787382">이더넷</translation> <translation id="4481530544597605423">페어링 해제된 기기</translation> <translation id="4508225577814909926"><ph name="NAME" />: 연결하는 중...</translation> @@ -195,6 +196,7 @@ <translation id="54609108002486618">관리</translation> <translation id="553675580533261935">세션 종료</translation> <translation id="5548285847212963613">확장 프로그램('<ph name="EXTENSION_NAME" />')을 사용하여 이 네트워크에 연결할 수 있습니다.</translation> +<translation id="554893713779400387">음성기록 전환</translation> <translation id="5571066253365925590">블루투스를 사용함</translation> <translation id="5597451508971090205"><ph name="DATE" /> <ph name="SHORT_WEEKDAY" /></translation> <translation id="5600837773213129531">음성 피드백을 사용 중지하려면 Ctrl + Alt + Z를 누르세요.</translation> @@ -264,7 +266,6 @@ <translation id="698231206551913481">이 사용자를 제거하면 해당 사용자와 연결되어 있는 모든 파일 및 로컬 데이터가 영구적으로 삭제됩니다.</translation> <translation id="7029814467594812963">세션 종료</translation> <translation id="7034339000180558234"><ph name="TAB_NAME" />을(를) <ph name="RECEIVER_NAME" />(으)로 전송 중</translation> -<translation id="7052914147756339792">배경화면 설정...</translation> <translation id="7066646422045619941">관리자가 사용 중지한 네트워크입니다.</translation> <translation id="7067196344162293536">자동 회전</translation> <translation id="7098389117866926363">USB-C 기기(좌측 후면 포트)</translation> @@ -283,6 +284,7 @@ <translation id="7536035074519304529">IP 주소: <ph name="ADDRESS" /></translation> <translation id="7561014039265304140"><ph name="DISPLAY_NAME" />에서 <ph name="SPECIFIED_RESOLUTION" />을(를) 지원하지 않습니다. 해상도가 <ph name="FALLBACK_RESOLUTION" />(으)로 변경되었습니다.</translation> <translation id="7562368315689366235">그림 이모티콘 팔레트</translation> +<translation id="7564874036684306347">창을 다른 데스크톱으로 이동하면 예기치 못한 동작이 나타날 수 있습니다. 이후의 알림, 창, 대화상자가 데스크톱 간에 분할될 수 있습니다.</translation> <translation id="7569509451529460200">점자와 ChromeVox가 사용 설정되었습니다.</translation> <translation id="7593891976182323525">검색 또는 Shift 키</translation> <translation id="7645176681409127223"><ph name="USER_NAME" />(소유자)</translation> @@ -295,6 +297,7 @@ <translation id="7798302898096527229">취소하려면 검색 또는 Shift 키를 누르세요.</translation> <translation id="7814236020522506259"><ph name="HOUR" />시간 <ph name="MINUTE" />분</translation> <translation id="7829386189513694949">신호 강함</translation> +<translation id="7842569679327885685">경고: 실험 기능</translation> <translation id="7904094684485781019">이 계정의 관리자가 멀티 로그인을 허용하지 않습니다.</translation> <translation id="7933084174919150729">Google 어시스턴트는 기본 프로필에서만 사용할 수 있습니다.</translation> <translation id="79341161159229895">계정 관리자: <ph name="FIRST_PARENT_EMAIL" /> 및 <ph name="SECOND_PARENT_EMAIL" /></translation> @@ -347,9 +350,11 @@ <translation id="9091626656156419976">디스플레이 <ph name="DISPLAY_NAME" /> 제거됨</translation> <translation id="9111102763498581341">잠금 해제</translation> <translation id="9151726767154816831">업데이트하려면 다시 시작하고 Powerwash하세요.</translation> +<translation id="9179259655489829027">이 기능을 사용하면 로그인한 모든 사용자에게 비밀번호 없이 액세스할 수 있습니다. 이 기능은 신뢰할 수 있는 계정에만 사용하시기 바랍니다.</translation> <translation id="9194617393863864469">다른 사용자로 로그인...</translation> <translation id="9201131092683066720">배터리가 <ph name="PERCENTAGE" />% 남았습니다.</translation> <translation id="9210037371811586452">통합 바탕화면 모드 종료 중</translation> +<translation id="9215934040295798075">배경화면 설정</translation> <translation id="923686485342484400">로그아웃하려면 Ctrl+Shift+Q를 두 번 누릅니다.</translation> <translation id="945522503751344254">의견 보내기</translation> <translation id="98515147261107953">가로 방향</translation>
diff --git a/ash/strings/ash_strings_lt.xtb b/ash/strings/ash_strings_lt.xtb index db4841f..2b18aa88 100644 --- a/ash/strings/ash_strings_lt.xtb +++ b/ash/strings/ash_strings_lt.xtb
@@ -267,7 +267,6 @@ <translation id="698231206551913481">Visi failai ir su šiuo naudotoju susiję duomenys bus ištrinti visam laikui, kai šis naudotojas bus pašalintas.</translation> <translation id="7029814467594812963">Išeiti iš sesijos</translation> <translation id="7034339000180558234">Perduodama „<ph name="TAB_NAME" />“ į „<ph name="RECEIVER_NAME" />“</translation> -<translation id="7052914147756339792">Nustatyti darbalaukio foną...</translation> <translation id="7066646422045619941">Šį tinklą išjungė jūsų administratorius.</translation> <translation id="7067196344162293536">Automatinis kaitaliojimas</translation> <translation id="7098389117866926363">USB-C įrenginys (prievadas kairėje, užpakalinėje dalyje)</translation> @@ -356,6 +355,7 @@ <translation id="9194617393863864469">Prisijungti kaip kitas naudotojas...</translation> <translation id="9201131092683066720">Likusi akumuliatoriaus įkrova: <ph name="PERCENTAGE" /> %.</translation> <translation id="9210037371811586452">Išjungiamas sujungiamojo darbalaukio režimas</translation> +<translation id="9215934040295798075">Nustatyti ekrano foną</translation> <translation id="923686485342484400">Jei norite atsijungti, du kartus paspauskite „Control“ + „Shift“ + Q.</translation> <translation id="945522503751344254">Siųsti atsiliepimą</translation> <translation id="98515147261107953">Gulsčias</translation>
diff --git a/ash/strings/ash_strings_lv.xtb b/ash/strings/ash_strings_lv.xtb index d89d2ff..c2b2615 100644 --- a/ash/strings/ash_strings_lv.xtb +++ b/ash/strings/ash_strings_lv.xtb
@@ -266,7 +266,6 @@ <translation id="698231206551913481">Visi faili un lokālie dati, kas ir saistīti ar šo lietotāju, tiks neatgriezeniski dzēsti, tiklīdz šis lietotājs tiks noņemts.</translation> <translation id="7029814467594812963">Iziet no sesijas</translation> <translation id="7034339000180558234">Notiek cilnes <ph name="TAB_NAME" /> apraide šādā vietā: <ph name="RECEIVER_NAME" /></translation> -<translation id="7052914147756339792">Iestatīt fona tapeti...</translation> <translation id="7066646422045619941">Jūsu administrators atspējoja šo tīklu.</translation> <translation id="7067196344162293536">Pagriezt automātiski</translation> <translation id="7098389117866926363">USB-C ierīce (pieslēgvieta aizmugurē pa kreisi)</translation> @@ -355,6 +354,7 @@ <translation id="9194617393863864469">Pierakstīties kā citam lietotājam...</translation> <translation id="9201131092683066720">Akumulatora uzlādes līmenis: <ph name="PERCENTAGE" />%</translation> <translation id="9210037371811586452">Notiek iziešana no vienotās darbvirsmas režīma</translation> +<translation id="9215934040295798075">Iestatīt fona tapeti</translation> <translation id="923686485342484400">Lai izrakstītos, divas reizes nospiediet taustiņu kombināciju Ctrl+Shift+Q.</translation> <translation id="945522503751344254">Sūtīt atsauksmes</translation> <translation id="98515147261107953">Ainava</translation>
diff --git a/ash/strings/ash_strings_ml.xtb b/ash/strings/ash_strings_ml.xtb index 162b514..250c3db 100644 --- a/ash/strings/ash_strings_ml.xtb +++ b/ash/strings/ash_strings_ml.xtb
@@ -264,7 +264,6 @@ <translation id="698231206551913481">ഈ ഉപയോക്താവിനെ നീക്കംചെയ്യുമ്പോൾ അതോടൊപ്പം അയാളുമായി ബന്ധപ്പെട്ട എല്ലാ ഫയലുകളും പ്രാദേശിക വിവരങ്ങളും ശാശ്വതമായി ഇല്ലാതാക്കപ്പെടും.</translation> <translation id="7029814467594812963">സെഷനിൽ നിന്ന് പുറത്തുകടക്കുക</translation> <translation id="7034339000180558234"><ph name="RECEIVER_NAME" /> എന്നതിലേക്ക് <ph name="TAB_NAME" /> കാസ്റ്റുചെയ്യുന്നു</translation> -<translation id="7052914147756339792">വാൾപേപ്പർ സജ്ജമാക്കുക...</translation> <translation id="7066646422045619941">നിങ്ങളുടെ അഡ്മിനിസ്ട്രേറ്റർ ഈ നെറ്റ്വർക്ക് പ്രവർത്തനരഹിതമാക്കി.</translation> <translation id="7067196344162293536">സ്വയമേവ തിരിക്കുക</translation> <translation id="7098389117866926363">USB-C ഉപകരണം (പുറകിൽ ഇടതുവശത്തെ പോർട്ട്)</translation> @@ -350,6 +349,7 @@ <translation id="9194617393863864469">മറ്റൊരു ഉപയോക്താവായി സൈൻ ഇൻ ചെയ്യുക...</translation> <translation id="9201131092683066720">ബാറ്ററി <ph name="PERCENTAGE" />% നിറഞ്ഞു.</translation> <translation id="9210037371811586452">ഏകീകൃത ഡെസ്ക്ടോപ്പ് മോഡിൽ നിന്ന് പുറത്തുകടക്കുന്നു</translation> +<translation id="9215934040295798075">വാൾപേപ്പർ സജ്ജമാക്കുക</translation> <translation id="923686485342484400">സൈൻ ഔട്ട് ചെയ്യുന്നതിന് രണ്ടുതവണ Control Shift Q അമർത്തുക.</translation> <translation id="945522503751344254">ഫീഡ്ബാക്ക് അയയ്ക്കുക</translation> <translation id="98515147261107953">ലാന്ഡ്സ്കേപ്പ്</translation>
diff --git a/ash/strings/ash_strings_mr.xtb b/ash/strings/ash_strings_mr.xtb index 6942e64..71cdaeb 100644 --- a/ash/strings/ash_strings_mr.xtb +++ b/ash/strings/ash_strings_mr.xtb
@@ -264,7 +264,6 @@ <translation id="698231206551913481">एकदा हा वापरकर्ता काढल्यानंतर या वापरकर्त्याशी संबद्ध सर्व फायली आणि स्थानिक डेटा कायमचा हटविला जाईल.</translation> <translation id="7029814467594812963">सत्र निर्गमन करा</translation> <translation id="7034339000180558234"><ph name="RECEIVER_NAME" /> वर <ph name="TAB_NAME" /> कास्ट करीत आहे</translation> -<translation id="7052914147756339792">वॉलपेपर सेट करा...</translation> <translation id="7066646422045619941">हे नेटवर्क आपल्या प्रशासकाने अक्षम केले आहे.</translation> <translation id="7067196344162293536">स्वयं फिरवा</translation> <translation id="7098389117866926363">USB-C डिव्हाइस (मागील बाजूचे डावे पोर्ट)</translation> @@ -350,6 +349,7 @@ <translation id="9194617393863864469">दुसरा वापरकर्ता साइन इन करा...</translation> <translation id="9201131092683066720">बॅटरी <ph name="PERCENTAGE" />% भरली आहे.</translation> <translation id="9210037371811586452">एकीकृत डेस्कटॉप मोड मधून बाहेर पडत आहे</translation> +<translation id="9215934040295798075">वॉलपेपर सेट करा</translation> <translation id="923686485342484400">दोनदा साइन आउट करण्यासाठी Control Shift Q दोनदा दाबा.</translation> <translation id="945522503751344254">अभिप्राय पाठवा</translation> <translation id="98515147261107953">लँडस्केप</translation>
diff --git a/ash/strings/ash_strings_ms.xtb b/ash/strings/ash_strings_ms.xtb index 9d240af..2a03ee6 100644 --- a/ash/strings/ash_strings_ms.xtb +++ b/ash/strings/ash_strings_ms.xtb
@@ -266,7 +266,6 @@ <translation id="698231206551913481">Semua fail dan data yang berkaitan dengan pengguna ini akan dipadamkan secara kekal selepas pengguna ini dialih keluar.</translation> <translation id="7029814467594812963">Keluar dari sesi</translation> <translation id="7034339000180558234">Menghantar <ph name="TAB_NAME" /> ke <ph name="RECEIVER_NAME" /></translation> -<translation id="7052914147756339792">Tetapkan kertas dinding...</translation> <translation id="7066646422045619941">Rangkaian ini dilumpuhkan oleh pentadbir anda.</translation> <translation id="7067196344162293536">Auto putar</translation> <translation id="7098389117866926363">Peranti USB-C (port kiri di belakang)</translation> @@ -355,6 +354,7 @@ <translation id="9194617393863864469">Log masuk pengguna lain...</translation> <translation id="9201131092683066720">Bateri <ph name="PERCENTAGE" />% penuh.</translation> <translation id="9210037371811586452">Keluar daripada mod desktop bersatu</translation> +<translation id="9215934040295798075">Tetapkan kertas dinding</translation> <translation id="923686485342484400">Tekan Tekan Shift Q dua kali untuk keluar.</translation> <translation id="945522503751344254">Hantar maklum balas</translation> <translation id="98515147261107953">Lanskap</translation>
diff --git a/ash/strings/ash_strings_nl.xtb b/ash/strings/ash_strings_nl.xtb index 0eef9724..7d726bc6 100644 --- a/ash/strings/ash_strings_nl.xtb +++ b/ash/strings/ash_strings_nl.xtb
@@ -266,7 +266,6 @@ <translation id="698231206551913481">Alle bestanden en lokale gegevens die zijn gekoppeld aan deze gebruiker, worden definitief verwijderd zodra deze gebruiker is verwijderd.</translation> <translation id="7029814467594812963">Sessie sluiten</translation> <translation id="7034339000180558234"><ph name="TAB_NAME" /> wordt gecast naar <ph name="RECEIVER_NAME" /></translation> -<translation id="7052914147756339792">Achtergrond instellen...</translation> <translation id="7066646422045619941">Dit netwerk is uitgeschakeld door je beheerder.</translation> <translation id="7067196344162293536">Automatisch draaien</translation> <translation id="7098389117866926363">USB-C-apparaat (poort links aan de achterkant)</translation> @@ -355,6 +354,7 @@ <translation id="9194617393863864469">Een andere gebruiker inloggen...</translation> <translation id="9201131092683066720">De batterij is <ph name="PERCENTAGE" />% vol.</translation> <translation id="9210037371811586452">Samengestelde desktopmodus wordt gesloten</translation> +<translation id="9215934040295798075">Achtergrond instellen</translation> <translation id="923686485342484400">Druk twee keer op Control+Shift+Q om uit te loggen.</translation> <translation id="945522503751344254">Feedback verzenden</translation> <translation id="98515147261107953">Liggend</translation>
diff --git a/ash/strings/ash_strings_no.xtb b/ash/strings/ash_strings_no.xtb index 48d04b9..4e19d56 100644 --- a/ash/strings/ash_strings_no.xtb +++ b/ash/strings/ash_strings_no.xtb
@@ -266,7 +266,6 @@ <translation id="698231206551913481">Alle filer og lokale data som er tilknyttet denne brukeren, slettes permanent når brukeren fjernes.</translation> <translation id="7029814467594812963">Avslutt økten</translation> <translation id="7034339000180558234">Caster <ph name="TAB_NAME" /> til <ph name="RECEIVER_NAME" /></translation> -<translation id="7052914147756339792">Angi bakgrunn</translation> <translation id="7066646422045619941">Administratoren din har slått av dette nettverket.</translation> <translation id="7067196344162293536">Automatisk retning</translation> <translation id="7098389117866926363">USB-C-enhet (venstre port på baksiden)</translation> @@ -355,6 +354,7 @@ <translation id="9194617393863864469">Logg på en annen bruker</translation> <translation id="9201131092683066720">Batteriet er <ph name="PERCENTAGE" /> % fullt</translation> <translation id="9210037371811586452">Avslutter enhetlig skrivebordsmodus</translation> +<translation id="9215934040295798075">Velg bakgrunn</translation> <translation id="923686485342484400">Trykk på Control+Shift+Q to ganger for å logge av.</translation> <translation id="945522503751344254">Gi tilbakemelding</translation> <translation id="98515147261107953">Liggende</translation>
diff --git a/ash/strings/ash_strings_pl.xtb b/ash/strings/ash_strings_pl.xtb index c49f2b4..ce11093 100644 --- a/ash/strings/ash_strings_pl.xtb +++ b/ash/strings/ash_strings_pl.xtb
@@ -267,7 +267,6 @@ <translation id="698231206551913481">Usunięcie tego użytkownika spowoduje trwałe usunięcie wszystkich związanych z nim plików i danych lokalnych.</translation> <translation id="7029814467594812963">Zakończ sesję</translation> <translation id="7034339000180558234">Przesyłam kartę <ph name="TAB_NAME" /> do: <ph name="RECEIVER_NAME" /></translation> -<translation id="7052914147756339792">Ustaw tapetę...</translation> <translation id="7066646422045619941">Ta sieć została wyłączona przez administratora.</translation> <translation id="7067196344162293536">Obracanie automatyczne</translation> <translation id="7098389117866926363">Urządzenie USB-C (lewy port z tyłu)</translation> @@ -356,6 +355,7 @@ <translation id="9194617393863864469">Zaloguj innego użytkownika...</translation> <translation id="9201131092683066720">Naładowanie baterii: <ph name="PERCENTAGE" />%.</translation> <translation id="9210037371811586452">Wyłączam tryb ujednoliconego pulpitu</translation> +<translation id="9215934040295798075">Ustaw tapetę</translation> <translation id="923686485342484400">Naciśnij dwukrotnie Control Shift Q, by się wylogować.</translation> <translation id="945522503751344254">Wyślij zgłoszenie</translation> <translation id="98515147261107953">Poziomo</translation>
diff --git a/ash/strings/ash_strings_pt-BR.xtb b/ash/strings/ash_strings_pt-BR.xtb index e86a47fc..09caf9c 100644 --- a/ash/strings/ash_strings_pt-BR.xtb +++ b/ash/strings/ash_strings_pt-BR.xtb
@@ -268,7 +268,6 @@ <translation id="698231206551913481">Todos os arquivos e dados locais associados a este usuário serão excluídos permanentemente quando o usuário for removido.</translation> <translation id="7029814467594812963">Sair da sessão</translation> <translation id="7034339000180558234">Transmitindo <ph name="TAB_NAME" /> para <ph name="RECEIVER_NAME" /></translation> -<translation id="7052914147756339792">Definir plano de fundo...</translation> <translation id="7066646422045619941">Esta rede foi desativada pelo seu administrador.</translation> <translation id="7067196344162293536">Rotação automática</translation> <translation id="7098389117866926363">Dispositivo USB-C (porta traseira da esquerda)</translation> @@ -357,6 +356,7 @@ <translation id="9194617393863864469">Fazer login com outro usuário...</translation> <translation id="9201131092683066720">A bateria está <ph name="PERCENTAGE" />% carregada.</translation> <translation id="9210037371811586452">Saindo do modo de área de trabalho unificada</translation> +<translation id="9215934040295798075">Definir plano de fundo</translation> <translation id="923686485342484400">Pressione Control+Shift+Q duas vezes para sair.</translation> <translation id="945522503751344254">Enviar comentários</translation> <translation id="98515147261107953">Paisagem</translation>
diff --git a/ash/strings/ash_strings_pt-PT.xtb b/ash/strings/ash_strings_pt-PT.xtb index 09e17f6..324c787 100644 --- a/ash/strings/ash_strings_pt-PT.xtb +++ b/ash/strings/ash_strings_pt-PT.xtb
@@ -266,7 +266,6 @@ <translation id="698231206551913481">Todos os ficheiros e dados locais associados a este utilizador são permanentemente eliminados assim que este utilizador é removido.</translation> <translation id="7029814467594812963">Sair da sessão</translation> <translation id="7034339000180558234">A transmitir <ph name="TAB_NAME" /> para <ph name="RECEIVER_NAME" /></translation> -<translation id="7052914147756339792">Definir imagem de fundo...</translation> <translation id="7066646422045619941">Esta rede foi desativada pelo gestor.</translation> <translation id="7067196344162293536">Rotação automática</translation> <translation id="7098389117866926363">Dispositivo USB-C (porta traseira esquerda)</translation> @@ -355,6 +354,7 @@ <translation id="9194617393863864469">Iniciar sessão com outro utilizador...</translation> <translation id="9201131092683066720">A bateria está <ph name="PERCENTAGE" />% cheia.</translation> <translation id="9210037371811586452">A sair do Modo de ambiente de trabalho unificado</translation> +<translation id="9215934040295798075">Definir imagem de fundo</translation> <translation id="923686485342484400">Prima Control Shift Q duas vezes para terminar sessão.</translation> <translation id="945522503751344254">Enviar comentários</translation> <translation id="98515147261107953">Horizontal</translation>
diff --git a/ash/strings/ash_strings_ro.xtb b/ash/strings/ash_strings_ro.xtb index 03ef262..43eeb78 100644 --- a/ash/strings/ash_strings_ro.xtb +++ b/ash/strings/ash_strings_ro.xtb
@@ -266,7 +266,6 @@ <translation id="698231206551913481">Toate fișierele și datele locale asociate acestui utilizator vor fi șterse definitiv după eliminarea utilizatorului.</translation> <translation id="7029814467594812963">Ieșiți din sesiune</translation> <translation id="7034339000180558234">Se proiectează <ph name="TAB_NAME" /> pe <ph name="RECEIVER_NAME" /></translation> -<translation id="7052914147756339792">Setați o imagine de fundal...</translation> <translation id="7066646422045619941">Această rețea este dezactivată de administrator.</translation> <translation id="7067196344162293536">Rotire automată</translation> <translation id="7098389117866926363">Dispozitiv USB-C (portul din stânga în spate)</translation> @@ -355,6 +354,7 @@ <translation id="9194617393863864469">Conectează-te cu alt nume de utilizator...</translation> <translation id="9201131092683066720">Nivelul bateriei este de <ph name="PERCENTAGE" />%.</translation> <translation id="9210037371811586452">Se iese din modul desktop unificat</translation> +<translation id="9215934040295798075">Setează o imagine de fundal</translation> <translation id="923686485342484400">Apăsați de două ori Control Shift Q pentru a vă deconecta.</translation> <translation id="945522503751344254">Trimite feedback</translation> <translation id="98515147261107953">Peisaj</translation>
diff --git a/ash/strings/ash_strings_ru.xtb b/ash/strings/ash_strings_ru.xtb index f65620f..d418fc2 100644 --- a/ash/strings/ash_strings_ru.xtb +++ b/ash/strings/ash_strings_ru.xtb
@@ -266,7 +266,6 @@ <translation id="698231206551913481">После удаления пользователя все связанные с ним файлы и локальные данные также будут удалены.</translation> <translation id="7029814467594812963">Завершить сеанс</translation> <translation id="7034339000180558234">Трансляция вкладки "<ph name="TAB_NAME" />": <ph name="RECEIVER_NAME" /></translation> -<translation id="7052914147756339792">Выбрать обои</translation> <translation id="7066646422045619941">Эта сеть отключена администратором.</translation> <translation id="7067196344162293536">Автоповорот</translation> <translation id="7098389117866926363">Устройство USB-C (порт слева на задней панели)</translation> @@ -355,6 +354,7 @@ <translation id="9194617393863864469">Войти в другой аккаунт...</translation> <translation id="9201131092683066720">Батарея заряжена на <ph name="PERCENTAGE" />%.</translation> <translation id="9210037371811586452">Выход из режима единого рабочего стола…</translation> +<translation id="9215934040295798075">Выбрать обои</translation> <translation id="923686485342484400">Чтобы выйти, дважды нажмите Control+Shift+Q.</translation> <translation id="945522503751344254">Отправить отзыв</translation> <translation id="98515147261107953">Альбомная</translation>
diff --git a/ash/strings/ash_strings_sk.xtb b/ash/strings/ash_strings_sk.xtb index aa161fe6..2ddd26d 100644 --- a/ash/strings/ash_strings_sk.xtb +++ b/ash/strings/ash_strings_sk.xtb
@@ -266,7 +266,6 @@ <translation id="698231206551913481">Všetky súbory a miestne údaje priradené k tomuto používateľovi budú po jeho odstránení natrvalo vymazané.</translation> <translation id="7029814467594812963">Ukončiť reláciu</translation> <translation id="7034339000180558234">Prenášanie karty <ph name="TAB_NAME" /> do zariadenia <ph name="RECEIVER_NAME" /></translation> -<translation id="7052914147756339792">Nastavenie tapety...</translation> <translation id="7066646422045619941">Táto sieť je zakázaná správcom.</translation> <translation id="7067196344162293536">Automatické otáčanie</translation> <translation id="7098389117866926363">Zariadenie USB-C (ľavý port vzadu)</translation> @@ -355,6 +354,7 @@ <translation id="9194617393863864469">Prihlásiť ďalšieho používateľa...</translation> <translation id="9201131092683066720">Batéria je nabitá na <ph name="PERCENTAGE" /> %.</translation> <translation id="9210037371811586452">Ukončuje sa režim jednotnej pracovnej plochy</translation> +<translation id="9215934040295798075">Nastaviť tapetu</translation> <translation id="923686485342484400">Ak sa chcete odhlásiť, stlačte dvakrát kombináciu klávesov Ctrl, Shift a Q.</translation> <translation id="945522503751344254">Poslať spätnú väzbu</translation> <translation id="98515147261107953">Na šírku</translation>
diff --git a/ash/strings/ash_strings_sl.xtb b/ash/strings/ash_strings_sl.xtb index 22256df..cde7f23 100644 --- a/ash/strings/ash_strings_sl.xtb +++ b/ash/strings/ash_strings_sl.xtb
@@ -266,7 +266,6 @@ <translation id="698231206551913481">Vse datoteke in lokalni podatki, povezani s tem uporabnikom, bodo trajno izbrisani, ko odstranite uporabnika.</translation> <translation id="7029814467594812963">Zapusti sejo</translation> <translation id="7034339000180558234">Predvajanje zavihka v <ph name="TAB_NAME" /> sprejemniku <ph name="RECEIVER_NAME" /></translation> -<translation id="7052914147756339792">Nastavi sliko za ozadje ...</translation> <translation id="7066646422045619941">To omrežje je onemogočil skrbnik.</translation> <translation id="7067196344162293536">Samodejno sukanje</translation> <translation id="7098389117866926363">Naprava USB-C (vrata levo zadaj)</translation> @@ -355,6 +354,7 @@ <translation id="9194617393863864469">Prijava drugega uporabnika ...</translation> <translation id="9201131092683066720">Napolnjenost akumulatorja: <ph name="PERCENTAGE" /> %.</translation> <translation id="9210037371811586452">Izhod iz načina enotnega namizja</translation> +<translation id="9215934040295798075">Nastavi sliko za ozadje</translation> <translation id="923686485342484400">Dvakrat pritisnite Control Shift Q, če se želite odjaviti.</translation> <translation id="945522503751344254">Pošlji povratne informacije</translation> <translation id="98515147261107953">Ležeče</translation>
diff --git a/ash/strings/ash_strings_sr.xtb b/ash/strings/ash_strings_sr.xtb index 37b39ccd..d6e1cb4 100644 --- a/ash/strings/ash_strings_sr.xtb +++ b/ash/strings/ash_strings_sr.xtb
@@ -266,7 +266,6 @@ <translation id="698231206551913481">Све датотеке и локални подаци повезани са овим корисником ће бити трајно избрисани када уклоните овог корисника.</translation> <translation id="7029814467594812963">Изађи из сесије</translation> <translation id="7034339000180558234"><ph name="TAB_NAME" /> се пребацује на <ph name="RECEIVER_NAME" /></translation> -<translation id="7052914147756339792">Подеси позадину...</translation> <translation id="7066646422045619941">Ову мрежу је онемогућио администратор.</translation> <translation id="7067196344162293536">Аутоматски ротирај</translation> <translation id="7098389117866926363">Уређај са USB прикључком типа C (леви задњи порт)</translation> @@ -355,6 +354,7 @@ <translation id="9194617393863864469">Пријавите још једног корисника...</translation> <translation id="9201131092683066720">Батерија је <ph name="PERCENTAGE" />% пуна.</translation> <translation id="9210037371811586452">Излазак из режима спојених радних површина</translation> +<translation id="9215934040295798075">Подеси позадину</translation> <translation id="923686485342484400">Двапут притисните Control Shift Q да бисте се одјавили.</translation> <translation id="945522503751344254">Пошаљи повратне информације</translation> <translation id="98515147261107953">Хоризонтално</translation>
diff --git a/ash/strings/ash_strings_sv.xtb b/ash/strings/ash_strings_sv.xtb index f6c88758..c901247 100644 --- a/ash/strings/ash_strings_sv.xtb +++ b/ash/strings/ash_strings_sv.xtb
@@ -266,7 +266,6 @@ <translation id="698231206551913481">Alla filer inklusive lokal data som tillhör den här användaren tas bort permanent när användaren tas bort.</translation> <translation id="7029814467594812963">Avsluta session</translation> <translation id="7034339000180558234">Castar <ph name="TAB_NAME" /> till <ph name="RECEIVER_NAME" /></translation> -<translation id="7052914147756339792">Ange bakgrund ...</translation> <translation id="7066646422045619941">Det här nätverket har inaktiverats av administratören.</translation> <translation id="7067196344162293536">Rotera automatiskt</translation> <translation id="7098389117866926363">USB-C-enhet (vänstra porten på baksidan)</translation> @@ -355,6 +354,7 @@ <translation id="9194617393863864469">Logga in med en annan användare ...</translation> <translation id="9201131092683066720">Batteriet är fullt till <ph name="PERCENTAGE" /> %.</translation> <translation id="9210037371811586452">Enhetligt skrivbordsläge avslutas</translation> +<translation id="9215934040295798075">Ange bakgrund</translation> <translation id="923686485342484400">Tryck på Control + skift + Q två gånger om du vill logga ut.</translation> <translation id="945522503751344254">Skicka synpunkter</translation> <translation id="98515147261107953">Liggande</translation>
diff --git a/ash/strings/ash_strings_sw.xtb b/ash/strings/ash_strings_sw.xtb index b91c0d0..fccbf8b 100644 --- a/ash/strings/ash_strings_sw.xtb +++ b/ash/strings/ash_strings_sw.xtb
@@ -266,7 +266,6 @@ <translation id="698231206551913481">Faili na data zote zilizo kwenye kifaa zinazohusishwa na mtumiaji zitafutwa kabisa pindi tu mtumiaji huyu atakapoondolewa.</translation> <translation id="7029814467594812963">Toka kwenye kipindi</translation> <translation id="7034339000180558234">Inatuma <ph name="TAB_NAME" /> kwenye <ph name="RECEIVER_NAME" /></translation> -<translation id="7052914147756339792">Weka Mandhari...</translation> <translation id="7066646422045619941">Mtandao huu umezimwa na msimamizi wako.</translation> <translation id="7067196344162293536">Zungusha kiotomatiki</translation> <translation id="7098389117866926363">Kifaa cha USB-C (mlango wa kushoto nyuma)</translation> @@ -356,6 +355,7 @@ <translation id="9194617393863864469">Ongeza akaunti nyingine...</translation> <translation id="9201131092683066720">Betri imejaa <ph name="PERCENTAGE" />%.</translation> <translation id="9210037371811586452">Mfumo unaondoka kwenye hali ya eneo-kazi lililounganishwa</translation> +<translation id="9215934040295798075">Weka mandhari</translation> <translation id="923686485342484400">Bonyeza Control Shift Q mara mbili ili kuondoka katika akaunti.</translation> <translation id="945522503751344254">Tuma maoni</translation> <translation id="98515147261107953">Mlalo</translation>
diff --git a/ash/strings/ash_strings_ta.xtb b/ash/strings/ash_strings_ta.xtb index 19e2613..a09d851 100644 --- a/ash/strings/ash_strings_ta.xtb +++ b/ash/strings/ash_strings_ta.xtb
@@ -163,6 +163,7 @@ <translation id="4379531060876907730">இவை உங்கள் ஸ்டைலஸ் கருவிகள்</translation> <translation id="4421231901400348175">தொலைநிலை உதவி மூலம் <ph name="HELPER_NAME" /> உடன் உங்கள் திரையின் கட்டுப்பாட்டைப் பகிர்கிறது.</translation> <translation id="4430019312045809116">அளவு</translation> +<translation id="4450893287417543264">மீண்டும் காட்டாதே</translation> <translation id="4479639480957787382">ஈத்தர்நெட்</translation> <translation id="4481530544597605423">இணைக்காத சாதனங்கள்</translation> <translation id="4508225577814909926"><ph name="NAME" />: இணைக்கிறது...</translation> @@ -195,6 +196,7 @@ <translation id="54609108002486618">நிர்வகிக்கப்பட்டது</translation> <translation id="553675580533261935">அமர்விலிருந்து வெளியேறுதல்</translation> <translation id="5548285847212963613">இந்த நெட்வொர்க்குடன் இணைய, "<ph name="EXTENSION_NAME" />" நீட்டிப்பு உதவும்.</translation> +<translation id="554893713779400387">சொல்வதை எழுதுவதை நிலைமாற்று</translation> <translation id="5571066253365925590">புளூடூத் இயக்கப்பட்டது</translation> <translation id="5597451508971090205"><ph name="SHORT_WEEKDAY" />, <ph name="DATE" /></translation> <translation id="5600837773213129531">பேச்சுவடிவக் கருத்தை முடக்க, Ctrl + Alt + Zஐ அழுத்தவும்.</translation> @@ -264,7 +266,6 @@ <translation id="698231206551913481">இந்தப் பயனர் அகற்றப்பட்டதும், பயனருடன் தொடர்புடைய எல்லா கோப்புகளும் அகத் தரவும் நிரந்தரமாக நீக்கப்படும்.</translation> <translation id="7029814467594812963">அமர்விலிருந்து வெளியேறவும்</translation> <translation id="7034339000180558234"><ph name="TAB_NAME" />ஐ <ph name="RECEIVER_NAME" />க்கு அனுப்புகிறது</translation> -<translation id="7052914147756339792">வால்பேப்பரை அமை...</translation> <translation id="7066646422045619941">இந்த நெட்வொர்க் உங்கள் நிர்வாகியால் முடக்கப்பட்டுள்ளது.</translation> <translation id="7067196344162293536">தானியங்கு சுழற்றல்</translation> <translation id="7098389117866926363">USB-C சாதனம் (பின்பக்கம் உள்ள இடது போர்ட்)</translation> @@ -283,6 +284,7 @@ <translation id="7536035074519304529">IP முகவரி: <ph name="ADDRESS" /></translation> <translation id="7561014039265304140"><ph name="SPECIFIED_RESOLUTION" /> ஐ <ph name="DISPLAY_NAME" /> ஆதரிக்கவில்லை. <ph name="FALLBACK_RESOLUTION" /> க்குத் தெளிவு மாற்றப்பட்டது</translation> <translation id="7562368315689366235">ஈமொஜி தட்டு</translation> +<translation id="7564874036684306347">சாளரத்தை வேறு டெஸ்க்டாப்க்கு மாற்றினால், அது எதிர்பாராதவிதமாகச் செயல்படக் கூடும். அடுத்தடுத்து வரும் அறிவிப்புகளும் சாளரங்களும் உரையாடல்களும் டெஸ்க்டாப்களுக்கு இடையே பிரிக்கப்படலாம்.</translation> <translation id="7569509451529460200">பிரெய்லி மற்றும் ChromeVox இயக்கப்பட்டன</translation> <translation id="7593891976182323525">Search அல்லது Shift</translation> <translation id="7645176681409127223"><ph name="USER_NAME" /> (உரிமையாளர்)</translation> @@ -295,6 +297,7 @@ <translation id="7798302898096527229">ரத்துசெய்ய, தேடல் அல்லது ஷிஃப்ட் விசையை அழுத்தவும்.</translation> <translation id="7814236020522506259"><ph name="HOUR" /> மற்றும் <ph name="MINUTE" /></translation> <translation id="7829386189513694949">வலுவான சிக்னல்</translation> +<translation id="7842569679327885685">எச்சரிக்கை: சோதனை அம்சம்</translation> <translation id="7904094684485781019">இந்தக் கணக்கிற்கான நிர்வாகி பல உள்நுழைவுகளை அனுமதிக்கவில்லை.</translation> <translation id="7933084174919150729">முதன்மைச் சுயவிவரத்திற்கு மட்டுமே Google அசிஸ்டண்ட்டைப் பயன்படுத்த முடியும்.</translation> <translation id="79341161159229895">கணக்கை நிர்வகிப்பது: <ph name="FIRST_PARENT_EMAIL" /> மற்றும் <ph name="SECOND_PARENT_EMAIL" /></translation> @@ -347,9 +350,11 @@ <translation id="9091626656156419976"><ph name="DISPLAY_NAME" /> டிஸ்ப்ளே அகற்றப்பட்டது</translation> <translation id="9111102763498581341">பூட்டைத் திற</translation> <translation id="9151726767154816831">புதுப்பிக்க, மறுதுவக்கம் செய்து பவர்வாஷ் செய்யவும்</translation> +<translation id="9179259655489829027">கடவுச்சொல்லைக் கேட்காமல், உள்நுழைந்த பயனர் எவரையும் உடனடியாக அணுக இந்த அம்சம் உங்களை அனுமதிக்கிறது. நீங்கள் நம்பும் கணக்குகளுடன் மட்டும் இந்த அம்சத்தைப் பயன்படுத்தவும்.</translation> <translation id="9194617393863864469">வேறொருவராக உள்நுழை...</translation> <translation id="9201131092683066720">பேட்டரி <ph name="PERCENTAGE" />% நிரம்பியது.</translation> <translation id="9210037371811586452">ஒன்றிணைந்த டெஸ்க்டாப் பயன்முறையிலிருந்து வெளியேறுகிறது</translation> +<translation id="9215934040295798075">வால்பேப்பரை அமை</translation> <translation id="923686485342484400">வெளியேற Control Shift Q ஐ இருமுறை அழுத்தவும்.</translation> <translation id="945522503751344254">பின்னூட்டம் அனுப்புக</translation> <translation id="98515147261107953">கிடைமட்டம்</translation>
diff --git a/ash/strings/ash_strings_te.xtb b/ash/strings/ash_strings_te.xtb index fd14f91..3fbaea28 100644 --- a/ash/strings/ash_strings_te.xtb +++ b/ash/strings/ash_strings_te.xtb
@@ -264,7 +264,6 @@ <translation id="698231206551913481">ఈ వినియోగదారును తీసివేసిన తర్వాత ఈ వినియోగదారుతో అనుబంధించిన అన్ని ఫైల్లు మరియు స్థానిక డేటా శాశ్వతంగా తొలగించబడతాయి.</translation> <translation id="7029814467594812963">సెషన్ని నిష్క్రమించు</translation> <translation id="7034339000180558234"><ph name="RECEIVER_NAME" />కి <ph name="TAB_NAME" />ని ప్రసారం చేస్తున్నాము</translation> -<translation id="7052914147756339792">వాల్పేపర్ను సెట్ చేయి...</translation> <translation id="7066646422045619941">ఈ నెట్వర్క్ను మీ నిర్వాహకులు నిలిపివేసారు.</translation> <translation id="7067196344162293536">స్వయంచాలకంగా తిప్పు</translation> <translation id="7098389117866926363">USB-C పరికరం (వెనుక భాగంలో ఎడమ పోర్ట్)</translation> @@ -350,6 +349,7 @@ <translation id="9194617393863864469">మరొక వినియోగదారుగా సైన్ ఇన్ చేయండి...</translation> <translation id="9201131092683066720">బ్యాటరీ <ph name="PERCENTAGE" />% నిండింది.</translation> <translation id="9210037371811586452">ఏకీకృత డెస్క్టాప్ మోడ్ నుండి నిష్క్రమిస్తోంది</translation> +<translation id="9215934040295798075">వాల్పేపర్ను సెట్ చేయండి</translation> <translation id="923686485342484400">సైన్ అవుట్ చేయడానికి Control Shift Qను రెండుసార్లు నొక్కండి.</translation> <translation id="945522503751344254">అభిప్రాయాన్ని పంపండి</translation> <translation id="98515147261107953">సమతలదిశ</translation>
diff --git a/ash/strings/ash_strings_th.xtb b/ash/strings/ash_strings_th.xtb index 16da4ce5..6d469e9 100644 --- a/ash/strings/ash_strings_th.xtb +++ b/ash/strings/ash_strings_th.xtb
@@ -267,7 +267,6 @@ <translation id="698231206551913481">ระบบจะลบไฟล์ทั้งหมดและข้อมูลในเครื่องที่เชื่อมโยงกับผู้ใช้รายนี้ออกอย่างถาวรหลังจากนำผู้ใช้รายนี้ออกแล้ว</translation> <translation id="7029814467594812963">ออกจากเซสชัน</translation> <translation id="7034339000180558234">กำลังแคสต์ <ph name="TAB_NAME" /> ไปยัง <ph name="RECEIVER_NAME" /></translation> -<translation id="7052914147756339792">ตั้งค่าวอลเปเปอร์...</translation> <translation id="7066646422045619941">ผู้ดูแลระบบปิดใช้เครือข่ายนี้</translation> <translation id="7067196344162293536">หมุนอัตโนมัติ</translation> <translation id="7098389117866926363">อุปกรณ์ USB-C (พอร์ตด้านหลังซ้าย)</translation> @@ -356,6 +355,7 @@ <translation id="9194617393863864469">ลงชื่อเข้าใช้ด้วยชื่อผู้ใช้อื่น...</translation> <translation id="9201131092683066720">มีแบตเตอรี่ <ph name="PERCENTAGE" />%</translation> <translation id="9210037371811586452">กำลังออกจากโหมดเดสก์ท็อปแบบรวมหลายหน้าจอ</translation> +<translation id="9215934040295798075">ตั้งค่าวอลเปเปอร์</translation> <translation id="923686485342484400">กด Control Shift Q 2 ครั้งเพื่อออกจากระบบ</translation> <translation id="945522503751344254">ส่งความคิดเห็น</translation> <translation id="98515147261107953">แนวนอน</translation>
diff --git a/ash/strings/ash_strings_tr.xtb b/ash/strings/ash_strings_tr.xtb index 9b93276..f6763ae3 100644 --- a/ash/strings/ash_strings_tr.xtb +++ b/ash/strings/ash_strings_tr.xtb
@@ -267,7 +267,6 @@ <translation id="698231206551913481">Bu kullanıcıyla ilişkilendirilen tüm dosyalar ve yerel veriler, bu kullanıcı kaldırıldıktan sonra kalıcı olarak silinir.</translation> <translation id="7029814467594812963">Oturumdan çık</translation> <translation id="7034339000180558234"><ph name="TAB_NAME" /> sekmesi <ph name="RECEIVER_NAME" /> üzerinde yayınlanıyor</translation> -<translation id="7052914147756339792">Duvar kağıdını ayarla...</translation> <translation id="7066646422045619941">Bu ağ, yöneticiniz tarafından devre dışı bırakıldı.</translation> <translation id="7067196344162293536">Otomatik döndür</translation> <translation id="7098389117866926363">USB-C cihaz (arkadaki sol bağlantı noktası)</translation> @@ -356,6 +355,7 @@ <translation id="9194617393863864469">Başka bir kullanıcı olarak oturum aç...</translation> <translation id="9201131092683066720">Pil %<ph name="PERCENTAGE" /> dolu.</translation> <translation id="9210037371811586452">Birleşik masaüstü modundan çıkılıyor</translation> +<translation id="9215934040295798075">Duvar kağıdını ayarla</translation> <translation id="923686485342484400">Oturumu kapatmak için Control ÜstKrktr Q tuşlarına iki defa basın.</translation> <translation id="945522503751344254">Geri bildirim gönder</translation> <translation id="98515147261107953">Yatay</translation>
diff --git a/ash/strings/ash_strings_uk.xtb b/ash/strings/ash_strings_uk.xtb index d480677..59c4ab6 100644 --- a/ash/strings/ash_strings_uk.xtb +++ b/ash/strings/ash_strings_uk.xtb
@@ -266,7 +266,6 @@ <translation id="698231206551913481">Якщо видалити цього користувача, усі файли та локальні дані, зв’язані з ним, буде видалено назавжди.</translation> <translation id="7029814467594812963">Завершити сеанс</translation> <translation id="7034339000180558234">Вкладка "<ph name="TAB_NAME" />" транслюється на пристрій "<ph name="RECEIVER_NAME" />"</translation> -<translation id="7052914147756339792">Установити фоновий малюнок...</translation> <translation id="7066646422045619941">Ваш адміністратор вимкнув цю мережу.</translation> <translation id="7067196344162293536">Автоматичне обертання</translation> <translation id="7098389117866926363">Пристрій, під’єднаний до порту USB-C (ліворуч на задній панелі)</translation> @@ -355,6 +354,7 @@ <translation id="9194617393863864469">Увійти як інший користувач…</translation> <translation id="9201131092683066720">Акумулятор заряджений на <ph name="PERCENTAGE" />%.</translation> <translation id="9210037371811586452">Вихід з уніфікованого режиму робочого стола</translation> +<translation id="9215934040295798075">Вибрати фоновий малюнок</translation> <translation id="923686485342484400">Щоб вийти, двічі натисніть Control Shift Q.</translation> <translation id="945522503751344254">Надіслати відгук</translation> <translation id="98515147261107953">Альбомна</translation>
diff --git a/ash/strings/ash_strings_vi.xtb b/ash/strings/ash_strings_vi.xtb index 63eb3991..db060dd2 100644 --- a/ash/strings/ash_strings_vi.xtb +++ b/ash/strings/ash_strings_vi.xtb
@@ -267,7 +267,6 @@ <translation id="698231206551913481">Tất cả các tệp và dữ liệu cục bộ liên quan tới người dùng này sẽ bị xóa vĩnh viễn sau khi người dùng này bị xóa.</translation> <translation id="7029814467594812963">Thoát khỏi phiên</translation> <translation id="7034339000180558234">Đang truyền <ph name="TAB_NAME" /> tới <ph name="RECEIVER_NAME" /></translation> -<translation id="7052914147756339792">Đặt hình nền...</translation> <translation id="7066646422045619941">Mạng này bị quản trị viên của bạn tắt.</translation> <translation id="7067196344162293536">Tự động xoay</translation> <translation id="7098389117866926363">Thiết bị USB-C (cổng bên trái ở phía sau)</translation> @@ -356,6 +355,7 @@ <translation id="9194617393863864469">Đăng nhập người dùng khác...</translation> <translation id="9201131092683066720">Pin đầy <ph name="PERCENTAGE" />%.</translation> <translation id="9210037371811586452">Đang thoát chế độ màn hình hợp nhất</translation> +<translation id="9215934040295798075">Đặt hình nền</translation> <translation id="923686485342484400">Nhấn Control Shift Q hai lần để đăng xuất.</translation> <translation id="945522503751344254">Gửi phản hồi</translation> <translation id="98515147261107953">Khổ ngang</translation>
diff --git a/ash/strings/ash_strings_zh-CN.xtb b/ash/strings/ash_strings_zh-CN.xtb index 68edbe0..b42cfe3 100644 --- a/ash/strings/ash_strings_zh-CN.xtb +++ b/ash/strings/ash_strings_zh-CN.xtb
@@ -164,6 +164,7 @@ <translation id="4379531060876907730">这些是您的触控笔工具</translation> <translation id="4421231901400348175">正在通过远程协助与<ph name="HELPER_NAME" />共享您屏幕的控制权限。</translation> <translation id="4430019312045809116">音量</translation> +<translation id="4450893287417543264">不再显示</translation> <translation id="4479639480957787382">以太网</translation> <translation id="4481530544597605423">未配对的设备</translation> <translation id="4508225577814909926"><ph name="NAME" />:正在连接...</translation> @@ -196,6 +197,7 @@ <translation id="54609108002486618">托管</translation> <translation id="553675580533261935">退出会话</translation> <translation id="5548285847212963613">扩展程序“<ph name="EXTENSION_NAME" />”可帮助连接到此网络。</translation> +<translation id="554893713779400387">开启/关闭语音输入</translation> <translation id="5571066253365925590">蓝牙已启用</translation> <translation id="5597451508971090205"><ph name="DATE" /><ph name="SHORT_WEEKDAY" /></translation> <translation id="5600837773213129531">按 Ctrl + Alt + Z 即可停用语音反馈。</translation> @@ -265,7 +267,6 @@ <translation id="698231206551913481">移除该用户后,与其关联的所有文件和本地数据都会被永久删除。</translation> <translation id="7029814467594812963">退出会话</translation> <translation id="7034339000180558234">正在将“<ph name="TAB_NAME" />”投射到“<ph name="RECEIVER_NAME" />”</translation> -<translation id="7052914147756339792">设置壁纸...</translation> <translation id="7066646422045619941">您的管理员已禁用此网络。</translation> <translation id="7067196344162293536">自动旋转</translation> <translation id="7098389117866926363">USB-C 设备(背面左侧端口)</translation> @@ -284,6 +285,7 @@ <translation id="7536035074519304529">IP 地址:<ph name="ADDRESS" /></translation> <translation id="7561014039265304140"><ph name="DISPLAY_NAME" />不支持<ph name="SPECIFIED_RESOLUTION" />。分辨率已改为<ph name="FALLBACK_RESOLUTION" /></translation> <translation id="7562368315689366235">表情符号面板</translation> +<translation id="7564874036684306347">将窗口移至另一桌面可能会导致出现意外行为 - 后续的通知、窗口和对话框可能会被拆分到不同的桌面中。</translation> <translation id="7569509451529460200">已启用盲文和 ChromeVox</translation> <translation id="7593891976182323525">搜索键或 Shift</translation> <translation id="7645176681409127223"><ph name="USER_NAME" />(所有者)</translation> @@ -296,6 +298,7 @@ <translation id="7798302898096527229">按搜索键或按 Shift 键可取消。</translation> <translation id="7814236020522506259"><ph name="HOUR" /> <ph name="MINUTE" /></translation> <translation id="7829386189513694949">信号较强</translation> +<translation id="7842569679327885685">警告:实验性功能</translation> <translation id="7904094684485781019">此帐号的管理员已停用多帐号登录。</translation> <translation id="7933084174919150729">Google 智能助理仅适用于主要个人资料。</translation> <translation id="79341161159229895">该帐号由 <ph name="FIRST_PARENT_EMAIL" /> 和 <ph name="SECOND_PARENT_EMAIL" /> 管理</translation> @@ -348,9 +351,11 @@ <translation id="9091626656156419976">已移除显示器“<ph name="DISPLAY_NAME" />”</translation> <translation id="9111102763498581341">解锁</translation> <translation id="9151726767154816831">重新启动并通过 Powerwash 来进行更新</translation> +<translation id="9179259655489829027">借助此功能,您无需使用密码即可快速访问任何已登录的用户。请仅对您信任的帐号使用此功能。</translation> <translation id="9194617393863864469">登录其他用户帐号…</translation> <translation id="9201131092683066720">电池电量为<ph name="PERCENTAGE" />%。</translation> <translation id="9210037371811586452">正在退出统一桌面模式</translation> +<translation id="9215934040295798075">设置壁纸</translation> <translation id="923686485342484400">连按两次Ctrl+Shift+Q即可退出。</translation> <translation id="945522503751344254">发送反馈</translation> <translation id="98515147261107953">横向</translation>
diff --git a/ash/strings/ash_strings_zh-TW.xtb b/ash/strings/ash_strings_zh-TW.xtb index d6620c15..2a8ac13 100644 --- a/ash/strings/ash_strings_zh-TW.xtb +++ b/ash/strings/ash_strings_zh-TW.xtb
@@ -163,6 +163,7 @@ <translation id="4379531060876907730">這些是可用的觸控筆工具</translation> <translation id="4421231901400348175">透過遠端協助與<ph name="HELPER_NAME" />分享螢幕控制功能。</translation> <translation id="4430019312045809116">音量</translation> +<translation id="4450893287417543264">不要再顯示</translation> <translation id="4479639480957787382">乙太網路</translation> <translation id="4481530544597605423">解除配對的裝置</translation> <translation id="4508225577814909926"><ph name="NAME" />:正在連線...</translation> @@ -195,6 +196,7 @@ <translation id="54609108002486618">管理</translation> <translation id="553675580533261935">結束工作階段</translation> <translation id="5548285847212963613">「<ph name="EXTENSION_NAME" />」擴充功能可協助連線至這個網路。</translation> +<translation id="554893713779400387">切換語音輸入</translation> <translation id="5571066253365925590">藍牙已啟用</translation> <translation id="5597451508971090205"><ph name="DATE" /><ph name="SHORT_WEEKDAY" /></translation> <translation id="5600837773213129531">按下 Ctrl + Alt + Z 鍵即可停用互動朗讀功能。</translation> @@ -264,7 +266,6 @@ <translation id="698231206551913481">將這位使用者移除後,與這位使用者相關聯的所有檔案和本機資料都會遭到永久刪除。</translation> <translation id="7029814467594812963">結束工作階段</translation> <translation id="7034339000180558234">正在將「<ph name="TAB_NAME" />」畫面投放到「<ph name="RECEIVER_NAME" />」</translation> -<translation id="7052914147756339792">設定桌布...</translation> <translation id="7066646422045619941">您的管理員已停用這個網路。</translation> <translation id="7067196344162293536">自動旋轉</translation> <translation id="7098389117866926363">USB-C 裝置 (背面左側連接埠)</translation> @@ -283,6 +284,7 @@ <translation id="7536035074519304529">IP 位址:<ph name="ADDRESS" /></translation> <translation id="7561014039265304140"><ph name="DISPLAY_NAME" /> 不支援 <ph name="SPECIFIED_RESOLUTION" />,解析度已變更為 <ph name="FALLBACK_RESOLUTION" /></translation> <translation id="7562368315689366235">表情符號面板</translation> +<translation id="7564874036684306347">將視窗移至其他桌面可能會導致未預期的行為。後續的通知、視窗和對話方塊可能會分開顯示在不同桌面上。</translation> <translation id="7569509451529460200">點字模式和 ChromeVox 已啟用</translation> <translation id="7593891976182323525">搜尋鍵或 Shift 鍵</translation> <translation id="7645176681409127223"><ph name="USER_NAME" /> (擁有者)</translation> @@ -295,6 +297,7 @@ <translation id="7798302898096527229">按下搜尋鍵或 Shift 鍵即可取消。</translation> <translation id="7814236020522506259"><ph name="HOUR" /> 小時 <ph name="MINUTE" /> 分鐘</translation> <translation id="7829386189513694949">訊號穩定</translation> +<translation id="7842569679327885685">警告:實驗功能</translation> <translation id="7904094684485781019">這個帳戶的管理員已禁止多重登入。</translation> <translation id="7933084174919150729">Google 助理僅適用於主要設定檔。</translation> <translation id="79341161159229895">這個帳戶是由 <ph name="FIRST_PARENT_EMAIL" /> 和 <ph name="SECOND_PARENT_EMAIL" /> 管理</translation> @@ -347,9 +350,11 @@ <translation id="9091626656156419976">「<ph name="DISPLAY_NAME" />」螢幕已移除</translation> <translation id="9111102763498581341">解除鎖定</translation> <translation id="9151726767154816831">重新啟動並執行 Powerwash 即可更新</translation> +<translation id="9179259655489829027">這項功能可讓你快速存取任何已登入的使用者帳戶,不需提供密碼。使用這項功能時,請務必只存取你信任的帳戶。</translation> <translation id="9194617393863864469">登入其他使用者帳戶...</translation> <translation id="9201131092683066720">電池電量為 <ph name="PERCENTAGE" />%。</translation> <translation id="9210037371811586452">退出整合桌面模式</translation> +<translation id="9215934040295798075">設定桌布</translation> <translation id="923686485342484400">按兩下 Ctrl+Shift+Q 鍵即可登出。</translation> <translation id="945522503751344254">提供意見</translation> <translation id="98515147261107953">橫向</translation>
diff --git a/ash/system/bluetooth/bluetooth_notification_controller.cc b/ash/system/bluetooth/bluetooth_notification_controller.cc index 58e6b82..c517b81b 100644 --- a/ash/system/bluetooth/bluetooth_notification_controller.cc +++ b/ash/system/bluetooth/bluetooth_notification_controller.cc
@@ -7,7 +7,6 @@ #include <memory> #include <utility> -#include "ash/resources/grit/ash_resources.h" #include "ash/resources/vector_icons/vector_icons.h" #include "ash/strings/grit/ash_strings.h" #include "base/bind.h"
diff --git a/ash/system/bluetooth/tray_bluetooth_helper_unittest.cc b/ash/system/bluetooth/tray_bluetooth_helper_unittest.cc index 396b3cc..87ebdc4e 100644 --- a/ash/system/bluetooth/tray_bluetooth_helper_unittest.cc +++ b/ash/system/bluetooth/tray_bluetooth_helper_unittest.cc
@@ -9,13 +9,26 @@ #include "ash/test/ash_test_base.h" #include "device/bluetooth/dbus/bluez_dbus_manager.h" #include "device/bluetooth/dbus/fake_bluetooth_adapter_client.h" +#include "device/bluetooth/dbus/fake_bluetooth_device_client.h" using bluez::BluezDBusManager; using bluez::FakeBluetoothAdapterClient; +using bluez::FakeBluetoothDeviceClient; namespace ash { namespace { +// Returns true if device with |address| exists in the filtered device list. +// Returns false otherwise. +bool ExistInFilteredDevices(const std::string& address, + BluetoothDeviceList filtered_devices) { + for (const auto& device : filtered_devices) { + if (device.address == address) + return true; + } + return false; +} + using TrayBluetoothHelperTest = AshTestBase; // Tests basic functionality. @@ -27,6 +40,18 @@ BluezDBusManager::Get()->GetBluetoothAdapterClient()); adapter_client->SetSimulationIntervalMs(0); + FakeBluetoothDeviceClient* device_client = + static_cast<FakeBluetoothDeviceClient*>( + BluezDBusManager::Get()->GetBluetoothDeviceClient()); + // A classic bluetooth keyboard device shouldn't be filtered out. + device_client->CreateDevice( + dbus::ObjectPath(FakeBluetoothAdapterClient::kAdapterPath), + dbus::ObjectPath(FakeBluetoothDeviceClient::kDisplayPinCodePath)); + // A low energy bluetooth heart rate monitor should be filtered out. + device_client->CreateDevice( + dbus::ObjectPath(FakeBluetoothAdapterClient::kAdapterPath), + dbus::ObjectPath(FakeBluetoothDeviceClient::kLowEnergyPath)); + TrayBluetoothHelper helper; helper.Initialize(); RunAllPendingInMessageLoop(); @@ -37,6 +62,10 @@ BluetoothDeviceList devices = helper.GetAvailableBluetoothDevices(); // The devices are fake in tests, so don't assume any particular number. EXPECT_FALSE(devices.empty()); + EXPECT_TRUE(ExistInFilteredDevices( + FakeBluetoothDeviceClient::kDisplayPinCodeAddress, devices)); + EXPECT_FALSE(ExistInFilteredDevices( + FakeBluetoothDeviceClient::kLowEnergyAddress, devices)); helper.StartBluetoothDiscovering(); RunAllPendingInMessageLoop();
diff --git a/ash/system/locale/locale_notification_controller.cc b/ash/system/locale/locale_notification_controller.cc index bb84369c..8c2a573 100644 --- a/ash/system/locale/locale_notification_controller.cc +++ b/ash/system/locale/locale_notification_controller.cc
@@ -8,7 +8,6 @@ #include <utility> #include "ash/public/cpp/vector_icons/vector_icons.h" -#include "ash/resources/grit/ash_resources.h" #include "ash/strings/grit/ash_strings.h" #include "ash/system/tray/system_tray_notifier.h" #include "base/strings/string16.h"
diff --git a/ash/system/power/battery_notification.cc b/ash/system/power/battery_notification.cc index 6202550..75d9066 100644 --- a/ash/system/power/battery_notification.cc +++ b/ash/system/power/battery_notification.cc
@@ -5,7 +5,6 @@ #include "ash/system/power/battery_notification.h" #include "ash/public/cpp/power_utils.h" -#include "ash/resources/grit/ash_resources.h" #include "ash/resources/vector_icons/vector_icons.h" #include "ash/strings/grit/ash_strings.h" #include "ash/system/power/power_status.h"
diff --git a/ash/system/power/dual_role_notification.cc b/ash/system/power/dual_role_notification.cc index 9f6b204..a27e009 100644 --- a/ash/system/power/dual_role_notification.cc +++ b/ash/system/power/dual_role_notification.cc
@@ -6,7 +6,6 @@ #include <set> -#include "ash/resources/grit/ash_resources.h" #include "ash/resources/vector_icons/vector_icons.h" #include "ash/shell.h" #include "ash/strings/grit/ash_strings.h"
diff --git a/ash/system/power/peripheral_battery_notifier.cc b/ash/system/power/peripheral_battery_notifier.cc index f1b9023..f3850e7 100644 --- a/ash/system/power/peripheral_battery_notifier.cc +++ b/ash/system/power/peripheral_battery_notifier.cc
@@ -6,7 +6,6 @@ #include <vector> -#include "ash/resources/grit/ash_resources.h" #include "ash/resources/vector_icons/vector_icons.h" #include "ash/shell.h" #include "ash/strings/grit/ash_strings.h"
diff --git a/ash/system/power/tray_power.cc b/ash/system/power/tray_power.cc index 193554d56..82a2020e 100644 --- a/ash/system/power/tray_power.cc +++ b/ash/system/power/tray_power.cc
@@ -8,7 +8,7 @@ #include "ash/accessibility/accessibility_delegate.h" #include "ash/public/cpp/ash_switches.h" -#include "ash/resources/grit/ash_resources.h" + #include "ash/resources/vector_icons/vector_icons.h" #include "ash/strings/grit/ash_strings.h" #include "ash/system/date/date_view.h"
diff --git a/ash/system/screen_layout_observer.cc b/ash/system/screen_layout_observer.cc index b4b96a3..78aae21 100644 --- a/ash/system/screen_layout_observer.cc +++ b/ash/system/screen_layout_observer.cc
@@ -11,7 +11,6 @@ #include "ash/display/screen_orientation_controller.h" #include "ash/metrics/user_metrics_action.h" #include "ash/metrics/user_metrics_recorder.h" -#include "ash/resources/grit/ash_resources.h" #include "ash/resources/vector_icons/vector_icons.h" #include "ash/session/session_controller.h" #include "ash/shell.h"
diff --git a/ash/system/screen_security/screen_capture_tray_item.cc b/ash/system/screen_security/screen_capture_tray_item.cc index 472194a9..61616d8 100644 --- a/ash/system/screen_security/screen_capture_tray_item.cc +++ b/ash/system/screen_security/screen_capture_tray_item.cc
@@ -9,7 +9,7 @@ #include "ash/metrics/user_metrics_action.h" #include "ash/metrics/user_metrics_recorder.h" #include "ash/public/cpp/ash_features.h" -#include "ash/resources/grit/ash_resources.h" + #include "ash/resources/vector_icons/vector_icons.h" #include "ash/shell.h" #include "ash/strings/grit/ash_strings.h"
diff --git a/ash/system/screen_security/screen_share_tray_item.cc b/ash/system/screen_security/screen_share_tray_item.cc index 38ee086..eed0520c 100644 --- a/ash/system/screen_security/screen_share_tray_item.cc +++ b/ash/system/screen_security/screen_share_tray_item.cc
@@ -6,7 +6,6 @@ #include <utility> -#include "ash/resources/grit/ash_resources.h" #include "ash/resources/vector_icons/vector_icons.h" #include "ash/shell.h" #include "ash/strings/grit/ash_strings.h"
diff --git a/ash/system/status_area_widget.cc b/ash/system/status_area_widget.cc index 5d1e8036..b85c2087 100644 --- a/ash/system/status_area_widget.cc +++ b/ash/system/status_area_widget.cc
@@ -74,13 +74,11 @@ ime_menu_tray_ = std::make_unique<ImeMenuTray>(shelf_); status_area_widget_delegate_->AddChildView(ime_menu_tray_.get()); + select_to_speak_tray_ = std::make_unique<SelectToSpeakTray>(shelf_); + status_area_widget_delegate_->AddChildView(select_to_speak_tray_.get()); + if (base::CommandLine::ForCurrentProcess()->HasSwitch( chromeos::switches::kEnableExperimentalAccessibilityFeatures)) { - // The Select-to-Speak button is currently only available behind the - // experimental accessibility features flag. - select_to_speak_tray_ = std::make_unique<SelectToSpeakTray>(shelf_); - status_area_widget_delegate_->AddChildView(select_to_speak_tray_.get()); - // Dictation is currently only available behind the experimental // accessibility features flag. dictation_button_tray_ = std::make_unique<DictationButtonTray>(shelf_); @@ -112,8 +110,7 @@ palette_tray_->Initialize(); virtual_keyboard_tray_->Initialize(); ime_menu_tray_->Initialize(); - if (select_to_speak_tray_) - select_to_speak_tray_->Initialize(); + select_to_speak_tray_->Initialize(); if (dictation_button_tray_) dictation_button_tray_->Initialize(); overview_button_tray_->Initialize(); @@ -152,8 +149,7 @@ logout_button_tray_->UpdateAfterShelfAlignmentChange(); virtual_keyboard_tray_->UpdateAfterShelfAlignmentChange(); ime_menu_tray_->UpdateAfterShelfAlignmentChange(); - if (select_to_speak_tray_) - select_to_speak_tray_->UpdateAfterShelfAlignmentChange(); + select_to_speak_tray_->UpdateAfterShelfAlignmentChange(); if (dictation_button_tray_) dictation_button_tray_->UpdateAfterShelfAlignmentChange(); palette_tray_->UpdateAfterShelfAlignmentChange(); @@ -217,8 +213,7 @@ virtual_keyboard_tray_->SchedulePaint(); logout_button_tray_->SchedulePaint(); ime_menu_tray_->SchedulePaint(); - if (select_to_speak_tray_) - select_to_speak_tray_->SchedulePaint(); + select_to_speak_tray_->SchedulePaint(); if (dictation_button_tray_) dictation_button_tray_->SchedulePaint(); palette_tray_->SchedulePaint(); @@ -245,8 +240,7 @@ system_tray_->UpdateShelfItemBackground(color); virtual_keyboard_tray_->UpdateShelfItemBackground(color); ime_menu_tray_->UpdateShelfItemBackground(color); - if (select_to_speak_tray_) - select_to_speak_tray_->UpdateShelfItemBackground(color); + select_to_speak_tray_->UpdateShelfItemBackground(color); if (dictation_button_tray_) dictation_button_tray_->UpdateShelfItemBackground(color); palette_tray_->UpdateShelfItemBackground(color);
diff --git a/build/config/chromeos/rules.gni b/build/config/chromeos/rules.gni index b596cf1..97c6c571 100644 --- a/build/config/chromeos/rules.gni +++ b/build/config/chromeos/rules.gni
@@ -26,6 +26,10 @@ invoker.generated_script, "//build/chromeos/", "//build/cros_cache/chrome-sdk/misc/", + + # The LKGM file controls what version of the VM image to download. Add it + # as data here so that changes to it will trigger analyze. + "//chromeos/CHROMEOS_LKGM", "//third_party/chromite/", _vm_image_path, _qemu_dir,
diff --git a/build/config/compiler/BUILD.gn b/build/config/compiler/BUILD.gn index d80eacb3..8676cf42 100644 --- a/build/config/compiler/BUILD.gn +++ b/build/config/compiler/BUILD.gn
@@ -1588,11 +1588,7 @@ # have a "thin archive" mode (it does accept -T, but it means truncating # archive names to 16 characters, which is not what we want). if ((is_posix && !is_nacl && !is_mac && !is_ios) || is_fuchsia) { - # TODO(thomasanderson): Enable on ChromeOS builds once - # https://crbug.com/829956 is fixed. - if (default_toolchain != "//build/toolchain/cros:target") { - arflags = [ "-T" ] - } + arflags = [ "-T" ] } }
diff --git a/build/fuchsia/run_package.py b/build/fuchsia/run_package.py index c2ff97a..940bb1c 100644 --- a/build/fuchsia/run_package.py +++ b/build/fuchsia/run_package.py
@@ -22,6 +22,9 @@ FAR = os.path.join(common.SDK_ROOT, 'tools', 'far') PM = os.path.join(common.SDK_ROOT, 'tools', 'pm') +# Amount of time to wait for the termination of the system log output thread. +_JOIN_TIMEOUT_SECS = 5 + def _AttachKernelLogReader(target): """Attaches a kernel log reader as a long-running SSH task.""" @@ -100,9 +103,7 @@ system_logger = _AttachKernelLogReader(target) if system_logging else None package_copied = False - log_output_thread = None try: - log_output_thread = None if system_logger: # Spin up a thread to asynchronously dump the system log to stdout # for easier diagnoses of early, pre-execution failures. @@ -110,6 +111,7 @@ log_output_thread = threading.Thread( target=lambda: DrainStreamToStdout(system_logger.stdout, log_output_quit_event)) + log_output_thread.daemon = True log_output_thread.start() logging.info('Copying package to target.') @@ -128,9 +130,9 @@ if len(output) != 1 or 'ErrAlreadyExists' not in output[0]: raise Exception('Error while installing: %s' % '\n'.join(output)) - if log_output_thread: + if system_logger: log_output_quit_event.set() - log_output_thread.join() + log_output_thread.join(timeout=_JOIN_TIMEOUT_SECS) logging.info('Running application.') command = ['run', package_name] + run_args @@ -166,7 +168,9 @@ finally: if system_logger: - print 'Terminating kernel log reader.' + logging.info('Terminating kernel log reader.') + log_output_quit_event.set() + log_output_thread.join() system_logger.kill() if package_copied:
diff --git a/build/toolchain/gcc_toolchain.gni b/build/toolchain/gcc_toolchain.gni index 48fbf699..b6f63d7 100644 --- a/build/toolchain/gcc_toolchain.gni +++ b/build/toolchain/gcc_toolchain.gni
@@ -335,11 +335,7 @@ ar_wrapper = rebase_path("//build/toolchain/gcc_ar_wrapper.py", root_build_dir) - # TODO(thomasanderson): Remove the special ChromeOS case once - # https://crbug.com/829956 is fixed. - if (default_toolchain == "//build/toolchain/cros:target") { - extra_arflags = "rcsD" - } else if (current_os == "aix") { + if (current_os == "aix") { # We use slightly different arflags for AIX. extra_arflags = "-r -c -s" } else {
diff --git a/cc/OWNERS b/cc/OWNERS index 169e4a1..5a453bed 100644 --- a/cc/OWNERS +++ b/cc/OWNERS
@@ -59,6 +59,9 @@ fsamuel@chromium.org kylechar@chromium.org +# input, scrolling +bokan@chromium.org + # we miss you # jamesr@chromium.org # nduca@chromium.org
diff --git a/chrome/android/chrome_public_apk_tmpl.gni b/chrome/android/chrome_public_apk_tmpl.gni index 93dae039..a1e23a681 100644 --- a/chrome/android/chrome_public_apk_tmpl.gni +++ b/chrome/android/chrome_public_apk_tmpl.gni
@@ -198,12 +198,13 @@ png_to_webp = true } - if (enable_arcore) { + if (enable_arcore_java) { deps += [ "//third_party/arcore-android-sdk:libarcore_library", "//third_party/arcore-android-sdk:libdynamite_client_java", ] - + } + if (enable_arcore) { # We store this as a separate .so in the APK and only load as needed. loadable_modules = [ "${root_out_dir}/libarcore_sdk_c_minimal.so" ] }
diff --git a/chrome/android/java/res/drawable/contextual_suggestions_placeholder.xml b/chrome/android/java/res/drawable/contextual_suggestions_placeholder.xml deleted file mode 100644 index 360e900..0000000 --- a/chrome/android/java/res/drawable/contextual_suggestions_placeholder.xml +++ /dev/null
@@ -1,19 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- Copyright 2017 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. --> - -<vector xmlns:android="http://schemas.android.com/apk/res/android" - xmlns:tools="http://schemas.android.com/tools" - tools:targetApi="21" - android:width="114dp" - android:height="114dp" - android:viewportWidth="114" - android:viewportHeight="114"> - - <path - android:fillColor="#BDC1C6" - android:fillType="evenOdd" - android:strokeWidth="1" - android:pathData="M49,41.0509168 L49,25 L89,25 L89,64.9575693 L72.9999126,64.9575693 C72.9999686,64.9801917 73,65.0028214 73,65.0254584 C73,78.2662321 62.254834,89 49,89 C35.745166,89 25,78.2662321 25,65.0254584 C25,51.7846847 35.745166,41.0509168 49,41.0509168 Z M49,41.0509168 L49,64.9575693 L72.9999126,64.9575693 C72.9632518,51.7480142 62.2321729,41.0509168 49,41.0509168 Z" /> -</vector> \ No newline at end of file
diff --git a/chrome/android/java/res/layout/new_tab_page_layout.xml b/chrome/android/java/res/layout/new_tab_page_layout.xml index 6a09ad7..8045653 100644 --- a/chrome/android/java/res/layout/new_tab_page_layout.xml +++ b/chrome/android/java/res/layout/new_tab_page_layout.xml
@@ -14,26 +14,6 @@ android:paddingTop="@dimen/toolbar_height_no_shadow" android:visibility="gone" > - <!-- Top spacer. Note: the top spacer must have layout_weight="1" and the middle and bottom - spacers must have layout_weight="0". The NewTabPageLayout will redistribute the extra space - between them. --> - <View - android:id="@+id/ntp_top_spacer" - android:layout_width="0dp" - android:layout_height="0dp" - android:layout_weight="1" - android:visibility="invisible" /> - - <!-- Spacer above the search provider logo that can be used to distribute extra space in order - to push part of Most Visited below the fold, suggesting that the page can be scrolled. This - is only used when there is not enough space to show the peeking card. --> - <View - android:id="@+id/search_provider_logo_spacer" - android:layout_width="0dp" - android:layout_height="0dp" - android:layout_weight="0" - android:visibility="gone" /> - <!-- Search provider logo --> <org.chromium.chrome.browser.ntp.LogoView android:id="@+id/search_provider_logo" @@ -44,16 +24,6 @@ android:layout_marginTop="26dp" android:layout_marginBottom="23dp" /> - <!-- Spacer above the search box that can be used to distribute extra space in order to push - part of Most Visited below the fold, suggesting that the page can be scrolled. This - is only used when there is not enough space to show the peeking card. --> - <View - android:id="@+id/search_box_spacer" - android:layout_width="0dp" - android:layout_height="0dp" - android:layout_weight="0" - android:visibility="gone" /> - <!-- Search box --> <view class="org.chromium.chrome.browser.ntp.NewTabPageLayout$SearchBoxContainerView" @@ -99,6 +69,13 @@ android:src="@drawable/btn_mic" /> </view> + <ViewStub + android:id="@+id/shortcuts_stub" + android:layout_width="match_parent" + android:layout_height="wrap_content" + android:inflatedId="@+id/shortcuts" + android:layout="@layout/ntp_shortcuts" /> + <!-- Middle spacer --> <View android:id="@+id/ntp_middle_spacer" @@ -118,14 +95,6 @@ android:inflatedId="@+id/tile_grid_placeholder" android:layout="@layout/new_tab_page_tile_grid_placeholder" /> - <!-- Bottom spacer --> - <View - android:id="@+id/ntp_bottom_spacer" - android:layout_width="0dp" - android:layout_height="0dp" - android:layout_weight="0" - android:visibility="invisible" /> - <!-- Spacer for when there is no search provider logo. --> <View android:id="@+id/no_search_logo_spacer" @@ -133,28 +102,4 @@ android:layout_height="0dp" android:layout_weight="1" android:visibility="gone" /> - - <LinearLayout - android:id="@+id/shortcuts" - android:layout_width="match_parent" - android:layout_height="wrap_content" - android:gravity="center" - android:orientation="horizontal" - android:visibility="gone" > - - <Button - style="@style/SuggestionCardAction" - android:id="@+id/bookmarks_button" - android:layout_width="wrap_content" - android:layout_height="wrap_content" - android:paddingEnd="16dp" - android:text="@string/menu_bookmarks" /> - - <Button - style="@style/SuggestionCardAction" - android:id="@+id/downloads_button" - android:layout_width="wrap_content" - android:layout_height="wrap_content" - android:text="@string/menu_downloads" /> - </LinearLayout> </org.chromium.chrome.browser.ntp.NewTabPageLayout>
diff --git a/chrome/android/java/res/layout/ntp_shortcuts.xml b/chrome/android/java/res/layout/ntp_shortcuts.xml new file mode 100644 index 0000000..273d5a9 --- /dev/null +++ b/chrome/android/java/res/layout/ntp_shortcuts.xml
@@ -0,0 +1,76 @@ +<?xml version="1.0" encoding="utf-8"?> +<!-- 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. --> + +<LinearLayout + xmlns:android="http://schemas.android.com/apk/res/android" + xmlns:chrome="http://schemas.android.com/apk/res-auto" + xmlns:tools="http://schemas.android.com/tools" + android:id="@+id/shortcuts" + android:layout_width="match_parent" + android:layout_height="wrap_content" + android:paddingStart="16dp" + android:paddingEnd="16dp" + android:baselineAligned="false" + android:gravity="center" + android:orientation="horizontal" > + + <!-- TODO(twellington): Change these to compound drawables once we have a widget that supports + easily sizing compound drawables. --> + <LinearLayout + android:id="@+id/bookmarks_button" + android:layout_width="0dp" + android:layout_weight="1" + android:layout_height="wrap_content" + android:minHeight="48dp" + android:paddingTop="4dp" + android:paddingBottom="4dp" + android:gravity="center" + android:orientation="horizontal" + tools:ignore="UseCompoundDrawables" > + + <ImageView + android:layout_width="20sp" + android:layout_height="20sp" + android:contentDescription="@null" + android:layout_marginEnd="8dp" + android:scaleType="fitCenter" + android:src="@drawable/btn_star_filled" + chrome:tint="@color/black_alpha_54" /> + + <TextView + android:layout_width="wrap_content" + android:layout_height="wrap_content" + android:text="@string/menu_bookmarks" + android:textAppearance="@style/BlackCaption" /> + </LinearLayout> + + <LinearLayout + android:id="@+id/downloads_button" + android:layout_width="0dp" + android:layout_weight="1" + android:layout_height="wrap_content" + android:minHeight="48dp" + android:paddingTop="4dp" + android:paddingBottom="4dp" + android:gravity="center" + android:orientation="horizontal" + tools:ignore="UseCompoundDrawables" > + + <ImageView + android:layout_width="20sp" + android:layout_height="20sp" + android:contentDescription="@null" + android:layout_marginEnd="8dp" + android:scaleType="fitCenter" + android:src="@drawable/ic_file_download_white_24dp" + chrome:tint="@color/black_alpha_54" /> + + <TextView + android:layout_width="wrap_content" + android:layout_height="wrap_content" + android:text="@string/menu_downloads" + android:textAppearance="@style/BlackCaption" /> + </LinearLayout> +</LinearLayout> \ No newline at end of file
diff --git a/chrome/android/java/res/values-sw600dp/dimens.xml b/chrome/android/java/res/values-sw600dp/dimens.xml index 079917df..8408e13d 100644 --- a/chrome/android/java/res/values-sw600dp/dimens.xml +++ b/chrome/android/java/res/values-sw600dp/dimens.xml
@@ -31,7 +31,6 @@ <dimen name="location_bar_icon_width">40dp</dimen> <!-- NTP dimensions --> - <dimen name="ntp_logo_height">180dp</dimen> <dimen name="ntp_search_box_transition_length">60dp</dimen> <!-- Recent tabs page -->
diff --git a/chrome/android/java/res/values/dimens.xml b/chrome/android/java/res/values/dimens.xml index 5b4eee131..25063019 100644 --- a/chrome/android/java/res/values/dimens.xml +++ b/chrome/android/java/res/values/dimens.xml
@@ -336,7 +336,7 @@ <dimen name="tile_view_title_margin_top">66dp</dimen> <dimen name="tile_view_title_margin_top_condensed">62dp</dimen> <dimen name="tile_view_title_margin_top_modern">61dp</dimen> - <dimen name="ntp_logo_height">116dp</dimen> + <dimen name="ntp_logo_height">100dp</dimen> <dimen name="ntp_logo_margin_top_modern">25dp</dimen> <!-- bottom_control_container_height + 8 --> <dimen name="ntp_logo_margin_bottom_modern">64dp</dimen> @@ -363,10 +363,6 @@ peeking card animation (the calculations assume this is the same). --> <dimen name="snippets_padding">16dp</dimen> <dimen name="snippets_header_top_padding">10dp</dimen> - <!-- The amount of the peeking card showing above the fold with the increased visibility UI - (https://crbug.com/660837). --> - <dimen name="snippets_peeking_card_peek_amount">32dp</dimen> - <dimen name="snippets_peeking_card_bounce_distance">10dp</dimen> <dimen name="snippets_card_gap">0.5dp</dimen> <dimen name="snippets_article_header_height">40dp</dimen> <dimen name="snippets_publisher_margin_top">8dp</dimen>
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ChromeFeatureList.java b/chrome/android/java/src/org/chromium/chrome/browser/ChromeFeatureList.java index a398a8f..bb8add1c 100644 --- a/chrome/android/java/src/org/chromium/chrome/browser/ChromeFeatureList.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/ChromeFeatureList.java
@@ -199,6 +199,7 @@ public static final String DATA_REDUCTION_MAIN_MENU = "DataReductionProxyMainMenu"; public static final String DONT_PREFETCH_LIBRARIES = "DontPrefetchLibraries"; public static final String DOWNLOAD_HOME_SHOW_STORAGE_INFO = "DownloadHomeShowStorageInfo"; + public static final String DOWNLOAD_PROGRESS_INFOBAR = "DownloadProgressInfoBar"; public static final String DOWNLOADS_FOREGROUND = "DownloadsForeground"; public static final String DOWNLOADS_LOCATION_CHANGE = "DownloadsLocationChange"; public static final String EXPERIMENTAL_APP_BANNERS = "ExperimentalAppBanners"; @@ -221,12 +222,9 @@ public static final String NO_CREDIT_CARD_ABORT = "NoCreditCardAbort"; public static final String NTP_ARTICLE_SUGGESTIONS_EXPANDABLE_HEADER = "NTPArticleSuggestionsExpandableHeader"; - public static final String NTP_CONDENSED_LAYOUT = "NTPCondensedLayout"; - public static final String NTP_CONDENSED_TILE_LAYOUT = "NTPCondensedTileLayout"; public static final String NTP_FOREIGN_SESSIONS_SUGGESTIONS = "NTPForeignSessionsSuggestions"; public static final String NTP_LAUNCH_AFTER_INACTIVITY = "NTPLaunchAfterInactivity"; public static final String NTP_MODERN_LAYOUT = "NTPModernLayout"; - public static final String NTP_SHORTCUTS = "NTPShortcuts"; public static final String NTP_SHOW_GOOGLE_G_IN_OMNIBOX = "NTPShowGoogleGInOmnibox"; public static final String NTP_SNIPPETS_INCREASED_VISIBILITY = "NTPSnippetsIncreasedVisibility"; public static final String OFFLINE_PAGES_DESCRIPTIVE_FAIL_STATUS = @@ -248,6 +246,7 @@ public static final String REMOVE_NAVIGATION_HISTORY = "RemoveNavigationHistory"; public static final String SERVICE_WORKER_PAYMENT_APPS = "ServiceWorkerPaymentApps"; public static final String SHOW_TRUSTED_PUBLISHER_URL = "ShowTrustedPublisherURL"; + public static final String SIMPLIFIED_NTP = "SimplifiedNTP"; public static final String SITE_NOTIFICATION_CHANNELS = "SiteNotificationChannels"; public static final String SOLE_INTEGRATION = "SoleIntegration"; public static final String SOUND_CONTENT_SETTING = "SoundContentSetting";
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/compositor/layouts/Layout.java b/chrome/android/java/src/org/chromium/chrome/browser/compositor/layouts/Layout.java index 411d6a2..ac5ad3d 100644 --- a/chrome/android/java/src/org/chromium/chrome/browser/compositor/layouts/Layout.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/compositor/layouts/Layout.java
@@ -109,7 +109,7 @@ private boolean mIsHiding; // The next id to show when the layout is hidden, or TabBase#INVALID_TAB_ID if no change. - private int mNextTabId = Tab.INVALID_TAB_ID; + protected int mNextTabId = Tab.INVALID_TAB_ID; // The ratio of dp to px. protected final float mDpToPx;
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/compositor/layouts/LayoutManagerChromePhone.java b/chrome/android/java/src/org/chromium/chrome/browser/compositor/layouts/LayoutManagerChromePhone.java index 3f8a45d..5640af41b 100644 --- a/chrome/android/java/src/org/chromium/chrome/browser/compositor/layouts/LayoutManagerChromePhone.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/compositor/layouts/LayoutManagerChromePhone.java
@@ -8,7 +8,6 @@ import android.view.ViewGroup; import org.chromium.chrome.browser.compositor.layouts.content.TabContentManager; -import org.chromium.chrome.browser.compositor.layouts.eventfilter.ScrollDirection; import org.chromium.chrome.browser.compositor.layouts.phone.SimpleAnimationLayout; import org.chromium.chrome.browser.compositor.overlays.SceneOverlay; import org.chromium.chrome.browser.contextualsearch.ContextualSearchManagementDelegate; @@ -46,11 +45,6 @@ } @Override - protected ToolbarSwipeHandler createToolbarSwipeHandler(LayoutProvider provider) { - return new PhoneToolbarSwipeHandler(provider); - } - - @Override public void init(TabModelSelector selector, TabCreatorManager creator, TabContentManager content, ViewGroup androidContentContainer, ContextualSearchManagementDelegate contextualSearchDelegate, @@ -155,15 +149,4 @@ mTitleCache.remove(id); super.releaseTabLayout(id); } - - private class PhoneToolbarSwipeHandler extends ToolbarSwipeHandler { - public PhoneToolbarSwipeHandler(LayoutProvider provider) { - super(provider); - } - - @Override - public boolean isSwipeEnabled(ScrollDirection direction) { - return super.isSwipeEnabled(direction); - } - } }
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/compositor/layouts/LayoutManagerChromeTablet.java b/chrome/android/java/src/org/chromium/chrome/browser/compositor/layouts/LayoutManagerChromeTablet.java index 9c0e191..d282024 100644 --- a/chrome/android/java/src/org/chromium/chrome/browser/compositor/layouts/LayoutManagerChromeTablet.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/compositor/layouts/LayoutManagerChromeTablet.java
@@ -10,7 +10,6 @@ import org.chromium.chrome.R; import org.chromium.chrome.browser.compositor.layouts.content.TabContentManager; -import org.chromium.chrome.browser.compositor.layouts.eventfilter.ScrollDirection; import org.chromium.chrome.browser.compositor.overlays.strip.StripLayoutHelperManager; import org.chromium.chrome.browser.contextualsearch.ContextualSearchManagementDelegate; import org.chromium.chrome.browser.tab.Tab; @@ -75,11 +74,6 @@ } @Override - protected ToolbarSwipeHandler createToolbarSwipeHandler(LayoutProvider provider) { - return new TabletToolbarSwipeHandler(provider); - } - - @Override public void tabSelected(int tabId, int prevId, boolean incognito) { if (getActiveLayout() == mStaticLayout || getActiveLayout() == mOverviewListLayout) { super.tabSelected(tabId, prevId, incognito); @@ -175,21 +169,4 @@ } requestUpdate(); } - - private class TabletToolbarSwipeHandler extends ToolbarSwipeHandler { - public TabletToolbarSwipeHandler(LayoutProvider provider) { - super(provider); - } - - @Override - public boolean isSwipeEnabled(ScrollDirection direction) { - if ((direction == ScrollDirection.LEFT || direction == ScrollDirection.RIGHT) - && (getTabModelSelector() == null - || getTabModelSelector().getCurrentModel().getCount() <= 1)) { - return false; - } - - return super.isSwipeEnabled(direction); - } - } }
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/compositor/layouts/phone/StackLayoutBase.java b/chrome/android/java/src/org/chromium/chrome/browser/compositor/layouts/phone/StackLayoutBase.java index 53a5475..380290f 100644 --- a/chrome/android/java/src/org/chromium/chrome/browser/compositor/layouts/phone/StackLayoutBase.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/compositor/layouts/phone/StackLayoutBase.java
@@ -14,6 +14,7 @@ import android.widget.FrameLayout; import org.chromium.base.VisibleForTesting; +import org.chromium.base.metrics.RecordHistogram; import org.chromium.base.metrics.RecordUserAction; import org.chromium.chrome.browser.ChromeFeatureList; import org.chromium.chrome.browser.compositor.LayerTitleCache; @@ -100,6 +101,12 @@ */ protected boolean mIsActiveLayout; + /** + * This is true if a new tab was just created and we're in the process of hiding this layout as + * a result and false otherwise. + */ + private boolean mIsHidingBecauseOfNewTabCreation; + /** The list of potentially visible stacks. */ protected final ArrayList<Stack> mStacks; @@ -543,6 +550,9 @@ boolean background, float originX, float originY) { super.onTabCreated( time, id, tabIndex, sourceId, newIsIncognito, background, originX, originY); + + // Suppress startHiding()'s logging to the Tabs.TabOffsetOfSwitch histogram. + mIsHidingBecauseOfNewTabCreation = true; startHiding(id, false); mStacks.get(getTabStackIndex(id)).tabCreated(time, id); @@ -1225,15 +1235,37 @@ @Override public void startHiding(int nextTabId, boolean hintAtTabSelection) { + super.startHiding(nextTabId, hintAtTabSelection); + // Reset mIsActiveLayout here instead of in doneHiding() so if a user hits the tab switcher // button on the toolbar to re-open it while we're still in the process of hiding the tab // switcher, we don't skip the logging. - super.startHiding(nextTabId, hintAtTabSelection); mIsActiveLayout = false; } @Override public void doneHiding() { + // Log offset between newly-selected and previously-active tabs. A positive offset means the + // user switched to a tab earlier in the stack. A negative offset means the user switched to + // a tab later in the stack. 0 means they stayed on the same tab. We do not log anything if + // the user switched between stacks (normal to incognito or vice-versa). We also do not log + // anything if the tab switch was the result of a new tab being created (we do log for + // presses of the tab switcher button on the toolbar). + + // Note: we log this in doneHiding() instead of startHiding() because Layout#doneHiding() is + // where the new tab actually gets selected. If the user immediately reopens the tab + // switcher before the close animation finishes, the new tab doesn't actually get selected. + if (!mIsHidingBecauseOfNewTabCreation + && mModelIndexWhenOpened == mTabModelSelector.getCurrentModelIndex()) { + final int currentIndex = mTabModelSelector.getCurrentModel().index(); + final Tab newTab = mTabModelSelector.getTabById(mNextTabId); + final int newIndex = mTabModelSelector.getCurrentModel().indexOf(newTab); + assert newIndex != TabList.INVALID_TAB_INDEX; + RecordHistogram.recordSparseSlowlyHistogram( + "Tabs.TabOffsetOfSwitch", currentIndex - newIndex); + } + mIsHidingBecauseOfNewTabCreation = false; + super.doneHiding(); mInnerMarginPercent = 0.0f;
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/download/DownloadInfoBarController.java b/chrome/android/java/src/org/chromium/chrome/browser/download/DownloadInfoBarController.java new file mode 100644 index 0000000..1df1964 --- /dev/null +++ b/chrome/android/java/src/org/chromium/chrome/browser/download/DownloadInfoBarController.java
@@ -0,0 +1,174 @@ +// 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.download; + +import android.app.Activity; +import android.support.annotation.Nullable; + +import org.chromium.base.ApplicationStatus; +import org.chromium.chrome.browser.ChromeActivity; +import org.chromium.chrome.browser.infobar.DownloadProgressInfoBar; +import org.chromium.chrome.browser.infobar.InfoBar; +import org.chromium.chrome.browser.infobar.InfoBarContainer; +import org.chromium.chrome.browser.infobar.InfoBarIdentifier; +import org.chromium.chrome.browser.tab.Tab; +import org.chromium.chrome.browser.util.FeatureUtilities; +import org.chromium.components.offline_items_collection.ContentId; + +/** + * This class is responsible for tracking various updates for download items, offline items, android + * downloads and computing the the state of the {@link DownloadProgressInfoBar} . + */ +public class DownloadInfoBarController { + /** + * Represents the data required to show UI elements of the {@link DownloadProgressInfoBar}.. + */ + public static class DownloadProgressInfoBarData { + @Nullable + public ContentId id; + + public String message; + public String link; + public int icon; + + // Whether the icon should have animation. + public boolean hasAnimation; + + // Whether the animation should be shown only once. + public boolean dontRepeat; + + // Whether the the InfoBar must be shown in the current tab, even if the user has navigated + // to a different tab. In that case, the InfoBar associated with the previous tab is closed + // and a new InfoBar is created with the currently focused tab. + public boolean forceReparent; + } + + private final boolean mIsIncognito; + private DownloadProgressInfoBar.Client mClient = new DownloadProgressInfoBarClient(); + + // The InfoBar, currently being handled by this controller. + private DownloadProgressInfoBar mCurrentInfoBar; + + // Represents the currently displayed InfoBar data. + private DownloadProgressInfoBarData mCurrentInfo; + + /** Constructor. */ + public DownloadInfoBarController(boolean isIncognito) { + mIsIncognito = isIncognito; + } + + /** + * Central function called to show an InfoBar. If the previous InfoBar was on a different + * tab which is currently not active, based on the value of |info.forceReparent|, it is + * determines whether to close the InfoBar and recreate or simply update the existing InfoBar. + * @param info Contains the information to be displayed in the UI. + */ + private void showInfoBar(DownloadProgressInfoBarData info) { + if (!FeatureUtilities.isDownloadProgressInfoBarEnabled()) return; + + mCurrentInfo = info; + + Tab currentTab = getCurrentTab(); + if (currentTab != null && (info.forceReparent || mCurrentInfoBar == null)) { + showInfoBarForCurrentTab(info); + } else { + updateExistingInfoBar(info); + } + } + + private void showInfoBarForCurrentTab(DownloadProgressInfoBarData info) { + Tab currentTab = getCurrentTab(); + Tab prevTab = mCurrentInfoBar != null ? mCurrentInfoBar.getTab() : null; + + if (currentTab != prevTab) closePreviousInfoBar(); + if (mCurrentInfoBar == null) { + createInfoBar(info); + } else { + updateExistingInfoBar(info); + } + } + + private void createInfoBar(DownloadProgressInfoBarData infoBarData) { + if (!FeatureUtilities.isDownloadProgressInfoBarEnabled()) return; + + Tab currentTab = getCurrentTab(); + if (currentTab == null) return; + + currentTab.getInfoBarContainer().addObserver(mInfoBarContainerObserver); + DownloadProgressInfoBar.createInfoBar(mClient, currentTab, infoBarData); + } + + private void updateExistingInfoBar(DownloadProgressInfoBarData info) { + if (mCurrentInfoBar == null) return; + + mCurrentInfoBar.updateInfoBar(info); + } + + private void closePreviousInfoBar() { + if (mCurrentInfoBar == null) return; + + Tab prevTab = mCurrentInfoBar.getTab(); + if (prevTab != null) { + prevTab.getInfoBarContainer().removeObserver(mInfoBarContainerObserver); + } + + mCurrentInfoBar.closeInfoBar(); + mCurrentInfoBar = null; + } + + private InfoBarContainer.InfoBarContainerObserver mInfoBarContainerObserver = + new InfoBarContainer.InfoBarContainerObserver() { + @Override + public void onAddInfoBar( + InfoBarContainer container, InfoBar infoBar, boolean isFirst) { + if (infoBar.getInfoBarIdentifier() + != InfoBarIdentifier.DOWNLOAD_PROGRESS_INFOBAR_ANDROID) { + return; + } + + mCurrentInfoBar = (DownloadProgressInfoBar) infoBar; + } + + @Override + public void onRemoveInfoBar( + InfoBarContainer container, InfoBar infoBar, boolean isLast) { + if (infoBar.getInfoBarIdentifier() + != InfoBarIdentifier.DOWNLOAD_PROGRESS_INFOBAR_ANDROID) { + return; + } + + mCurrentInfoBar = null; + container.removeObserver(this); + } + + @Override + public void onInfoBarContainerAttachedToWindow(boolean hasInfobars) {} + + @Override + public void onInfoBarContainerShownRatioChanged( + InfoBarContainer container, float shownRatio) {} + }; + + @Nullable + private Tab getCurrentTab() { + // TODO(shaktisahu): Use a TabModelSelector instead. + if (!ApplicationStatus.hasVisibleActivities()) return null; + Activity activity = ApplicationStatus.getLastTrackedFocusedActivity(); + if (!(activity instanceof ChromeActivity)) return null; + return ((ChromeActivity) activity).getActivityTab(); + } + + private class DownloadProgressInfoBarClient implements DownloadProgressInfoBar.Client { + @Override + public void onLinkClicked(ContentId itemId) { + // TODO(shaktisahu): Add logic. + } + + @Override + public void onInfoBarClosed(boolean explicitly) { + // TODO(shaktisahu): Add logic. + } + } +}
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/download/ui/DownloadManagerUi.java b/chrome/android/java/src/org/chromium/chrome/browser/download/ui/DownloadManagerUi.java index 7fc7459..0fa47cda 100644 --- a/chrome/android/java/src/org/chromium/chrome/browser/download/ui/DownloadManagerUi.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/download/ui/DownloadManagerUi.java
@@ -305,6 +305,8 @@ mIsSeparateActivity = isSeparateActivity; if (!mIsSeparateActivity) mToolbar.removeCloseButton(); + + RecordUserAction.record("Android.DownloadManager.Open"); } /**
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/fullscreen/FullscreenHtmlApiHandler.java b/chrome/android/java/src/org/chromium/chrome/browser/fullscreen/FullscreenHtmlApiHandler.java index dd421ea..0eddc13 100644 --- a/chrome/android/java/src/org/chromium/chrome/browser/fullscreen/FullscreenHtmlApiHandler.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/fullscreen/FullscreenHtmlApiHandler.java
@@ -45,11 +45,13 @@ private final Handler mHandler; private final FullscreenHtmlApiDelegate mDelegate; - // We still need this since we are setting fullscreen UI state on the WebContents's - // container view, and a Tab can change to have null web contents, i.e., if you navigate - // to a native page. + // We need to cache WebContents/ContentView since we are setting fullscreen UI state on + // the WebContents's container view, and a Tab can change to have null web contents/ + // content view, i.e., if you navigate to a native page. @Nullable private WebContents mWebContentsInFullscreen; + @Nullable + private View mContentViewInFullscreen; @Nullable private Tab mTabInFullscreen; private boolean mIsPersistentMode; private FullscreenOptions mFullscreenOptions; @@ -113,7 +115,8 @@ final WebContents webContents = fullscreenHtmlApiHandler.mWebContentsInFullscreen; if (webContents == null) return; - final View contentView = fullscreenHtmlApiHandler.mTabInFullscreen.getContentView(); + final View contentView = fullscreenHtmlApiHandler.mContentViewInFullscreen; + if (contentView == null) return; int systemUiVisibility = contentView.getSystemUiVisibility(); switch (msg.what) { @@ -213,6 +216,7 @@ } } mWebContentsInFullscreen = null; + mContentViewInFullscreen = null; mTabInFullscreen = null; mFullscreenOptions = null; } @@ -319,6 +323,7 @@ contentView.requestLayout(); mWebContentsInFullscreen = webContents; + mContentViewInFullscreen = contentView; mTabInFullscreen = tab; }
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/infobar/DownloadProgressInfoBar.java b/chrome/android/java/src/org/chromium/chrome/browser/infobar/DownloadProgressInfoBar.java new file mode 100644 index 0000000..f573f9c --- /dev/null +++ b/chrome/android/java/src/org/chromium/chrome/browser/infobar/DownloadProgressInfoBar.java
@@ -0,0 +1,176 @@ +// 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.infobar; + +import android.graphics.drawable.Drawable; +import android.support.annotation.Nullable; +import android.support.graphics.drawable.Animatable2Compat; +import android.support.graphics.drawable.AnimatedVectorDrawableCompat; + +import org.chromium.base.annotations.CalledByNative; +import org.chromium.chrome.browser.download.DownloadInfoBarController; +import org.chromium.chrome.browser.tab.Tab; +import org.chromium.components.offline_items_collection.ContentId; + +/** + * An {@link InfoBar} to provide information about currently running downloads. + */ +public class DownloadProgressInfoBar extends InfoBar { + /** + * Represents the client of this InfoBar. Provides hooks to take actions on various UI events + * associated with the InfoBar. + */ + public interface Client { + /** + * Called when a link is clicked by the user. + * @param itemId The ContentId of the item currently being shown in the InfoBar. + */ + void onLinkClicked(@Nullable ContentId itemId); + + /** + * Called when the InfoBar is closed either implicitly or explicitly by the user. + * @param explicitly Whether the InfoBar was closed explicitly by the user from close + * button. + */ + void onInfoBarClosed(boolean explicitly); + } + + private final Client mClient; + private AnimatedVectorDrawableCompat mAnimatedDrawable; + private DownloadInfoBarController.DownloadProgressInfoBarData mInfo; + + // Indicates whether there is a pending layout update waiting for the currently running + // animation to finish. + private boolean mUpdatePending; + + private DownloadProgressInfoBar( + Client client, DownloadInfoBarController.DownloadProgressInfoBarData info) { + super(info.icon, null, null); + mInfo = info; + mClient = client; + } + + @Override + protected boolean usesCompactLayout() { + return false; + } + + @Override + public void createContent(InfoBarLayout layout) { + setLayoutProperties(layout, mInfo); + } + + @Override + public void onCloseButtonClicked() { + mClient.onInfoBarClosed(true); + super.onCloseButtonClicked(); + } + + @Override + public void onLinkClicked() { + mClient.onLinkClicked(mInfo.id); + } + + /** + * @return The tab associated with this infobar. + */ + public Tab getTab() { + return nativeGetTab(getNativeInfoBarPtr()); + } + + /** + * Updates the infobar layout with the given data. If the infobar icon is already showing an + * animation, it will wait for the currently animation to finish before showing the new data. + */ + private void setLayoutProperties( + InfoBarLayout layout, DownloadInfoBarController.DownloadProgressInfoBarData info) { + mInfo = info; + + if (mAnimatedDrawable != null && mAnimatedDrawable.isRunning()) { + // Wait for the current animation to finish. + mUpdatePending = true; + } else { + updateLayout(layout); + } + } + + /** + * Populates the infobar layout with the given information and handles the icon animation. Note + * that the icon can be specified as a static image or an animated image. The animation can be + * specified to be once-only or repeating. + */ + private void updateLayout(InfoBarLayout layout) { + layout.setMessage(mInfo.message); + layout.appendMessageLinkText(mInfo.link); + + if (!mInfo.hasAnimation) { + layout.getIcon().setImageResource(mInfo.icon); + return; + } + + mAnimatedDrawable = AnimatedVectorDrawableCompat.create(getContext(), mInfo.icon); + mAnimatedDrawable.registerAnimationCallback(new Animatable2Compat.AnimationCallback() { + @Override + public void onAnimationEnd(Drawable drawable) { + if (mUpdatePending) { + mUpdatePending = false; + updateLayout(layout); + return; + } + + if (mInfo.dontRepeat) return; + restartIconAnimation(); + } + }); + + layout.getIcon().setImageDrawable(mAnimatedDrawable); + mAnimatedDrawable.start(); + } + + private void restartIconAnimation() { + if (mAnimatedDrawable == null) return; + + mAnimatedDrawable.start(); + } + + /** + * Updates an existing {@link DownloadProgressInfoBar} with the new information. + * @param info The information to be updated on the UI. + */ + public void updateInfoBar(DownloadInfoBarController.DownloadProgressInfoBarData info) { + if (getView() == null) return; + + mInfo = info; + setLayoutProperties((InfoBarLayout) getView(), info); + } + + /** + * Creates and shows the {@link DownloadProgressInfoBar}. + * @param tab The tab that the {@link DownloadProgressInfoBar} should be shown in. + */ + public static void createInfoBar( + Client client, Tab tab, DownloadInfoBarController.DownloadProgressInfoBarData info) { + nativeCreate(client, tab, info); + } + + /** + * Closes the {@link DownloadProgressInfoBar}. + */ + public void closeInfoBar() { + mClient.onInfoBarClosed(false); + super.onCloseButtonClicked(); + } + + @CalledByNative + private static DownloadProgressInfoBar create( + Client client, DownloadInfoBarController.DownloadProgressInfoBarData info) { + return new DownloadProgressInfoBar(client, info); + } + + private static native void nativeCreate( + Client client, Tab tab, DownloadInfoBarController.DownloadProgressInfoBarData info); + + private native Tab nativeGetTab(long nativeDownloadProgressInfoBar); +}
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ntp/NewTabPageLayout.java b/chrome/android/java/src/org/chromium/chrome/browser/ntp/NewTabPageLayout.java index ea7b1ede..bcb3694b 100644 --- a/chrome/android/java/src/org/chromium/chrome/browser/ntp/NewTabPageLayout.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/ntp/NewTabPageLayout.java
@@ -4,24 +4,17 @@ package org.chromium.chrome.browser.ntp; -import android.annotation.SuppressLint; import android.content.Context; import android.content.res.Resources; import android.graphics.drawable.RippleDrawable; import android.os.Build; import android.util.AttributeSet; -import android.util.TypedValue; import android.view.MotionEvent; import android.view.View; import android.view.ViewGroup; import android.widget.LinearLayout; import org.chromium.chrome.R; -import org.chromium.chrome.browser.ChromeFeatureList; -import org.chromium.chrome.browser.ntp.NewTabPageUma.NTPLayoutResult; -import org.chromium.chrome.browser.ntp.cards.CardsVariationParameters; -import org.chromium.chrome.browser.ntp.cards.NewTabPageRecyclerView; -import org.chromium.chrome.browser.ntp.snippets.SnippetsConfig; import org.chromium.chrome.browser.suggestions.SiteSection; import org.chromium.chrome.browser.suggestions.TileGridLayout; @@ -30,69 +23,29 @@ * There are no separate phone and tablet UIs; this layout adapts based on the available space. */ public class NewTabPageLayout extends LinearLayout { - - // Space permitting, the spacers will grow from 0dp to the heights given below. If there is - // additional space, it will be distributed evenly between the top and bottom spacers. - private static final float TOP_SPACER_HEIGHT_DP = 44f; - private static final float MIDDLE_SPACER_HEIGHT_DP = 24f; - private static final float BOTTOM_SPACER_HEIGHT_DP = 44f; - private static final float TOTAL_SPACER_HEIGHT_DP = TOP_SPACER_HEIGHT_DP - + MIDDLE_SPACER_HEIGHT_DP + BOTTOM_SPACER_HEIGHT_DP; - - private final int mTopSpacerIdealHeight; - private final int mMiddleSpacerIdealHeight; - private final int mBottomSpacerIdealHeight; - private final int mTotalSpacerIdealHeight; private final int mTileGridLayoutBleed; - private final int mPeekingCardHeight; - private final int mTabStripHeight; - private final int mFieldTrialLayoutAdjustment; private final int mSearchboxShadowWidth; - private int mParentViewportHeight; - - private View mTopSpacer; // Spacer above search logo. private View mMiddleSpacer; // Spacer between toolbar and Most Likely. - private View mBottomSpacer; // Spacer below Most Likely. - - private View mLogoSpacer; // Spacer above the logo. - private View mSearchBoxSpacer; // Spacer above the search box. private LogoView mSearchProviderLogoView; private View mSearchBoxView; private ViewGroup mSiteSectionView; - private boolean mLayoutResultRecorded; - /** * Constructor for inflating from XML. */ public NewTabPageLayout(Context context, AttributeSet attrs) { super(context, attrs); Resources res = getResources(); - float density = res.getDisplayMetrics().density; - mTopSpacerIdealHeight = Math.round(density * TOP_SPACER_HEIGHT_DP); - mMiddleSpacerIdealHeight = Math.round(density * MIDDLE_SPACER_HEIGHT_DP); - mBottomSpacerIdealHeight = Math.round(density * BOTTOM_SPACER_HEIGHT_DP); - mTotalSpacerIdealHeight = Math.round(density * TOTAL_SPACER_HEIGHT_DP); mTileGridLayoutBleed = res.getDimensionPixelSize(R.dimen.tile_grid_layout_bleed); - mPeekingCardHeight = SnippetsConfig.isIncreasedCardVisibilityEnabled() - ? res.getDimensionPixelSize(R.dimen.snippets_peeking_card_peek_amount) - : res.getDimensionPixelSize(R.dimen.snippets_padding); - mTabStripHeight = res.getDimensionPixelSize(R.dimen.tab_strip_height); - mFieldTrialLayoutAdjustment = (int) TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, - CardsVariationParameters.getFirstCardOffsetDp(), res.getDisplayMetrics()); mSearchboxShadowWidth = res.getDimensionPixelOffset(R.dimen.ntp_search_box_shadow_width); } @Override protected void onFinishInflate() { super.onFinishInflate(); - mTopSpacer = findViewById(R.id.ntp_top_spacer); mMiddleSpacer = findViewById(R.id.ntp_middle_spacer); - mBottomSpacer = findViewById(R.id.ntp_bottom_spacer); - mLogoSpacer = findViewById(R.id.search_provider_logo_spacer); - mSearchBoxSpacer = findViewById(R.id.search_box_spacer); mSearchProviderLogoView = findViewById(R.id.search_provider_logo); mSearchBoxView = findViewById(R.id.search_box); insertSiteSectionView(); @@ -109,18 +62,6 @@ } /** - * Specifies the height of the parent's viewport for the container view of this View. - * - * As this is required in onMeasure, we can not rely on the parent having the proper - * size set yet and thus must be told explicitly of this size. - * - * This View takes into account the presence of the tab strip height for tablets. - */ - public void setParentViewportHeight(int height) { - mParentViewportHeight = height; - } - - /** * @return the embedded {@link TileGridLayout}. */ public ViewGroup getSiteSectionView() { @@ -129,98 +70,8 @@ @Override protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) { - calculateVerticalSpacing(widthMeasureSpec, heightMeasureSpec); - unifyElementWidths(); - } - - /** - * Uses the total vertical space to determine and configure the layout. This can be one of: - * - If our contents cannot fit on the screen, increase the spacing to push the Most Likely - * partially off the screen, suggesting to users they can scroll. - * - If our contents can fit on the screen, increase the spacing to fill the space (minus space - * for the CardsUI Peeking card). - */ - @SuppressLint("WrongCall") // We explicitly call super.onMeasure() as we have multiple measuring - // passes and adjust the UI depending on the result of the previous. - private void calculateVerticalSpacing(int widthMeasureSpec, int heightMeasureSpec) { - mLogoSpacer.setVisibility(View.GONE); - mSearchBoxSpacer.setVisibility(View.GONE); - - // Remove the extra spacing before measuring because it might not be needed anymore. - ((TileGridLayout) mSiteSectionView).setExtraVerticalSpacing(0); - super.onMeasure(widthMeasureSpec, heightMeasureSpec); - - boolean hasSpaceForPeekingCard = false; - int spaceToFill = mParentViewportHeight - mPeekingCardHeight - mTabStripHeight; - @NTPLayoutResult int layoutResult; - - if (ChromeFeatureList.isEnabled(ChromeFeatureList.NTP_CONDENSED_LAYOUT)) { - layoutResult = NewTabPageUma.NTP_LAYOUT_CONDENSED; - } else if (getMeasuredHeight() > spaceToFill) { - // We need to make sure we have just enough space to show the peeking card. - layoutResult = NewTabPageUma.NTP_LAYOUT_DOES_NOT_FIT; - - // We don't have enough, we will push the peeking card completely below the fold - // and let the tile grid get cut to make it clear that the page is scrollable. - if (mSiteSectionView.getChildCount() > 0) { - // Add some extra space if needed (the 'bleed' is the amount of the layout that - // will be cut off by the bottom of the screen). - int currentBleed = getMeasuredHeight() - mParentViewportHeight - mTabStripHeight; - int minimumBleed = - (int) (mSiteSectionView.getChildAt(0).getMeasuredHeight() * 0.44); - if (currentBleed < minimumBleed) { - int extraBleed = minimumBleed - currentBleed; - mLogoSpacer.getLayoutParams().height = (int) (extraBleed * 0.25); - mLogoSpacer.setVisibility(View.INVISIBLE); - mSearchBoxSpacer.getLayoutParams().height = (int) (extraBleed * 0.25); - mSearchBoxSpacer.setVisibility(View.INVISIBLE); - ((TileGridLayout) mSiteSectionView) - .setExtraVerticalSpacing((int) (extraBleed * 0.5)); - - super.onMeasure(widthMeasureSpec, heightMeasureSpec); - - layoutResult = NewTabPageUma.NTP_LAYOUT_DOES_NOT_FIT_PUSH_MOST_LIKELY; - } - } - } else { - hasSpaceForPeekingCard = true; - // We leave more than or just enough space needed for the peeking card. Redistribute - // any weighted space. - - // There is a field trial experiment to determine the effect of raising the peeking - // card, allowing the user to see some of it's contents when scrolled to the top. This - // is achieved by making the NewTabPageLayout smaller. - // If there is enough space, reduce the space we are going to fill. - if (mFieldTrialLayoutAdjustment != 0f) { - if (getMeasuredHeight() < spaceToFill - mFieldTrialLayoutAdjustment) { - spaceToFill -= mFieldTrialLayoutAdjustment; - layoutResult = NewTabPageUma.NTP_LAYOUT_FITS_WITH_FIELD_TRIAL; - } else { - layoutResult = NewTabPageUma.NTP_LAYOUT_FITS_WITHOUT_FIELD_TRIAL; - } - } else { - layoutResult = NewTabPageUma.NTP_LAYOUT_FITS_NO_FIELD_TRIAL; - } - - // Call super.onMeasure with mode EXACTLY and the target height to allow the top - // spacer (which has a weight of 1) to grow and take up the remaining space. - heightMeasureSpec = - MeasureSpec.makeMeasureSpec(spaceToFill, MeasureSpec.EXACTLY); - super.onMeasure(widthMeasureSpec, heightMeasureSpec); - - distributeExtraSpace(mTopSpacer.getMeasuredHeight()); - } - - NewTabPageRecyclerView recyclerView = (NewTabPageRecyclerView) getParent(); - recyclerView.setHasSpaceForPeekingCard(hasSpaceForPeekingCard); - - // The first few runs of this method occur before the tile grid layout has loaded its - // contents. We want to record what the user sees when the layout has stabilized. - if (mSiteSectionView.getChildCount() > 0 && !mLayoutResultRecorded) { - mLayoutResultRecorded = true; - NewTabPageUma.recordNTPLayoutResult(layoutResult); - } + unifyElementWidths(); } /** @@ -237,36 +88,6 @@ } /** - * Distribute extra vertical space between the three spacer views. Doing this here allows for - * more sophisticated constraints than in xml. - * @param extraHeight The amount of extra space, in pixels. - */ - private void distributeExtraSpace(int extraHeight) { - int topSpacerHeight; - int middleSpacerHeight; - int bottomSpacerHeight; - - if (extraHeight < mTotalSpacerIdealHeight) { - // The spacers will be less than their ideal height, shrink them proportionally. - topSpacerHeight = - Math.round(extraHeight * (TOP_SPACER_HEIGHT_DP / TOTAL_SPACER_HEIGHT_DP)); - middleSpacerHeight = - Math.round(extraHeight * (MIDDLE_SPACER_HEIGHT_DP / TOTAL_SPACER_HEIGHT_DP)); - bottomSpacerHeight = extraHeight - topSpacerHeight - middleSpacerHeight; - } else { - // Distribute remaining space evenly between the top and bottom spacers. - extraHeight -= mTotalSpacerIdealHeight; - topSpacerHeight = mTopSpacerIdealHeight + extraHeight / 2; - middleSpacerHeight = mMiddleSpacerIdealHeight; - bottomSpacerHeight = mBottomSpacerIdealHeight + extraHeight / 2; - } - - measureExactly(mTopSpacer, 0, topSpacerHeight); - measureExactly(mMiddleSpacer, 0, middleSpacerHeight); - measureExactly(mBottomSpacer, 0, bottomSpacerHeight); - } - - /** * Convenience method to call measure() on the given View with MeasureSpecs converted from the * given dimensions (in pixels) with MeasureSpec.EXACTLY. */
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ntp/NewTabPageUma.java b/chrome/android/java/src/org/chromium/chrome/browser/ntp/NewTabPageUma.java index 58bcf84..3121743 100644 --- a/chrome/android/java/src/org/chromium/chrome/browser/ntp/NewTabPageUma.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/ntp/NewTabPageUma.java
@@ -88,43 +88,6 @@ private static final int MAX_SUGGESTIONS_PER_SECTION = 20; /** - * Possible results when sizing the NewTabPageLayout. - * Do not remove or change existing values other than NUM_NTP_LAYOUT_RESULTS. - */ - @IntDef({NTP_LAYOUT_DOES_NOT_FIT, NTP_LAYOUT_DOES_NOT_FIT_PUSH_MOST_LIKELY, - NTP_LAYOUT_FITS_NO_FIELD_TRIAL, NTP_LAYOUT_FITS_WITHOUT_FIELD_TRIAL, - NTP_LAYOUT_FITS_WITH_FIELD_TRIAL, NTP_LAYOUT_CONDENSED, NUM_NTP_LAYOUT_RESULTS}) - @Retention(RetentionPolicy.SOURCE) - public @interface NTPLayoutResult {} - - /** The NewTabPageLayout does not fit above the fold and it is displayed as is. */ - public static final int NTP_LAYOUT_DOES_NOT_FIT = 0; - - /** - * The NewTabPageLayout does not fit above the fold, but we added some extra space so that - * Most Likely is cut off, indicating to the user they can scroll. - */ - public static final int NTP_LAYOUT_DOES_NOT_FIT_PUSH_MOST_LIKELY = 1; - - /** The NewTabPageLayout fits above the fold, the field trial is not enabled. */ - public static final int NTP_LAYOUT_FITS_NO_FIELD_TRIAL = 2; - - /** - * The NewTabPageLayout fits above the fold, but cannot allow space for the field trial - * experiment. - */ - public static final int NTP_LAYOUT_FITS_WITHOUT_FIELD_TRIAL = 3; - - /** The NewTabPageLayout fits above the fold allowing space for the field trial experiment. */ - public static final int NTP_LAYOUT_FITS_WITH_FIELD_TRIAL = 4; - - /** The NewTabPageLayout is condensed to take up minimal space. */ - public static final int NTP_LAYOUT_CONDENSED = 5; - - /** The number of possible results for the NewTabPageLayout calculations. */ - public static final int NUM_NTP_LAYOUT_RESULTS = 6; - - /** * Possible results when updating content suggestions list in the UI. Keep in sync with the * ContentSuggestionsUIUpdateResult enum in histograms.xml. Do not remove or change existing * values other than NUM_UI_UPDATE_RESULTS. @@ -216,15 +179,6 @@ } /** - * Records how the NewTabPageLayout fits on the user's screen. - * @param result result key, one of {@link NTPLayoutResult}'s values. - */ - public static void recordNTPLayoutResult(@NTPLayoutResult int result) { - RecordHistogram.recordEnumeratedHistogram( - "NewTabPage.Layout", result, NUM_NTP_LAYOUT_RESULTS); - } - - /** * Records how content suggestions have been updated in the UI. * @param result result key, one of {@link ContentSuggestionsUIUpdateResult}'s values. */
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ntp/NewTabPageView.java b/chrome/android/java/src/org/chromium/chrome/browser/ntp/NewTabPageView.java index ae04473..0514d83 100644 --- a/chrome/android/java/src/org/chromium/chrome/browser/ntp/NewTabPageView.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/ntp/NewTabPageView.java
@@ -4,8 +4,6 @@ package org.chromium.chrome.browser.ntp; -import static org.chromium.chrome.browser.util.ViewUtils.dpToPx; - import android.annotation.SuppressLint; import android.content.Context; import android.graphics.Canvas; @@ -70,29 +68,10 @@ private static final long SNAP_SCROLL_DELAY_MS = 30; /** - * Experiment parameter for the maximum number of tile suggestion rows to show. + * Parameter for the simplified NTP ablation experiment arm which removes the additional + * suggestions sections without replacing them with shortcut buttons. */ - private static final String PARAM_NTP_MAX_TILE_ROWS = "ntp_max_tile_rows"; - - /** - * Experiment parameter for the number of tile title lines to show. - */ - private static final String PARAM_NTP_TILE_TITLE_LINES = "ntp_tile_title_lines"; - - /** - * Experiment parameter for whether to show the logo in the condensed layout. - */ - private static final String PARAM_CONDENSED_LAYOUT_SHOW_LOGO = "condensed_layout_show_logo"; - - /** - * Experiment parameter for the logo height in dp in the condensed layout. - */ - private static final String PARAM_CONDENSED_LAYOUT_LOGO_HEIGHT = "condensed_layout_logo_height"; - - /** - * Default experiment parameter value for the logo height in dp in the condensed layout. - */ - private static final int PARAM_DEFAULT_VALUE_CONDENSED_LAYOUT_LOGO_HEIGHT_DP = 100; + private static final String PARAM_SIMPLIFIED_NTP_ABLATION = "simplified_ntp_ablation"; private NewTabPageRecyclerView mRecyclerView; @@ -103,6 +82,7 @@ private SiteSectionViewHolder mSiteSectionViewHolder; private View mTileGridPlaceholder; private View mNoSearchLogoSpacer; + private ViewGroup mShortcutsView; private OnSearchBoxScrollListener mSearchBoxScrollListener; @@ -272,14 +252,6 @@ mSiteSectionViewHolder.bindDataSource(mTileGroup, tileRenderer); mSearchProviderLogoView = mNewTabPageLayout.findViewById(R.id.search_provider_logo); - int experimentalLogoHeightDp = ChromeFeatureList.getFieldTrialParamByFeatureAsInt( - ChromeFeatureList.NTP_CONDENSED_LAYOUT, PARAM_CONDENSED_LAYOUT_LOGO_HEIGHT, - PARAM_DEFAULT_VALUE_CONDENSED_LAYOUT_LOGO_HEIGHT_DP); - if (experimentalLogoHeightDp > 0) { - ViewGroup.LayoutParams logoParams = mSearchProviderLogoView.getLayoutParams(); - logoParams.height = dpToPx(getContext(), experimentalLogoHeightDp); - mSearchProviderLogoView.setLayoutParams(logoParams); - } mLogoDelegate = new LogoDelegateImpl( mManager.getNavigationDelegate(), mSearchProviderLogoView, profile); @@ -299,6 +271,7 @@ mSnapScrollRunnable = new SnapScrollRunnable(); mUpdateSearchBoxOnScrollRunnable = new UpdateSearchBoxOnScrollRunnable(); + initializeShortcuts(); initializeSearchBoxTextView(); initializeVoiceSearchButton(); initializeLayoutChangeListeners(); @@ -358,8 +331,6 @@ } }); - initializeShortcuts(); - mInitialized = true; TraceEvent.end(TAG + ".initialize()"); @@ -473,7 +444,6 @@ onUrlFocusAnimationChanged(); updateSearchBoxOnScroll(); - mRecyclerView.updatePeekingCardAndHeader(); // The positioning of elements may have been changed (since the elements expand to // fill the available vertical space), so adjust the scroll. mRecyclerView.snapScroll(mSearchBoxView, getHeight()); @@ -610,7 +580,6 @@ mRecyclerView.postDelayed(mSnapScrollRunnable, SNAP_SCROLL_DELAY_MS); } updateSearchBoxOnScroll(); - mRecyclerView.updatePeekingCardAndHeader(); } /** @@ -683,6 +652,7 @@ int childCount = mNewTabPageLayout.getChildCount(); for (int i = 0; i < childCount; i++) { View child = mNewTabPageLayout.getChildAt(i); + if (mShortcutsView != null && child == mShortcutsView) break; if (child == mSiteSectionViewHolder.itemView) break; // Don't change the visibility of a ViewStub as that will automagically inflate it. @@ -711,13 +681,20 @@ * Updates the padding for the tile grid based on what is shown above it. */ private void updateTileGridPadding() { - int paddingWithLogoId = SuggestionsConfig.useModernLayout() - ? R.dimen.tile_grid_layout_modern_padding_top - : R.dimen.tile_grid_layout_padding_top; - // Set a bit more top padding on the tile grid if there is no logo. - final int paddingTop = getResources().getDimensionPixelSize(shouldShowLogo() - ? paddingWithLogoId - : R.dimen.tile_grid_layout_no_logo_padding_top); + int paddingTop; + if (mShortcutsView != null) { + // If the shortcuts view is visible, padding will be built into that view. + paddingTop = 0; + } else { + int paddingWithLogoId = SuggestionsConfig.useModernLayout() + ? R.dimen.tile_grid_layout_modern_padding_top + : R.dimen.tile_grid_layout_padding_top; + // Set a bit more top padding on the tile grid if there is no logo. + paddingTop = getResources().getDimensionPixelSize(shouldShowLogo() + ? paddingWithLogoId + : R.dimen.tile_grid_layout_no_logo_padding_top); + } + mSiteSectionViewHolder.itemView.setPadding( 0, paddingTop, 0, mSiteSectionViewHolder.itemView.getPaddingBottom()); } @@ -937,13 +914,7 @@ } private static int getMaxTileRows(boolean searchProviderHasLogo) { - int defaultValue = 2; - if (!ChromeFeatureList.isEnabled(ChromeFeatureList.NTP_CONDENSED_LAYOUT) - && !searchProviderHasLogo) { - defaultValue = 3; - } - return ChromeFeatureList.getFieldTrialParamByFeatureAsInt( - ChromeFeatureList.NTP_CONDENSED_LAYOUT, PARAM_NTP_MAX_TILE_ROWS, defaultValue); + return 2; } /** @@ -959,30 +930,11 @@ } private static int getTileTitleLines() { - int defaultValue = 2; - if (ChromeFeatureList.isEnabled(ChromeFeatureList.NTP_CONDENSED_LAYOUT)) { - defaultValue = 1; - } - return ChromeFeatureList.getFieldTrialParamByFeatureAsInt( - ChromeFeatureList.NTP_CONDENSED_LAYOUT, PARAM_NTP_TILE_TITLE_LINES, defaultValue); + return 1; } private boolean shouldShowLogo() { - boolean condensedLayoutEnabled = - ChromeFeatureList.isEnabled(ChromeFeatureList.NTP_CONDENSED_LAYOUT); - boolean showLogoInCondensedLayout = ChromeFeatureList.getFieldTrialParamByFeatureAsBoolean( - ChromeFeatureList.NTP_CONDENSED_LAYOUT, PARAM_CONDENSED_LAYOUT_SHOW_LOGO, true); - return mSearchProviderHasLogo && (!condensedLayoutEnabled || showLogoInCondensedLayout); - } - - @Override - protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) { - if (mNewTabPageLayout != null) { - mNewTabPageLayout.setParentViewportHeight(MeasureSpec.getSize(heightMeasureSpec)); - } - super.onMeasure(widthMeasureSpec, heightMeasureSpec); - - mRecyclerView.updatePeekingCardAndHeader(); + return mSearchProviderHasLogo; } /** @@ -1064,16 +1016,21 @@ } private void initializeShortcuts() { - if (!ChromeFeatureList.isEnabled(ChromeFeatureList.NTP_SHORTCUTS)) return; + if (!ChromeFeatureList.isEnabled(ChromeFeatureList.SIMPLIFIED_NTP) + || ChromeFeatureList.getFieldTrialParamByFeatureAsBoolean( + ChromeFeatureList.SIMPLIFIED_NTP, PARAM_SIMPLIFIED_NTP_ABLATION, + false)) { + return; + } - ViewGroup shortcuts = - (ViewGroup) mRecyclerView.getAboveTheFoldView().findViewById(R.id.shortcuts); - shortcuts.setVisibility(View.VISIBLE); + ViewStub shortcutsStub = + mRecyclerView.getAboveTheFoldView().findViewById(R.id.shortcuts_stub); + mShortcutsView = (ViewGroup) shortcutsStub.inflate(); - shortcuts.findViewById(R.id.bookmarks_button) + mShortcutsView.findViewById(R.id.bookmarks_button) .setOnClickListener(view -> mManager.getNavigationDelegate().navigateToBookmarks()); - shortcuts.findViewById(R.id.downloads_button) + mShortcutsView.findViewById(R.id.downloads_button) .setOnClickListener( view -> mManager.getNavigationDelegate().navigateToDownloadManager()); }
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ntp/cards/CardViewHolder.java b/chrome/android/java/src/org/chromium/chrome/browser/ntp/cards/CardViewHolder.java index 8c775f17..62a852e 100644 --- a/chrome/android/java/src/org/chromium/chrome/browser/ntp/cards/CardViewHolder.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/ntp/cards/CardViewHolder.java
@@ -328,7 +328,6 @@ case ItemViewType.ABOVE_THE_FOLD: case ItemViewType.SITE_SECTION: case ItemViewType.HEADER: - case ItemViewType.SPACING: case ItemViewType.PROGRESS: case ItemViewType.FOOTER: case ItemViewType.ALL_DISMISSED:
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ntp/cards/ItemViewType.java b/chrome/android/java/src/org/chromium/chrome/browser/ntp/cards/ItemViewType.java index 4026642..0c9628f 100644 --- a/chrome/android/java/src/org/chromium/chrome/browser/ntp/cards/ItemViewType.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/ntp/cards/ItemViewType.java
@@ -16,9 +16,8 @@ * @see Adapter#getItemViewType(int) */ @IntDef({ItemViewType.ABOVE_THE_FOLD, ItemViewType.LOGO, ItemViewType.SITE_SECTION, - ItemViewType.HEADER, ItemViewType.SNIPPET, ItemViewType.SPACING, ItemViewType.STATUS, - ItemViewType.PROGRESS, ItemViewType.ACTION, ItemViewType.FOOTER, ItemViewType.PROMO, - ItemViewType.ALL_DISMISSED}) + ItemViewType.HEADER, ItemViewType.SNIPPET, ItemViewType.STATUS, ItemViewType.PROGRESS, + ItemViewType.ACTION, ItemViewType.FOOTER, ItemViewType.PROMO, ItemViewType.ALL_DISMISSED}) @Retention(RetentionPolicy.SOURCE) public @interface ItemViewType { /** @@ -52,45 +51,39 @@ */ int SNIPPET = 5; /** - * View type for a {@link SpacingItem} used to provide spacing at the end of the list. - * - * @see Adapter#getItemViewType(int) - */ - int SPACING = 6; - /** * View type for a {@link StatusItem}, the card displaying status information * * @see Adapter#getItemViewType(int) */ - int STATUS = 7; + int STATUS = 6; /** * View type for a {@link ProgressItem}, the progress indicator. * * @see Adapter#getItemViewType(int) */ - int PROGRESS = 8; + int PROGRESS = 7; /** * View type for a {@link ActionItem}, an action button. * * @see Adapter#getItemViewType(int) */ - int ACTION = 9; + int ACTION = 8; /** * View type for a {@link Footer}. * * @see Adapter#getItemViewType(int) */ - int FOOTER = 10; + int FOOTER = 9; /** * View type for a {@link SignInPromo}. * * @see Adapter#getItemViewType(int) */ - int PROMO = 11; + int PROMO = 10; /** * View type for a {@link AllDismissedItem}. * * @see Adapter#getItemViewType(int) */ - int ALL_DISMISSED = 12; + int ALL_DISMISSED = 11; }
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ntp/cards/NewTabPageAdapter.java b/chrome/android/java/src/org/chromium/chrome/browser/ntp/cards/NewTabPageAdapter.java index b5d0be5..c07b9db 100644 --- a/chrome/android/java/src/org/chromium/chrome/browser/ntp/cards/NewTabPageAdapter.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/ntp/cards/NewTabPageAdapter.java
@@ -62,7 +62,6 @@ private final @Nullable SignInPromo mSigninPromo; private final AllDismissedItem mAllDismissed; private final Footer mFooter; - private final SpacingItem mBottomSpacer; /** * Creates the adapter that will manage all the cards to display on the NTP. @@ -123,14 +122,6 @@ mFooter = new Footer(); mRoot.addChild(mFooter); - if (mAboveTheFoldView == null - || ChromeFeatureList.isEnabled(ChromeFeatureList.NTP_CONDENSED_LAYOUT)) { - mBottomSpacer = null; - } else { - mBottomSpacer = new SpacingItem(); - mRoot.addChild(mBottomSpacer); - } - mOfflinePageBridge = offlinePageBridge; RemoteSuggestionsStatusObserver suggestionsObserver = new RemoteSuggestionsStatusObserver(); @@ -168,9 +159,6 @@ return new SnippetArticleViewHolder(mRecyclerView, mContextMenuManager, mUiDelegate, mUiConfig, mOfflinePageBridge); - case ItemViewType.SPACING: - return new NewTabPageViewHolder(SpacingItem.createView(parent)); - case ItemViewType.STATUS: return new StatusCardViewHolder(mRecyclerView, mContextMenuManager, mUiConfig); @@ -247,18 +235,6 @@ return RecyclerView.NO_POSITION; } - int getLastContentItemPosition() { - int bottomSpacerPosition = getChildPositionOffset(mBottomSpacer); - assert bottomSpacerPosition > 0; - return bottomSpacerPosition - 1; - } - - int getBottomSpacerPosition() { - if (mBottomSpacer == null) return RecyclerView.NO_POSITION; - - return getChildPositionOffset(mBottomSpacer); - } - private void updateAllDismissedVisibility() { boolean areRemoteSuggestionsEnabled = mUiDelegate.getSuggestionsSource().areRemoteSuggestionsEnabled(); @@ -271,10 +247,6 @@ mAllDismissed.setVisible(areRemoteSuggestionsEnabled && allDismissed); mFooter.setVisible(!SuggestionsConfig.scrollToLoad() && !allDismissed && (areRemoteSuggestionsEnabled || isArticleSectionVisible)); - - if (mBottomSpacer != null) { - mBottomSpacer.setVisible(areRemoteSuggestionsEnabled || !allDismissed); - } } private boolean areArticlesLoading() { @@ -298,7 +270,6 @@ public void onItemRangeInserted(TreeNode child, int itemPosition, int itemCount) { assert child == mRoot; notifyItemRangeInserted(itemPosition, itemCount); - if (mBottomSpacer != null) mBottomSpacer.refresh(); if (mRecyclerView != null && FeatureUtilities.isChromeHomeEnabled() && mSections.hasRecentlyInsertedContent()) { mRecyclerView.highlightContentLength(); @@ -311,7 +282,6 @@ public void onItemRangeRemoved(TreeNode child, int itemPosition, int itemCount) { assert child == mRoot; notifyItemRangeRemoved(itemPosition, itemCount); - if (mBottomSpacer != null) mBottomSpacer.refresh(); updateAllDismissedVisibility(); }
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ntp/cards/NewTabPageRecyclerView.java b/chrome/android/java/src/org/chromium/chrome/browser/ntp/cards/NewTabPageRecyclerView.java index 09e810d..1d795da 100644 --- a/chrome/android/java/src/org/chromium/chrome/browser/ntp/cards/NewTabPageRecyclerView.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/ntp/cards/NewTabPageRecyclerView.java
@@ -4,24 +4,16 @@ package org.chromium.chrome.browser.ntp.cards; -import android.animation.ObjectAnimator; import android.content.Context; import android.content.res.Resources; import android.graphics.Region; -import android.support.v4.view.animation.LinearOutSlowInInterpolator; -import android.support.v7.widget.RecyclerView; import android.view.LayoutInflater; import android.view.View; -import android.view.animation.Interpolator; -import org.chromium.base.Log; import org.chromium.base.VisibleForTesting; import org.chromium.chrome.R; import org.chromium.chrome.browser.ntp.NewTabPage.FakeboxDelegate; import org.chromium.chrome.browser.ntp.NewTabPageLayout; -import org.chromium.chrome.browser.ntp.snippets.SectionHeaderViewHolder; -import org.chromium.chrome.browser.ntp.snippets.SnippetsConfig; -import org.chromium.chrome.browser.preferences.ChromePreferenceManager; import org.chromium.chrome.browser.suggestions.SuggestionsRecyclerView; import org.chromium.chrome.browser.util.ViewUtils; import org.chromium.ui.base.DeviceFormFactor; @@ -31,30 +23,12 @@ * New Tab page receives focus when clicked. */ public class NewTabPageRecyclerView extends SuggestionsRecyclerView { - private static final String TAG = "NtpCards"; - private static final Interpolator PEEKING_CARD_INTERPOLATOR = new LinearOutSlowInInterpolator(); - private static final int PEEKING_CARD_ANIMATION_TIME_MS = 1000; - private static final int PEEKING_CARD_ANIMATION_START_DELAY_MS = 300; - private final int mToolbarHeight; private final int mSearchBoxTransitionLength; - private final int mPeekingHeight; - - /** How much of the first card is visible above the fold with the increased visibility UI. */ - private final int mPeekingCardBounceDistance; - - /** The peeking card animates in the first time it is made visible. */ - private boolean mFirstCardAnimationRun; - - /** We have tracked that the user has caused an impression after viewing the animation. */ - private boolean mCardImpressionAfterAnimationTracked; /** View used to calculate the position of the cards' snap point. */ private final NewTabPageLayout mAboveTheFoldView; - /** Whether the above-the-fold left space for a peeking card to be displayed. */ - private boolean mHasSpaceForPeekingCard; - /** Whether the location bar is shown as part of the UI. */ private boolean mContainsLocationBar; @@ -67,11 +41,8 @@ Resources res = getContext().getResources(); mToolbarHeight = res.getDimensionPixelSize(R.dimen.toolbar_height_no_shadow) + res.getDimensionPixelSize(R.dimen.toolbar_progress_bar_height); - mPeekingCardBounceDistance = - res.getDimensionPixelSize(R.dimen.snippets_peeking_card_bounce_distance); mSearchBoxTransitionLength = res.getDimensionPixelSize(R.dimen.ntp_search_box_transition_length); - mPeekingHeight = res.getDimensionPixelSize(R.dimen.snippets_padding); mAboveTheFoldView = (NewTabPageLayout) LayoutInflater.from(getContext()) .inflate(R.layout.new_tab_page_layout, this, false); @@ -81,10 +52,6 @@ return mAboveTheFoldView; } - public void setHasSpaceForPeekingCard(boolean hasSpaceForPeekingCard) { - mHasSpaceForPeekingCard = hasSpaceForPeekingCard; - } - public void setContainsLocationBar(boolean containsLocationBar) { mContainsLocationBar = containsLocationBar; } @@ -105,119 +72,6 @@ return mFakeboxDelegate == null || !mFakeboxDelegate.isUrlBarFocused(); } - private void scrollToFirstCard() { - // Offset the target scroll by the height of the omnibox (the top padding). - final int targetScroll = mAboveTheFoldView.getHeight() - mAboveTheFoldView.getPaddingTop(); - // If (somehow) the peeking card is tapped while midway through the transition, - // we need to account for how much we have already scrolled. - smoothScrollBy(0, targetScroll - computeVerticalScrollOffset()); - } - - /** - * Updates the space added at the end of the list to make sure the above/below the fold - * distinction can be preserved. - */ - private void refreshBottomSpacing() { - ViewHolder bottomSpacingViewHolder = findBottomSpacer(); - - // It might not be in the layout yet if it's not visible or ready to be displayed. - if (bottomSpacingViewHolder == null) return; - - assert bottomSpacingViewHolder.getItemViewType() == ItemViewType.SPACING; - bottomSpacingViewHolder.itemView.requestLayout(); - } - - /** - * Calculates the height of the bottom spacing item, such that there is always enough content - * below the fold to push the header up to to the top of the screen. - */ - int calculateBottomSpacing() { - int aboveTheFoldPosition = getNewTabPageAdapter().getAboveTheFoldPosition(); - int firstVisiblePos = getLinearLayoutManager().findFirstVisibleItemPosition(); - if (aboveTheFoldPosition == RecyclerView.NO_POSITION - || firstVisiblePos == RecyclerView.NO_POSITION) { - return 0; - } - - if (firstVisiblePos > aboveTheFoldPosition) { - // We have enough items to fill the viewport, since we have scrolled past the - // above-the-fold item. We must check whether the above-the-fold view has been rendered - // at least once, because it's possible to skip right over it if the initial scroll - // position is not 0, in which case we may need the spacer to be taller than 0. - return 0; - } - - ViewHolder lastContentItem = findLastContentItem(); - ViewHolder aboveTheFold = findViewHolderForAdapterPosition(aboveTheFoldPosition); - - int bottomSpacing = getHeight() - mToolbarHeight; - if (lastContentItem == null || aboveTheFold == null) { - // This can happen in several cases, where some elements are not visible and the - // RecyclerView didn't already attach them. We handle it by just adding space to make - // sure that we never run out and force the UI to jump around and get stuck in a - // position that breaks the animations. The height will be properly adjusted at the - // next pass. Known cases that make it necessary: - // - The card list is refreshed while the NTP is not shown, for example when changing - // the sync settings. - // - Dismissing a suggestion and having the status card coming to take its place. - // - Refresh while being below the fold, for example by tapping the status card. - - if (aboveTheFold != null) bottomSpacing -= aboveTheFold.itemView.getBottom(); - - Log.w(TAG, "The RecyclerView items are not attached, can't determine the content " - + "height: snap=%s, spacer=%s. Using full height: %d ", - aboveTheFold, lastContentItem, bottomSpacing); - } else { - int contentHeight = - lastContentItem.itemView.getBottom() - aboveTheFold.itemView.getBottom(); - bottomSpacing -= contentHeight - getCompensationHeight(); - } - - return Math.max(0, bottomSpacing); - } - - public void updatePeekingCardAndHeader() { - NewTabPageLayout aboveTheFoldView = findAboveTheFoldView(); - if (aboveTheFoldView == null) return; - - SectionHeaderViewHolder header = findFirstHeader(); - if (header == null) return; - - header.updateDisplay(computeVerticalScrollOffset(), mHasSpaceForPeekingCard); - - CardViewHolder firstCard = findFirstCard(); - if (firstCard != null) updatePeekingCard(firstCard); - - // Update the space at the bottom, which needs to know about the height of the header. - refreshBottomSpacing(); - } - - /** - * Updates the peeking state of the provided card. Relies on the dimensions of the header to - * be correct, prefer {@link #updatePeekingCardAndHeader} that updates both together. - */ - public void updatePeekingCard(CardViewHolder peekingCard) { - assert peekingCard.getAdapterPosition() == getNewTabPageAdapter().getFirstCardPosition(); - - if (!shouldPeekFirstCard()) { - peekingCard.setNotPeeking(); - return; - } - - SectionHeaderViewHolder header = findFirstHeader(); - if (header == null) { - // No header, we must have scrolled quite far. Fallback to a non animated (full bleed) - // card. - peekingCard.setNotPeeking(); - return; - } - - // The space below the header is what we have available. - // TODO(bauerb): The header position isn't always accurate at this point, if the height has - // been changed in the layout params but the layout pass hasn't run yet. - peekingCard.updatePeek(getHeight() - header.itemView.getBottom()); - } - /** * Returns the approximate adapter position that the user has scrolled to. The purpose of this * value is that it can be stored and later retrieved to restore a scroll position that is @@ -231,81 +85,6 @@ } /** - * Finds the view holder for the first header. - * @return The {@code ViewHolder} of the header, or null if it is not present. - */ - private SectionHeaderViewHolder findFirstHeader() { - int position = getNewTabPageAdapter().getFirstHeaderPosition(); - if (position == RecyclerView.NO_POSITION) return null; - - ViewHolder viewHolder = findViewHolderForAdapterPosition(position); - if (!(viewHolder instanceof SectionHeaderViewHolder)) return null; - - return (SectionHeaderViewHolder) viewHolder; - } - - /** - * Finds the view holder for the first card. - * @return The {@code ViewHolder} for the first card, or null if it is not present. - */ - private CardViewHolder findFirstCard() { - int position = getNewTabPageAdapter().getFirstCardPosition(); - if (position == RecyclerView.NO_POSITION) return null; - - ViewHolder viewHolder = findViewHolderForAdapterPosition(position); - if (!(viewHolder instanceof CardViewHolder)) return null; - - return (CardViewHolder) viewHolder; - } - - /** - * Finds the view holder for the bottom spacer. - * @return The {@code ViewHolder} of the bottom spacer, or null if it is not present. - */ - private ViewHolder findBottomSpacer() { - int position = getNewTabPageAdapter().getBottomSpacerPosition(); - if (position == RecyclerView.NO_POSITION) return null; - - return findViewHolderForAdapterPosition(position); - } - - private ViewHolder findLastContentItem() { - int position = getNewTabPageAdapter().getLastContentItemPosition(); - if (position == RecyclerView.NO_POSITION) return null; - - return findViewHolderForAdapterPosition(position); - } - - /** - * Finds the above the fold view. - * @return The view for above the fold or null, if it is not present. - */ - private NewTabPageLayout findAboveTheFoldView() { - int position = getNewTabPageAdapter().getAboveTheFoldPosition(); - if (position == RecyclerView.NO_POSITION) return null; - - ViewHolder viewHolder = findViewHolderForAdapterPosition(position); - if (viewHolder == null) return null; - - View view = viewHolder.itemView; - if (!(view instanceof NewTabPageLayout)) return null; - - return (NewTabPageLayout) view; - } - - @Override - public void onItemDismissStarted(ViewHolder viewHolder) { - super.onItemDismissStarted(viewHolder); - refreshBottomSpacing(); - } - - @Override - public void onItemDismissFinished(ViewHolder viewHolder) { - super.onItemDismissFinished(viewHolder); - refreshBottomSpacing(); - } - - /** * Calculates the position to scroll to in order to move out of a region where the RecyclerView * should not stay at rest. * @param currentScroll the current scroll position. @@ -365,40 +144,7 @@ fakeBoxUpperBound - mSearchBoxTransitionLength, fakeBoxUpperBound); } - // Snap scroll to prevent resting in the middle of the peeking card transition - // and to allow the peeking card to peek a bit before snapping back. - CardViewHolder peekingCardViewHolder = findFirstCard(); - if (peekingCardViewHolder == null) return scrollPosition; - - if (!isFirstItemVisible() || !shouldPeekFirstCard()) return scrollPosition; - - ViewHolder firstHeaderViewHolder = findFirstHeader(); - - // It is possible to have a card but no header, for example the sign in promo. - // That one does not peek. - if (firstHeaderViewHolder == null) return scrollPosition; - - View peekingCardView = peekingCardViewHolder.itemView; - View headerView = firstHeaderViewHolder.itemView; - - // |A + B - C| gives the offset of the peeking card relative to the RecyclerView, - // so scrolling to this point would put the peeking card at the top of the screen. - // Remove the |headerView| height which gets dynamically increased with scrolling. - // |A + B - C - D| will scroll us so that the peeking card is just off the bottom - // of the screen. - // Finally, we get |A + B - C - D + E| because the transition starts from the - // peeking card's resting point, which is |E| from the bottom of the screen. - int start = peekingCardView.getTop() // A. - + scrollPosition // B. - - headerView.getHeight() // C. - - parentHeight // D. - + mPeekingHeight; // E. - - // The height of the region in which the the peeking card will snap. - int snapScrollHeight = mPeekingHeight + headerView.getHeight(); - - return calculateSnapPositionForRegion( - scrollPosition, start, start + snapScrollHeight, start + snapScrollHeight); + return scrollPosition; } @Override @@ -406,81 +152,4 @@ ViewUtils.gatherTransparentRegionsForOpaqueView(this, region); return true; } - - private boolean shouldAnimateFirstCard() { - // The "bouncing" animation for the first card is only enabled if - // 1) there is space for it, ... - if (!mHasSpaceForPeekingCard) return false; - - // ... 2) the corresponding feature is enabled, ... - if (!SnippetsConfig.isIncreasedCardVisibilityEnabled()) return false; - - // ... 3) and the animation hasn't run yet. - return !mFirstCardAnimationRun; - } - - private boolean shouldPeekFirstCard() { - // Peeking above the fold is only enabled if there is space. - if (!mHasSpaceForPeekingCard) return false; - - // It's also disabled in the card offset field trial... - if (CardsVariationParameters.getFirstCardOffsetDp() > 0) return false; - - // ...and in the increased visibility (bouncing animation) feature. - return !SnippetsConfig.isIncreasedCardVisibilityEnabled(); - } - - @Override - public void onCardBound(CardViewHolder cardViewHolder) { - if (cardViewHolder.getAdapterPosition() == getNewTabPageAdapter().getFirstCardPosition()) { - updatePeekingCard(cardViewHolder); - } else { - cardViewHolder.setNotPeeking(); - } - - // Animate the peeking card. - // We only run if the feature is enabled and once per NTP. - if (!shouldAnimateFirstCard()) return; - mFirstCardAnimationRun = true; - - // We only want an animation to run if we are not scrolled. - if (computeVerticalScrollOffset() != 0) return; - - // We only show the animation a certain number of times to a user. - ChromePreferenceManager manager = ChromePreferenceManager.getInstance(); - int animCount = manager.getNewTabPageFirstCardAnimationRunCount(); - if (animCount > CardsVariationParameters.getFirstCardAnimationMaxRuns()) return; - manager.setNewTabPageFirstCardAnimationRunCount(animCount + 1); - - // We do not show the animation if the user has previously seen it then scrolled. - if (manager.getCardsImpressionAfterAnimation()) return; - - // The peeking card bounces up twice from its position. - ObjectAnimator animator = - ObjectAnimator.ofFloat(cardViewHolder.itemView, View.TRANSLATION_Y, 0f, - -mPeekingCardBounceDistance, 0f, -mPeekingCardBounceDistance, 0f); - animator.setStartDelay(PEEKING_CARD_ANIMATION_START_DELAY_MS); - animator.setDuration(PEEKING_CARD_ANIMATION_TIME_MS); - animator.setInterpolator(PEEKING_CARD_INTERPOLATOR); - animator.start(); - } - - @Override - public void onSnippetImpression() { - // If the user has seen the first card animation and causes a snippet impression, remember - // for future runs. - if (!mFirstCardAnimationRun && !mCardImpressionAfterAnimationTracked) return; - - ChromePreferenceManager.getInstance().setCardsImpressionAfterAnimation(true); - mCardImpressionAfterAnimationTracked = true; - } - - @Override - public boolean interceptCardTapped(CardViewHolder cardViewHolder) { - if (!cardViewHolder.isPeeking()) return false; - - scrollToFirstCard(); - return true; - } - }
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ntp/cards/NodeVisitor.java b/chrome/android/java/src/org/chromium/chrome/browser/ntp/cards/NodeVisitor.java index 4874937..640152e62 100644 --- a/chrome/android/java/src/org/chromium/chrome/browser/ntp/cards/NodeVisitor.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/ntp/cards/NodeVisitor.java
@@ -43,11 +43,6 @@ public void visitSignInPromo() {} /** - * Visits a spacing item. - */ - public void visitSpacingItem() {} - - /** * Visits a "no suggestions" item. */ public void visitNoSuggestionsItem() {}
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ntp/cards/SpacingItem.java b/chrome/android/java/src/org/chromium/chrome/browser/ntp/cards/SpacingItem.java deleted file mode 100644 index 972bf2e..0000000 --- a/chrome/android/java/src/org/chromium/chrome/browser/ntp/cards/SpacingItem.java +++ /dev/null
@@ -1,65 +0,0 @@ -// Copyright 2016 The Chromium Authors. All rights reserved. -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -package org.chromium.chrome.browser.ntp.cards; - -import android.content.Context; -import android.view.View; -import android.view.ViewGroup; - -/** - * Placeholder item to let the snippets flow to the top of the scroll list even when it does not - * contain enough of them. It is displayed as a dummy item with variable height that just occupies - * the remaining space between the last item in the RecyclerView and the bottom of the screen. - */ -public class SpacingItem extends OptionalLeaf { - private static class SpacingView extends View { - public SpacingView(Context context) { - super(context); - } - - @Override - protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) { - setMeasuredDimension( - 0, ((NewTabPageRecyclerView) getParent()).calculateBottomSpacing()); - } - } - - /** Creates the View object for displaying the variable spacing. */ - public static View createView(ViewGroup parent) { - return new SpacingView(parent.getContext()); - } - - public SpacingItem() { - setVisibilityInternal(true); - } - - @Override - @ItemViewType - protected int getItemViewType() { - return ItemViewType.SPACING; - } - - @Override - protected void onBindViewHolder(NewTabPageViewHolder holder) { - // Nothing to do. - } - - @Override - public void visitOptionalItem(NodeVisitor visitor) { - visitor.visitSpacingItem(); - } - - /** Schedules a recalculation of the space occupied by the item. */ - @SuppressWarnings("deprecation") // notifyItemChanged(int) - public void refresh() { - // Usage of the deprecated method is intentional, we want to trigger a full update of the - // spacer, partial updates don't mean much here. - if (isVisible()) notifyItemChanged(0); - } - - public void setVisible(boolean visible) { - setVisibilityInternal(visible); - } -} \ No newline at end of file
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/preferences/ChromePreferenceManager.java b/chrome/android/java/src/org/chromium/chrome/browser/preferences/ChromePreferenceManager.java index 21289a71..7947d6a7 100644 --- a/chrome/android/java/src/org/chromium/chrome/browser/preferences/ChromePreferenceManager.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/preferences/ChromePreferenceManager.java
@@ -28,8 +28,6 @@ "signin_promo_last_shown_account_names"; private static final String ALLOW_LOW_END_DEVICE_UI = "allow_low_end_device_ui"; private static final String PREF_WEBSITE_SETTINGS_FILTER = "website_settings_filter"; - private static final String CARDS_IMPRESSION_AFTER_ANIMATION = - "cards_impression_after_animation"; private static final String CONTEXTUAL_SEARCH_PROMO_OPEN_COUNT = "contextual_search_promo_open_count"; private static final String CONTEXTUAL_SEARCH_TAP_TRIGGERED_PROMO_COUNT = @@ -61,7 +59,6 @@ "ntp.personalized_signin_promo_dismissed"; private static final String NTP_SIGNIN_PROMO_SUPPRESSION_PERIOD_START = "ntp.signin_promo_suppression_period_start"; - private static final String NTP_ANIMATION_RUN_COUNT = "ntp_recycler_view_animation_run_count"; private static final String SUCCESS_UPLOAD_SUFFIX = "_crash_success_upload"; private static final String FAILURE_UPLOAD_SUFFIX = "_crash_failure_upload"; @@ -376,26 +373,6 @@ removeKey(NTP_SIGNIN_PROMO_SUPPRESSION_PERIOD_START); } - /** Gets the number of times the New Tab Page first card animation has been run. */ - public int getNewTabPageFirstCardAnimationRunCount() { - return readInt(NTP_ANIMATION_RUN_COUNT); - } - - /** Records the number of times the New Tab Page first card animation has been run. */ - public void setNewTabPageFirstCardAnimationRunCount(int value) { - writeInt(NTP_ANIMATION_RUN_COUNT, value); - } - - /** Returns whether the user has triggered a snippet impression after viewing the animation. */ - public boolean getCardsImpressionAfterAnimation() { - return mSharedPreferences.getBoolean(CARDS_IMPRESSION_AFTER_ANIMATION, false); - } - - /** Sets whether the user has triggered a snippet impression after viewing the animation. */ - public void setCardsImpressionAfterAnimation(boolean isScrolled) { - writeBoolean(CARDS_IMPRESSION_AFTER_ANIMATION, isScrolled); - } - /** * Set whether or not Chrome modern design is enabled. * @param isEnabled Whether the feature is enabled.
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/suggestions/SuggestionsBinder.java b/chrome/android/java/src/org/chromium/chrome/browser/suggestions/SuggestionsBinder.java index 462997ff..285e1ed 100644 --- a/chrome/android/java/src/org/chromium/chrome/browser/suggestions/SuggestionsBinder.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/suggestions/SuggestionsBinder.java
@@ -6,19 +6,16 @@ import android.content.res.ColorStateList; import android.content.res.Resources; -import android.content.res.Resources.Theme; import android.graphics.Bitmap; import android.graphics.drawable.BitmapDrawable; import android.graphics.drawable.ColorDrawable; import android.graphics.drawable.Drawable; -import android.graphics.drawable.LayerDrawable; import android.graphics.drawable.TransitionDrawable; import android.media.ThumbnailUtils; import android.os.StrictMode; import android.os.SystemClock; import android.support.annotation.DimenRes; import android.support.annotation.Nullable; -import android.support.graphics.drawable.VectorDrawableCompat; import android.support.v4.text.BidiFormatter; import android.text.TextUtils; import android.text.format.DateUtils; @@ -215,7 +212,8 @@ // Temporarily set placeholder and then fetch the thumbnail from a provider. mThumbnailView.setBackground(null); if (mIsContextual) { - mThumbnailView.setImageDrawable(createContextualSuggestionPlaceholder()); + mThumbnailView.setImageResource( + R.drawable.contextual_suggestions_placeholder_thumbnail_background); } else if (SuggestionsConfig.useModernLayout() && ChromeFeatureList.isEnabled( ChromeFeatureList.CONTENT_SUGGESTIONS_THUMBNAIL_DOMINANT_COLOR)) { @@ -442,16 +440,6 @@ assert bitmap.getWidth() <= mThumbnailSize || bitmap.getHeight() <= mThumbnailSize; } - private Drawable createContextualSuggestionPlaceholder() { - Resources res = mThumbnailView.getResources(); - Theme theme = mThumbnailView.getContext().getTheme(); - Drawable drawable = VectorDrawableCompat.create( - res, R.drawable.contextual_suggestions_placeholder, theme); - Drawable background = ApiCompatibilityUtils.getDrawable( - res, R.drawable.contextual_suggestions_placeholder_thumbnail_background); - return new LayerDrawable(new Drawable[] {background, drawable}); - } - private static int getThumbnailSize(Resources resources) { @DimenRes final int dimension;
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/suggestions/SuggestionsConfig.java b/chrome/android/java/src/org/chromium/chrome/browser/suggestions/SuggestionsConfig.java index 18cd1dc9..1e45d71 100644 --- a/chrome/android/java/src/org/chromium/chrome/browser/suggestions/SuggestionsConfig.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/suggestions/SuggestionsConfig.java
@@ -17,18 +17,6 @@ * Provides configuration details for suggestions. */ public final class SuggestionsConfig { - /** - * Experiment parameter for whether to use the condensed tile layout on small screens. - */ - private static final String PARAM_CONDENSED_TILE_LAYOUT_FOR_SMALL_SCREENS_ENABLED = - "condensed_tile_layout_for_small_screens_enabled"; - - /** - * Experiment parameter for whether to use the condensed tile layout on large screens. - */ - private static final String PARAM_CONDENSED_TILE_LAYOUT_FOR_LARGE_SCREENS_ENABLED = - "condensed_tile_layout_for_large_screens_enabled"; - private SuggestionsConfig() {} /** @@ -38,7 +26,7 @@ // The scroll to load feature does not work well for users who require accessibility mode. if (AccessibilityUtil.isAccessibilityEnabled()) return false; - return ChromeFeatureList.isEnabled(ChromeFeatureList.NTP_SHORTCUTS) + return ChromeFeatureList.isEnabled(ChromeFeatureList.SIMPLIFIED_NTP) && ChromeFeatureList.isEnabled( ChromeFeatureList.CONTENT_SUGGESTIONS_SCROLL_TO_LOAD); } @@ -67,15 +55,9 @@ } private static boolean useCondensedTileLayout(boolean isScreenSmall) { - if (isScreenSmall) { - return ChromeFeatureList.getFieldTrialParamByFeatureAsBoolean( - ChromeFeatureList.NTP_CONDENSED_TILE_LAYOUT, - PARAM_CONDENSED_TILE_LAYOUT_FOR_SMALL_SCREENS_ENABLED, true); - } + if (isScreenSmall) return true; - return ChromeFeatureList.getFieldTrialParamByFeatureAsBoolean( - ChromeFeatureList.NTP_CONDENSED_TILE_LAYOUT, - PARAM_CONDENSED_TILE_LAYOUT_FOR_LARGE_SCREENS_ENABLED, false); + return false; } /**
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tabmodel/TabModel.java b/chrome/android/java/src/org/chromium/chrome/browser/tabmodel/TabModel.java index 3f3c532..27bce2e6 100644 --- a/chrome/android/java/src/org/chromium/chrome/browser/tabmodel/TabModel.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/tabmodel/TabModel.java
@@ -14,6 +14,8 @@ public interface TabModel extends TabList { /** * A list of the various ways tabs can be launched. + * + * This must be kept in sync with chrome/browser/ui/android/tab_model/tab_model.h. */ public enum TabLaunchType { /** @@ -68,9 +70,13 @@ /** Opened in the background from Browser Actions context menu. */ FROM_BROWSER_ACTIONS, } + // For validating that enums are synchronized between Java and corresponding C++. + public static final int TabLaunchTypeSize = TabLaunchType.values().length; /** * A list of the various ways tabs can be selected. + * + * This must be kept in sync with chrome/browser/ui/android/tab_model/tab_model.h. */ public enum TabSelectionType { /** Selection of adjacent tab when the active tab is closed in foreground. */ @@ -85,6 +91,8 @@ /** User-originated switch to existing tab or selection of main tab on app startup. */ FROM_USER } + // For validating that enums are synchronized between Java and corresponding C++. + public static final int TabSelectionTypeSize = TabSelectionType.values().length; /** * @return The profile associated with the current model.
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tabmodel/TabModelImpl.java b/chrome/android/java/src/org/chromium/chrome/browser/tabmodel/TabModelImpl.java index 5dc05e86..6b39da2 100644 --- a/chrome/android/java/src/org/chromium/chrome/browser/tabmodel/TabModelImpl.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/tabmodel/TabModelImpl.java
@@ -161,10 +161,8 @@ for (TabModelObserver obs : mObservers) obs.didAddTab(tab, type); - if (selectTab) { - mModelDelegate.selectModel(isIncognito()); - setIndex(newIndex, TabModel.TabSelectionType.FROM_NEW); - } + // setIndex takes care of making sure the appropriate model is active. + if (selectTab) setIndex(newIndex, TabModel.TabSelectionType.FROM_NEW); } finally { TraceEvent.end("TabModelImpl.addTab"); } @@ -318,8 +316,7 @@ // We're committing the close, actually remove it from the lists and finalize the closing // operation. mRewoundList.removeTab(tab); - finalizeTabClosure(tab); - for (TabModelObserver obs : mObservers) obs.tabClosureCommitted(tab); + finalizeTabClosure(tab, true); } @Override @@ -366,7 +363,7 @@ if (notify && canUndo) { for (TabModelObserver obs : mObservers) obs.tabPendingClosure(tabToClose); } - if (!canUndo) finalizeTabClosure(tabToClose); + if (!canUndo) finalizeTabClosure(tabToClose, false); return true; } @@ -469,9 +466,9 @@ TraceEvent.begin("TabModelImpl.setIndex"); int lastId = getLastId(type); - if (!isCurrentModel()) { - mModelDelegate.selectModel(isIncognito()); - } + // This can cause recursive entries into setIndex, which causes duplicate notifications + // and UMA records. + if (!isCurrentModel()) mModelDelegate.selectModel(isIncognito()); if (!hasValidTab()) { mIndex = INVALID_TAB_INDEX; @@ -492,7 +489,6 @@ mUma.userSwitchedToTab(); } } - } finally { TraceEvent.end("TabModelImpl.setIndex"); } @@ -577,16 +573,23 @@ /** * Actually closes and cleans up {@code tab}. * @param tab The {@link Tab} to close. + * @param notifyTabClosureCommitted If true then observers will receive a tabClosureCommitted + * notification. */ - private void finalizeTabClosure(Tab tab) { + private void finalizeTabClosure(Tab tab, boolean notifyTabClosureCommitted) { if (mTabContentManager != null) mTabContentManager.removeTabThumbnail(tab.getId()); mTabSaver.removeTabFromQueues(tab); if (!isIncognito()) tab.createHistoricalTab(); - tab.destroy(); - for (TabModelObserver obs : mObservers) obs.didCloseTab(tab.getId(), tab.isIncognito()); + if (notifyTabClosureCommitted) { + for (TabModelObserver obs : mObservers) obs.tabClosureCommitted(tab); + } + + // Destroy the native tab after the observer notifications have fired, otherwise they risk a + // use after free or null dereference. + tab.destroy(); } private class RewoundList implements TabList {
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tabmodel/TabModelObserverJniBridge.java b/chrome/android/java/src/org/chromium/chrome/browser/tabmodel/TabModelObserverJniBridge.java new file mode 100644 index 0000000..6c52eafe --- /dev/null +++ b/chrome/android/java/src/org/chromium/chrome/browser/tabmodel/TabModelObserverJniBridge.java
@@ -0,0 +1,163 @@ +// 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.tabmodel; + +import org.chromium.base.annotations.CalledByNative; +import org.chromium.chrome.browser.tab.Tab; +import org.chromium.chrome.browser.tabmodel.TabModel.TabLaunchType; +import org.chromium.chrome.browser.tabmodel.TabModel.TabSelectionType; + +import java.util.List; + +/** + * An implementation of TabModelObserver that forwards notifications over a JNI bridge + * to a corresponding native implementation. Objects of this type are created and owned by + * the native TabModelJniBridge implementation when native observers are added. + */ +class TabModelObserverJniBridge implements TabModelObserver { + /** Native TabModelObserverJniBridge pointer, set by the constructor. */ + private long mNativeTabModelObserverJniBridge; + + /** TabModel to which this observer is attached, set by the constructor. */ + private TabModel mTabModel; + + /** Constructor. Only intended to be used by the static create factory function. + * + * @param nativeTabModelObserverJniBridge The address of the corresponding native object. + * @param tabModel The tab model to which the observer bridge will be associated. + */ + private TabModelObserverJniBridge(long nativeTabModelObserverJniBridge, TabModel tabModel) { + mNativeTabModelObserverJniBridge = nativeTabModelObserverJniBridge; + mTabModel = tabModel; + } + + // TabModelObserver implementation. + // These simply forward events to the corresponding native implementation. + + @Override + public final void didSelectTab(Tab tab, TabSelectionType type, int lastId) { + assert mNativeTabModelObserverJniBridge != 0; + nativeDidSelectTab(mNativeTabModelObserverJniBridge, tab, type.ordinal(), lastId); + } + + @Override + public final void willCloseTab(Tab tab, boolean animate) { + assert mNativeTabModelObserverJniBridge != 0; + nativeWillCloseTab(mNativeTabModelObserverJniBridge, tab, animate); + } + + @Override + public final void didCloseTab(int tabId, boolean incognito) { + assert mNativeTabModelObserverJniBridge != 0; + nativeDidCloseTab(mNativeTabModelObserverJniBridge, tabId, incognito); + } + + @Override + public final void willAddTab(Tab tab, TabLaunchType type) { + assert mNativeTabModelObserverJniBridge != 0; + nativeWillAddTab(mNativeTabModelObserverJniBridge, tab, type.ordinal()); + } + + @Override + public final void didAddTab(Tab tab, TabLaunchType type) { + assert mNativeTabModelObserverJniBridge != 0; + nativeDidAddTab(mNativeTabModelObserverJniBridge, tab, type.ordinal()); + } + + @Override + public final void didMoveTab(Tab tab, int newIndex, int curIndex) { + assert mNativeTabModelObserverJniBridge != 0; + nativeDidMoveTab(mNativeTabModelObserverJniBridge, tab, newIndex, curIndex); + } + + @Override + public final void tabPendingClosure(Tab tab) { + assert mNativeTabModelObserverJniBridge != 0; + nativeTabPendingClosure(mNativeTabModelObserverJniBridge, tab); + } + + @Override + public final void tabClosureUndone(Tab tab) { + assert mNativeTabModelObserverJniBridge != 0; + nativeTabClosureUndone(mNativeTabModelObserverJniBridge, tab); + } + + @Override + public final void tabClosureCommitted(Tab tab) { + assert mNativeTabModelObserverJniBridge != 0; + nativeTabClosureCommitted(mNativeTabModelObserverJniBridge, tab); + } + + @Override + public final void allTabsPendingClosure(List<Tab> tabs) { + // Convert the List to an array of objects. This makes the corresponding C++ code much + // easier. + assert mNativeTabModelObserverJniBridge != 0; + nativeAllTabsPendingClosure(mNativeTabModelObserverJniBridge, tabs.toArray()); + } + + @Override + public final void allTabsClosureCommitted() { + assert mNativeTabModelObserverJniBridge != 0; + nativeAllTabsClosureCommitted(mNativeTabModelObserverJniBridge); + } + + @Override + public final void tabRemoved(Tab tab) { + assert mNativeTabModelObserverJniBridge != 0; + nativeTabRemoved(mNativeTabModelObserverJniBridge, tab); + } + + /** + * Creates an observer bridge for the given tab model. The native counterpart to this object + * will hold a global reference to the Java endpoint and manage its lifetime. This is private as + * it is only intended to be called from native code. + * + * @param nativeTabModelObserverJniBridge The address of the corresponding native object. + * @param tabModel The tab model to which the observer bridge will be associated. + */ + @CalledByNative + static private TabModelObserverJniBridge create( + long nativeTabModelObserverJniBridge, TabModel tabModel) { + TabModelObserverJniBridge bridge = + new TabModelObserverJniBridge(nativeTabModelObserverJniBridge, tabModel); + tabModel.addObserver(bridge); + return bridge; + } + + /** + * Causes the observer to be removed from the associated tab model. The native counterpart calls + * this prior to cleaning up its last reference to the Java endpoint so that it can be correctly + * torn down. + */ + @CalledByNative + private void detachFromTabModel() { + assert mNativeTabModelObserverJniBridge != 0; + assert mTabModel != null; + mTabModel.removeObserver(this); + mNativeTabModelObserverJniBridge = 0; + mTabModel = null; + } + + // Native functions that are implemented by + // browser/ui/android/tab_model/tab_model_observer_jni_bridge.*. + private native void nativeDidSelectTab( + long nativeTabModelObserverJniBridge, Tab tab, int type, int lastId); + private native void nativeWillCloseTab( + long nativeTabModelObserverJniBridge, Tab tab, boolean animate); + private native void nativeDidCloseTab( + long nativeTabModelObserverJniBridge, int tabId, boolean incognito); + private native void nativeWillAddTab(long nativeTabModelObserverJniBridge, Tab tab, int type); + private native void nativeDidAddTab(long nativeTabModelObserverJniBridge, Tab tab, int type); + private native void nativeDidMoveTab( + long nativeTabModelObserverJniBridge, Tab tab, int newIndex, int curIndex); + private native void nativeTabPendingClosure(long nativeTabModelObserverJniBridge, Tab tab); + private native void nativeTabClosureUndone(long nativeTabModelObserverJniBridge, Tab tab); + private native void nativeTabClosureCommitted(long nativeTabModelObserverJniBridge, Tab tab); + private native void nativeAllTabsPendingClosure( + long nativeTabModelObserverJniBridge, Object[] tabs); + private native void nativeAllTabsClosureCommitted(long nativeTabModelObserverJniBridge); + private native void nativeTabRemoved(long nativeTabModelObserverJniBridge, Tab tab); +}
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/util/FeatureUtilities.java b/chrome/android/java/src/org/chromium/chrome/browser/util/FeatureUtilities.java index 8ca9e40..33e964f 100644 --- a/chrome/android/java/src/org/chromium/chrome/browser/util/FeatureUtilities.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/util/FeatureUtilities.java
@@ -248,6 +248,13 @@ } /** + * @return Whether or not the download progress infobar is enabled. + */ + public static boolean isDownloadProgressInfoBarEnabled() { + return ChromeFeatureList.isEnabled(ChromeFeatureList.DOWNLOAD_PROGRESS_INFOBAR); + } + + /** * Resets whether Chrome Home is enabled for tests. After this is called, the next call to * #isChromeHomeEnabled() will retrieve the value from shared preferences. */
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/widget/bottomsheet/BottomSheet.java b/chrome/android/java/src/org/chromium/chrome/browser/widget/bottomsheet/BottomSheet.java index 0d99355..00163757 100644 --- a/chrome/android/java/src/org/chromium/chrome/browser/widget/bottomsheet/BottomSheet.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/widget/bottomsheet/BottomSheet.java
@@ -622,7 +622,7 @@ // mode. Ensure the sheet state is reset to peek so that the sheet does not // open over the fullscreen video. See crbug.com/740499. if (mFullscreenManager != null - && mFullscreenManager.getPersistentFullscreenMode()) { + && mFullscreenManager.getPersistentFullscreenMode() && isSheetOpen()) { setSheetState(SHEET_STATE_PEEK, false); } else { setSheetState(mCurrentState, false);
diff --git a/chrome/android/java/strings/android_chrome_strings.grd b/chrome/android/java/strings/android_chrome_strings.grd index 25f3c88..134601e 100644 --- a/chrome/android/java/strings/android_chrome_strings.grd +++ b/chrome/android/java/strings/android_chrome_strings.grd
@@ -614,15 +614,15 @@ Preload pages for faster loading and offline reading </message> <message name="IDS_CONTEXTUAL_SEARCH_TITLE" desc="Name for the Contextual Search feature, which allows users to search for a term in a web page by tapping on it."> - Touch to Search + Tap to Search </message> <message name="IDS_CONTEXTUAL_SEARCH_DESCRIPTION" desc="Description for Contextual Search preference"> - Learn about topics on websites without leaving the page. Touch to Search sends a word and its surrounding context to Google Search, returning definitions, pictures, search results, and other details. + Learn about topics on websites without leaving the page. Tap to Search sends a word and its surrounding context to Google Search, returning definitions, pictures, search results, and other details. -To adjust your search term, long press to select. To refine your search, slide the panel all the way up and touch the search box. +To adjust your search term, long press to select. To refine your search, slide the panel all the way up and tap the search box. </message> - <message name="IDS_CONTEXTUAL_SEARCH_SHORT_DESCRIPTION" desc="A promo message shown to users who have Touch to Search enabled to explain the new behavior and provide an option to opt out"> - Touch to Search sends the selected word and the current page as context to Google Search. You can turn it off in <ph name="BEGIN_LINK"><link></ph>Settings<ph name="END_LINK"></link></ph>. + <message name="IDS_CONTEXTUAL_SEARCH_SHORT_DESCRIPTION" desc="A promo message shown to users who have Tap to Search enabled to explain the new behavior and provide an option to opt out"> + Tap to Search sends the selected word and the current page as context to Google Search. You can turn it off in <ph name="BEGIN_LINK"><link></ph>Settings<ph name="END_LINK"></link></ph>. </message> <message name="IDS_CONTEXTUAL_SEARCH_ALLOW_BUTTON" desc="A button to confirm and dismiss opt out promo"> Allow @@ -2905,13 +2905,13 @@ <message name="IDS_CONTEXTUAL_SEARCH_QUICK_ACTION_CAPTION_GENERIC_WEBSITE" desc="Caption displayed in the Contextual Search bar prompting the user to navigate to a web page."> Go to page </message> - <message name="IDS_CONTEXTUAL_SEARCH_IPH_ENTITY" desc="An in-product-help message for the Touch to Search feature on Chrome Android. The message encourages users to open a panel that contains search results for the word or phrase they tapped on."> + <message name="IDS_CONTEXTUAL_SEARCH_IPH_ENTITY" desc="An in-product-help message for the Tap to Search feature on Chrome Android. The message encourages users to open a panel that contains search results for the word or phrase they tapped on."> See instant search results in this panel </message> - <message name="IDS_CONTEXTUAL_SEARCH_IPH_SEARCH_RESULT" desc="An in-product-help message for the Touch to Search feature. It encourages users to open the Touch to Search panel to see search results for a word or phrase they have tapped."> + <message name="IDS_CONTEXTUAL_SEARCH_IPH_SEARCH_RESULT" desc="An in-product-help message for the Tap to Search feature. It encourages users to open the Tap to Search panel to see search results for a word or phrase they have tapped."> Tap a word to search instantly or see related actions </message> - <message name="IDS_CONTEXTUAL_SEARCH_IPH_TAP" desc="An in-product-help message for encouraging users to tap instead of long pressing to trigger the Touch to Search feature."> + <message name="IDS_CONTEXTUAL_SEARCH_IPH_TAP" desc="An in-product-help message for encouraging users to tap instead of long pressing to trigger the Tap to Search feature."> You can also search with a quick tap on a word </message>
diff --git a/chrome/android/java/strings/translations/android_chrome_strings_am.xtb b/chrome/android/java/strings/translations/android_chrome_strings_am.xtb index 2f3c2919..c6d213e 100644 --- a/chrome/android/java/strings/translations/android_chrome_strings_am.xtb +++ b/chrome/android/java/strings/translations/android_chrome_strings_am.xtb
@@ -111,7 +111,6 @@ <translation id="1993768208584545658"><ph name="SITE" /> መጣመር ይፈልጋል</translation> <translation id="1994173015038366702">የጣቢያ ዩአርኤል</translation> <translation id="200815880754187296"><ph name="KILOBYTES" /> ኪባ ሌሎች መተግበሪያዎች</translation> -<translation id="2015632741368427174">ወደዚህ አቅጣጫ ማዞር ታግዷል፦</translation> <translation id="2017836877785168846">በአድራሻ አሞሌው ውስጥ ታሪክን እና ራስ-ሰር ማጠናቀቆችን ያጸዳል።</translation> <translation id="2021896219286479412">የሙሉ ማያ ገጽ ጣቢያ መቆጣጠሪያዎች</translation> <translation id="2038563949887743358">የዴስክቶፕ ጣቢያን ጠይቅን አብራ</translation> @@ -183,7 +182,6 @@ <translation id="2650751991977523696">ፋይሉ እንደገና ይውረድ?</translation> <translation id="2653659639078652383">አስገባ</translation> <translation id="2677748264148917807">ለቅቀህ ውጣ</translation> -<translation id="2693813674743028984">ማከማቻን ይደብቁ</translation> <translation id="2704606927547763573">ተቀድቷል</translation> <translation id="2707726405694321444">ገጹን አድስ</translation> <translation id="2709516037105925701">ራስ-ሙላ</translation> @@ -209,7 +207,6 @@ <translation id="2956410042958133412">ይህ መለያ የሚቀናበረው በ<ph name="PARENT_NAME_1" /> እና <ph name="PARENT_NAME_2" /> ነው።</translation> <translation id="2960796085439532066">የቅጂ መብት <ph name="YEAR" /> Google Inc. ሁሉም መብቶች የተጠበቁ ናቸው።</translation> <translation id="2962095958535813455">ወደ ማንነት የማያሳውቁ ትሮች ተቀይሯል</translation> -<translation id="2965945119655563012">ማከማቻን ያሳዩ</translation> <translation id="2968755619301702150">የእውቅና ማረጋገጫ መመልከቻ</translation> <translation id="2979025552038692506">የተመረጠው ማንነት የማያሳውቅ ትር</translation> <translation id="2989523299700148168">በቅርብ ጊዜ የተጎበኙ</translation> @@ -527,7 +524,6 @@ <translation id="5817918615728894473">አጣምር</translation> <translation id="583281660410589416">ያልታወቀ </translation> <translation id="5833984609253377421">አገናኝ አጋራ</translation> -<translation id="583891442612896534">Chrome ለውሂብ እመቃ የGoogle አገልጋዮችን መድረስ አልቻለም። የውሂብ ቁጠባዎችዎ የተገደቡ ሊሆኑ ይችላሉ።</translation> <translation id="5854790677617711513">ከ30 ቀናት በላይ የቆየ</translation> <translation id="5858741533101922242">Chrome የብሉቱዝ አስማሚውን ማብራት አልቻለም</translation> <translation id="5860033963881614850">አጥፋ</translation> @@ -589,7 +585,6 @@ <translation id="6395288395575013217">አገናኝ</translation> <translation id="6404511346730675251">ዕልባት አርትዕ</translation> <translation id="6406506848690869874">አመሳስል</translation> -<translation id="6409731863280057959">ብቅ-ባዮች</translation> <translation id="641643625718530986">አትም…</translation> <translation id="6416782512398055893"><ph name="MBS" /> ሜባ ወርዷል</translation> <translation id="6433501201775827830">የእርስዎን የፍለጋ ፕሮግራም ይምረጡ</translation> @@ -840,7 +835,6 @@ <translation id="8676374126336081632">ግቤቱን አጽዳ</translation> <translation id="8687353297350450808">{N_BARS,plural, =1{የሲግናል ጥንካሬ ደረጃ፦ # አሞሌ}one{የሲግናል ጥንካሬ ደረጃ፦ # አሞሌዎች}other{የሲግናል ጥንካሬ ደረጃ፦ # አሞሌዎች}}</translation> <translation id="869891660844655955">የሚያበቀበት ጊዜ</translation> -<translation id="8712637175834984815">ገባኝ</translation> <translation id="8719023831149562936">የአሁኑን ትር በሞገድ መላክ አልተቻለም</translation> <translation id="8725066075913043281">እንደገና ይሞክሩ</translation> <translation id="8728487861892616501">ይህን መተግበሪያ በመጠቀምዎ በChrome <ph name="BEGIN_LINK1" />አገልግሎት ውል<ph name="END_LINK1" /> እና <ph name="BEGIN_LINK2" />የግላዊነት ማሳወቂያ<ph name="END_LINK2" /> እንዲሁም <ph name="BEGIN_LINK3" />በFamily Link ለሚተዳደሩ የGoogle መለያዎች የግላዊነት ማሳወቂያ<ph name="END_LINK3" /> ይስማማሉ።</translation> @@ -850,7 +844,6 @@ <translation id="8812260976093120287">በአንዳንድ ድር ጣቢያዎች ላይ ከላይ ባሉ የሚደገፉ የክፍያ መተግበሪያዎች በመሣሪያዎ ላይ መክፈል ይችላሉ።</translation> <translation id="8816439037877937734"><ph name="APP_NAME" /> በChrome ውስጥ ይከፈታል። በመቀጠልዎ በChrome <ph name="BEGIN_LINK1" />አገልግሎት ውል<ph name="END_LINK1" /> እና <ph name="BEGIN_LINK2" />የግላዊነት ማስታወቂያ<ph name="END_LINK2" />፣ እና በ<ph name="BEGIN_LINK3" />በFamily Link የሚተዳደሩ የGoogle መለያዎች ግላዊነት ማስታወቂያ<ph name="END_LINK3" /> ተስማምተዋል።</translation> <translation id="8820817407110198400">ዕልባቶች</translation> -<translation id="883635517171802338">ጣቢያዎች ብቅ-ባዮችን እንዳያሳዩ ያግዱ (የሚመከር)</translation> <translation id="883806473910249246">ይዘቱን በማውረድ ላይ ሳለ አንድ ስህተት ተከስቷል።</translation> <translation id="8840953339110955557">ይህ ገጽ ከመስመር ላይ ስሪቱ የተለየ ሊሆን ይችላል።</translation> <translation id="8847988622838149491">ዩ ኤስ ቢ</translation>
diff --git a/chrome/android/java/strings/translations/android_chrome_strings_ar.xtb b/chrome/android/java/strings/translations/android_chrome_strings_ar.xtb index 2a88a38..5f6ee4c 100644 --- a/chrome/android/java/strings/translations/android_chrome_strings_ar.xtb +++ b/chrome/android/java/strings/translations/android_chrome_strings_ar.xtb
@@ -111,7 +111,6 @@ <translation id="1993768208584545658">يريد <ph name="SITE" /> الاقتران</translation> <translation id="1994173015038366702">عنوان URL للموقع</translation> <translation id="200815880754187296">تطبيقات أخرى بحجم <ph name="KILOBYTES" /> كيلوبايت</translation> -<translation id="2015632741368427174">تم حظر إعادة التوجيه إلى الموقع:</translation> <translation id="2017836877785168846">مسح السجل وعمليات الإكمال التلقائي في شريط العناوين.</translation> <translation id="2021896219286479412">عناصر التحكم لموقع في وضع ملء الشاشة</translation> <translation id="2038563949887743358">تشغيل طلب موقع الويب لسطح المكتب</translation> @@ -183,7 +182,6 @@ <translation id="2650751991977523696">هل تريد تنزيل الملف مرة أخرى؟</translation> <translation id="2653659639078652383">إرسال</translation> <translation id="2677748264148917807">الخروج</translation> -<translation id="2693813674743028984">إخفاء سعة التخزين</translation> <translation id="2704606927547763573">تم النسخ</translation> <translation id="2707726405694321444">تحديث الصفحة</translation> <translation id="2709516037105925701">الملء التلقائي</translation> @@ -209,7 +207,6 @@ <translation id="2956410042958133412">تتم إدارة هذا الحساب بواسطة <ph name="PARENT_NAME_1" /> و <ph name="PARENT_NAME_2" />.</translation> <translation id="2960796085439532066">حقوق الطبع والنشر لعام <ph name="YEAR" /> لصالح شركة .Google Inc. جميع الحقوق محفوظة.</translation> <translation id="2962095958535813455">تم التبديل إلى علامات تبويب التصفح المتخفي</translation> -<translation id="2965945119655563012">عرض سعة التخزين</translation> <translation id="2968755619301702150">عارض الشهادات</translation> <translation id="2979025552038692506">علامة تبويب محددة للتصفح المتخفي</translation> <translation id="2989523299700148168">تم الانتقال إليها مؤخرًا</translation> @@ -528,7 +525,6 @@ <translation id="5817918615728894473">إقران</translation> <translation id="583281660410589416">غير معروف</translation> <translation id="5833984609253377421">مشاركة الرابط</translation> -<translation id="583891442612896534">لا يمكن لمتصفح Chrome الوصول إلى خوادم Google لضغط البيانات. قد تكون خيارات توفير البيانات محدودة.</translation> <translation id="5854790677617711513">مرّ عليها أكثر من 30 يومًا</translation> <translation id="5858741533101922242">يتعذر على Chrome تشغيل محوّل البلوتوث</translation> <translation id="5860033963881614850">إيقاف</translation> @@ -590,7 +586,6 @@ <translation id="6395288395575013217">رابط</translation> <translation id="6404511346730675251">تعديل إشارة مرجعية</translation> <translation id="6406506848690869874">المزامنة</translation> -<translation id="6409731863280057959">النوافذ المنبثقة</translation> <translation id="641643625718530986">طباعة…</translation> <translation id="6416782512398055893">تم التنزيل بحجم <ph name="MBS" /> ميغابايت</translation> <translation id="6433501201775827830">اختيار محرك البحث</translation> @@ -841,7 +836,6 @@ <translation id="8676374126336081632">محو الإرسال</translation> <translation id="8687353297350450808">{N_BARS,plural, =1{مستوى قوة الإشارة: شريط واحد (#)}zero{مستوى قوة الإشارة: # شريط}two{مستوى قوة الإشارة: شريطان (#)}few{مستوى قوة الإشارة: # أشرطة}many{مستوى قوة الإشارة: # شريطًا}other{مستوى قوة الإشارة: # شريط}}</translation> <translation id="869891660844655955">تاريخ انتهاء الصلاحية</translation> -<translation id="8712637175834984815">تم</translation> <translation id="8719023831149562936">تعذر إرسال علامة التبويب الحالية باستخدام الشعاع</translation> <translation id="8725066075913043281">أعد المحاولة</translation> <translation id="8728487861892616501">باستخدامك لهذا التطبيق، أنت توافق على <ph name="BEGIN_LINK1" />بنود الخدمة في Chrome<ph name="END_LINK1" /> و<ph name="BEGIN_LINK2" />إشعار الخصوصية<ph name="END_LINK2" /> و<ph name="BEGIN_LINK3" />إشعار الخصوصية لحسابات Google المُدارة من خلال Family Link<ph name="END_LINK3" />.</translation> @@ -851,7 +845,6 @@ <translation id="8812260976093120287">يمكنك على مواقع ويب معيّنة الدفع باستخدام تطبيقات الدفع المتوافقة أعلاه على جهازك.</translation> <translation id="8816439037877937734">سيتم فتح <ph name="APP_NAME" /> في Chrome. بالمتابعة، أنت توافق على <ph name="BEGIN_LINK1" />بنود الخدمة<ph name="END_LINK1" /> و<ph name="BEGIN_LINK2" />إشعار الخصوصية<ph name="END_LINK2" /> في Chrome، و<ph name="BEGIN_LINK3" />إشعار الخصوصية لحسابات Google المُدارة من خلال Family Link<ph name="END_LINK3" />.</translation> <translation id="8820817407110198400">إشارات</translation> -<translation id="883635517171802338">منع مواقع الويب من عرض النوافذ المنبثقة (موصى به)</translation> <translation id="883806473910249246">حدث خطأ أثناء تنزيل المحتوى.</translation> <translation id="8840953339110955557">قد تختلف هذه الصفحة عن الإصدار الوارد على الإنترنت.</translation> <translation id="8847988622838149491">USB</translation>
diff --git a/chrome/android/java/strings/translations/android_chrome_strings_bg.xtb b/chrome/android/java/strings/translations/android_chrome_strings_bg.xtb index 1e15094..cc1f296a 100644 --- a/chrome/android/java/strings/translations/android_chrome_strings_bg.xtb +++ b/chrome/android/java/strings/translations/android_chrome_strings_bg.xtb
@@ -111,7 +111,6 @@ <translation id="1993768208584545658"><ph name="SITE" /> иска да се сдвои</translation> <translation id="1994173015038366702">URL адрес на сайт</translation> <translation id="200815880754187296">Други приложения: <ph name="KILOBYTES" /> КБ</translation> -<translation id="2015632741368427174">Пренасочването към следния сайт бе блокирано:</translation> <translation id="2017836877785168846">Изчиства историята и автоматичните довършвания в адресната лента.</translation> <translation id="2021896219286479412">Контроли за сайтове на цял екран</translation> <translation id="2038563949887743358">Включване на функцията за заявяване на настолни сайтове</translation> @@ -183,7 +182,6 @@ <translation id="2650751991977523696">Да се изтегли ли отново файлът?</translation> <translation id="2653659639078652383">Изпращане</translation> <translation id="2677748264148917807">Излизане</translation> -<translation id="2693813674743028984">Скриване на данните за хранилището</translation> <translation id="2704606927547763573">Копирано</translation> <translation id="2707726405694321444">Опресняване на страницата</translation> <translation id="2709516037105925701">Автоматично попълване</translation> @@ -209,7 +207,6 @@ <translation id="2956410042958133412">Този профил се управлява от <ph name="PARENT_NAME_1" /> и <ph name="PARENT_NAME_2" />.</translation> <translation id="2960796085439532066">Авторски права <ph name="YEAR" /> Google Inc. Всички права запазени.</translation> <translation id="2962095958535813455">Превключихте към разделите в режим „инкогнито“</translation> -<translation id="2965945119655563012">Показване на данните за хранилището</translation> <translation id="2968755619301702150">Визуализатор на сертификатите</translation> <translation id="2979025552038692506">Избран раздел в режим „инкогнито“</translation> <translation id="2989523299700148168">Наскоро посетени</translation> @@ -527,7 +524,6 @@ <translation id="5817918615728894473">Сдвояване</translation> <translation id="583281660410589416">Неизвестно</translation> <translation id="5833984609253377421">Споделяне на връзката</translation> -<translation id="583891442612896534">Chrome не може да установи връзка с компресиращите сървъри на Google. Икономията на данни може да е ограничена.</translation> <translation id="5854790677617711513">По-стари от 30 дни</translation> <translation id="5858741533101922242">Chrome не може да включи адаптера за Bluetooth</translation> <translation id="5860033963881614850">Изключено</translation> @@ -589,7 +585,6 @@ <translation id="6395288395575013217">ВРЪЗКА</translation> <translation id="6404511346730675251">Редактиране на отметката</translation> <translation id="6406506848690869874">Синхронизиранe</translation> -<translation id="6409731863280057959">Изскачащи прозорци</translation> <translation id="641643625718530986">Печат…</translation> <translation id="6416782512398055893">Изтеглено: <ph name="MBS" /> МБ</translation> <translation id="6433501201775827830">Изберете машина за търсене</translation> @@ -840,7 +835,6 @@ <translation id="8676374126336081632">Изчистване на въведеното</translation> <translation id="8687353297350450808">{N_BARS,plural, =1{Сила на сигнала: # чертичка}other{Сила на сигнала: # чертички}}</translation> <translation id="869891660844655955">Дата на валидност</translation> -<translation id="8712637175834984815">Разбрах</translation> <translation id="8719023831149562936">Текущият раздел не може да се излъчи</translation> <translation id="8725066075913043281">Опитайте отново</translation> <translation id="8728487861892616501">С използването на това приложение приемате <ph name="BEGIN_LINK1" />Общите условия<ph name="END_LINK1" /> и <ph name="BEGIN_LINK2" />Съобщението за поверителност<ph name="END_LINK2" /> на Chrome, както и <ph name="BEGIN_LINK3" />Съобщението за поверителност за профили в Google, управлявани чрез Family Link<ph name="END_LINK3" />.</translation> @@ -850,7 +844,6 @@ <translation id="8812260976093120287">На някои уебсайтове можете да извършвате плащания чрез посочените по-горе поддържани приложения за плащане на устройството ви.</translation> <translation id="8816439037877937734"><ph name="APP_NAME" /> ще се отвори в Chrome. С продължаването си приемате <ph name="BEGIN_LINK1" />Общите условия<ph name="END_LINK1" /> и <ph name="BEGIN_LINK2" />Съобщението за поверителност<ph name="END_LINK2" /> на браузъра, както и <ph name="BEGIN_LINK3" />Съобщението за поверителност за профили в Google, управлявани чрез Family Link<ph name="END_LINK3" />.</translation> <translation id="8820817407110198400">Отметки</translation> -<translation id="883635517171802338">Блокиране на показването на изскачащи прозорци от сайтовете (препоръчително)</translation> <translation id="883806473910249246">При изтеглянето на съдържанието възникна грешка.</translation> <translation id="8840953339110955557">Тази страница може да се различава от онлайн версията.</translation> <translation id="8847988622838149491">USB</translation>
diff --git a/chrome/android/java/strings/translations/android_chrome_strings_ca.xtb b/chrome/android/java/strings/translations/android_chrome_strings_ca.xtb index 50f9204d..a4e19e1 100644 --- a/chrome/android/java/strings/translations/android_chrome_strings_ca.xtb +++ b/chrome/android/java/strings/translations/android_chrome_strings_ca.xtb
@@ -111,7 +111,6 @@ <translation id="1993768208584545658"><ph name="SITE" /> es vol vincular</translation> <translation id="1994173015038366702">URL del lloc</translation> <translation id="200815880754187296"><ph name="KILOBYTES" /> kB en altres aplicacions</translation> -<translation id="2015632741368427174">S'ha bloquejat la redirecció al lloc web següent:</translation> <translation id="2017836877785168846">Esborra l'historial i les complecions automàtiques a la barra d'adreces.</translation> <translation id="2021896219286479412">Controls de pantalla completa</translation> <translation id="2038563949887743358">Activa Mostra com a ordinador</translation> @@ -183,7 +182,6 @@ <translation id="2650751991977523696">Vols tornar a baixar el fitxer?</translation> <translation id="2653659639078652383">Envia</translation> <translation id="2677748264148917807">Surt</translation> -<translation id="2693813674743028984">Amaga l'emmagatzematge</translation> <translation id="2704606927547763573">Copiada</translation> <translation id="2707726405694321444">Actualitza la pàgina</translation> <translation id="2709516037105925701">Emplenament autom.</translation> @@ -209,7 +207,6 @@ <translation id="2956410042958133412"><ph name="PARENT_NAME_1" /> i <ph name="PARENT_NAME_2" /> gestionen aquest compte.</translation> <translation id="2960796085439532066">Copyright <ph name="YEAR" /> Google Inc. Tots els drets reservats.</translation> <translation id="2962095958535813455">S'ha canviat a les pestanyes d'incògnit</translation> -<translation id="2965945119655563012">Mostra l'emmagatzematge</translation> <translation id="2968755619301702150">Lector de certificats</translation> <translation id="2979025552038692506">Pestanya d'incògnit seleccionada</translation> <translation id="2989523299700148168">Visitats últimament</translation> @@ -527,7 +524,6 @@ <translation id="5817918615728894473">Vincula</translation> <translation id="583281660410589416">Desconegut</translation> <translation id="5833984609253377421">Comparteix l'enllaç</translation> -<translation id="583891442612896534">Chrome no es pot connectar amb els servidors de Google per comprimir les dades. És possible que només pugueu desar dades de manera limitada.</translation> <translation id="5854790677617711513">Anterior a 30 dies</translation> <translation id="5858741533101922242">Chrome no pot activar l'adaptador Bluetooth</translation> <translation id="5860033963881614850">Desactivat</translation> @@ -589,7 +585,6 @@ <translation id="6395288395575013217">ENLLAÇ</translation> <translation id="6404511346730675251">Edita l'adreça d'interès</translation> <translation id="6406506848690869874">Sincronització</translation> -<translation id="6409731863280057959">Finestres emergents</translation> <translation id="641643625718530986">Imprimeix…</translation> <translation id="6416782512398055893">S'han baixat <ph name="MBS" /> MB</translation> <translation id="6433501201775827830">Tria el motor de cerca</translation> @@ -840,7 +835,6 @@ <translation id="8676374126336081632">Esborra l'entrada</translation> <translation id="8687353297350450808">{N_BARS,plural, =1{Intensitat del senyal: # barra}other{Intensitat del senyal: # barres}}</translation> <translation id="869891660844655955">Data de caducitat</translation> -<translation id="8712637175834984815">D'acord</translation> <translation id="8719023831149562936">La pestanya actual no es pot compartir.</translation> <translation id="8725066075913043281">Torna-ho a provar</translation> <translation id="8728487861892616501">En utilitzar aquesta aplicació, acceptes les <ph name="BEGIN_LINK1" />Condicions del servei<ph name="END_LINK1" /> i l'<ph name="BEGIN_LINK2" />Avís de privadesa<ph name="END_LINK2" /> de Chrome, així com l'<ph name="BEGIN_LINK3" />Avís de privadesa per a comptes de Google gestionats amb Family Link<ph name="END_LINK3" />.</translation> @@ -850,7 +844,6 @@ <translation id="8812260976093120287">En alguns llocs web, pots fer servir el teu dispositiu per pagar amb les aplicacions de pagament anteriors admeses.</translation> <translation id="8816439037877937734"><ph name="APP_NAME" /> s'obrirà a Chrome. En continuar, acceptes les <ph name="BEGIN_LINK1" />condicions del servei<ph name="END_LINK1" /> i l'<ph name="BEGIN_LINK2" />avís de privadesa<ph name="END_LINK2" /> de Chrome, així com l'<ph name="BEGIN_LINK3" />avís de privadesa per als comptes de Google gestionats amb Family Link<ph name="END_LINK3" />.</translation> <translation id="8820817407110198400">Adreces d'interès</translation> -<translation id="883635517171802338">Bloqueja les finestres emergents als llocs web (opció recomanada)</translation> <translation id="883806473910249246">S'ha produït un error en baixar el contingut.</translation> <translation id="8840953339110955557">Aquesta pàgina pot ser diferent de la versió en línia.</translation> <translation id="8847988622838149491">USB</translation>
diff --git a/chrome/android/java/strings/translations/android_chrome_strings_cs.xtb b/chrome/android/java/strings/translations/android_chrome_strings_cs.xtb index 0ed27c45..42ebd827 100644 --- a/chrome/android/java/strings/translations/android_chrome_strings_cs.xtb +++ b/chrome/android/java/strings/translations/android_chrome_strings_cs.xtb
@@ -111,7 +111,6 @@ <translation id="1993768208584545658">Web <ph name="SITE" /> žádá o spárování</translation> <translation id="1994173015038366702">Adresa URL webu</translation> <translation id="200815880754187296">Ostatní aplikace: <ph name="KILOBYTES" /> kB</translation> -<translation id="2015632741368427174">Bylo zablokováno přesměrování na tento web:</translation> <translation id="2017836877785168846">Vymaže historii a automatická dokončení v adresním řádku.</translation> <translation id="2021896219286479412">Ovládání webu na celé obrazovce</translation> <translation id="2038563949887743358">Zapnout funkci Verze webu pro PC</translation> @@ -183,7 +182,6 @@ <translation id="2650751991977523696">Stáhnout soubor znovu?</translation> <translation id="2653659639078652383">Odeslat</translation> <translation id="2677748264148917807">Odejít</translation> -<translation id="2693813674743028984">Skrýt úložiště</translation> <translation id="2704606927547763573">Zkopírováno</translation> <translation id="2707726405694321444">Obnovit stránku</translation> <translation id="2709516037105925701">Automatické vyplňování</translation> @@ -209,7 +207,6 @@ <translation id="2956410042958133412">Tento účet spravují uživatelé <ph name="PARENT_NAME_1" /> a <ph name="PARENT_NAME_2" />.</translation> <translation id="2960796085439532066">Copyright <ph name="YEAR" /> Google Inc. Všechna práva vyhrazena.</translation> <translation id="2962095958535813455">Přepnuto na anonymní karty</translation> -<translation id="2965945119655563012">Zobrazit úložiště</translation> <translation id="2968755619301702150">Prohlížeč certifikátů</translation> <translation id="2979025552038692506">Vybraná anonymní karta</translation> <translation id="2989523299700148168">Nedávno navštívené</translation> @@ -527,7 +524,6 @@ <translation id="5817918615728894473">Spárovat</translation> <translation id="583281660410589416">Neznámé</translation> <translation id="5833984609253377421">Sdílet odkaz</translation> -<translation id="583891442612896534">Chrome se nemůže připojit k serverům společnosti Google pro kompresi dat. Úspora dat může být omezena.</translation> <translation id="5854790677617711513">Starší než 30 dnů</translation> <translation id="5858741533101922242">Chrome nemůže zapnout adaptér Bluetooth</translation> <translation id="5860033963881614850">Vypnuto</translation> @@ -589,7 +585,6 @@ <translation id="6395288395575013217">ODKAZ</translation> <translation id="6404511346730675251">Upravit záložku</translation> <translation id="6406506848690869874">Synchronizace</translation> -<translation id="6409731863280057959">Vyskakovací okna</translation> <translation id="641643625718530986">Tisk…</translation> <translation id="6416782512398055893">Staženo: <ph name="MBS" /> MB</translation> <translation id="6433501201775827830">Vyberte vyhledávač</translation> @@ -840,7 +835,6 @@ <translation id="8676374126336081632">Vymazat vstup</translation> <translation id="8687353297350450808">{N_BARS,plural, =1{Síla signálu: # čárka}few{Síla signálu: # čárky}many{Síla signálu: # čárky}other{Síla signálu: # čárek}}</translation> <translation id="869891660844655955">Datum vypršení platnosti</translation> -<translation id="8712637175834984815">Hotovo</translation> <translation id="8719023831149562936">Aktuální kartu nelze přenést</translation> <translation id="8725066075913043281">Zkusit znovu</translation> <translation id="8728487861892616501">Používáním této aplikace vyjadřujete souhlas se <ph name="BEGIN_LINK1" />smluvními podmínkami<ph name="END_LINK1" /> a <ph name="BEGIN_LINK2" />upozorněním ve věci ochrany soukromí<ph name="END_LINK2" /> prohlížeče Chrome a <ph name="BEGIN_LINK3" />upozorněním ve věci ochrany soukromí pro účty Google spravované prostřednictvím služby Family Link<ph name="END_LINK3" />.</translation> @@ -850,7 +844,6 @@ <translation id="8812260976093120287">Na některých webech můžete platit pomocí výše uvedených podporovaných platebních aplikací v zařízení.</translation> <translation id="8816439037877937734">Aplikace <ph name="APP_NAME" /> se otevře v Chromu. Pokračováním vyjadřujete souhlas se <ph name="BEGIN_LINK1" />smluvními podmínkami<ph name="END_LINK1" /> a <ph name="BEGIN_LINK2" />upozorněním ve věci ochrany soukromí<ph name="END_LINK2" /> prohlížeče Chrome a <ph name="BEGIN_LINK3" />upozorněním ve věci ochrany soukromí pro účty Google spravované prostřednictvím služby Family Link<ph name="END_LINK3" />.</translation> <translation id="8820817407110198400">Záložky</translation> -<translation id="883635517171802338">Bránit webům v zobrazování vyskakovacích oken (doporučeno)</translation> <translation id="883806473910249246">Při stahování obsahu došlo k chybě.</translation> <translation id="8840953339110955557">Tato stránka se může od online verze lišit.</translation> <translation id="8847988622838149491">USB</translation>
diff --git a/chrome/android/java/strings/translations/android_chrome_strings_da.xtb b/chrome/android/java/strings/translations/android_chrome_strings_da.xtb index 954311a..bc470ce9 100644 --- a/chrome/android/java/strings/translations/android_chrome_strings_da.xtb +++ b/chrome/android/java/strings/translations/android_chrome_strings_da.xtb
@@ -111,7 +111,6 @@ <translation id="1993768208584545658"><ph name="SITE" /> vil gerne parre</translation> <translation id="1994173015038366702">Webadresse</translation> <translation id="200815880754187296"><ph name="KILOBYTES" /> KB af andre apps</translation> -<translation id="2015632741368427174">Omdirigering er blokeret på dette website:</translation> <translation id="2017836877785168846">Nulstiller historikken og autofuldførelser i adresselinjen.</translation> <translation id="2021896219286479412">Kontrolelementer på website i fuld skærm</translation> <translation id="2038563949887743358">Slå computerversionen af websitet til</translation> @@ -183,7 +182,6 @@ <translation id="2650751991977523696">Vil du downloade filen igen?</translation> <translation id="2653659639078652383">Indsend</translation> <translation id="2677748264148917807">Forlad</translation> -<translation id="2693813674743028984">Skjul lageroplysninger</translation> <translation id="2704606927547763573">Kopieret</translation> <translation id="2707726405694321444">Opdater siden</translation> <translation id="2709516037105925701">AutoFyld</translation> @@ -209,7 +207,6 @@ <translation id="2956410042958133412">Denne konto administreres af <ph name="PARENT_NAME_1" /> og <ph name="PARENT_NAME_2" />.</translation> <translation id="2960796085439532066">Copyright <ph name="YEAR" /> Google Inc. Alle rettigheder forbeholdes.</translation> <translation id="2962095958535813455">Skiftet til inkognitofaner</translation> -<translation id="2965945119655563012">Vis lageroplysninger</translation> <translation id="2968755619301702150">Certifikatfremviser</translation> <translation id="2979025552038692506">Valgt inkognitofane</translation> <translation id="2989523299700148168">Besøgt for nylig</translation> @@ -527,7 +524,6 @@ <translation id="5817918615728894473">Start parring</translation> <translation id="583281660410589416">Ukendt</translation> <translation id="5833984609253377421">Del link</translation> -<translation id="583891442612896534">Chrome kan ikke komme i kontakt med Googles servere i forbindelse med datakomprimering. Dine sparede data kan være begrænsede.</translation> <translation id="5854790677617711513">Ældre end 30 dage</translation> <translation id="5858741533101922242">Chrome kan ikke slå Bluetooth-adapteren til</translation> <translation id="5860033963881614850">Fra</translation> @@ -589,7 +585,6 @@ <translation id="6395288395575013217">LINK</translation> <translation id="6404511346730675251">Rediger bogmærke</translation> <translation id="6406506848690869874">Synkronisering</translation> -<translation id="6409731863280057959">Pop op-vinduer</translation> <translation id="641643625718530986">Udskriv…</translation> <translation id="6416782512398055893">Der er downloadet <ph name="MBS" /> MB</translation> <translation id="6433501201775827830">Vælg en søgemaskine</translation> @@ -840,7 +835,6 @@ <translation id="8676374126336081632">Ryd indtastning</translation> <translation id="8687353297350450808">{N_BARS,plural, =1{Signalstyrkeniveau: # søjle}one{Signalstyrkeniveau: # søjle}other{Signalstyrkeniveau: # søjler}}</translation> <translation id="869891660844655955">Udløbsdato</translation> -<translation id="8712637175834984815">Forstået</translation> <translation id="8719023831149562936">Den aktuelle fane kan ikke overføres</translation> <translation id="8725066075913043281">Forsøg igen</translation> <translation id="8728487861892616501">Når du bruger denne app, accepterer du Chromes <ph name="BEGIN_LINK1" />servicevilkår<ph name="END_LINK1" /> og <ph name="BEGIN_LINK2" />erklæring om privatliv<ph name="END_LINK2" /> samt <ph name="BEGIN_LINK3" />erklæringen om privatliv for Google-konti, der administreres med Family Link<ph name="END_LINK3" />.</translation> @@ -850,7 +844,6 @@ <translation id="8812260976093120287">På nogle websites kan du betale med ovenstående understøttede betalingsapps på din enhed.</translation> <translation id="8816439037877937734"><ph name="APP_NAME" /> åbnes i Chrome. Når du fortsætter, accepterer du Chromes <ph name="BEGIN_LINK1" />servicevilkår<ph name="END_LINK1" /> og <ph name="BEGIN_LINK2" />erklæring om privatliv<ph name="END_LINK2" /> samt <ph name="BEGIN_LINK3" />erklæringen om privatliv for Google-konti, der administreres med Family Link<ph name="END_LINK3" />.</translation> <translation id="8820817407110198400">Bogmærker</translation> -<translation id="883635517171802338">Bloker visning af pop up-vinduer på websites (anbefales)</translation> <translation id="883806473910249246">Der opstod en fejl under download af indholdet.</translation> <translation id="8840953339110955557">Denne side kan afvige fra onlineversionen.</translation> <translation id="8847988622838149491">USB</translation>
diff --git a/chrome/android/java/strings/translations/android_chrome_strings_de.xtb b/chrome/android/java/strings/translations/android_chrome_strings_de.xtb index 5f98f968..7422f5b 100644 --- a/chrome/android/java/strings/translations/android_chrome_strings_de.xtb +++ b/chrome/android/java/strings/translations/android_chrome_strings_de.xtb
@@ -111,7 +111,6 @@ <translation id="1993768208584545658"><ph name="SITE" /> möchte eine Kopplung durchführen</translation> <translation id="1994173015038366702">Website-URL</translation> <translation id="200815880754187296"><ph name="KILOBYTES" /> KB sonstiger Apps</translation> -<translation id="2015632741368427174">Blockierte Weiterleitung zu Website:</translation> <translation id="2017836877785168846">Löscht den Verlauf sowie Autovervollständigungen in der Adressleiste.</translation> <translation id="2021896219286479412">Vollbild-Steuerelemente</translation> <translation id="2038563949887743358">"Desktopversion ansehen" aktivieren</translation> @@ -183,7 +182,6 @@ <translation id="2650751991977523696">Datei noch einmal herunterladen?</translation> <translation id="2653659639078652383">Senden</translation> <translation id="2677748264148917807">Verlassen</translation> -<translation id="2693813674743028984">Speicher ausblenden</translation> <translation id="2704606927547763573">Kopiert</translation> <translation id="2707726405694321444">Seite aktualisieren</translation> <translation id="2709516037105925701">AutoFill</translation> @@ -209,7 +207,6 @@ <translation id="2956410042958133412">Dieses Konto wird von <ph name="PARENT_NAME_1" /> und <ph name="PARENT_NAME_2" /> verwaltet.</translation> <translation id="2960796085439532066">Copyright <ph name="YEAR" /> Google Inc. Alle Rechte vorbehalten.</translation> <translation id="2962095958535813455">Zu Inkognito-Tabs gewechselt</translation> -<translation id="2965945119655563012">Speicher einblenden</translation> <translation id="2968755619301702150">Zertifikats-Viewer</translation> <translation id="2979025552038692506">Ausgewählter Inkognito-Tab</translation> <translation id="2989523299700148168">Kürzlich besucht</translation> @@ -528,7 +525,6 @@ <translation id="5817918615728894473">Koppeln</translation> <translation id="583281660410589416">Unbekannt</translation> <translation id="5833984609253377421">Link teilen</translation> -<translation id="583891442612896534">Chrome kann die Google-Server für die Datenkomprimierung nicht erreichen. Ihre Einsparungen bei der Datennutzung können begrenzt sein.</translation> <translation id="5854790677617711513">Älter als 30 Tage</translation> <translation id="5858741533101922242">Chrome kann den Bluetooth-Adapter nicht aktivieren</translation> <translation id="5860033963881614850">Aus</translation> @@ -590,7 +586,6 @@ <translation id="6395288395575013217">LINK</translation> <translation id="6404511346730675251">Lesezeichen bearbeiten</translation> <translation id="6406506848690869874">Synchronisierung</translation> -<translation id="6409731863280057959">Pop-ups</translation> <translation id="641643625718530986">Drucken...</translation> <translation id="6416782512398055893"><ph name="MBS" /> MB heruntergeladen</translation> <translation id="6433501201775827830">Suchmaschine auswählen</translation> @@ -841,7 +836,6 @@ <translation id="8676374126336081632">Eingabe löschen</translation> <translation id="8687353297350450808">{N_BARS,plural, =1{Signalstärke: # Balken}other{Signalstärke: # Balken}}</translation> <translation id="869891660844655955">Ablaufdatum</translation> -<translation id="8712637175834984815">Alles klar</translation> <translation id="8719023831149562936">Aktueller Tab kann nicht gebeamt werden.</translation> <translation id="8725066075913043281">Erneut versuchen</translation> <translation id="8728487861892616501">Durch die Nutzung dieser Anwendung stimmen Sie den <ph name="BEGIN_LINK1" />Nutzungsbedingungen<ph name="END_LINK1" /> und <ph name="BEGIN_LINK2" />Datenschutzhinweisen<ph name="END_LINK2" /> von Chrome sowie den <ph name="BEGIN_LINK3" />Datenschutzhinweisen für mit Family Link verwaltete Google-Konten<ph name="END_LINK3" /> zu.</translation> @@ -851,7 +845,6 @@ <translation id="8812260976093120287">Auf manchen Websites können Sie über Ihr Gerät mit den obigen unterstützten Zahlungs-Apps bezahlen.</translation> <translation id="8816439037877937734"><ph name="APP_NAME" /> wird in Chrome geöffnet. Wenn Sie fortfahren, stimmen Sie den <ph name="BEGIN_LINK1" />Nutzungsbedingungen<ph name="END_LINK1" /> und <ph name="BEGIN_LINK2" />Datenschutzhinweisen<ph name="END_LINK2" /> von Chrome sowie den <ph name="BEGIN_LINK3" />Datenschutzhinweisen für mit Family Link verwaltete Google-Konten<ph name="END_LINK3" /> zu.</translation> <translation id="8820817407110198400">Lesezeichen</translation> -<translation id="883635517171802338">Anzeige von Pop-ups für Websites blockieren (empfohlen)</translation> <translation id="883806473910249246">Beim Herunterladen des Inhalts ist ein Fehler aufgetreten.</translation> <translation id="8840953339110955557">Diese Seite unterscheidet sich gegebenenfalls von der Onlineversion.</translation> <translation id="8847988622838149491">USB</translation>
diff --git a/chrome/android/java/strings/translations/android_chrome_strings_el.xtb b/chrome/android/java/strings/translations/android_chrome_strings_el.xtb index a5bf65d3..5f143fa9 100644 --- a/chrome/android/java/strings/translations/android_chrome_strings_el.xtb +++ b/chrome/android/java/strings/translations/android_chrome_strings_el.xtb
@@ -111,7 +111,6 @@ <translation id="1993768208584545658">Ο ιστότοπος <ph name="SITE" /> επιθυμεί σύζευξη</translation> <translation id="1994173015038366702">URL ιστότοπου</translation> <translation id="200815880754187296"><ph name="KILOBYTES" /> KB από άλλες εφαρμογές</translation> -<translation id="2015632741368427174">Η ανακατεύθυνση αποκλείστηκε προς τον ιστότοπο:</translation> <translation id="2017836877785168846">Διαγράφει το ιστορικό και τις αυτόματες συμπληρώσεις στη γραμμή διευθύνσεων.</translation> <translation id="2021896219286479412">Στοιχ. ελέγ. σε πλήρη οθόνη</translation> <translation id="2038563949887743358">Ενεργοποίηση αιτήματος ιστότοπου για υπολογιστές</translation> @@ -183,7 +182,6 @@ <translation id="2650751991977523696">Επανάληψη λήψης αρχείου;</translation> <translation id="2653659639078652383">Υποβολή</translation> <translation id="2677748264148917807">Αποχώρηση</translation> -<translation id="2693813674743028984">Απόκρυψη αποθηκευτικού χώρου</translation> <translation id="2704606927547763573">Αντιγράφ.</translation> <translation id="2707726405694321444">Ανανέωση σελίδας</translation> <translation id="2709516037105925701">Αυτόματη συμπλήρωση</translation> @@ -209,7 +207,6 @@ <translation id="2956410042958133412">Αυτός ο λογαριασμός τελεί υπό τη διαχείριση των γονέων <ph name="PARENT_NAME_1" /> και <ph name="PARENT_NAME_2" />.</translation> <translation id="2960796085439532066">Πνευματικά δικαιώματα <ph name="YEAR" /> Google Inc. Με επιφύλαξη παντός δικαιώματος.</translation> <translation id="2962095958535813455">Έγινε εναλλαγή σε καρτέλες ανώνυμης περιήγησης</translation> -<translation id="2965945119655563012">Εμφάνιση αποθηκευτικού χώρου</translation> <translation id="2968755619301702150">Πρόγρ. προβολής πιστοποιητικού</translation> <translation id="2979025552038692506">Επιλεγμένη καρτέλα ανώνυμης περιήγησης</translation> <translation id="2989523299700148168">Πραγματοποιήθηκε επίσκεψη πρόσφατα</translation> @@ -527,7 +524,6 @@ <translation id="5817918615728894473">Σύζευξη</translation> <translation id="583281660410589416">Άγνωστο</translation> <translation id="5833984609253377421">Κοινοποίηση συνδέσμου</translation> -<translation id="583891442612896534">Το Chrome δεν είναι δυνατό να επικοινωνήσει με τους διακομιστές της Google για συμπίεση δεδομένων. Η εξοικονόμηση δεδομένων πιθανώς να είναι περιορισμένη.</translation> <translation id="5854790677617711513">Παλαιότερο από 30 ημέρες</translation> <translation id="5858741533101922242">Το Chrome δεν είναι δυνατό να ενεργοποιήσει τον προσαρμογέα Bluetooth</translation> <translation id="5860033963881614850">Απενεργοποιημένη</translation> @@ -589,7 +585,6 @@ <translation id="6395288395575013217">ΣΥΝΔΕΣΜΟΣ</translation> <translation id="6404511346730675251">Επεξεργασία σελιδοδείκτη</translation> <translation id="6406506848690869874">Συγχρονισμός</translation> -<translation id="6409731863280057959">Αναδυόμενα παράθυρα</translation> <translation id="641643625718530986">Εκτύπωση…</translation> <translation id="6416782512398055893">Έγινε λήψη <ph name="MBS" /> MB</translation> <translation id="6433501201775827830">Επιλέξτε τη μηχανή αναζήτησής σας</translation> @@ -840,7 +835,6 @@ <translation id="8676374126336081632">Διαγραφή καταχώρισης</translation> <translation id="8687353297350450808">{N_BARS,plural, =1{Επίπεδο ισχύος σήματος: # γραμμή}other{Επίπεδο ισχύος σήματος: # γραμμές}}</translation> <translation id="869891660844655955">Ημερομηνία λήξης</translation> -<translation id="8712637175834984815">Κατάλαβα!</translation> <translation id="8719023831149562936">Δεν είναι δυνατή η ζεύξη της τρέχουσας καρτέλας</translation> <translation id="8725066075913043281">Προσπαθήστε ξανά</translation> <translation id="8728487861892616501">Χρησιμοποιώντας αυτήν την εφαρμογή, συμφωνείτε με τους <ph name="BEGIN_LINK1" />Όρους Παροχής Υπηρεσιών<ph name="END_LINK1" /> και τη <ph name="BEGIN_LINK2" />Σημείωση απορρήτου<ph name="END_LINK2" /> του Chrome, καθώς και με τη <ph name="BEGIN_LINK3" />Σημείωση απορρήτου για Λογαριασμούς Google, των οποίων η διαχείριση γίνεται μέσω του Family Link<ph name="END_LINK3" />.</translation> @@ -850,7 +844,6 @@ <translation id="8812260976093120287">Σε ορισμένους ιστοτόπους, μπορείτε να πληρώσετε χρησιμοποιώντας τις παραπάνω υποστηριζόμενες εφαρμογές πληρωμών στη συσκευή σας.</translation> <translation id="8816439037877937734">Η εφαρμογή <ph name="APP_NAME" /> θα ανοίξει στο Chrome. Εάν συνεχίσετε, συμφωνείτε με τους <ph name="BEGIN_LINK1" />Όρους Παροχής Υπηρεσιών<ph name="END_LINK1" /> και τη <ph name="BEGIN_LINK2" />Σημείωση απορρήτου<ph name="END_LINK2" /> του Chrome, καθώς και με τη <ph name="BEGIN_LINK3" />Σημείωση απορρήτου για Λογαριασμούς Google των οποίων η διαχείριση γίνεται μέσω του Family Link<ph name="END_LINK3" />.</translation> <translation id="8820817407110198400">Σελιδοδείκτες</translation> -<translation id="883635517171802338">Αποκλεισμός ιστοτόπων από την εμφάνιση αναδυόμενων παραθύρων (συνιστάται)</translation> <translation id="883806473910249246">Παρουσιάστηκε σφάλμα κατά τη λήψη του περιεχομένου.</translation> <translation id="8840953339110955557">Αυτή η σελίδα μπορεί να διαφέρει από την έκδοση στο διαδίκτυο.</translation> <translation id="8847988622838149491">USB</translation>
diff --git a/chrome/android/java/strings/translations/android_chrome_strings_en-GB.xtb b/chrome/android/java/strings/translations/android_chrome_strings_en-GB.xtb index b7abe9e..3d9ed1e 100644 --- a/chrome/android/java/strings/translations/android_chrome_strings_en-GB.xtb +++ b/chrome/android/java/strings/translations/android_chrome_strings_en-GB.xtb
@@ -111,7 +111,6 @@ <translation id="1993768208584545658"><ph name="SITE" /> wants to pair</translation> <translation id="1994173015038366702">Site URL</translation> <translation id="200815880754187296"><ph name="KILOBYTES" /> KB other apps</translation> -<translation id="2015632741368427174">Redirect blocked to site:</translation> <translation id="2017836877785168846">Clears history and autocompletions in the address bar.</translation> <translation id="2021896219286479412">Full screen site controls</translation> <translation id="2038563949887743358">Turn on Request desktop site</translation> @@ -183,7 +182,6 @@ <translation id="2650751991977523696">Download file again?</translation> <translation id="2653659639078652383">Submit</translation> <translation id="2677748264148917807">Leave</translation> -<translation id="2693813674743028984">Hide storage</translation> <translation id="2704606927547763573">Copied</translation> <translation id="2707726405694321444">Refresh page</translation> <translation id="2709516037105925701">Auto-fill</translation> @@ -209,7 +207,6 @@ <translation id="2956410042958133412">This account is managed by <ph name="PARENT_NAME_1" /> and <ph name="PARENT_NAME_2" />.</translation> <translation id="2960796085439532066">Copyright <ph name="YEAR" /> Google Inc. All rights reserved.</translation> <translation id="2962095958535813455">Switched to incognito tabs</translation> -<translation id="2965945119655563012">Show storage</translation> <translation id="2968755619301702150">Certificate viewer</translation> <translation id="2979025552038692506">Selected Incognito Tab</translation> <translation id="2989523299700148168">Recently Visited</translation> @@ -527,7 +524,6 @@ <translation id="5817918615728894473">Pair</translation> <translation id="583281660410589416">Unknown</translation> <translation id="5833984609253377421">Share link</translation> -<translation id="583891442612896534">Chrome is unable to reach Google servers for data compression. Your data savings may be limited.</translation> <translation id="5854790677617711513">Older than 30 days</translation> <translation id="5858741533101922242">Chrome is unable to turn on Bluetooth adaptor</translation> <translation id="5860033963881614850">Off</translation> @@ -589,7 +585,6 @@ <translation id="6395288395575013217">LINK</translation> <translation id="6404511346730675251">Edit bookmark</translation> <translation id="6406506848690869874">Sync</translation> -<translation id="6409731863280057959">Pop-ups</translation> <translation id="641643625718530986">Print…</translation> <translation id="6416782512398055893">Downloaded <ph name="MBS" /> MB</translation> <translation id="6433501201775827830">Choose your search engine</translation> @@ -838,7 +833,6 @@ <translation id="8676374126336081632">Clear input</translation> <translation id="8687353297350450808">{N_BARS,plural, =1{Signal Strength Level: # bar}other{Signal Strength Level: # bars}}</translation> <translation id="869891660844655955">Expiry date</translation> -<translation id="8712637175834984815">Got it</translation> <translation id="8719023831149562936">Can’t beam current tab</translation> <translation id="8725066075913043281">Try again</translation> <translation id="8728487861892616501">By using this application, you agree to Chrome’s <ph name="BEGIN_LINK1" />Terms of Service<ph name="END_LINK1" /> and <ph name="BEGIN_LINK2" />Privacy Notice<ph name="END_LINK2" />, and the <ph name="BEGIN_LINK3" />Privacy Notice for Google Accounts Managed with Family Link<ph name="END_LINK3" />.</translation> @@ -848,7 +842,6 @@ <translation id="8812260976093120287">On some websites, you can pay with above supported payment apps on your device.</translation> <translation id="8816439037877937734"><ph name="APP_NAME" /> will open in Chrome. By continuing, you agree to Chrome's <ph name="BEGIN_LINK1" />Terms of Service<ph name="END_LINK1" /> and <ph name="BEGIN_LINK2" />Privacy Notice<ph name="END_LINK2" />, and the <ph name="BEGIN_LINK3" />Privacy Notice for Google Accounts Managed with Family Link<ph name="END_LINK3" />.</translation> <translation id="8820817407110198400">Bookmarks</translation> -<translation id="883635517171802338">Block sites from showing pop-ups (recommended)</translation> <translation id="883806473910249246">An error occurred while downloading the content.</translation> <translation id="8840953339110955557">This page may differ from the online version.</translation> <translation id="8847988622838149491">USB</translation>
diff --git a/chrome/android/java/strings/translations/android_chrome_strings_es-419.xtb b/chrome/android/java/strings/translations/android_chrome_strings_es-419.xtb index a2827f6..75d0846 100644 --- a/chrome/android/java/strings/translations/android_chrome_strings_es-419.xtb +++ b/chrome/android/java/strings/translations/android_chrome_strings_es-419.xtb
@@ -82,10 +82,12 @@ <translation id="1718835860248848330">Última hora</translation> <translation id="1729516292547892356">Para ver contenido de realidad virtual, actualiza los servicios de RV de Google</translation> <translation id="1733116627827457509"><ph name="FILE_SIZE" /> - Actualizado hace <ph name="TIME_SINCE_UPDATE" /></translation> +<translation id="1743802530341753419">Preguntar antes de permitir que los sitios se conecten a un dispositivo (recomendado)</translation> <translation id="1749561566933687563">Sincroniza tus favoritos</translation> <translation id="17513872634828108">Pestañas abiertas</translation> <translation id="1756600373018374892">Presiona este botón para acceder de forma rápida a tus pestañas.</translation> <translation id="1779089405699405702">Decodificador de imágenes</translation> +<translation id="1792959175193046959">Cambia la ubicación predeterminada de las descargas en cualquier momento</translation> <translation id="1807246157184219062">Claro</translation> <translation id="1829244130665387512">Buscar en la página</translation> <translation id="1832521218263067499">Incidentes de seguridad</translation> @@ -109,7 +111,6 @@ <translation id="1993768208584545658"><ph name="SITE" /> desea sincronizarse</translation> <translation id="1994173015038366702">URL del sitio</translation> <translation id="200815880754187296">Otras apps: <ph name="KILOBYTES" /> kilobytes</translation> -<translation id="2015632741368427174">Se bloqueó el redireccionamiento al siguiente sitio:</translation> <translation id="2017836877785168846">Borra el historial y las opciones de autocompletado en la barra de direcciones.</translation> <translation id="2021896219286479412">Controles en pantalla completa</translation> <translation id="2038563949887743358">Activar la opción para solicitar versión de escritorio</translation> @@ -181,7 +182,6 @@ <translation id="2650751991977523696">¿Deseas volver a descargar el archivo?</translation> <translation id="2653659639078652383">Enviar</translation> <translation id="2677748264148917807">Abandonar</translation> -<translation id="2693813674743028984">Ocultar almacenamiento</translation> <translation id="2704606927547763573">Copiado</translation> <translation id="2707726405694321444">Actualizar página</translation> <translation id="2709516037105925701">Autocompletar</translation> @@ -207,7 +207,6 @@ <translation id="2956410042958133412"><ph name="PARENT_NAME_1" /> y <ph name="PARENT_NAME_2" /> administran esta cuenta.</translation> <translation id="2960796085439532066">Copyright <ph name="YEAR" /> Google Inc. Todos los derechos reservados.</translation> <translation id="2962095958535813455">Se seleccionaron las pestañas en modo de navegación de incógnito</translation> -<translation id="2965945119655563012">Mostrar almacenamiento</translation> <translation id="2968755619301702150">Visualizador de certificados</translation> <translation id="2979025552038692506">Pestaña de incógnito seleccionada</translation> <translation id="2989523299700148168">Visitados recientemente</translation> @@ -525,7 +524,6 @@ <translation id="5817918615728894473">Sincronizar</translation> <translation id="583281660410589416">Desconocido</translation> <translation id="5833984609253377421">Compartir vínculo</translation> -<translation id="583891442612896534">Chrome no puede acceder a los servidores de Google para la compresión de datos. Es posible que el ahorro de datos esté reducido.</translation> <translation id="5854790677617711513">Hace más de 30 días</translation> <translation id="5858741533101922242">Chrome no puede activar el adaptador Bluetooth</translation> <translation id="5860033963881614850">Desactivado</translation> @@ -587,7 +585,6 @@ <translation id="6395288395575013217">VÍNCULO</translation> <translation id="6404511346730675251">Editar marcador</translation> <translation id="6406506848690869874">Sincronización</translation> -<translation id="6409731863280057959">Ventanas emergentes</translation> <translation id="641643625718530986">Imprimir…</translation> <translation id="6416782512398055893">Se descargaron <ph name="MBS" /> MB</translation> <translation id="6433501201775827830">Selecciona el motor de búsqueda</translation> @@ -647,6 +644,7 @@ <translation id="6910211073230771657">Eliminado</translation> <translation id="6912998170423641340">Impedir que los sitios lean el texto y las imágenes del portapapeles</translation> <translation id="6914783257214138813">Las personas que tengan acceso al archivo exportado podrán ver tus contraseñas.</translation> +<translation id="6942665639005891494">Cambia la ubicación predeterminada de las descargas en cualquier momento en la opción de menú de Configuración</translation> <translation id="6945221475159498467">Seleccionar</translation> <translation id="6963766334940102469">Borrar favoritos</translation> <translation id="6965382102122355670">Aceptar</translation> @@ -814,6 +812,7 @@ <translation id="8503813439785031346">Nombre de usuario</translation> <translation id="8514477925623180633">Exportar las contraseñas almacenadas con Chrome</translation> <translation id="8514577642972634246">Acceder al modo de navegación de incógnito</translation> +<translation id="851751545965956758">Impedir que los sitios se conecten a los dispositivos</translation> <translation id="8523928698583292556">Borrar contraseña almacenada</translation> <translation id="854522910157234410">Abrir esta página</translation> <translation id="8559990750235505898">Ofrecer la traducción de páginas en otros idiomas</translation> @@ -836,7 +835,6 @@ <translation id="8676374126336081632">Borrar entrada</translation> <translation id="8687353297350450808">{N_BARS,plural, =1{Nivel de potencia de la señal: # barra}other{Nivel de potencia de la señal: # barras}}</translation> <translation id="869891660844655955">Fecha de vencimiento</translation> -<translation id="8712637175834984815">Entendido</translation> <translation id="8719023831149562936">Esta pestaña no se puede transmitir.</translation> <translation id="8725066075913043281">Intentar nuevamente</translation> <translation id="8728487861892616501">Al usar esta app, aceptas las <ph name="BEGIN_LINK1" />Condiciones del servicio<ph name="END_LINK1" /> y el <ph name="BEGIN_LINK2" />Aviso de privacidad<ph name="END_LINK2" /> de Chrome, y el <ph name="BEGIN_LINK3" />Aviso de privacidad para las cuentas de Google administradas con Family Link<ph name="END_LINK3" />.</translation> @@ -846,7 +844,6 @@ <translation id="8812260976093120287">En algunos sitios web, puedes usar las apps compatibles que se enumeran anteriormente para hacer pagos en tu dispositivo.</translation> <translation id="8816439037877937734"><ph name="APP_NAME" /> se abrirá en Chrome. Al continuar, aceptas las <ph name="BEGIN_LINK1" />Condiciones del servicio<ph name="END_LINK1" /> y el <ph name="BEGIN_LINK2" />Aviso de privacidad<ph name="END_LINK2" /> de Chrome, y el <ph name="BEGIN_LINK3" />Aviso de privacidad para las cuentas de Google administradas con Family Link<ph name="END_LINK3" />.</translation> <translation id="8820817407110198400">Favoritos</translation> -<translation id="883635517171802338">Bloquear las ventanas emergentes en los sitios (recomendado)</translation> <translation id="883806473910249246">Se produjo un error al descargar el contenido.</translation> <translation id="8840953339110955557">Es posible que esta página sea diferente con respecto a la versión en línea.</translation> <translation id="8847988622838149491">USB</translation>
diff --git a/chrome/android/java/strings/translations/android_chrome_strings_es.xtb b/chrome/android/java/strings/translations/android_chrome_strings_es.xtb index b7fe8ec..90fba687 100644 --- a/chrome/android/java/strings/translations/android_chrome_strings_es.xtb +++ b/chrome/android/java/strings/translations/android_chrome_strings_es.xtb
@@ -111,7 +111,6 @@ <translation id="1993768208584545658"><ph name="SITE" /> quiere vincularse</translation> <translation id="1994173015038366702">URL del sitio</translation> <translation id="200815880754187296"><ph name="KILOBYTES" /> kB de otras aplicaciones</translation> -<translation id="2015632741368427174">Se ha bloqueado la redirección al sitio web:</translation> <translation id="2017836877785168846">Borra el historial y los autocompletados de la barra de direcciones.</translation> <translation id="2021896219286479412">Controles de pantalla completa</translation> <translation id="2038563949887743358">Activar opción para ver como ordenador</translation> @@ -183,7 +182,6 @@ <translation id="2650751991977523696">¿Quieres descargar el archivo de nuevo?</translation> <translation id="2653659639078652383">Enviar</translation> <translation id="2677748264148917807">Salir</translation> -<translation id="2693813674743028984">Ocultar almacenamiento</translation> <translation id="2704606927547763573">Copiado</translation> <translation id="2707726405694321444">Actualizar página</translation> <translation id="2709516037105925701">Autocompletar</translation> @@ -209,7 +207,6 @@ <translation id="2956410042958133412">Esta cuenta está administrada por <ph name="PARENT_NAME_1" /> y <ph name="PARENT_NAME_2" />.</translation> <translation id="2960796085439532066">Copyright <ph name="YEAR" /> Google Inc. Todos los derechos reservados.</translation> <translation id="2962095958535813455">Se ha cambiado a las pestañas de incógnito</translation> -<translation id="2965945119655563012">Mostrar almacenamiento</translation> <translation id="2968755619301702150">Visor de certificados</translation> <translation id="2979025552038692506">Pestaña de incógnito seleccionada</translation> <translation id="2989523299700148168">Visitados recientemente</translation> @@ -527,7 +524,6 @@ <translation id="5817918615728894473">Vincular</translation> <translation id="583281660410589416">Desconocido</translation> <translation id="5833984609253377421">Compartir enlace</translation> -<translation id="583891442612896534">Chrome no puede acceder a los servidores de Google para comprimir los datos. El ahorro de datos puede estar limitado.</translation> <translation id="5854790677617711513">Más de 30 días</translation> <translation id="5858741533101922242">Chrome no ha podido activar el adaptador Bluetooth</translation> <translation id="5860033963881614850">No</translation> @@ -589,7 +585,6 @@ <translation id="6395288395575013217">ENLACE</translation> <translation id="6404511346730675251">Editar marcador</translation> <translation id="6406506848690869874">Sincronización</translation> -<translation id="6409731863280057959">Ventanas emergentes</translation> <translation id="641643625718530986">Imprimir…</translation> <translation id="6416782512398055893">MB descargados: <ph name="MBS" /></translation> <translation id="6433501201775827830">Elegir tu motor de búsqueda</translation> @@ -840,7 +835,6 @@ <translation id="8676374126336081632">Borrar entrada</translation> <translation id="8687353297350450808">{N_BARS,plural, =1{Nivel de intensidad de la señal: # barra}other{Nivel de intensidad de la señal: # barras}}</translation> <translation id="869891660844655955">Fecha de caducidad</translation> -<translation id="8712637175834984815">Listo</translation> <translation id="8719023831149562936">No se puede compartir la pestaña actual.</translation> <translation id="8725066075913043281">Volver a intentarlo</translation> <translation id="8728487861892616501">Si utilizas esta aplicación, aceptas las <ph name="BEGIN_LINK1" />condiciones de servicio<ph name="END_LINK1" /> y el <ph name="BEGIN_LINK2" />aviso de privacidad<ph name="END_LINK2" /> de Chrome, así como el <ph name="BEGIN_LINK3" />aviso de privacidad para cuentas de Google gestionadas con Family Link<ph name="END_LINK3" />.</translation> @@ -850,7 +844,6 @@ <translation id="8812260976093120287">En algunos sitios web, puedes realizar pagos en tu dispositivo con las aplicaciones compatibles mencionadas anteriormente.</translation> <translation id="8816439037877937734"><ph name="APP_NAME" /> se abrirá en Chrome. Si continúas, aceptas las <ph name="BEGIN_LINK1" />condiciones de servicio<ph name="END_LINK1" /> y el <ph name="BEGIN_LINK2" />aviso de privacidad<ph name="END_LINK2" /> de Chrome, así como el <ph name="BEGIN_LINK3" />aviso de privacidad para cuentas de Google gestionadas con Family Link<ph name="END_LINK3" />.</translation> <translation id="8820817407110198400">Marcadores</translation> -<translation id="883635517171802338">Impedir que los sitios web muestren ventanas emergentes (recomendado)</translation> <translation id="883806473910249246">No se ha podido descargar el contenido.</translation> <translation id="8840953339110955557">Esta página puede ser distinta de la versión online.</translation> <translation id="8847988622838149491">USB</translation>
diff --git a/chrome/android/java/strings/translations/android_chrome_strings_fa.xtb b/chrome/android/java/strings/translations/android_chrome_strings_fa.xtb index 4651c02a..17e78f7 100644 --- a/chrome/android/java/strings/translations/android_chrome_strings_fa.xtb +++ b/chrome/android/java/strings/translations/android_chrome_strings_fa.xtb
@@ -111,7 +111,6 @@ <translation id="1993768208584545658"><ph name="SITE" /> میخواهد مرتبط شود</translation> <translation id="1994173015038366702">نشانی وب سایت</translation> <translation id="200815880754187296"><ph name="KILOBYTES" /> کیلوبایت توسط سایر برنامهها</translation> -<translation id="2015632741368427174">هدایت کردن بهسمت سایت مسدود شده است:</translation> <translation id="2017836877785168846">سابقه و تکمیل خودکار را در نوار نشانی پاک میکند.</translation> <translation id="2021896219286479412">کنترلهای سایت تمامصفحه</translation> <translation id="2038563949887743358">روشن کردن درخواست سایت رایانهای</translation> @@ -183,7 +182,6 @@ <translation id="2650751991977523696">فایل دوباره بارگیری شود؟</translation> <translation id="2653659639078652383">ارائه</translation> <translation id="2677748264148917807">خروج</translation> -<translation id="2693813674743028984">پنهان کردن فضای ذخیرهسازی</translation> <translation id="2704606927547763573">کپی شد</translation> <translation id="2707726405694321444">بازخوانی صفحه</translation> <translation id="2709516037105925701">تکمیل خودکار</translation> @@ -209,7 +207,6 @@ <translation id="2956410042958133412"><ph name="PARENT_NAME_1" /> و <ph name="PARENT_NAME_2" /> این حساب را مدیریت میکنند.</translation> <translation id="2960796085439532066">حق نسخهبرداری <ph name="YEAR" /> Google Inc.. کلیه حقوق محفوظ است.</translation> <translation id="2962095958535813455">به برگههای ناشناس تغییر یافت</translation> -<translation id="2965945119655563012">نشان دادن فضای ذخیرهسازی</translation> <translation id="2968755619301702150">بیننده گواهی</translation> <translation id="2979025552038692506">برگه ناشناس انتخابشده</translation> <translation id="2989523299700148168">اخیراً دیدهشده</translation> @@ -526,7 +523,6 @@ <translation id="5817918615728894473">مرتبطسازی</translation> <translation id="583281660410589416">ناشناس</translation> <translation id="5833984609253377421">اشتراکگذاری پیوند</translation> -<translation id="583891442612896534">Chrome نمیتواند برای فشرده کردن دادهها به سرورهای Google دسترسی پیدا کند. شاید ذخیره دادههایتان محدود باشد.</translation> <translation id="5854790677617711513">قدیمیتر از ۳۰ روز</translation> <translation id="5858741533101922242">Chrome قادر به روشن کردن آداپتور بلوتوث نیست</translation> <translation id="5860033963881614850">خاموش</translation> @@ -588,7 +584,6 @@ <translation id="6395288395575013217">پیوند</translation> <translation id="6404511346730675251">ویرایش نشانک</translation> <translation id="6406506848690869874">همگامسازی</translation> -<translation id="6409731863280057959">پنجرههای بازشو</translation> <translation id="641643625718530986">چاپ...</translation> <translation id="6416782512398055893"><ph name="MBS" /> مگابایت بارگیری شد</translation> <translation id="6433501201775827830">انتخاب موتور جستجو</translation> @@ -839,7 +834,6 @@ <translation id="8676374126336081632">پاک کردن ورودی</translation> <translation id="8687353297350450808">{N_BARS,plural, =1{سطح قدرت سیگنال: # نوار}one{سطح قدرت سیگنال: # نوار}other{سطح قدرت سیگنال: # نوار}}</translation> <translation id="869891660844655955">تاریخ انقضا</translation> -<translation id="8712637175834984815">متوجه شدم</translation> <translation id="8719023831149562936">انتقال برگه کنونی با پرتو ممکن نیست</translation> <translation id="8725066075913043281">سعی مجدد</translation> <translation id="8728487861892616501">درصورت استفاده از این برنامه، با <ph name="BEGIN_LINK1" />شرایط خدمات<ph name="END_LINK1" /> و <ph name="BEGIN_LINK2" />اعلان حریم خصوصی<ph name="END_LINK2" /> و <ph name="BEGIN_LINK3" />اعلان حریم خصوصی برای حسابهای Google مدیریتشده با Family Link<ph name="END_LINK3" /> مربوط به Chrome موافقت میکنید.</translation> @@ -849,7 +843,6 @@ <translation id="8812260976093120287">در بعضی از وبسایتها، میتوانید با برنامههای پرداخت پشتیبانیشده بالا در دستگاهتان پرداخت کنید.</translation> <translation id="8816439037877937734"><ph name="APP_NAME" /> در Chrome باز خواهد شد. درصورت ادامه دادن، با <ph name="BEGIN_LINK1" />شرایط خدمات<ph name="END_LINK1" /> و <ph name="BEGIN_LINK2" />اعلان حریم خصوصی<ph name="END_LINK2" /> Chrome و <ph name="BEGIN_LINK3" />اعلان حریم خصوصی برای حسابهای Google مدیریتشده با Family<ph name="END_LINK3" /> موافقت میکنید.</translation> <translation id="8820817407110198400">نشانکها</translation> -<translation id="883635517171802338">مسدود کردن نمایش پنجرههای بازشو در سایتها (توصیه میشود)</translation> <translation id="883806473910249246">هنگام بارگیری محتوا خطایی روی داد.</translation> <translation id="8840953339110955557">ممکن است این صفحه با نسخه آنلاین متفاوت باشد.</translation> <translation id="8847988622838149491">USB</translation>
diff --git a/chrome/android/java/strings/translations/android_chrome_strings_fi.xtb b/chrome/android/java/strings/translations/android_chrome_strings_fi.xtb index dc12af6..a85bf97 100644 --- a/chrome/android/java/strings/translations/android_chrome_strings_fi.xtb +++ b/chrome/android/java/strings/translations/android_chrome_strings_fi.xtb
@@ -111,7 +111,6 @@ <translation id="1993768208584545658"><ph name="SITE" /> haluaa muodostaa laiteparin</translation> <translation id="1994173015038366702">Sivuston URL-osoite</translation> <translation id="200815880754187296"><ph name="KILOBYTES" /> kt muita sovelluksia</translation> -<translation id="2015632741368427174">Uudelleenohjaus estetty sivustolle:</translation> <translation id="2017836877785168846">Tyhjentää historian ja osoitepalkin automaattiset täydennykset.</translation> <translation id="2021896219286479412">Ohjaimet koko näytön tilassa</translation> <translation id="2038563949887743358">Ota käyttöön Käytä tietokoneversiota</translation> @@ -183,7 +182,6 @@ <translation id="2650751991977523696">Ladataanko tiedosto uudelleen?</translation> <translation id="2653659639078652383">Lähetä</translation> <translation id="2677748264148917807">Poistu</translation> -<translation id="2693813674743028984">Piilota tallennustilan tiedot</translation> <translation id="2704606927547763573">Kopioitu</translation> <translation id="2707726405694321444">Päivitä sivu</translation> <translation id="2709516037105925701">Automaattinen täyttö</translation> @@ -209,7 +207,6 @@ <translation id="2956410042958133412">Tätä tiliä hallinnoivat <ph name="PARENT_NAME_1" /> ja <ph name="PARENT_NAME_2" />.</translation> <translation id="2960796085439532066">Copyright <ph name="YEAR" /> Google Inc. Kaikki oikeudet pidätetään.</translation> <translation id="2962095958535813455">Vaihdettiin näkyviin incognito-välilehdet.</translation> -<translation id="2965945119655563012">Näytä tallennustilan tiedot</translation> <translation id="2968755619301702150">Varmennetiedot</translation> <translation id="2979025552038692506">Valittu incognito-välilehti</translation> <translation id="2989523299700148168">Viimeksi käytetyt</translation> @@ -527,7 +524,6 @@ <translation id="5817918615728894473">Muodosta laitepari</translation> <translation id="583281660410589416">Tuntematon</translation> <translation id="5833984609253377421">Jaa linkki</translation> -<translation id="583891442612896534">Chrome ei saa yhteyttä Googlen palvelimiin tietojen pakkausta varten. Tietojen tallentaminen voi olla rajoitettua.</translation> <translation id="5854790677617711513">Yli 30 päivää vanhat</translation> <translation id="5858741533101922242">Chrome ei voi ottaa käyttöön Bluetooth-sovitinta.</translation> <translation id="5860033963881614850">Pois käytöstä</translation> @@ -589,7 +585,6 @@ <translation id="6395288395575013217">LINKITÄ</translation> <translation id="6404511346730675251">Muokkaa kirjanmerkkiä</translation> <translation id="6406506848690869874">Synkronointi</translation> -<translation id="6409731863280057959">Ponnahdusikkunat</translation> <translation id="641643625718530986">Tulosta…</translation> <translation id="6416782512398055893">Ladattu: <ph name="MBS" /> Mt</translation> <translation id="6433501201775827830">Valitse hakukone</translation> @@ -840,7 +835,6 @@ <translation id="8676374126336081632">Tyhjennä teksti</translation> <translation id="8687353297350450808">{N_BARS,plural, =1{Signaalin voimakkuus: # palkki}other{Signaalin voimakkuus: # palkkia}}</translation> <translation id="869891660844655955">Vanhenemispäivämäärä</translation> -<translation id="8712637175834984815">Ymmärretty</translation> <translation id="8719023831149562936">Nykyistä välilehteä ei voi jakaa</translation> <translation id="8725066075913043281">Yritä uudelleen</translation> <translation id="8728487861892616501">Käyttämällä tätä sovellusta hyväksyt Chromen <ph name="BEGIN_LINK1" />käyttöehdot<ph name="END_LINK1" /> ja <ph name="BEGIN_LINK2" />tietosuojailmoituksen<ph name="END_LINK2" /> sekä <ph name="BEGIN_LINK3" />Family Linkin kautta hallittavia Google-tilejä koskevan tietosuojailmoituksen<ph name="END_LINK3" />.</translation> @@ -850,7 +844,6 @@ <translation id="8812260976093120287">Tietyt sivustot tukevat yllä mainittuja laitteesi yhteensopivia maksusovelluksia.</translation> <translation id="8816439037877937734"><ph name="APP_NAME" /> avautuu Chromessa. Jatkamalla hyväksyt Chromen <ph name="BEGIN_LINK1" />käyttöehdot<ph name="END_LINK1" /> ja <ph name="BEGIN_LINK2" />tietosuojailmoituksen<ph name="END_LINK2" /> sekä <ph name="BEGIN_LINK3" />Family Linkin kautta hallittavia Google-tilejä koskevan tietosuojailmoituksen<ph name="END_LINK3" />.</translation> <translation id="8820817407110198400">Kirjanmerkit</translation> -<translation id="883635517171802338">Estä ponnahdusikkunoiden näyttäminen sivustoilla (suositus).</translation> <translation id="883806473910249246">Sisältöä ladattaessa tapahtui virhe.</translation> <translation id="8840953339110955557">Tämä sivu saattaa poiketa verkossa olevasta versiosta.</translation> <translation id="8847988622838149491">USB</translation>
diff --git a/chrome/android/java/strings/translations/android_chrome_strings_fil.xtb b/chrome/android/java/strings/translations/android_chrome_strings_fil.xtb index 8741d8d..f0a2481 100644 --- a/chrome/android/java/strings/translations/android_chrome_strings_fil.xtb +++ b/chrome/android/java/strings/translations/android_chrome_strings_fil.xtb
@@ -111,7 +111,6 @@ <translation id="1993768208584545658">Gustong makipagpares ng <ph name="SITE" /></translation> <translation id="1994173015038366702">URL ng site</translation> <translation id="200815880754187296"><ph name="KILOBYTES" /> KB na iba pang mga app</translation> -<translation id="2015632741368427174">Nag-block ng pag-redirect sa site:</translation> <translation id="2017836877785168846">Kini-clear ang history at mga awtomatikong pagkumpleto sa address bar.</translation> <translation id="2021896219286479412">Control ng full screen sa site</translation> <translation id="2038563949887743358">I-on ang Hilingin ang site sa desktop</translation> @@ -183,7 +182,6 @@ <translation id="2650751991977523696">I-download muli ang file?</translation> <translation id="2653659639078652383">Isumite</translation> <translation id="2677748264148917807">Umalis</translation> -<translation id="2693813674743028984">Itago ang storage</translation> <translation id="2704606927547763573">Kinopya</translation> <translation id="2707726405694321444">I-refresh ang page</translation> <translation id="2709516037105925701">AutoFill</translation> @@ -209,7 +207,6 @@ <translation id="2956410042958133412">Pinapamahalaan ang account na ito ng <ph name="PARENT_NAME_1" /> at <ph name="PARENT_NAME_2" />.</translation> <translation id="2960796085439532066">Copyright <ph name="YEAR" /> Google Inc. Nakalaan ang lahat ng karapatan.</translation> <translation id="2962095958535813455">Lumipat sa mga tab na incognito</translation> -<translation id="2965945119655563012">Ipakita ang storage</translation> <translation id="2968755619301702150">Viewer ng certificate</translation> <translation id="2979025552038692506">Napiling Tab na Incognito</translation> <translation id="2989523299700148168">Mga kamakailang binisita</translation> @@ -527,7 +524,6 @@ <translation id="5817918615728894473">Ipares</translation> <translation id="583281660410589416">Hindi-alam</translation> <translation id="5833984609253377421">Ibahagi ang link</translation> -<translation id="583891442612896534">Hindi magawa ng Chrome na makipag-ugnayan sa mga server ng Google para sa pag-compress ng data. Maaaring limitado lang ang matipid mo sa data.</translation> <translation id="5854790677617711513">Mas matagal sa 30 araw</translation> <translation id="5858741533101922242">Hindi ma-on ng Chrome ang Bluetooth adapter</translation> <translation id="5860033963881614850">Naka-off</translation> @@ -589,7 +585,6 @@ <translation id="6395288395575013217">LINK</translation> <translation id="6404511346730675251">I-edit ang bookmark</translation> <translation id="6406506848690869874">Pag-sync</translation> -<translation id="6409731863280057959">Mga Pop-up</translation> <translation id="641643625718530986">I-print…</translation> <translation id="6416782512398055893"><ph name="MBS" /> MB ang na-download</translation> <translation id="6433501201775827830">Pumili ng iyong search engine</translation> @@ -840,7 +835,6 @@ <translation id="8676374126336081632">I-clear ang input</translation> <translation id="8687353297350450808">{N_BARS,plural, =1{Antas ng Lakas ng Signal: # bar}one{Antas ng Lakas ng Signal: # bar}other{Antas ng Lakas ng Signal: # na bar}}</translation> <translation id="869891660844655955">Expiration date</translation> -<translation id="8712637175834984815">Nakuha ko</translation> <translation id="8719023831149562936">Hindi ma-beam ang kasalukuyang tab</translation> <translation id="8725066075913043281">Muling subukan</translation> <translation id="8728487861892616501">Kapag ginamit ang application na ito, nangangahulugan ito na sumasang-ayon ka sa <ph name="BEGIN_LINK1" />Mga Tuntunin ng Serbisyo <ph name="END_LINK1" /> at <ph name="BEGIN_LINK2" />Notification ng Privacy<ph name="END_LINK2" /> ng Chrome, at sa <ph name="BEGIN_LINK3" />Notification ng Privacy para sa Mga Google Account na Pinamamahalaan gamit ang Family Link<ph name="END_LINK3" />.</translation> @@ -850,7 +844,6 @@ <translation id="8812260976093120287">Sa ilang website, maaari kang magbayad sa iyong device gamit ang mga sinusuportahang app sa pagbabayad sa itaas.</translation> <translation id="8816439037877937734">Bubukas ang <ph name="APP_NAME" /> sa Chrome. Sa pamamagitan ng pagpapatuloy, sumasang-ayon ka sa <ph name="BEGIN_LINK1" />Mga Tuntunin ng Serbisyo<ph name="END_LINK1" /> at <ph name="BEGIN_LINK2" />Notification ng Privacy<ph name="END_LINK2" /> ng Chrome, at sa <ph name="BEGIN_LINK3" />Notification ng Privacy para sa Mga Google Account na Pinamamahalaan gamit ang Family Link<ph name="END_LINK3" />.</translation> <translation id="8820817407110198400">Mga Bookmark</translation> -<translation id="883635517171802338">I-block ang mga site sa pagpapakita ng mga pop-up (inirerekomenda)</translation> <translation id="883806473910249246">Nagka-error habang dina-download ang content.</translation> <translation id="8840953339110955557">Maaaring iba ang page na ito sa online na bersyon.</translation> <translation id="8847988622838149491">USB</translation>
diff --git a/chrome/android/java/strings/translations/android_chrome_strings_fr.xtb b/chrome/android/java/strings/translations/android_chrome_strings_fr.xtb index f1704ee..5245ec7 100644 --- a/chrome/android/java/strings/translations/android_chrome_strings_fr.xtb +++ b/chrome/android/java/strings/translations/android_chrome_strings_fr.xtb
@@ -111,7 +111,6 @@ <translation id="1993768208584545658"><ph name="SITE" /> tente de s'associer</translation> <translation id="1994173015038366702">URL du site</translation> <translation id="200815880754187296"><ph name="KILOBYTES" /> Ko par d'autres applis</translation> -<translation id="2015632741368427174">Redirection bloquée pour le site suivant :</translation> <translation id="2017836877785168846">Efface l'historique et les saisies semi-automatiques dans la barre d'adresse.</translation> <translation id="2021896219286479412">Commandes du site en plein écran</translation> <translation id="2038563949887743358">Activer "Voir version ordinateur"</translation> @@ -183,7 +182,6 @@ <translation id="2650751991977523696">Télécharger de nouveau le fichier ?</translation> <translation id="2653659639078652383">Valider</translation> <translation id="2677748264148917807">Quitter</translation> -<translation id="2693813674743028984">Masquer les informations de stockage</translation> <translation id="2704606927547763573">Copié</translation> <translation id="2707726405694321444">Actualiser la page</translation> <translation id="2709516037105925701">Saisie automatique</translation> @@ -209,7 +207,6 @@ <translation id="2956410042958133412">Ce compte est géré par <ph name="PARENT_NAME_1" /> et <ph name="PARENT_NAME_2" />.</translation> <translation id="2960796085439532066">Copyright Google Inc. <ph name="YEAR" />. Tous droits réservés.</translation> <translation id="2962095958535813455">Onglets de navigation privée sélectionnés</translation> -<translation id="2965945119655563012">Afficher les informations de stockage</translation> <translation id="2968755619301702150">Lecteur de certificat</translation> <translation id="2979025552038692506">Onglet de navigation privée sélectionné</translation> <translation id="2989523299700148168">Consultations récentes</translation> @@ -527,7 +524,6 @@ <translation id="5817918615728894473">Associer</translation> <translation id="583281660410589416">Inconnu</translation> <translation id="5833984609253377421">Partager le lien</translation> -<translation id="583891442612896534">Impossible de se connecter aux serveurs de Google dans Chrome pour la compression de données. Les sauvegardes de données peuvent être limitées.</translation> <translation id="5854790677617711513">Datant de plus de 30 jours</translation> <translation id="5858741533101922242">Impossible d'activer l'adaptateur Bluetooth dans Chrome</translation> <translation id="5860033963881614850">Désactivé</translation> @@ -589,7 +585,6 @@ <translation id="6395288395575013217">LIEN</translation> <translation id="6404511346730675251">Modifier le favori</translation> <translation id="6406506848690869874">Synchronisation</translation> -<translation id="6409731863280057959">Fenêtres pop-up</translation> <translation id="641643625718530986">Imprimer…</translation> <translation id="6416782512398055893"><ph name="MBS" /> Mo téléchargé(s)</translation> <translation id="6433501201775827830">Sélectionner votre moteur de recherche</translation> @@ -840,7 +835,6 @@ <translation id="8676374126336081632">Effacer la saisie</translation> <translation id="8687353297350450808">{N_BARS,plural, =1{Intensité du signal : # barre}one{Intensité du signal : # barre}other{Intensité du signal : # barres}}</translation> <translation id="869891660844655955">Date d'expiration</translation> -<translation id="8712637175834984815">OK</translation> <translation id="8719023831149562936">Impossible de partager l'onglet actuel.</translation> <translation id="8725066075913043281">Réessayer</translation> <translation id="8728487861892616501">En utilisant cette application, vous acceptez les <ph name="BEGIN_LINK1" />Conditions d'utilisation<ph name="END_LINK1" /> et l'<ph name="BEGIN_LINK2" />Avis de confidentialité<ph name="END_LINK2" /> de Chrome, ainsi que l'<ph name="BEGIN_LINK3" />Avis de confidentialité relatif aux comptes Google gérés dans Family Link<ph name="END_LINK3" />.</translation> @@ -850,7 +844,6 @@ <translation id="8812260976093120287">Sur certains sites Web, vous pouvez payer depuis votre appareil avec les applications de paiement compatibles indiquées ci-dessus.</translation> <translation id="8816439037877937734"><ph name="APP_NAME" /> va s'ouvrir dans Chrome. En continuant, vous acceptez les <ph name="BEGIN_LINK1" />Conditions d'utilisation<ph name="END_LINK1" /> et l'<ph name="BEGIN_LINK2" />Avis de confidentialité<ph name="END_LINK2" /> de Chrome, ainsi que l'<ph name="BEGIN_LINK3" />Avis de confidentialité relatif aux comptes Google gérés dans Family Link<ph name="END_LINK3" />.</translation> <translation id="8820817407110198400">Favoris</translation> -<translation id="883635517171802338">Bloquer l'affichage de fenêtres pop-up par les sites (recommandé)</translation> <translation id="883806473910249246">Une erreur s'est produite lors du téléchargement du contenu.</translation> <translation id="8840953339110955557">Cette page peut différer de la version en ligne.</translation> <translation id="8847988622838149491">USB</translation>
diff --git a/chrome/android/java/strings/translations/android_chrome_strings_hi.xtb b/chrome/android/java/strings/translations/android_chrome_strings_hi.xtb index b5c12df..eb56b71 100644 --- a/chrome/android/java/strings/translations/android_chrome_strings_hi.xtb +++ b/chrome/android/java/strings/translations/android_chrome_strings_hi.xtb
@@ -109,7 +109,6 @@ <translation id="1993768208584545658"><ph name="SITE" /> युग्मित करना चाहता है</translation> <translation id="1994173015038366702">साइट URL</translation> <translation id="200815880754187296"><ph name="KILOBYTES" /> KB अन्य ऐप्लिकेशन</translation> -<translation id="2015632741368427174">इस साइट पर रीडायरेक्ट ब्लॉक किया गया है:</translation> <translation id="2017836877785168846">इतिहास साफ़ करता है और पता बार में स्वत: पूर्णता को साफ़ करता है.</translation> <translation id="2021896219286479412">पूरी स्क्रीन के साइट नियंत्रण</translation> <translation id="2038563949887743358">अनुरोध डेस्कटॉप साइट चालू करें</translation> @@ -181,7 +180,6 @@ <translation id="2650751991977523696">फ़ाइल दोबारा डाउनलोड करें?</translation> <translation id="2653659639078652383">सबमिट करें</translation> <translation id="2677748264148917807">छोड़ें</translation> -<translation id="2693813674743028984">मेमोरी छिपाएं</translation> <translation id="2704606927547763573">कॉपी किया गया</translation> <translation id="2707726405694321444">पेज रीफ्रेश करें</translation> <translation id="2709516037105925701">ऑटोमैटिक भरना</translation> @@ -207,7 +205,6 @@ <translation id="2956410042958133412">यह खाता <ph name="PARENT_NAME_1" /> और <ph name="PARENT_NAME_2" /> के द्वारा प्रबंधित है.</translation> <translation id="2960796085439532066">कॉपीराइट <ph name="YEAR" /> Google Inc. सर्वाधिकार सुरक्षित.</translation> <translation id="2962095958535813455">गुप्त टैब पर स्विच कर दिया गया</translation> -<translation id="2965945119655563012">मेमोरी दिखाएं</translation> <translation id="2968755619301702150">प्रमाणपत्र व्यूअर</translation> <translation id="2979025552038692506">चयनित गुप्त टैब</translation> <translation id="2989523299700148168">हाल ही में देखे गए</translation> @@ -525,7 +522,6 @@ <translation id="5817918615728894473">युग्मित करें</translation> <translation id="583281660410589416">अज्ञात</translation> <translation id="5833984609253377421">लिंक साझा करें</translation> -<translation id="583891442612896534">Chrome डेटा संपीड़न के लिए Google के सर्वर तक नहीं पहुंच पा रहा है. आपकी डेटा की बचत सीमित हो सकती हैं.</translation> <translation id="5854790677617711513">30 दिनों से ज़्यादा पुराना</translation> <translation id="5858741533101922242">Chrome, ब्लूटूथ एडाप्टर को चालू नहीं कर सका</translation> <translation id="5860033963881614850">बंद</translation> @@ -587,7 +583,6 @@ <translation id="6395288395575013217">लिंक</translation> <translation id="6404511346730675251">बुकमार्क संपादित करें</translation> <translation id="6406506848690869874">समन्वय</translation> -<translation id="6409731863280057959">पॉप-अप</translation> <translation id="641643625718530986">प्रिंट करें…</translation> <translation id="6416782512398055893"><ph name="MBS" /> एमबी डाउनलोड किया गया</translation> <translation id="6433501201775827830">अपना खोज इंजन चुनें</translation> @@ -836,7 +831,6 @@ <translation id="8676374126336081632">इनपुट साफ़ करें</translation> <translation id="8687353297350450808">{N_BARS,plural, =1{सिग्नल सशक्तता का स्तर: # बार}one{सिग्नल सशक्तता का स्तर: # बार}other{सिग्नल सशक्तता का स्तर: # बार}}</translation> <translation id="869891660844655955">समय समाप्ति दिनांक</translation> -<translation id="8712637175834984815">समझ लिया</translation> <translation id="8719023831149562936">वर्तमान टैब को बीम नहीं किया जा सकता</translation> <translation id="8725066075913043281">पुन: प्रयास करें</translation> <translation id="8728487861892616501">इस ऐप्लिकेशन का उपयोग करके, आप Chrome की <ph name="BEGIN_LINK1" />सेवा की शर्तों<ph name="END_LINK1" /> और <ph name="BEGIN_LINK2" />निजता सूचना<ph name="END_LINK2" /> और <ph name="BEGIN_LINK3" />Family Link से प्रबंधित होने वाले Google खातों के लिए निजता सूचना<ph name="END_LINK3" /> से सहमत होते हैं.</translation> @@ -846,7 +840,6 @@ <translation id="8812260976093120287">कुछ वेबसाइटों पर, आप ऊपर समर्थित भुगतान ऐप्लिकेशन के ज़रिए अपने डिवाइस पर भुगतान कर सकते हैं.</translation> <translation id="8816439037877937734"><ph name="APP_NAME" /> Chrome में खुलेगा. जारी रखकर, आप Chrome की <ph name="BEGIN_LINK1" />सेवा की शर्तों<ph name="END_LINK1" /> और <ph name="BEGIN_LINK2" />निजता सूचना<ph name="END_LINK2" /> और <ph name="BEGIN_LINK3" />Family Link से प्रबंधित होने वाले Google खातों के लिए निजता सूचना<ph name="END_LINK3" /> से सहमत होते हैं.</translation> <translation id="8820817407110198400">बुकमार्क</translation> -<translation id="883635517171802338">साइट को पॉप-अप दिखाने से अवरुद्ध करें (अनुशंसित)</translation> <translation id="883806473910249246">सामग्री डाउनलोड करते समय कोई गड़बड़ी हुई.</translation> <translation id="8840953339110955557">यह पेज ऑनलाइन वर्शन से अलग हो सकता है.</translation> <translation id="8847988622838149491">USB</translation>
diff --git a/chrome/android/java/strings/translations/android_chrome_strings_hr.xtb b/chrome/android/java/strings/translations/android_chrome_strings_hr.xtb index 1cfcd4b3..3833c104 100644 --- a/chrome/android/java/strings/translations/android_chrome_strings_hr.xtb +++ b/chrome/android/java/strings/translations/android_chrome_strings_hr.xtb
@@ -111,7 +111,6 @@ <translation id="1993768208584545658">Web-lokacija <ph name="SITE" /> želi se upariti</translation> <translation id="1994173015038366702">URL web-lokacije</translation> <translation id="200815880754187296"><ph name="KILOBYTES" /> KB ostale aplikacije</translation> -<translation id="2015632741368427174">Preusmjeravanje blokirano na web-lokaciji:</translation> <translation id="2017836877785168846">Briše povijest i automatsko dovršavanje u adresnoj traci.</translation> <translation id="2021896219286479412">Kontrole web-lokacije na cijelom zaslonu</translation> <translation id="2038563949887743358">Uključivanje zahtjeva za prikaz klasične web-lokacije</translation> @@ -183,7 +182,6 @@ <translation id="2650751991977523696">Želite li ponovo preuzeti datoteku?</translation> <translation id="2653659639078652383">Pošalji</translation> <translation id="2677748264148917807">Napusti</translation> -<translation id="2693813674743028984">Sakrij pohranu</translation> <translation id="2704606927547763573">Kopirano</translation> <translation id="2707726405694321444">Osvježavanje stranice</translation> <translation id="2709516037105925701">Automatsko popunjavanje</translation> @@ -209,7 +207,6 @@ <translation id="2956410042958133412">Računom upravljaju <ph name="PARENT_NAME_1" /> i <ph name="PARENT_NAME_2" />.</translation> <translation id="2960796085439532066">Autorska prava <ph name="YEAR" />. Google Inc. Sva prava pridržana.</translation> <translation id="2962095958535813455">Prešli ste na anonimne kartice</translation> -<translation id="2965945119655563012">Prikaži pohranu</translation> <translation id="2968755619301702150">Preglednik certifikata</translation> <translation id="2979025552038692506">Odabrana anonimna kartica</translation> <translation id="2989523299700148168">Nedavno posjećeno</translation> @@ -527,7 +524,6 @@ <translation id="5817918615728894473">Upari</translation> <translation id="583281660410589416">Nepoznato</translation> <translation id="5833984609253377421">Dijeli vezu</translation> -<translation id="583891442612896534">Chrome ne može pristupiti Googleovim poslužiteljima za kompresiju podataka. Ušteda na prijenosu podataka može biti ograničena.</translation> <translation id="5854790677617711513">Starije od 30 dana</translation> <translation id="5858741533101922242">Chrome ne može uključiti Bluetooth adapter</translation> <translation id="5860033963881614850">Isključeno</translation> @@ -589,7 +585,6 @@ <translation id="6395288395575013217">VEZA</translation> <translation id="6404511346730675251">Uredi oznaku</translation> <translation id="6406506848690869874">Sinkronizacija</translation> -<translation id="6409731863280057959">Skočni prozori</translation> <translation id="641643625718530986">Ispis…</translation> <translation id="6416782512398055893">Preuzeto <ph name="MBS" /> MB</translation> <translation id="6433501201775827830">Odaberite tražilicu</translation> @@ -840,7 +835,6 @@ <translation id="8676374126336081632">Brisanje unosa</translation> <translation id="8687353297350450808">{N_BARS,plural, =1{Jačina signala: # crtica}one{Jačina signala: # crtica}few{Jačina signala: # crtice}other{Jačina signala: # crtica}}</translation> <translation id="869891660844655955">Datum isteka</translation> -<translation id="8712637175834984815">Shvaćam</translation> <translation id="8719023831149562936">Trenutačnu karticu nije moguće emitirati</translation> <translation id="8725066075913043281">Pokušajte ponovo</translation> <translation id="8728487861892616501">Upotrebom ove aplikacije prihvaćate Chromeove <ph name="BEGIN_LINK1" />uvjete pružanja usluge<ph name="END_LINK1" /> i <ph name="BEGIN_LINK2" />obavijest o privatnosti<ph name="END_LINK2" /> te <ph name="BEGIN_LINK3" />obavijest o privatnosti za Google račune kojima se upravlja putem Family Linka<ph name="END_LINK3" />.</translation> @@ -850,7 +844,6 @@ <translation id="8812260976093120287">Na nekim web-lokacijama možete plaćati pomoću podržanih aplikacija za plaćanje na uređaju.</translation> <translation id="8816439037877937734">Aplikacija <ph name="APP_NAME" /> otvorit će se u Chromeu. Nastavljanjem prihvaćate Chromeove <ph name="BEGIN_LINK1" />Uvjete pružanja usluge<ph name="END_LINK1" /> i <ph name="BEGIN_LINK2" />Obavijest o privatnosti<ph name="END_LINK2" />, kao i <ph name="BEGIN_LINK3" />Obavijest o privatnosti za Google račune kojima se upravlja putem Family Linka<ph name="END_LINK3" />.</translation> <translation id="8820817407110198400">Knjižne oznake</translation> -<translation id="883635517171802338">Web-lokacijama nije dopušteno prikazivanje skočnih prozora (preporučeno)</translation> <translation id="883806473910249246">Prilikom preuzimanja sadržaja dogodila se pogreška.</translation> <translation id="8840953339110955557">Ta se stranica možda razlikuje od online verzije.</translation> <translation id="8847988622838149491">USB</translation>
diff --git a/chrome/android/java/strings/translations/android_chrome_strings_hu.xtb b/chrome/android/java/strings/translations/android_chrome_strings_hu.xtb index 3e29beb..e56d347 100644 --- a/chrome/android/java/strings/translations/android_chrome_strings_hu.xtb +++ b/chrome/android/java/strings/translations/android_chrome_strings_hu.xtb
@@ -111,7 +111,6 @@ <translation id="1993768208584545658">A(z) <ph name="SITE" /> párosítást szeretne végrehajtani</translation> <translation id="1994173015038366702">Webhely URL-je</translation> <translation id="200815880754187296"><ph name="KILOBYTES" /> KB más alkalmazások által</translation> -<translation id="2015632741368427174">Átirányítás letiltva ennél a webhelynél:</translation> <translation id="2017836877785168846">Törli a címsávban található előzményeket és automatikus kiegészítéseket.</translation> <translation id="2021896219286479412">Teljes képernyős oldal vezérlői</translation> <translation id="2038563949887743358">Kapcsolja be az Asztali webhely kérése funkciót</translation> @@ -183,7 +182,6 @@ <translation id="2650751991977523696">Letölti újra a fájlt?</translation> <translation id="2653659639078652383">Elküldés</translation> <translation id="2677748264148917807">Lap elhagyása</translation> -<translation id="2693813674743028984">Tárhely elrejtése</translation> <translation id="2704606927547763573">Másolt</translation> <translation id="2707726405694321444">Oldal frissítése</translation> <translation id="2709516037105925701">Automatikus kitöltés</translation> @@ -209,7 +207,6 @@ <translation id="2956410042958133412">A fiók kezelői: <ph name="PARENT_NAME_1" /> és <ph name="PARENT_NAME_2" />.</translation> <translation id="2960796085439532066">Copyright <ph name="YEAR" /> Google Inc. Minden jog fenntartva.</translation> <translation id="2962095958535813455">Átváltva az inkognitómódban használt lapokra</translation> -<translation id="2965945119655563012">Tárhely megjelenítése</translation> <translation id="2968755619301702150">Tanúsítványmegtekintő</translation> <translation id="2979025552038692506">Kiválasztott inkognitólap</translation> <translation id="2989523299700148168">Legutóbb látogatott</translation> @@ -527,7 +524,6 @@ <translation id="5817918615728894473">Párosítás</translation> <translation id="583281660410589416">Ismeretlen</translation> <translation id="5833984609253377421">Link megosztása</translation> -<translation id="583891442612896534">A Chrome nem tudja elérni a Google szervereit az adatok tömörítése céljából. Az adatforgalmi megtakarítás korlátozva lehet.</translation> <translation id="5854790677617711513">30 napnál régebbi</translation> <translation id="5858741533101922242">A Chrome nem tudja bekapcsolni a Bluetooth-adaptert</translation> <translation id="5860033963881614850">Kikapcsolva</translation> @@ -589,7 +585,6 @@ <translation id="6395288395575013217">LINK</translation> <translation id="6404511346730675251">Könyvjelző szerkesztése</translation> <translation id="6406506848690869874">Szinkronizálás</translation> -<translation id="6409731863280057959">Előugró ablakok</translation> <translation id="641643625718530986">Nyomtatás…</translation> <translation id="6416782512398055893"><ph name="MBS" /> MB letöltve</translation> <translation id="6433501201775827830">Keresőmotor kiválasztása</translation> @@ -840,7 +835,6 @@ <translation id="8676374126336081632">Beírt szöveg törlése</translation> <translation id="8687353297350450808">{N_BARS,plural, =1{Jelerősség szintje: # sáv}other{Jelerősség szintje: # sáv}}</translation> <translation id="869891660844655955">Lejárati dátum</translation> -<translation id="8712637175834984815">Sikerült</translation> <translation id="8719023831149562936">Nem lehet átsugározni a jelenlegi lapot</translation> <translation id="8725066075913043281">Újrapróbálás</translation> <translation id="8728487861892616501">Az alkalmazás használatával elfogadja a Chrome <ph name="BEGIN_LINK1" />általános szerződési feltételeit<ph name="END_LINK1" /> és <ph name="BEGIN_LINK2" />adatvédelmi közleményét<ph name="END_LINK2" />, valamint <ph name="BEGIN_LINK3" />a Family Link szolgáltatással kezelt Google-fiókokra vonatkozó adatvédelmi közleményt<ph name="END_LINK3" />.</translation> @@ -850,7 +844,6 @@ <translation id="8812260976093120287">Bizonyos webhelyeken fizethet eszközén a fenti támogatott fizetési alkalmazásokkal.</translation> <translation id="8816439037877937734">A(z) <ph name="APP_NAME" /> a Chrome-ban nyílik meg. A folytatással elfogadja a Chrome <ph name="BEGIN_LINK1" />Általános Szerződési Feltételeit<ph name="END_LINK1" /> és <ph name="BEGIN_LINK2" />Adatvédelmi közleményét<ph name="END_LINK2" />, valamint <ph name="BEGIN_LINK3" />A Family Link szolgáltatással kezelt Google-fiókokra vonatkozó Adatvédelmi közleményt<ph name="END_LINK3" />.</translation> <translation id="8820817407110198400">Könyvjelzők</translation> -<translation id="883635517171802338">Előugró ablakok megjelenítésének letiltása a webhelyeken (ajánlott)</translation> <translation id="883806473910249246">Hiba történt a tartalom letöltésekor.</translation> <translation id="8840953339110955557">Az oldal eltérhet az online változattól.</translation> <translation id="8847988622838149491">USB</translation>
diff --git a/chrome/android/java/strings/translations/android_chrome_strings_id.xtb b/chrome/android/java/strings/translations/android_chrome_strings_id.xtb index de8e58d..4c7a39b 100644 --- a/chrome/android/java/strings/translations/android_chrome_strings_id.xtb +++ b/chrome/android/java/strings/translations/android_chrome_strings_id.xtb
@@ -111,7 +111,6 @@ <translation id="1993768208584545658"><ph name="SITE" /> ingin menyandingkan</translation> <translation id="1994173015038366702">URL situs</translation> <translation id="200815880754187296"><ph name="KILOBYTES" /> KB aplikasi lain</translation> -<translation id="2015632741368427174">Pengalihan ke situs di bawah ini diblokir:</translation> <translation id="2017836877785168846">Hapus histori dan pelengkapan otomatis di kolom URL.</translation> <translation id="2021896219286479412">Kontrol situs layar penuh</translation> <translation id="2038563949887743358">Aktifkan Ubah situs desktop</translation> @@ -183,7 +182,6 @@ <translation id="2650751991977523696">Download file lagi?</translation> <translation id="2653659639078652383">Kirim</translation> <translation id="2677748264148917807">Keluar</translation> -<translation id="2693813674743028984">Sembunyikan penyimpanan</translation> <translation id="2704606927547763573">Disalin</translation> <translation id="2707726405694321444">Segarkan halaman</translation> <translation id="2709516037105925701">Isi-Otomatis</translation> @@ -209,7 +207,6 @@ <translation id="2956410042958133412">Akun ini dikelola oleh <ph name="PARENT_NAME_1" /> dan <ph name="PARENT_NAME_2" />.</translation> <translation id="2960796085439532066">Hak cipta <ph name="YEAR" /> Google Inc. Semua hak dilindungi undang-undang.</translation> <translation id="2962095958535813455">Beralih ke tab penyamaran</translation> -<translation id="2965945119655563012">Tampilkan penyimpanan</translation> <translation id="2968755619301702150">Penampil sertifikat</translation> <translation id="2979025552038692506">Tab Penyamaran yang Dipilih</translation> <translation id="2989523299700148168">Baru saja dikunjungi</translation> @@ -527,7 +524,6 @@ <translation id="5817918615728894473">Sandingkan</translation> <translation id="583281660410589416">Tidak dikenal</translation> <translation id="5833984609253377421">Bagikan link</translation> -<translation id="583891442612896534">Chrome tidak dapat menjangkau server Google untuk mengompresi data. Penyimpanan data Anda mungkin dibatasi.</translation> <translation id="5854790677617711513">Lebih dari 30 hari</translation> <translation id="5858741533101922242">Chrome tidak dapat mengaktifkan adaptor Bluetooth</translation> <translation id="5860033963881614850">Nonaktif</translation> @@ -589,7 +585,6 @@ <translation id="6395288395575013217">LINK</translation> <translation id="6404511346730675251">Edit bookmark</translation> <translation id="6406506848690869874">Sinkronisasi</translation> -<translation id="6409731863280057959">Pop-up</translation> <translation id="641643625718530986">Cetak...</translation> <translation id="6416782512398055893">Terdownload <ph name="MBS" /> MB</translation> <translation id="6433501201775827830">Pilih mesin telusur Anda</translation> @@ -840,7 +835,6 @@ <translation id="8676374126336081632">Hapus masukan</translation> <translation id="8687353297350450808">{N_BARS,plural, =1{Tingkat Kekuatan Sinyal: # batang}other{Tingkat Kekuatan Sinyal: # batang}}</translation> <translation id="869891660844655955">Masa berlaku</translation> -<translation id="8712637175834984815">Mengerti</translation> <translation id="8719023831149562936">Tidak dapat memancarkan tab ini</translation> <translation id="8725066075913043281">Coba lagi</translation> <translation id="8728487861892616501">Dengan menggunakan aplikasi ini, Anda menyetujui <ph name="BEGIN_LINK1" />Persyaratan Layanan<ph name="END_LINK1" /> dan <ph name="BEGIN_LINK2" />Pemberitahuan Privasi<ph name="END_LINK2" /> Chrome, serta <ph name="BEGIN_LINK3" />Pemberitahuan Privasi untuk Akun Google yang Dikelola dengan Family Link<ph name="END_LINK3" />.</translation> @@ -850,7 +844,6 @@ <translation id="8812260976093120287">Di beberapa situs, Anda dapat membayar dengan aplikasi pembayaran yang didukung di atas pada perangkat Anda.</translation> <translation id="8816439037877937734"><ph name="APP_NAME" /> akan terbuka di Chrome. Dengan melanjutkan, Anda menyetujui <ph name="BEGIN_LINK1" />Persyaratan Layanan<ph name="END_LINK1" /> dan <ph name="BEGIN_LINK2" />Pemberitahuan Notifikasi<ph name="END_LINK2" /> Chrome, dan <ph name="BEGIN_LINK3" />Pemberitahuan Privasi untuk Akun Google yang Dikelola dengan Family Link<ph name="END_LINK3" />.</translation> <translation id="8820817407110198400">Bookmark</translation> -<translation id="883635517171802338">Memblokir situs agar tidak menampilkan pop-up (disarankan)</translation> <translation id="883806473910249246">Terjadi error saat mendownload konten.</translation> <translation id="8840953339110955557">Halaman ini mungkin berbeda dengan versi onlinenya.</translation> <translation id="8847988622838149491">USB</translation>
diff --git a/chrome/android/java/strings/translations/android_chrome_strings_it.xtb b/chrome/android/java/strings/translations/android_chrome_strings_it.xtb index 09d51ae4..beafb7e 100644 --- a/chrome/android/java/strings/translations/android_chrome_strings_it.xtb +++ b/chrome/android/java/strings/translations/android_chrome_strings_it.xtb
@@ -82,10 +82,12 @@ <translation id="1718835860248848330">Ultima ora</translation> <translation id="1729516292547892356">Per vedere contenuti di realtà virtuale, aggiorna Servizi Google VR</translation> <translation id="1733116627827457509"><ph name="FILE_SIZE" /> - Aggiornato <ph name="TIME_SINCE_UPDATE" /></translation> +<translation id="1743802530341753419">Chiedi prima di consentire ai siti di connettersi a un dispositivo (opzione consigliata)</translation> <translation id="1749561566933687563">Sincronizza i tuoi preferiti</translation> <translation id="17513872634828108">Schede aperte</translation> <translation id="1756600373018374892">Tocca questo pulsante per accedere velocemente alle tue schede.</translation> <translation id="1779089405699405702">Decoder di immagini</translation> +<translation id="1792959175193046959">Modifica il percorso di download predefinito in qualsiasi momento</translation> <translation id="1807246157184219062">Chiaro</translation> <translation id="1829244130665387512">Trova nella pagina</translation> <translation id="1832521218263067499">Problemi di sicurezza</translation> @@ -109,7 +111,6 @@ <translation id="1993768208584545658">Il sito <ph name="SITE" /> desidera accoppiarsi</translation> <translation id="1994173015038366702">URL sito</translation> <translation id="200815880754187296"><ph name="KILOBYTES" /> kB per altre app</translation> -<translation id="2015632741368427174">Reindirizzamento bloccato al seguente sito:</translation> <translation id="2017836877785168846">Consente di cancellare la cronologia e i completamenti automatici nella barra degli indirizzi.</translation> <translation id="2021896219286479412">Controlli sito a schermo intero</translation> <translation id="2038563949887743358">Attiva Richiedi sito desktop</translation> @@ -181,7 +182,6 @@ <translation id="2650751991977523696">Scaricare nuovamente il file?</translation> <translation id="2653659639078652383">Invia</translation> <translation id="2677748264148917807">Esci</translation> -<translation id="2693813674743028984">Nascondi spazio di archiviazione</translation> <translation id="2704606927547763573">Copiata</translation> <translation id="2707726405694321444">Aggiorna la pagina</translation> <translation id="2709516037105925701">Compilazione automatica</translation> @@ -207,7 +207,6 @@ <translation id="2956410042958133412">Questo account è gestito da <ph name="PARENT_NAME_1" /> e <ph name="PARENT_NAME_2" /></translation> <translation id="2960796085439532066">Copyright <ph name="YEAR" /> Google Inc. Tutti i diritti riservati.</translation> <translation id="2962095958535813455">Schede in incognito attivate</translation> -<translation id="2965945119655563012">Mostra spazio di archiviazione</translation> <translation id="2968755619301702150">Visualizzatore certificati</translation> <translation id="2979025552038692506">Scheda in incognito selezionata</translation> <translation id="2989523299700148168">Visitati di recente</translation> @@ -525,7 +524,6 @@ <translation id="5817918615728894473">Accoppia</translation> <translation id="583281660410589416">Sconosciuto</translation> <translation id="5833984609253377421">Condividi link</translation> -<translation id="583891442612896534">Chrome non riesce a contattare i server di Google per la compressione dei dati. I salvataggi di dati potrebbero essere limitati.</translation> <translation id="5854790677617711513">Oltre 30 giorni fa</translation> <translation id="5858741533101922242">Chrome non riesce ad attivare l'adattatore Bluetooth</translation> <translation id="5860033963881614850">Off</translation> @@ -587,7 +585,6 @@ <translation id="6395288395575013217">LINK</translation> <translation id="6404511346730675251">Modifica preferito</translation> <translation id="6406506848690869874">Sincronizzazione</translation> -<translation id="6409731863280057959">Popup</translation> <translation id="641643625718530986">Stampa…</translation> <translation id="6416782512398055893">Sono stati scaricati <ph name="MBS" /> MB</translation> <translation id="6433501201775827830">Scegli il motore di ricerca</translation> @@ -647,6 +644,7 @@ <translation id="6910211073230771657">Eliminato</translation> <translation id="6912998170423641340">Impedisci ai siti di leggere testo e immagini negli appunti</translation> <translation id="6914783257214138813">Le tue password saranno visibili a chiunque abbia accesso al file esportato.</translation> +<translation id="6942665639005891494">Modifica in qualsiasi momento il percorso di download predefinito utilizzando l'opzione del menu Impostazioni</translation> <translation id="6945221475159498467">Seleziona</translation> <translation id="6963766334940102469">Elimina Preferiti</translation> <translation id="6965382102122355670">OK</translation> @@ -814,6 +812,7 @@ <translation id="8503813439785031346">Nome utente</translation> <translation id="8514477925623180633">Esporta le password memorizzate su Chrome</translation> <translation id="8514577642972634246">Accedi alla modalità di navigazione in incognito</translation> +<translation id="851751545965956758">Impedisci ai siti di connettersi ai dispositivi</translation> <translation id="8523928698583292556">Elimina la password memorizzata</translation> <translation id="854522910157234410">Apri questa pagina</translation> <translation id="8559990750235505898">Proponi di tradurre le pagine in altre lingue</translation> @@ -836,7 +835,6 @@ <translation id="8676374126336081632">Cancella testo inserito</translation> <translation id="8687353297350450808">{N_BARS,plural, =1{Intensità del segnale: # barra}other{Intensità del segnale: # barre}}</translation> <translation id="869891660844655955">Data di scadenza</translation> -<translation id="8712637175834984815">Fatto</translation> <translation id="8719023831149562936">Impossibile trasmettere scheda corrente</translation> <translation id="8725066075913043281">Riprova</translation> <translation id="8728487861892616501">Utilizzando questa applicazione, accetti i <ph name="BEGIN_LINK1" />Termini di servizio<ph name="END_LINK1" /> di Chrome, le <ph name="BEGIN_LINK2" />Norme sulla privacy<ph name="END_LINK2" /> e le <ph name="BEGIN_LINK3" />Norme sulla privacy per gli account Google gestiti tramite Family Link<ph name="END_LINK3" />.</translation> @@ -846,7 +844,6 @@ <translation id="8812260976093120287">In alcuni siti web puoi pagare con le suddette app di pagamento supportate sul tuo dispositivo.</translation> <translation id="8816439037877937734">L'app <ph name="APP_NAME" /> verrà aperta in Chrome. Se continui, accetti i <ph name="BEGIN_LINK1" />Termini di servizio<ph name="END_LINK1" /> e l'<ph name="BEGIN_LINK2" />Informativa sulla privacy<ph name="END_LINK2" /> di Chrome, nonché l'<ph name="BEGIN_LINK3" />Informatica sulla privacy per gli account Google gestiti tramite Family Link<ph name="END_LINK3" />.</translation> <translation id="8820817407110198400">Preferiti</translation> -<translation id="883635517171802338">Impedisci ai siti di mostrare popup (opzione consigliata)</translation> <translation id="883806473910249246">Si è verificato un errore durante il download dei contenuti.</translation> <translation id="8840953339110955557">Questa pagina potrebbe essere diversa dalla versione online.</translation> <translation id="8847988622838149491">USB</translation>
diff --git a/chrome/android/java/strings/translations/android_chrome_strings_iw.xtb b/chrome/android/java/strings/translations/android_chrome_strings_iw.xtb index bd7483b..bab6989 100644 --- a/chrome/android/java/strings/translations/android_chrome_strings_iw.xtb +++ b/chrome/android/java/strings/translations/android_chrome_strings_iw.xtb
@@ -111,7 +111,6 @@ <translation id="1993768208584545658"><ph name="SITE" /> רוצה לבצע התאמה עם</translation> <translation id="1994173015038366702">כתובת אתר</translation> <translation id="200815880754187296"><ph name="KILOBYTES" /> KB ליישומים אחרים</translation> -<translation id="2015632741368427174">הפניה לכתובת אתר אחרת נחסמה לאתר:</translation> <translation id="2017836877785168846">מנקה את ההיסטוריה וההשלמות האוטומטיות בסרגל הכתובות</translation> <translation id="2021896219286479412">פקדי אתר במסך מלא</translation> <translation id="2038563949887743358">הפעל את 'בקש אתר עבור מחשב שולחני'</translation> @@ -183,7 +182,6 @@ <translation id="2650751991977523696">האם להוריד את הקובץ שוב?</translation> <translation id="2653659639078652383">שלח</translation> <translation id="2677748264148917807">צא</translation> -<translation id="2693813674743028984">הסתרת פרטי אחסון</translation> <translation id="2704606927547763573">הועתק</translation> <translation id="2707726405694321444">רענן את הדף</translation> <translation id="2709516037105925701">מילוי אוטומטי</translation> @@ -209,7 +207,6 @@ <translation id="2956410042958133412">החשבון הזה מנוהל על ידי <ph name="PARENT_NAME_1" /> ו-<ph name="PARENT_NAME_2" />.</translation> <translation id="2960796085439532066">זכויות יוצרים <ph name="YEAR" /> Google Inc. כל הזכויות שמורות.</translation> <translation id="2962095958535813455">הוחלף לכרטיסיות גלישה בסתר</translation> -<translation id="2965945119655563012">הצגת פרטי אחסון</translation> <translation id="2968755619301702150">מציג האישורים</translation> <translation id="2979025552038692506">כרטיסיית הגלישה בסתר שנבחרה</translation> <translation id="2989523299700148168">מנועי חיפוש שהשתמשת בהם לאחרונה</translation> @@ -527,7 +524,6 @@ <translation id="5817918615728894473">התאם</translation> <translation id="583281660410589416">לא ידוע</translation> <translation id="5833984609253377421">שתף קישור</translation> -<translation id="583891442612896534">ל-Chrome אין אפשרות לגשת אל שרתי Google לדחיסת נתונים. ייתכן שהחיסכון בנתונים יהיה מוגבל.</translation> <translation id="5854790677617711513">לפני יותר מ-30 ימים</translation> <translation id="5858741533101922242">לא ניתן להפעיל ב-Chrome את מתאם Bluetooth</translation> <translation id="5860033963881614850">כבוי</translation> @@ -589,7 +585,6 @@ <translation id="6395288395575013217">קישור</translation> <translation id="6404511346730675251">ערוך סימניה</translation> <translation id="6406506848690869874">סנכרן</translation> -<translation id="6409731863280057959">חלונות קופצים</translation> <translation id="641643625718530986">הדפס…</translation> <translation id="6416782512398055893">בוצעה הורדה של MB <ph name="MBS" /></translation> <translation id="6433501201775827830">בחירת מנוע החיפוש</translation> @@ -838,7 +833,6 @@ <translation id="8676374126336081632">נקה קלט</translation> <translation id="8687353297350450808">{N_BARS,plural, =1{רמת עוצמת אות: עמודה אחת}two{רמת עוצמת אות: שתי עמודות}many{רמת עוצמת אות: # עמודות}other{רמת עוצמת אות: # עמודות}}</translation> <translation id="869891660844655955">תאריך תפוגה</translation> -<translation id="8712637175834984815">הבנתי</translation> <translation id="8719023831149562936">לא ניתן להעביר תוכן מהכרטיסייה הנוכחית</translation> <translation id="8725066075913043281">נסה שוב</translation> <translation id="8728487861892616501">השימוש שלך באפליקציה הזו מבטא את הסכמתך ל<ph name="BEGIN_LINK1" />תנאים ולהגבלות<ph name="END_LINK1" /> ול<ph name="BEGIN_LINK2" />מדיניות הפרטיות<ph name="END_LINK2" /> של Chrome, וכן ל<ph name="BEGIN_LINK3" />הודעת הפרטיות לחשבונות Google שמנוהלים ב-Family Link<ph name="END_LINK3" />.</translation> @@ -848,7 +842,6 @@ <translation id="8812260976093120287">באתרים מסוימים ניתן לשלם דרך המכשיר באמצעות אפליקציות התשלום הנתמכות שמופיעות למעלה.</translation> <translation id="8816439037877937734">האפליקציה <ph name="APP_NAME" /> תיפתח ב-Chrome. המשך השימוש מבטא את הסכמתך ל<ph name="BEGIN_LINK1" />תנאים ולהגבלות<ph name="END_LINK1" /> ול<ph name="BEGIN_LINK2" />הודעת הפרטיות<ph name="END_LINK2" /> של Chrome, וכן ל<ph name="BEGIN_LINK3" />הודעת הפרטיות לחשבונות Google שמנוהלים ב-Family Link<ph name="END_LINK3" />.</translation> <translation id="8820817407110198400">סימניות</translation> -<translation id="883635517171802338">חסום הצגת מודעות קופצות באתרים (מומלץ)</translation> <translation id="883806473910249246">אירעה שגיאה בזמן הורדת התוכן.</translation> <translation id="8840953339110955557">ייתכן שהדף הזה שונה מהגירסה המקוונת.</translation> <translation id="8847988622838149491">USB</translation>
diff --git a/chrome/android/java/strings/translations/android_chrome_strings_ja.xtb b/chrome/android/java/strings/translations/android_chrome_strings_ja.xtb index 8db0fff8..7cee0e1 100644 --- a/chrome/android/java/strings/translations/android_chrome_strings_ja.xtb +++ b/chrome/android/java/strings/translations/android_chrome_strings_ja.xtb
@@ -111,7 +111,6 @@ <translation id="1993768208584545658"><ph name="SITE" /> がペア設定を要求しています</translation> <translation id="1994173015038366702">サイトの URL</translation> <translation id="200815880754187296"><ph name="KILOBYTES" /> KB を他のアプリで使用中</translation> -<translation id="2015632741368427174">次のサイトへのリダイレクトがブロックされました。</translation> <translation id="2017836877785168846">アドレスバーの履歴とオートコンプリート データを削除します。</translation> <translation id="2021896219286479412">全画面表示時のサイトの操作項目</translation> <translation id="2038563949887743358">[PC 版サイトを見る] をオンにします</translation> @@ -183,7 +182,6 @@ <translation id="2650751991977523696">ファイルをもう一度ダウンロードしますか?</translation> <translation id="2653659639078652383">送信</translation> <translation id="2677748264148917807">このページを離れる</translation> -<translation id="2693813674743028984">ストレージ情報を表示しない</translation> <translation id="2704606927547763573">コピーしました</translation> <translation id="2707726405694321444">ページを更新</translation> <translation id="2709516037105925701">自動入力</translation> @@ -209,7 +207,6 @@ <translation id="2956410042958133412">このアカウントは <ph name="PARENT_NAME_1" /> と <ph name="PARENT_NAME_2" /> によって管理されています。</translation> <translation id="2960796085439532066">Copyright <ph name="YEAR" /> Google Inc. All rights reserved.</translation> <translation id="2962095958535813455">シークレット タブに切り替えました</translation> -<translation id="2965945119655563012">ストレージ情報を表示</translation> <translation id="2968755619301702150">証明書ビューア</translation> <translation id="2979025552038692506">選択したシークレット タブ</translation> <translation id="2989523299700148168">最近のアクセス</translation> @@ -527,7 +524,6 @@ <translation id="5817918615728894473">ペア設定</translation> <translation id="583281660410589416">不明</translation> <translation id="5833984609253377421">リンクを共有</translation> -<translation id="583891442612896534">データ圧縮のために Chrome から Google サーバーにアクセスすることができません。データ使用量をあまり削減できない可能性があります。</translation> <translation id="5854790677617711513">30 日以上経過</translation> <translation id="5858741533101922242">Chrome から Bluetooth アダプタをオンにできません</translation> <translation id="5860033963881614850">オフ</translation> @@ -589,7 +585,6 @@ <translation id="6395288395575013217">リンク</translation> <translation id="6404511346730675251">ブックマークを編集</translation> <translation id="6406506848690869874">同期</translation> -<translation id="6409731863280057959">ポップアップ</translation> <translation id="641643625718530986">印刷...</translation> <translation id="6416782512398055893"><ph name="MBS" /> MB をダウンロード済み</translation> <translation id="6433501201775827830">検索エンジンを選択</translation> @@ -840,7 +835,6 @@ <translation id="8676374126336081632">入力内容を消去</translation> <translation id="8687353297350450808">{N_BARS,plural, =1{電波強度: レベル #}other{電波強度: レベル #}}</translation> <translation id="869891660844655955">有効期限</translation> -<translation id="8712637175834984815">閉じる</translation> <translation id="8719023831149562936">現在のタブはビームできません</translation> <translation id="8725066075913043281">やり直し</translation> <translation id="8728487861892616501">このアプリケーションを使用すると、Chrome の<ph name="BEGIN_LINK1" />利用規約<ph name="END_LINK1" />と<ph name="BEGIN_LINK2" />プライバシーに関するお知らせ<ph name="END_LINK2" />、および <ph name="BEGIN_LINK3" />ファミリー リンクで管理する Google アカウントのプライバシーに関するお知らせ<ph name="END_LINK3" />に同意したことになります。</translation> @@ -850,7 +844,6 @@ <translation id="8812260976093120287">一部のウェブサイトでは、端末でサポートされている上記のお支払いアプリを使って支払いができます。</translation> <translation id="8816439037877937734">Chrome で <ph name="APP_NAME" /> を開きます。続行すると、Chrome の<ph name="BEGIN_LINK1" />利用規約<ph name="END_LINK1" />と<ph name="BEGIN_LINK2" />プライバシーに関するお知らせ<ph name="END_LINK2" />、および <ph name="BEGIN_LINK3" />ファミリー リンクで作成された Google アカウントのプライバシーに関するお知らせ<ph name="END_LINK3" />に同意したことになります。</translation> <translation id="8820817407110198400">ブックマーク</translation> -<translation id="883635517171802338">サイトでのポップアップ表示をブロックする(推奨)</translation> <translation id="883806473910249246">コンテンツのダウンロード中にエラーが発生しました。</translation> <translation id="8840953339110955557">このページはオンライン版とは異なる可能性があります。</translation> <translation id="8847988622838149491">USB</translation>
diff --git a/chrome/android/java/strings/translations/android_chrome_strings_ko.xtb b/chrome/android/java/strings/translations/android_chrome_strings_ko.xtb index c97cb78..0c1fac30 100644 --- a/chrome/android/java/strings/translations/android_chrome_strings_ko.xtb +++ b/chrome/android/java/strings/translations/android_chrome_strings_ko.xtb
@@ -82,10 +82,12 @@ <translation id="1718835860248848330">지난 1시간</translation> <translation id="1729516292547892356">가상 현실 콘텐츠를 보려면 Google VR 서비스를 업데이트하세요.</translation> <translation id="1733116627827457509"><ph name="FILE_SIZE" />: <ph name="TIME_SINCE_UPDATE" />에 업데이트됨</translation> +<translation id="1743802530341753419">사이트에서 내 기기에 연결하도록 허용하기 전에 확인(권장)</translation> <translation id="1749561566933687563">북마크 동기화</translation> <translation id="17513872634828108">열린 탭</translation> <translation id="1756600373018374892">내 탭에 빠르게 액세스하려면 이 버튼을 탭하세요.</translation> <translation id="1779089405699405702">이미지 디코더</translation> +<translation id="1792959175193046959">언제든지 기본 다운로드 위치 변경 가능</translation> <translation id="1807246157184219062">밝게</translation> <translation id="1829244130665387512">페이지에서 찾기</translation> <translation id="1832521218263067499">보안 사고</translation> @@ -109,7 +111,6 @@ <translation id="1993768208584545658"><ph name="SITE" />에서 페어링하려고 함</translation> <translation id="1994173015038366702">사이트 URL</translation> <translation id="200815880754187296">기타 앱 <ph name="KILOBYTES" />KB</translation> -<translation id="2015632741368427174">다음 사이트로의 리디렉션이 차단되었습니다.</translation> <translation id="2017836877785168846">검색주소창의 검색 기록 및 자동 완성 항목을 삭제합니다.</translation> <translation id="2021896219286479412">전체화면 사이트 컨트롤</translation> <translation id="2038563949887743358">데스크톱 버전으로 보기 사용 설정</translation> @@ -181,7 +182,6 @@ <translation id="2650751991977523696">파일을 다시 다운로드하시겠습니까?</translation> <translation id="2653659639078652383">제출</translation> <translation id="2677748264148917807">나가기</translation> -<translation id="2693813674743028984">저장용량 숨기기</translation> <translation id="2704606927547763573">복사됨</translation> <translation id="2707726405694321444">페이지 새로고침</translation> <translation id="2709516037105925701">자동 완성</translation> @@ -207,7 +207,6 @@ <translation id="2956410042958133412"><ph name="PARENT_NAME_1" />님과 <ph name="PARENT_NAME_2" />님이 관리하는 계정입니다.</translation> <translation id="2960796085439532066">Copyright <ph name="YEAR" /> Google Inc. All rights reserved.</translation> <translation id="2962095958535813455">시크릿 탭으로 전환됨</translation> -<translation id="2965945119655563012">저장용량 표시</translation> <translation id="2968755619301702150">인증서 뷰어</translation> <translation id="2979025552038692506">선택된 시크릿 탭</translation> <translation id="2989523299700148168">최근 방문</translation> @@ -525,7 +524,6 @@ <translation id="5817918615728894473">페어링</translation> <translation id="583281660410589416">알 수 없음</translation> <translation id="5833984609253377421">링크 공유</translation> -<translation id="583891442612896534">Chrome이 Google 서버에 접속할 수 없어 데이터를 압축하지 못했습니다. 데이터 절약이 제한적일 수 있습니다.</translation> <translation id="5854790677617711513">30일 이상 전</translation> <translation id="5858741533101922242">Chrome에서 블루투스 어댑터를 사용 설정할 수 없습니다.</translation> <translation id="5860033963881614850">사용 안함</translation> @@ -587,7 +585,6 @@ <translation id="6395288395575013217">링크</translation> <translation id="6404511346730675251">북마크 수정</translation> <translation id="6406506848690869874">동기화</translation> -<translation id="6409731863280057959">팝업</translation> <translation id="641643625718530986">인쇄…</translation> <translation id="6416782512398055893"><ph name="MBS" />MB 다운로드됨</translation> <translation id="6433501201775827830">검색 엔진 선택</translation> @@ -647,6 +644,7 @@ <translation id="6910211073230771657">삭제됨</translation> <translation id="6912998170423641340">사이트가 클립보드의 텍스트 및 이미지에 액세스하지 못하도록 차단</translation> <translation id="6914783257214138813">내보낸 파일을 볼 수 있는 모든 사용자에게 비밀번호가 표시됩니다.</translation> +<translation id="6942665639005891494">언제든지 설정 메뉴 옵션으로 기본 다운로드 위치 변경 가능</translation> <translation id="6945221475159498467">선택</translation> <translation id="6963766334940102469">북마크 삭제</translation> <translation id="6965382102122355670">확인</translation> @@ -814,6 +812,7 @@ <translation id="8503813439785031346">사용자이름</translation> <translation id="8514477925623180633">Chrome으로 저장한 비밀번호 내보내기</translation> <translation id="8514577642972634246">시크릿 모드로 들어가기</translation> +<translation id="851751545965956758">사이트에서 기기에 연결하지 못하도록 차단</translation> <translation id="8523928698583292556">저장된 암호 삭제</translation> <translation id="854522910157234410">페이지 열기</translation> <translation id="8559990750235505898">다른 언어로 된 페이지의 번역 옵션 제공</translation> @@ -836,7 +835,6 @@ <translation id="8676374126336081632">입력내용 지우기</translation> <translation id="8687353297350450808">{N_BARS,plural, =1{신호 강도: 막대 #개}other{신호 강도: 막대 #개}}</translation> <translation id="869891660844655955">유효기간</translation> -<translation id="8712637175834984815">확인</translation> <translation id="8719023831149562936">현재 탭을 공유할 수 없습니다.</translation> <translation id="8725066075913043281">다시 시도하세요</translation> <translation id="8728487861892616501">이 애플리케이션을 사용하면 Chrome의 <ph name="BEGIN_LINK1" />서비스 약관<ph name="END_LINK1" />, <ph name="BEGIN_LINK2" />개인정보처리방침<ph name="END_LINK2" />, <ph name="BEGIN_LINK3" />Family Link로 관리되는 Google 계정용 개인정보처리방침<ph name="END_LINK3" />에 동의하게 됩니다.</translation> @@ -846,7 +844,6 @@ <translation id="8812260976093120287">일부 웹사이트에서는 위의 결제 앱을 사용하여 내 기기에서 결제할 수 있습니다.</translation> <translation id="8816439037877937734"><ph name="APP_NAME" />이(가) Chrome에서 열립니다. 계속하면 Chrome의 <ph name="BEGIN_LINK1" />서비스 약관<ph name="END_LINK1" />, <ph name="BEGIN_LINK2" />개인정보처리방침<ph name="END_LINK2" /> 및 <ph name="BEGIN_LINK3" />Family Link로 관리되는 Google 계정용 개인정보처리방침<ph name="END_LINK3" />에 동의하는 것으로 간주됩니다.</translation> <translation id="8820817407110198400">북마크</translation> -<translation id="883635517171802338">사이트에서 팝업을 표시하지 못하도록 차단(권장)</translation> <translation id="883806473910249246">콘텐츠를 다운로드하는 중에 오류가 발생했습니다.</translation> <translation id="8840953339110955557">이 페이지는 온라인 버전과 다를 수 있습니다.</translation> <translation id="8847988622838149491">USB</translation>
diff --git a/chrome/android/java/strings/translations/android_chrome_strings_lt.xtb b/chrome/android/java/strings/translations/android_chrome_strings_lt.xtb index 0202d13c..bd9c4d2 100644 --- a/chrome/android/java/strings/translations/android_chrome_strings_lt.xtb +++ b/chrome/android/java/strings/translations/android_chrome_strings_lt.xtb
@@ -111,7 +111,6 @@ <translation id="1993768208584545658">Svetainė <ph name="SITE" /> nori būti susieta su</translation> <translation id="1994173015038366702">Svetainės URL</translation> <translation id="200815880754187296"><ph name="KILOBYTES" /> KB užima kitos programos</translation> -<translation id="2015632741368427174">Peradresavimas į svetainę užblokuotas:</translation> <translation id="2017836877785168846">Išvaloma istorija ir automatiniai užbaigimai adreso juostoje.</translation> <translation id="2021896219286479412">Viso ekrano svetainės valdikliai</translation> <translation id="2038563949887743358">Įjungti stalinio kompiuterio svetainės užklausą</translation> @@ -183,7 +182,6 @@ <translation id="2650751991977523696">Atsisiųsti failą dar kartą?</translation> <translation id="2653659639078652383">Pateikti</translation> <translation id="2677748264148917807">Išeiti</translation> -<translation id="2693813674743028984">Slėpti saugyklą</translation> <translation id="2704606927547763573">Nukopij.</translation> <translation id="2707726405694321444">Atnaujinti puslapį</translation> <translation id="2709516037105925701">Automatinis pildymas</translation> @@ -209,7 +207,6 @@ <translation id="2956410042958133412">Šią paskyrą tvarko <ph name="PARENT_NAME_1" /> ir <ph name="PARENT_NAME_2" />.</translation> <translation id="2960796085439532066">Autorių teisės priklauso „Google Inc.“, <ph name="YEAR" /> m. Visos teisės saugomos.</translation> <translation id="2962095958535813455">Perjungta į inkognito skirtukus</translation> -<translation id="2965945119655563012">Rodyti saugyklą</translation> <translation id="2968755619301702150">Sertifikato peržiūros priemonė</translation> <translation id="2979025552038692506">Pasirinktas inkognito skirtukas</translation> <translation id="2989523299700148168">Neseniai lankyta</translation> @@ -527,7 +524,6 @@ <translation id="5817918615728894473">Susieti</translation> <translation id="583281660410589416">Nežinoma</translation> <translation id="5833984609253377421">Bendrinti nuorodą</translation> -<translation id="583891442612896534">„Chrome“ negali pasiekti „Google“ serverių dėl duomenų glaudinimo. Duomenų išsaugojimas gali būti apribotas.</translation> <translation id="5854790677617711513">Senesni nei 30 dienų</translation> <translation id="5858741533101922242">„Chrome“ nepavyksta įjungti „Bluetooth“ adapterio</translation> <translation id="5860033963881614850">Išjungta</translation> @@ -589,7 +585,6 @@ <translation id="6395288395575013217">NUORODA</translation> <translation id="6404511346730675251">Redaguoti žymę</translation> <translation id="6406506848690869874">Sinchronizavimas</translation> -<translation id="6409731863280057959">Iššokantieji langai</translation> <translation id="641643625718530986">Spausdinti…</translation> <translation id="6416782512398055893">Atsisiųsta <ph name="MBS" /> MB</translation> <translation id="6433501201775827830">Paieškos variklio pasirinkimas</translation> @@ -840,7 +835,6 @@ <translation id="8676374126336081632">Išvalyti įvestą tekstą</translation> <translation id="8687353297350450808">{N_BARS,plural, =1{Signalo stiprumo lygis: # juosta}one{Signalo stiprumo lygis: # juosta}few{Signalo stiprumo lygis: # juostos}many{Signalo stiprumo lygis: # juostos}other{Signalo stiprumo lygis: # juostų}}</translation> <translation id="869891660844655955">Galiojimo data</translation> -<translation id="8712637175834984815">Supratau</translation> <translation id="8719023831149562936">Negalima perduoti esamo skirtuko</translation> <translation id="8725066075913043281">Bandyti dar kartą</translation> <translation id="8728487861892616501">Naudodami šią programą sutinkate su „Chrome“ <ph name="BEGIN_LINK1" />paslaugų teikimo sąlygomis<ph name="END_LINK1" />, <ph name="BEGIN_LINK2" />privatumo pranešimu<ph name="END_LINK2" /> ir <ph name="BEGIN_LINK3" />privatumo pranešimu, skirtu „Google“ paskyroms, tvarkomoms naudojant „Family Link“<ph name="END_LINK3" />.</translation> @@ -850,7 +844,6 @@ <translation id="8812260976093120287">Kai kuriose svetainėse galite mokėti naudodami įrenginyje įdiegtas anksčiau nurodytas palaikomas mokėjimo programas.</translation> <translation id="8816439037877937734">Programa „<ph name="APP_NAME" />“ bus atidaryta naršyklėje „Chrome“. Tęsdami sutinkate su „Chrome“ <ph name="BEGIN_LINK1" />paslaugų teikimo sąlygomis<ph name="END_LINK1" />, <ph name="BEGIN_LINK2" />privatumo pranešimu<ph name="END_LINK2" /> ir <ph name="BEGIN_LINK3" />privatumo pranešimu, skirtu „Google“ paskyroms, tvarkomoms naudojant „Family Link“<ph name="END_LINK3" />.</translation> <translation id="8820817407110198400">Žymės</translation> -<translation id="883635517171802338">Blokuoti, kad svetainėse nebūtų rodomi iššokantieji langai (rekomenduojama)</translation> <translation id="883806473910249246">Atsisiunčiant turinį įvyko klaida.</translation> <translation id="8840953339110955557">Šis puslapis gali skirtis nuo prisijungus pateiktos versijos.</translation> <translation id="8847988622838149491">USB</translation>
diff --git a/chrome/android/java/strings/translations/android_chrome_strings_lv.xtb b/chrome/android/java/strings/translations/android_chrome_strings_lv.xtb index 91f5b443..95a5ad92 100644 --- a/chrome/android/java/strings/translations/android_chrome_strings_lv.xtb +++ b/chrome/android/java/strings/translations/android_chrome_strings_lv.xtb
@@ -111,7 +111,6 @@ <translation id="1993768208584545658"><ph name="SITE" /> vēlas savienot pārī</translation> <translation id="1994173015038366702">Vietnes URL</translation> <translation id="200815880754187296">Citas lietotnes: <ph name="KILOBYTES" /> KB</translation> -<translation id="2015632741368427174">Bloķēta novirzīšana uz šādu vietni:</translation> <translation id="2017836877785168846">Notīra vēsturi un automātiskās pabeigšanas ierakstus adreses joslā.</translation> <translation id="2021896219286479412">Pilnekrāna vietnes vadīklas</translation> <translation id="2038563949887743358">Ieslēgt iestatījumu “Pieprasīt datora vietni”</translation> @@ -183,7 +182,6 @@ <translation id="2650751991977523696">Vai lejupielādēt failu vēlreiz?</translation> <translation id="2653659639078652383">Iesniegt</translation> <translation id="2677748264148917807">Iziet</translation> -<translation id="2693813674743028984">Slēpt krātuvi</translation> <translation id="2704606927547763573">Nokopēts</translation> <translation id="2707726405694321444">Atsvaidzināt lapu</translation> <translation id="2709516037105925701">Automātiskā aizpilde</translation> @@ -209,7 +207,6 @@ <translation id="2956410042958133412">Šo kontu pārvalda <ph name="PARENT_NAME_1" /> un <ph name="PARENT_NAME_2" />.</translation> <translation id="2960796085439532066">Autortiesības <ph name="YEAR" /> Google Inc. Visas tiesības paturētas.</translation> <translation id="2962095958535813455">Notika pārslēgšanās uz inkognito režīma cilnēm</translation> -<translation id="2965945119655563012">Rādīt krātuvi</translation> <translation id="2968755619301702150">Sertifikātu skatītājs</translation> <translation id="2979025552038692506">Atlasītā inkognito cilne</translation> <translation id="2989523299700148168">Nesen apmeklētās</translation> @@ -527,7 +524,6 @@ <translation id="5817918615728894473">Savienot pārī</translation> <translation id="583281660410589416">Nezināms</translation> <translation id="5833984609253377421">Kopīgot saiti</translation> -<translation id="583891442612896534">Chrome nevar sasniegt Google serverus, lai veiktu datu saspiešanu. Datu lietojuma samazinājums var būt ierobežots.</translation> <translation id="5854790677617711513">Vecāki par 30 dienām</translation> <translation id="5858741533101922242">Chrome nevar ieslēgt Bluetooth adapteri.</translation> <translation id="5860033963881614850">Izsl.</translation> @@ -589,7 +585,6 @@ <translation id="6395288395575013217">SAITE</translation> <translation id="6404511346730675251">Rediģēt grāmatzīmi</translation> <translation id="6406506848690869874">Sinhronizācija</translation> -<translation id="6409731863280057959">Uznirstošie logi</translation> <translation id="641643625718530986">Drukāt...</translation> <translation id="6416782512398055893">Lejupielādēts: <ph name="MBS" /> MB</translation> <translation id="6433501201775827830">Meklētājprogrammas izvēle</translation> @@ -840,7 +835,6 @@ <translation id="8676374126336081632">Notīrīt ievadi</translation> <translation id="8687353297350450808">{N_BARS,plural, =1{Signāla stipruma līmenis: # josla}zero{Signāla stipruma līmenis: # joslu}one{Signāla stipruma līmenis: # josla}other{Signāla stipruma līmenis: # joslas}}</translation> <translation id="869891660844655955">Derīguma termiņš</translation> -<translation id="8712637175834984815">Sapratu!</translation> <translation id="8719023831149562936">Nevar kopīgot šo cilni, izmantojot Beam.</translation> <translation id="8725066075913043281">Mēģināt vēlreiz</translation> <translation id="8728487861892616501">Izmantojot šo lietojumprogrammu, jūs piekrītat Chrome <ph name="BEGIN_LINK1" />pakalpojumu sniegšanas noteikumiem<ph name="END_LINK1" />, <ph name="BEGIN_LINK2" />paziņojumam par konfidencialitāti<ph name="END_LINK2" /> un <ph name="BEGIN_LINK3" />paziņojumam par konfidencialitāti Google kontiem, kas tiek pārvaldīti lietotnē Family Link<ph name="END_LINK3" />.</translation> @@ -850,7 +844,6 @@ <translation id="8812260976093120287">Dažās vietnēs var norēķināties, ierīcē izmantojot iepriekš norādītās atbalstītās maksājumu lietotnes.</translation> <translation id="8816439037877937734">Lietotne <ph name="APP_NAME" /> tiks atvērta pārlūkā Chrome. Turpinot jūs piekrītat Chrome <ph name="BEGIN_LINK1" />pakalpojumu sniegšanas noteikumiem<ph name="END_LINK1" /> un <ph name="BEGIN_LINK2" />konfidencialitātes paziņojumam<ph name="END_LINK2" />, kā arī <ph name="BEGIN_LINK3" />konfidencialitātes paziņojumam Google kontiem, kas tiek pārvaldīti lietotnē Family Link<ph name="END_LINK3" />.</translation> <translation id="8820817407110198400">Grāmatzīmes</translation> -<translation id="883635517171802338">Neļaut vietnēm rādīt uznirstošos elementus (ieteicams)</translation> <translation id="883806473910249246">Lejupielādējot saturu, radās kļūda.</translation> <translation id="8840953339110955557">Šī lapas versija var atšķirties no tiešsaises versijas.</translation> <translation id="8847988622838149491">USB</translation>
diff --git a/chrome/android/java/strings/translations/android_chrome_strings_nl.xtb b/chrome/android/java/strings/translations/android_chrome_strings_nl.xtb index 4c1166c8..53a035eb 100644 --- a/chrome/android/java/strings/translations/android_chrome_strings_nl.xtb +++ b/chrome/android/java/strings/translations/android_chrome_strings_nl.xtb
@@ -111,7 +111,6 @@ <translation id="1993768208584545658"><ph name="SITE" /> wil koppelen</translation> <translation id="1994173015038366702">Site-URL</translation> <translation id="200815880754187296"><ph name="KILOBYTES" /> KB voor andere apps</translation> -<translation id="2015632741368427174">Omleiding geblokkeerd naar site:</translation> <translation id="2017836877785168846">Wist de geschiedenis en automatische aanvullingen in de adresbalk.</translation> <translation id="2021896219286479412">Siteopties op volledig scherm</translation> <translation id="2038563949887743358">'Desktopsite aanvragen' inschakelen</translation> @@ -183,7 +182,6 @@ <translation id="2650751991977523696">Bestand opnieuw downloaden?</translation> <translation id="2653659639078652383">Verzenden</translation> <translation id="2677748264148917807">Verlaten</translation> -<translation id="2693813674743028984">Opslag verbergen</translation> <translation id="2704606927547763573">Gekopieerd</translation> <translation id="2707726405694321444">Pagina vernieuwen</translation> <translation id="2709516037105925701">Automatisch aanvullen</translation> @@ -209,7 +207,6 @@ <translation id="2956410042958133412">Dit account wordt beheerd door <ph name="PARENT_NAME_1" /> en <ph name="PARENT_NAME_2" />.</translation> <translation id="2960796085439532066">Copyright <ph name="YEAR" /> Google Inc. Alle rechten voorbehouden.</translation> <translation id="2962095958535813455">Overgeschakeld naar incognitotabbladen</translation> -<translation id="2965945119655563012">Opslag weergeven</translation> <translation id="2968755619301702150">Certificaatviewer</translation> <translation id="2979025552038692506">Geselecteerd incognitotabblad</translation> <translation id="2989523299700148168">Onlangs bezocht</translation> @@ -527,7 +524,6 @@ <translation id="5817918615728894473">Koppelen</translation> <translation id="583281660410589416">Onbekend</translation> <translation id="5833984609253377421">Link delen</translation> -<translation id="583891442612896534">Chrome kan de Google-servers niet bereiken voor gegevenscompressie. De besparing op je gegevensgebruik is mogelijk beperkt.</translation> <translation id="5854790677617711513">Ouder dan 30 dagen</translation> <translation id="5858741533101922242">Chrome kan de Bluetooth-adapter niet inschakelen</translation> <translation id="5860033963881614850">Uit</translation> @@ -589,7 +585,6 @@ <translation id="6395288395575013217">LINK</translation> <translation id="6404511346730675251">Bladwijzer bewerken</translation> <translation id="6406506848690869874">Synchronisatie</translation> -<translation id="6409731863280057959">Pop-ups</translation> <translation id="641643625718530986">Afdrukken…</translation> <translation id="6416782512398055893"><ph name="MBS" /> MB gedownload</translation> <translation id="6433501201775827830">Je zoekmachine kiezen</translation> @@ -840,7 +835,6 @@ <translation id="8676374126336081632">Invoer wissen</translation> <translation id="8687353297350450808">{N_BARS,plural, =1{Signaalsterkte: # streepje}other{Signaalsterkte: # streepjes}}</translation> <translation id="869891660844655955">Vervaldatum</translation> -<translation id="8712637175834984815">Begrepen</translation> <translation id="8719023831149562936">Kan huidig tabblad niet beamen</translation> <translation id="8725066075913043281">Opnieuw proberen</translation> <translation id="8728487861892616501">Door deze app te gebruiken, ga je akkoord met de <ph name="BEGIN_LINK1" />Servicevoorwaarden<ph name="END_LINK1" /> en het <ph name="BEGIN_LINK2" />Privacybeleid<ph name="END_LINK2" /> van Chrome en het <ph name="BEGIN_LINK3" />Privacybeleid voor Google-accounts die worden beheerd met Family Link<ph name="END_LINK3" />.</translation> @@ -850,7 +844,6 @@ <translation id="8812260976093120287">Op sommige websites kun je betalen met de bovenstaande ondersteunde betaal-apps op je apparaat.</translation> <translation id="8816439037877937734"><ph name="APP_NAME" /> wordt geopend in Chrome. Als je doorgaat, ga je akkoord met de <ph name="BEGIN_LINK1" />Servicevoorwaarden<ph name="END_LINK1" /> en het <ph name="BEGIN_LINK2" />Privacybeleid<ph name="END_LINK2" /> van Chrome en het <ph name="BEGIN_LINK3" />Privacybeleid voor Google-accounts die worden beheerd met Family Link<ph name="END_LINK3" />.</translation> <translation id="8820817407110198400">Bladwijzers</translation> -<translation id="883635517171802338">Sites niet toestaan pop-ups weer te geven (aanbevolen)</translation> <translation id="883806473910249246">Er is een fout opgetreden tijdens het downloaden van de content.</translation> <translation id="8840953339110955557">Deze pagina kan afwijken van de online versie.</translation> <translation id="8847988622838149491">USB</translation>
diff --git a/chrome/android/java/strings/translations/android_chrome_strings_no.xtb b/chrome/android/java/strings/translations/android_chrome_strings_no.xtb index e70d3f2..5f4425fa 100644 --- a/chrome/android/java/strings/translations/android_chrome_strings_no.xtb +++ b/chrome/android/java/strings/translations/android_chrome_strings_no.xtb
@@ -111,7 +111,6 @@ <translation id="1993768208584545658"><ph name="SITE" /> vil koble til</translation> <translation id="1994173015038366702">Nettadressen til nettstedet</translation> <translation id="200815880754187296"><ph name="KILOBYTES" /> kB andre apper</translation> -<translation id="2015632741368427174">Viderekobling er blokkert til dette nettstedet:</translation> <translation id="2017836877785168846">Tømmer loggen og fjerner automatiske fullføringer fra adressefeltet.</translation> <translation id="2021896219286479412">Navigering i full skjerm</translation> <translation id="2038563949887743358">Slå på Bruk skrivebordsversjon</translation> @@ -183,7 +182,6 @@ <translation id="2650751991977523696">Vil du laste ned filen på nytt?</translation> <translation id="2653659639078652383">Send</translation> <translation id="2677748264148917807">Gå ut</translation> -<translation id="2693813674743028984">Skjul lagring</translation> <translation id="2704606927547763573">Kopiert</translation> <translation id="2707726405694321444">Last inn siden på nytt</translation> <translation id="2709516037105925701">Autofyll</translation> @@ -209,7 +207,6 @@ <translation id="2956410042958133412">Denne kontoen er administrert av <ph name="PARENT_NAME_1" /> og <ph name="PARENT_NAME_2" />.</translation> <translation id="2960796085439532066">Copyright <ph name="YEAR" /> Google Inc. Med enerett.</translation> <translation id="2962095958535813455">Byttet til inkognitofaner</translation> -<translation id="2965945119655563012">Vis lagring</translation> <translation id="2968755619301702150">Visningsprogram for sertifikater</translation> <translation id="2979025552038692506">Valgt inkognitofane</translation> <translation id="2989523299700148168">Nylig besøkte</translation> @@ -527,7 +524,6 @@ <translation id="5817918615728894473">Koble sammen</translation> <translation id="583281660410589416">Ukjent</translation> <translation id="5833984609253377421">Del en link</translation> -<translation id="583891442612896534">Chrome kunne ikke kontakte Google-tjenerne for datakomprimering. Det kan hende at du bare oppnår begrenset datasparing.</translation> <translation id="5854790677617711513">Eldre enn 30 dager</translation> <translation id="5858741533101922242">Chrome kan ikke slå på Bluetooth-adapteren</translation> <translation id="5860033963881614850">Av</translation> @@ -589,7 +585,6 @@ <translation id="6395288395575013217">LINK</translation> <translation id="6404511346730675251">Rediger bokmerket</translation> <translation id="6406506848690869874">Synkroniser</translation> -<translation id="6409731863280057959">Forgrunnsvinduer</translation> <translation id="641643625718530986">Skriv ut</translation> <translation id="6416782512398055893"><ph name="MBS" /> MB er lastet ned</translation> <translation id="6433501201775827830">Velg søkemotor</translation> @@ -705,7 +700,7 @@ <translation id="7455923816558154057">Trykk for å se</translation> <translation id="7473891865547856676">Nei takk</translation> <translation id="7475192538862203634">Hvis du ser dette ofte, kan du prøve disse <ph name="BEGIN_LINK" />forslagene<ph name="END_LINK" />.</translation> -<translation id="7475688122056506577">Finner ikke noe SD-kort. Noen av filene dine kan mangle.</translation> +<translation id="7475688122056506577">Finner ikke SD-kort. Noen av filene dine kan mangle.</translation> <translation id="748127970106343339">Bekreft sletting av enhetslegitimasjon</translation> <translation id="7481312909269577407">Frem</translation> <translation id="7493994139787901920"><ph name="VERSION" /> (oppdatert <ph name="TIME_SINCE_UPDATE" />)</translation> @@ -769,7 +764,7 @@ <translation id="8026334261755873520">Slett nettlesingsdata</translation> <translation id="8035133914807600019">Ny mappe</translation> <translation id="8037750541064988519"><ph name="DAYS" /> dager igjen</translation> -<translation id="804335162455518893">Finner ikke noe SD-kort</translation> +<translation id="804335162455518893">Finner ikke SD-kort</translation> <translation id="805047784848435650">Basert på nettlesingsloggen din</translation> <translation id="8051695050440594747"><ph name="MEGABYTES" /> MB tilgjengelig</translation> <translation id="8058746566562539958">Åpne i en ny Chrome-fane</translation> @@ -840,7 +835,6 @@ <translation id="8676374126336081632">Slett teksten</translation> <translation id="8687353297350450808">{N_BARS,plural, =1{Signalstyrkenivå: # stolpe}other{Signalstyrkenivå: # stolper}}</translation> <translation id="869891660844655955">Utløpsdato</translation> -<translation id="8712637175834984815">Skjønner</translation> <translation id="8719023831149562936">Kan ikke beame gjeldende fane</translation> <translation id="8725066075913043281">Prøv igjen</translation> <translation id="8728487861892616501">Når du bruker denne appen, godtar du <ph name="BEGIN_LINK1" />vilkårene for bruk<ph name="END_LINK1" /> av Chrome, <ph name="BEGIN_LINK2" />merknaden om personvern<ph name="END_LINK2" /> og <ph name="BEGIN_LINK3" />merknaden om personvern for Google-kontoer som administreres med Family Link<ph name="END_LINK3" />.</translation> @@ -850,7 +844,6 @@ <translation id="8812260976093120287">På noen nettsteder kan du betale med de støttede betalingsappene ovenfor på enheten din.</translation> <translation id="8816439037877937734"><ph name="APP_NAME" /> åpnes i Chrome. Ved å fortsette godtar du <ph name="BEGIN_LINK1" />vilkårene for bruk<ph name="END_LINK1" /> av Chrome og <ph name="BEGIN_LINK2" />merknaden om personvern<ph name="END_LINK2" /> samt <ph name="BEGIN_LINK3" />merknaden om personvern for Google-kontoer som administreres med Family Link<ph name="END_LINK3" />.</translation> <translation id="8820817407110198400">Bokmerker</translation> -<translation id="883635517171802338">Blokkér nettsteder fra å vise forgrunnsvinduer (anbefales)</translation> <translation id="883806473910249246">Det oppsto en feil under nedlastingen av innholdet.</translation> <translation id="8840953339110955557">Denne siden kan avvike fra nettversjonen.</translation> <translation id="8847988622838149491">USB</translation>
diff --git a/chrome/android/java/strings/translations/android_chrome_strings_pl.xtb b/chrome/android/java/strings/translations/android_chrome_strings_pl.xtb index d205caa0..f5bebef 100644 --- a/chrome/android/java/strings/translations/android_chrome_strings_pl.xtb +++ b/chrome/android/java/strings/translations/android_chrome_strings_pl.xtb
@@ -111,7 +111,6 @@ <translation id="1993768208584545658"><ph name="SITE" /> chce się sparować</translation> <translation id="1994173015038366702">URL strony</translation> <translation id="200815880754187296"><ph name="KILOBYTES" /> KB innych aplikacji</translation> -<translation id="2015632741368427174">Zablokowano przekierowanie na stronę:</translation> <translation id="2017836877785168846">Usuwa historię i wpisy autouzupełniania w pasku adresu.</translation> <translation id="2021896219286479412">Elementy sterowania stroną na pełnym ekranie</translation> <translation id="2038563949887743358">Włącz opcję „Wersja na komputer”</translation> @@ -183,7 +182,6 @@ <translation id="2650751991977523696">Czy pobrać plik ponownie?</translation> <translation id="2653659639078652383">Prześlij</translation> <translation id="2677748264148917807">Wyjdź</translation> -<translation id="2693813674743028984">Ukryj miejsce na pliki</translation> <translation id="2704606927547763573">Skopiowane</translation> <translation id="2707726405694321444">Odśwież stronę</translation> <translation id="2709516037105925701">Autouzupełnianie</translation> @@ -209,7 +207,6 @@ <translation id="2956410042958133412">Tym kontem zarządzają <ph name="PARENT_NAME_1" /> i <ph name="PARENT_NAME_2" />.</translation> <translation id="2960796085439532066">Copyright <ph name="YEAR" /> Google Inc. Wszelkie prawa zastrzeżone.</translation> <translation id="2962095958535813455">Przełączono na karty incognito</translation> -<translation id="2965945119655563012">Pokaż miejsce na pliki</translation> <translation id="2968755619301702150">Przeglądarka certyfikatów</translation> <translation id="2979025552038692506">Wybrana karta incognito</translation> <translation id="2989523299700148168">Ostatnio odwiedzone</translation> @@ -527,7 +524,6 @@ <translation id="5817918615728894473">Sparuj</translation> <translation id="583281660410589416">Nieznany</translation> <translation id="5833984609253377421">Udostępnij link</translation> -<translation id="583891442612896534">Chrome nie może połączyć się z serwerami Google kompresującymi dane. Oszczędność użycia danych może być ograniczona.</translation> <translation id="5854790677617711513">Sprzed ponad 30 dni</translation> <translation id="5858741533101922242">Chrome nie może włączyć adaptera Bluetooth</translation> <translation id="5860033963881614850">Wyłączone</translation> @@ -589,7 +585,6 @@ <translation id="6395288395575013217">LINK</translation> <translation id="6404511346730675251">Edytuj zakładkę</translation> <translation id="6406506848690869874">Synchronizacja</translation> -<translation id="6409731863280057959">Wyskakujące okienka</translation> <translation id="641643625718530986">Drukuj…</translation> <translation id="6416782512398055893">Pobrano <ph name="MBS" /> MB</translation> <translation id="6433501201775827830">Wybierz wyszukiwarkę</translation> @@ -840,7 +835,6 @@ <translation id="8676374126336081632">Wyczyść wpisany tekst</translation> <translation id="8687353297350450808">{N_BARS,plural, =1{Poziom siły sygnału: # słupek}few{Poziom siły sygnału: # słupki}many{Poziom siły sygnału: # słupków}other{Poziom siły sygnału: # słupka}}</translation> <translation id="869891660844655955">Data wygaśnięcia</translation> -<translation id="8712637175834984815">Rozumiem</translation> <translation id="8719023831149562936">Nie można przesłać bieżącej karty</translation> <translation id="8725066075913043281">Spróbuj ponownie</translation> <translation id="8728487861892616501">Używając tej aplikacji, akceptujesz <ph name="BEGIN_LINK1" />Warunki korzystania z usługi<ph name="END_LINK1" /> i <ph name="BEGIN_LINK2" />Politykę prywatności<ph name="END_LINK2" /> Chrome oraz <ph name="BEGIN_LINK3" />Informacje na temat ochrony prywatności dotyczące kont Google zarządzanych przez Family Link<ph name="END_LINK3" />.</translation> @@ -850,7 +844,6 @@ <translation id="8812260976093120287">Używając swojego urządzenia, na niektórych stronach możesz płacić za pomocą powyższych obsługiwanych aplikacji do płatności.</translation> <translation id="8816439037877937734"><ph name="APP_NAME" /> otworzy się w Chrome. Przechodząc dalej, akceptujesz <ph name="BEGIN_LINK1" />Warunki korzystania z usługi<ph name="END_LINK1" /> Chrome, <ph name="BEGIN_LINK2" />Informacje na temat ochrony prywatności<ph name="END_LINK2" /> i <ph name="BEGIN_LINK3" />Informacje na temat ochrony prywatności dotyczące kont Google zarządzanych przez Family Link<ph name="END_LINK3" />.</translation> <translation id="8820817407110198400">Zakładki</translation> -<translation id="883635517171802338">Blokuj próby pokazywania wyskakujących okienek na stronach (zalecane)</translation> <translation id="883806473910249246">Podczas pobierania treści wystąpił błąd.</translation> <translation id="8840953339110955557">Ta strona może różnić się od wersji online.</translation> <translation id="8847988622838149491">USB</translation>
diff --git a/chrome/android/java/strings/translations/android_chrome_strings_pt-BR.xtb b/chrome/android/java/strings/translations/android_chrome_strings_pt-BR.xtb index 6655434..aa49541 100644 --- a/chrome/android/java/strings/translations/android_chrome_strings_pt-BR.xtb +++ b/chrome/android/java/strings/translations/android_chrome_strings_pt-BR.xtb
@@ -111,7 +111,6 @@ <translation id="1993768208584545658">O <ph name="SITE" /> deseja realizar o pareamento</translation> <translation id="1994173015038366702">URL do site</translation> <translation id="200815880754187296"><ph name="KILOBYTES" /> KB de outros apps</translation> -<translation id="2015632741368427174">Redirecionamento bloqueado para este site:</translation> <translation id="2017836877785168846">Limpa o histórico e o preenchimento automático na barra de endereço.</translation> <translation id="2021896219286479412">Controles de site em tela cheia</translation> <translation id="2038563949887743358">Ativar "Ver versão para Web"</translation> @@ -183,7 +182,6 @@ <translation id="2650751991977523696">Fazer o download do arquivo novamente?</translation> <translation id="2653659639078652383">Enviar</translation> <translation id="2677748264148917807">Sair</translation> -<translation id="2693813674743028984">Ocultar armazenamento</translation> <translation id="2704606927547763573">Copiado</translation> <translation id="2707726405694321444">Atualizar página</translation> <translation id="2709516037105925701">Preenchimento automático</translation> @@ -209,7 +207,6 @@ <translation id="2956410042958133412">Esta conta é gerenciada por <ph name="PARENT_NAME_1" /> e <ph name="PARENT_NAME_2" />.</translation> <translation id="2960796085439532066">Copyright <ph name="YEAR" /> Google Inc. Todos os direitos reservados.</translation> <translation id="2962095958535813455">Alternada para guias anônimas</translation> -<translation id="2965945119655563012">Mostrar armazenamento</translation> <translation id="2968755619301702150">Leitor de certificados</translation> <translation id="2979025552038692506">Guia anônima selecionada</translation> <translation id="2989523299700148168">Visitados recentemente</translation> @@ -526,7 +523,6 @@ <translation id="5817918615728894473">Parear</translation> <translation id="583281660410589416">Desconhecido</translation> <translation id="5833984609253377421">Compartilhar link</translation> -<translation id="583891442612896534">Não foi possível acessar os servidores do Google para realizar a compactação de dados a partir do Google Chrome. Seu espaço para salvar dados pode estar limitado.</translation> <translation id="5854790677617711513">Com mais de 30 dias</translation> <translation id="5858741533101922242">O Chrome não pôde ativar o adaptador Bluetooth</translation> <translation id="5860033963881614850">Desativado</translation> @@ -588,7 +584,6 @@ <translation id="6395288395575013217">LINK</translation> <translation id="6404511346730675251">Editar favorito</translation> <translation id="6406506848690869874">Sincronizar</translation> -<translation id="6409731863280057959">Pop-ups</translation> <translation id="641643625718530986">Imprimir...</translation> <translation id="6416782512398055893"><ph name="MBS" /> MB transferido(s) por download</translation> <translation id="6433501201775827830">Escolha seu mecanismo de pesquisa</translation> @@ -838,7 +833,6 @@ <translation id="8676374126336081632">Limpar entrada</translation> <translation id="8687353297350450808">{N_BARS,plural, =1{Nível de intensidade do sinal: de # barra}one{Nível de intensidade do sinal: de # barra}other{Nível de intensidade do sinal: de # barras}}</translation> <translation id="869891660844655955">Validade</translation> -<translation id="8712637175834984815">Entendi</translation> <translation id="8719023831149562936">Não é possível enviar a guia atual</translation> <translation id="8725066075913043281">Tentar novamente</translation> <translation id="8728487861892616501">Ao usar este aplicativo, você concorda com os <ph name="BEGIN_LINK1" />Termos de Serviço<ph name="END_LINK1" /> e o <ph name="BEGIN_LINK2" />Aviso de Privacidade<ph name="END_LINK2" /> do Chrome, bem como o <ph name="BEGIN_LINK3" />Aviso de Privacidade de Contas do Google gerenciadas com o Family Link<ph name="END_LINK3" />.</translation> @@ -848,7 +842,6 @@ <translation id="8812260976093120287">Em alguns websites, é possível pagar no seu dispositivo com os apps de pagamento compatíveis acima.</translation> <translation id="8816439037877937734">O app <ph name="APP_NAME" /> será aberto no Chrome. Ao continuar, você concorda com os <ph name="BEGIN_LINK1" />Termos de Serviço<ph name="END_LINK1" /> e o <ph name="BEGIN_LINK2" />Aviso de Privacidade do Chrome<ph name="END_LINK2" />, assim como o <ph name="BEGIN_LINK3" />Aviso de Privacidade de Contas do Google gerenciadas com o Family Link<ph name="END_LINK3" />.</translation> <translation id="8820817407110198400">Favoritos</translation> -<translation id="883635517171802338">Impedir que sites exibam pop-ups (recomendado)</translation> <translation id="883806473910249246">Ocorreu um erro durante o download do conteúdo.</translation> <translation id="8840953339110955557">Esta página pode ser diferente da versão on-line.</translation> <translation id="8847988622838149491">USB</translation>
diff --git a/chrome/android/java/strings/translations/android_chrome_strings_pt-PT.xtb b/chrome/android/java/strings/translations/android_chrome_strings_pt-PT.xtb index cce6b31..3f8e01a 100644 --- a/chrome/android/java/strings/translations/android_chrome_strings_pt-PT.xtb +++ b/chrome/android/java/strings/translations/android_chrome_strings_pt-PT.xtb
@@ -111,7 +111,6 @@ <translation id="1993768208584545658"><ph name="SITE" /> pretende sincronizar</translation> <translation id="1994173015038366702">URL do site</translation> <translation id="200815880754187296"><ph name="KILOBYTES" /> KB de outras aplicações</translation> -<translation id="2015632741368427174">Redirecionamento bloqueado para o seguinte site:</translation> <translation id="2017836877785168846">Limpa o histórico e os preenchimentos automáticos da barra de endereço.</translation> <translation id="2021896219286479412">Controlos de site em ecrã int.</translation> <translation id="2038563949887743358">Ativar Pedir site para computador</translation> @@ -183,7 +182,6 @@ <translation id="2650751991977523696">Pretende transferir o ficheiro novamente?</translation> <translation id="2653659639078652383">Submeter</translation> <translation id="2677748264148917807">Sair</translation> -<translation id="2693813674743028984">Ocultar armazenamento</translation> <translation id="2704606927547763573">Copiado</translation> <translation id="2707726405694321444">Atualizar página</translation> <translation id="2709516037105925701">Preenchimento automático</translation> @@ -209,7 +207,6 @@ <translation id="2956410042958133412">Esta conta é gerida por <ph name="PARENT_NAME_1" /> e por <ph name="PARENT_NAME_2" />.</translation> <translation id="2960796085439532066">Copyright <ph name="YEAR" /> Google Inc. Todos os direitos reservados.</translation> <translation id="2962095958535813455">Mudado para separadores de navegação anónima</translation> -<translation id="2965945119655563012">Mostrar armazenamento</translation> <translation id="2968755619301702150">Visualizador de certificados</translation> <translation id="2979025552038692506">Separador de navegação anónima selecionado</translation> <translation id="2989523299700148168">Visitados recentemente</translation> @@ -527,7 +524,6 @@ <translation id="5817918615728894473">Sincronizar</translation> <translation id="583281660410589416">Desconhecido</translation> <translation id="5833984609253377421">Partilhar link</translation> -<translation id="583891442612896534">O Chrome não consegue comunicar com os servidores da Google para a compressão de dados. A poupança de dados pode ser limitada.</translation> <translation id="5854790677617711513">Com mais de 30 dias</translation> <translation id="5858741533101922242">O Chrome não consegue ativar o adaptador Bluetooth</translation> <translation id="5860033963881614850">Desativado</translation> @@ -589,7 +585,6 @@ <translation id="6395288395575013217">LINK</translation> <translation id="6404511346730675251">Editar marcador</translation> <translation id="6406506848690869874">Sincronização</translation> -<translation id="6409731863280057959">Pop-ups</translation> <translation id="641643625718530986">Imprimir…</translation> <translation id="6416782512398055893"><ph name="MBS" /> MB transferido(s)</translation> <translation id="6433501201775827830">Escolher o motor de pesquisa</translation> @@ -840,7 +835,6 @@ <translation id="8676374126336081632">Limpar texto</translation> <translation id="8687353297350450808">{N_BARS,plural, =1{Nível de intensidade do sinal: # barra}other{Nível de intensidade do sinal: # barras}}</translation> <translation id="869891660844655955">Data de expiração</translation> -<translation id="8712637175834984815">Entendido</translation> <translation id="8719023831149562936">Impossível transmitir o separador atual</translation> <translation id="8725066075913043281">Tentar novamente</translation> <translation id="8728487861892616501">Ao utilizar esta aplicação, está a concordar com os <ph name="BEGIN_LINK1" />Termos de Utilização<ph name="END_LINK1" /> e o <ph name="BEGIN_LINK2" />Aviso de Privacidade<ph name="END_LINK2" /> do Chrome, bem como com o <ph name="BEGIN_LINK3" />Aviso de Privacidade para Contas Google Geridas com o Family Link<ph name="END_LINK3" />.</translation> @@ -850,7 +844,6 @@ <translation id="8812260976093120287">Nalguns Sites, é possível pagar com as aplicações de pagamento compatíveis acima no dispositivo.</translation> <translation id="8816439037877937734">A aplicação <ph name="APP_NAME" /> será aberta no Chrome. Ao continuar, aceita os <ph name="BEGIN_LINK1" />Termos de Utilização<ph name="END_LINK1" /> e o <ph name="BEGIN_LINK2" />Aviso de Privacidade<ph name="END_LINK2" /> do Chrome, bem como o <ph name="BEGIN_LINK3" />Aviso de Privacidade para Contas Google Geridas com o Family Link<ph name="END_LINK3" />.</translation> <translation id="8820817407110198400">Marcadores</translation> -<translation id="883635517171802338">Impedir a apresentação de pop-ups por parte dos sites (recomendado)</translation> <translation id="883806473910249246">Ocorreu um erro ao transferir o conteúdo.</translation> <translation id="8840953339110955557">Esta página pode ser diferente da versão online.</translation> <translation id="8847988622838149491">USB</translation>
diff --git a/chrome/android/java/strings/translations/android_chrome_strings_ro.xtb b/chrome/android/java/strings/translations/android_chrome_strings_ro.xtb index be6e19b..eb21140a 100644 --- a/chrome/android/java/strings/translations/android_chrome_strings_ro.xtb +++ b/chrome/android/java/strings/translations/android_chrome_strings_ro.xtb
@@ -111,7 +111,6 @@ <translation id="1993768208584545658"><ph name="SITE" /> dorește să se asocieze</translation> <translation id="1994173015038366702">Adresa URL a site-ului</translation> <translation id="200815880754187296"><ph name="KILOBYTES" /> KB pentru alte aplicații</translation> -<translation id="2015632741368427174">S-a blocat redirecționarea către site-ul:</translation> <translation id="2017836877785168846">Șterge istoricul și completările automate din bara de adrese.</translation> <translation id="2021896219286479412">Comenzi site în ecran complet</translation> <translation id="2038563949887743358">Activează opțiunea Versiune site pentru desktop</translation> @@ -183,7 +182,6 @@ <translation id="2650751991977523696">Descarci din nou fișierul?</translation> <translation id="2653659639078652383">Trimite</translation> <translation id="2677748264148917807">Ieși</translation> -<translation id="2693813674743028984">Ascunde informațiile despre stocare</translation> <translation id="2704606927547763573">Copiat</translation> <translation id="2707726405694321444">Actualizează pagina</translation> <translation id="2709516037105925701">Completare automată</translation> @@ -209,7 +207,6 @@ <translation id="2956410042958133412">Acest cont este gestionat de <ph name="PARENT_NAME_1" /> și de <ph name="PARENT_NAME_2" />.</translation> <translation id="2960796085439532066">Copyright <ph name="YEAR" /> Google Inc. Toate drepturile rezervate.</translation> <translation id="2962095958535813455">Ai comutat la filele incognito</translation> -<translation id="2965945119655563012">Afișează informațiile despre stocare</translation> <translation id="2968755619301702150">Vizualizator de certificate</translation> <translation id="2979025552038692506">Fila incognito selectată</translation> <translation id="2989523299700148168">Accesate recent</translation> @@ -527,7 +524,6 @@ <translation id="5817918615728894473">Asociază</translation> <translation id="583281660410589416">Necunoscut</translation> <translation id="5833984609253377421">Trimite linkul</translation> -<translation id="583891442612896534">Chrome nu poate să contacteze serverele Google pentru comprimarea datelor. Economiile de date pot fi limitate.</translation> <translation id="5854790677617711513">Mai vechi de 30 de zile</translation> <translation id="5858741533101922242">Chrome nu poate activa adaptorul Bluetooth</translation> <translation id="5860033963881614850">Dezactivat</translation> @@ -589,7 +585,6 @@ <translation id="6395288395575013217">LINK</translation> <translation id="6404511346730675251">Modificați marcajul</translation> <translation id="6406506848690869874">Sincronizare</translation> -<translation id="6409731863280057959">Ferestre pop-up</translation> <translation id="641643625718530986">Printați...</translation> <translation id="6416782512398055893"><ph name="MBS" /> MB descărcați</translation> <translation id="6433501201775827830">Alege motorul de căutare</translation> @@ -840,7 +835,6 @@ <translation id="8676374126336081632">Șterge textul introdus</translation> <translation id="8687353297350450808">{N_BARS,plural, =1{Nivelul puterii semnalului: # bară}few{Nivelul puterii semnalului: # bare}other{Nivelul puterii semnalului: # de bare}}</translation> <translation id="869891660844655955">Dată de expirare</translation> -<translation id="8712637175834984815">Am înțeles</translation> <translation id="8719023831149562936">Fila actuală nu poate fi transmisă</translation> <translation id="8725066075913043281">Încearcă din nou</translation> <translation id="8728487861892616501">Dacă folosești aplicația, accepți <ph name="BEGIN_LINK1" />Termenii și condițiile<ph name="END_LINK1" /> și <ph name="BEGIN_LINK2" />Notificarea privind confidențialitatea<ph name="END_LINK2" /> Chrome și <ph name="BEGIN_LINK3" />Notificarea privind confidențialitatea pentru Conturile Google gestionate cu Family Link<ph name="END_LINK3" />.</translation> @@ -850,7 +844,6 @@ <translation id="8812260976093120287">Pe unele site-uri, poți plăti folosind aplicațiile acceptate pentru plăți de mai sus de pe dispozitiv.</translation> <translation id="8816439037877937734"><ph name="APP_NAME" /> se va deschide în Chrome. Continuând, ești de acord cu <ph name="BEGIN_LINK1" />Termenii și condițiile<ph name="END_LINK1" /> și <ph name="BEGIN_LINK2" />Notificarea privind confidențialitatea<ph name="END_LINK2" /> Chrome și cu <ph name="BEGIN_LINK3" />Notificarea privind confidențialitatea pentru Conturile Google gestionate cu Family<ph name="END_LINK3" />.</translation> <translation id="8820817407110198400">Marcaje</translation> -<translation id="883635517171802338">Blochează afișarea ferestrelor pop-up de către site-uri (recomandat)</translation> <translation id="883806473910249246">A apărut o eroare la descărcarea conținutului.</translation> <translation id="8840953339110955557">Această pagină poate fi diferită de versiunea online.</translation> <translation id="8847988622838149491">USB</translation>
diff --git a/chrome/android/java/strings/translations/android_chrome_strings_ru.xtb b/chrome/android/java/strings/translations/android_chrome_strings_ru.xtb index 8742406..c883e50 100644 --- a/chrome/android/java/strings/translations/android_chrome_strings_ru.xtb +++ b/chrome/android/java/strings/translations/android_chrome_strings_ru.xtb
@@ -111,7 +111,6 @@ <translation id="1993768208584545658">Сайт <ph name="SITE" /> запрашивает подключение</translation> <translation id="1994173015038366702">Адрес сайта</translation> <translation id="200815880754187296">Другие приложения: <ph name="KILOBYTES" /> КБ</translation> -<translation id="2015632741368427174">Заблокирована попытка переадресации на этот сайт:</translation> <translation id="2017836877785168846">Удаление истории и вариантов автозаполнения в адресной строке</translation> <translation id="2021896219286479412">Настройки полноэкранного режима</translation> <translation id="2038563949887743358">Включить полную версию сайта</translation> @@ -183,7 +182,6 @@ <translation id="2650751991977523696">Скачать файл ещё раз?</translation> <translation id="2653659639078652383">Отправить</translation> <translation id="2677748264148917807">Закрыть</translation> -<translation id="2693813674743028984">Скрыть сведения о хранилище</translation> <translation id="2704606927547763573">Скопировано</translation> <translation id="2707726405694321444">Обновить страницу</translation> <translation id="2709516037105925701">Автозаполнение</translation> @@ -209,7 +207,6 @@ <translation id="2956410042958133412">Этим аккаунтом управляют <ph name="PARENT_NAME_1" /> и <ph name="PARENT_NAME_2" />.</translation> <translation id="2960796085439532066">© Google Inc., <ph name="YEAR" />. Все права защищены.</translation> <translation id="2962095958535813455">Переключено на вкладки в режиме инкогнито</translation> -<translation id="2965945119655563012">Показать сведения о хранилище</translation> <translation id="2968755619301702150">Просмотр сертификатов</translation> <translation id="2979025552038692506">Выбранная вкладка инкогнито</translation> <translation id="2989523299700148168">Недавние</translation> @@ -527,7 +524,6 @@ <translation id="5817918615728894473">Подключить</translation> <translation id="583281660410589416">Неизвестно</translation> <translation id="5833984609253377421">Отправить ссылку</translation> -<translation id="583891442612896534">Не удалось подключиться к серверам Google для сжатия данных. Объем трафика может увеличиться.</translation> <translation id="5854790677617711513">Сохраненные более 30 дней назад</translation> <translation id="5858741533101922242">Не удалось включить адаптер Bluetooth</translation> <translation id="5860033963881614850">Выкл.</translation> @@ -589,7 +585,6 @@ <translation id="6395288395575013217">ССЫЛКА</translation> <translation id="6404511346730675251">Изменить закладку</translation> <translation id="6406506848690869874">Синхронизация...</translation> -<translation id="6409731863280057959">Всплывающие окна</translation> <translation id="641643625718530986">Печать</translation> <translation id="6416782512398055893">Скачано <ph name="MBS" /> МБ</translation> <translation id="6433501201775827830">Выберите поисковую систему</translation> @@ -840,7 +835,6 @@ <translation id="8676374126336081632">Очистить</translation> <translation id="8687353297350450808">{N_BARS,plural, =1{Уровень сигнала: # линия}one{Уровень сигнала: # линия}few{Уровень сигнала: # линии}many{Уровень сигнала: # линий}other{Уровень сигнала: # линии}}</translation> <translation id="869891660844655955">Срок действия</translation> -<translation id="8712637175834984815">Готово</translation> <translation id="8719023831149562936">Не удалось передать текущую вкладку</translation> <translation id="8725066075913043281">Повторить попытку</translation> <translation id="8728487861892616501">Используя это приложение, вы соглашаетесь с <ph name="BEGIN_LINK1" />Условиями использования<ph name="END_LINK1" /> и <ph name="BEGIN_LINK2" />Примечанием о конфиденциальности<ph name="END_LINK2" /> Chrome, а также с <ph name="BEGIN_LINK3" />Примечанием о конфиденциальности для аккаунтов Google, управляемых с помощью Family Link<ph name="END_LINK3" />.</translation> @@ -850,7 +844,6 @@ <translation id="8812260976093120287">На некоторых сайтах вы можете совершать платежи со своего устройства с помощью перечисленных выше приложений.</translation> <translation id="8816439037877937734">Приложение "<ph name="APP_NAME" />" откроется в Chrome. Продолжая, вы соглашаетесь с <ph name="BEGIN_LINK1" />Условиями использования<ph name="END_LINK1" /> и <ph name="BEGIN_LINK2" />Примечанием о конфиденциальности<ph name="END_LINK2" /> Chrome, а также с <ph name="BEGIN_LINK3" />Примечанием о конфиденциальности для аккаунтов Google, управляемых с помощью Family Link<ph name="END_LINK3" />.</translation> <translation id="8820817407110198400">Закладки</translation> -<translation id="883635517171802338">Блокировать всплывающие окна на сайтах (рекомендуется)</translation> <translation id="883806473910249246">При скачивании контента произошла ошибка.</translation> <translation id="8840953339110955557">Страница может отличаться от онлайн-версии.</translation> <translation id="8847988622838149491">USB</translation>
diff --git a/chrome/android/java/strings/translations/android_chrome_strings_sk.xtb b/chrome/android/java/strings/translations/android_chrome_strings_sk.xtb index cb2a2c4..47ad8e5 100644 --- a/chrome/android/java/strings/translations/android_chrome_strings_sk.xtb +++ b/chrome/android/java/strings/translations/android_chrome_strings_sk.xtb
@@ -111,7 +111,6 @@ <translation id="1993768208584545658"><ph name="SITE" /> žiada o spárovanie</translation> <translation id="1994173015038366702">Webová adresa stránok</translation> <translation id="200815880754187296">Ďalšie aplikácie: <ph name="KILOBYTES" /> KB</translation> -<translation id="2015632741368427174">Presmerovanie bolo zablokované a upravené na web:</translation> <translation id="2017836877785168846">Vymaže históriu a automaticky doplňované výrazy v paneli s adresou.</translation> <translation id="2021896219286479412">Ovládanie webu na celú obrazovku</translation> <translation id="2038563949887743358">Zapnutie žiadosti o verziu stránok pre počítače</translation> @@ -183,7 +182,6 @@ <translation id="2650751991977523696">Stiahnuť súbor znova?</translation> <translation id="2653659639078652383">Odoslať</translation> <translation id="2677748264148917807">Opustiť</translation> -<translation id="2693813674743028984">Skryte úložisko</translation> <translation id="2704606927547763573">Skopírované</translation> <translation id="2707726405694321444">Obnoviť stránku</translation> <translation id="2709516037105925701">Automatické dopĺňanie</translation> @@ -209,7 +207,6 @@ <translation id="2956410042958133412">Tento účet je spravovaný používateľmi <ph name="PARENT_NAME_1" /> a <ph name="PARENT_NAME_2" />.</translation> <translation id="2960796085439532066">Copyright <ph name="YEAR" /> Google Inc. Všetky práva vyhradené.</translation> <translation id="2962095958535813455">Prepnuté na karty inkognito</translation> -<translation id="2965945119655563012">Zobrazte úložisko</translation> <translation id="2968755619301702150">Zobrazovač certifikátov</translation> <translation id="2979025552038692506">Vybratá karta inkognito</translation> <translation id="2989523299700148168">Nedávno navštívené</translation> @@ -527,7 +524,6 @@ <translation id="5817918615728894473">Párovať</translation> <translation id="583281660410589416">Neznáme</translation> <translation id="5833984609253377421">Zdieľať odkaz</translation> -<translation id="583891442612896534">Prehliadaču Chrome sa nepodarilo nadviazať spojenie so servermi Google s cieľom vykonať kompresiu údajov. Ukladanie vašich údajov môže byť obmedzené.</translation> <translation id="5854790677617711513">Staršie ako 30 dní</translation> <translation id="5858741533101922242">Chrome nedokáže zapnúť adaptér Bluetooth</translation> <translation id="5860033963881614850">Vypnuté</translation> @@ -589,7 +585,6 @@ <translation id="6395288395575013217">ODKAZ</translation> <translation id="6404511346730675251">Upraviť záložku</translation> <translation id="6406506848690869874">Synchronizácia</translation> -<translation id="6409731863280057959">Kontextové okná</translation> <translation id="641643625718530986">Tlačiť...</translation> <translation id="6416782512398055893">Stiahnuté: <ph name="MBS" /> MB</translation> <translation id="6433501201775827830">Výber vyhľadávača</translation> @@ -838,7 +833,6 @@ <translation id="8676374126336081632">Vymazať vstup</translation> <translation id="8687353297350450808">{N_BARS,plural, =1{Úroveň sily signálu: # čiarka}few{Úroveň sily signálu: # čiarky}many{Úroveň sily signálu: # čiarky}other{Úroveň sily signálu: # čiarok}}</translation> <translation id="869891660844655955">Koniec platnosti</translation> -<translation id="8712637175834984815">Dobre</translation> <translation id="8719023831149562936">Aktuálna karta sa nedá preniesť</translation> <translation id="8725066075913043281">Skúsiť znova</translation> <translation id="8728487861892616501">Používaním tejto aplikácie vyjadrujete súhlas so <ph name="BEGIN_LINK1" />zmluvnými podmienkami<ph name="END_LINK1" /> prehliadača Chrome a <ph name="BEGIN_LINK2" />oznámením o ochrane súkromia<ph name="END_LINK2" />, ako aj <ph name="BEGIN_LINK3" />oznámením o ochrane súkromia pre účty Google spravované pomocou aplikácie Family Link<ph name="END_LINK3" />.</translation> @@ -848,7 +842,6 @@ <translation id="8812260976093120287">Na niektorých weboch môžete platiť pomocou podporovaných platobných aplikácií na zariadení.</translation> <translation id="8816439037877937734"><ph name="APP_NAME" /> sa otvorí v Chrome. Pokračovaním vyjadrujete súhlas so <ph name="BEGIN_LINK1" />zmluvnými podmienkami<ph name="END_LINK1" /> a <ph name="BEGIN_LINK2" />oznámením o ochrane súkromia<ph name="END_LINK2" /> Chromu, ako aj <ph name="BEGIN_LINK3" />oznámením o ochrane súkromia pre účty Google spravované pomocou aplikácie Family Link<ph name="END_LINK3" />.</translation> <translation id="8820817407110198400">Záložky</translation> -<translation id="883635517171802338">Blokovať na weboch zobrazovanie kontextových okien (odporúčané)</translation> <translation id="883806473910249246">Pri sťahovaní obsahu sa vyskytla chyba.</translation> <translation id="8840953339110955557">Táto stránka sa môže líšiť od online verzie.</translation> <translation id="8847988622838149491">USB</translation>
diff --git a/chrome/android/java/strings/translations/android_chrome_strings_sl.xtb b/chrome/android/java/strings/translations/android_chrome_strings_sl.xtb index ee8984d..0a623bf 100644 --- a/chrome/android/java/strings/translations/android_chrome_strings_sl.xtb +++ b/chrome/android/java/strings/translations/android_chrome_strings_sl.xtb
@@ -111,7 +111,6 @@ <translation id="1993768208584545658"><ph name="SITE" /> želi opraviti seznanitev</translation> <translation id="1994173015038366702">URL spletnega mesta</translation> <translation id="200815880754187296"><ph name="KILOBYTES" /> KB drugih aplikacij</translation> -<translation id="2015632741368427174">Preusmeritev na spletno mesto je blokirana:</translation> <translation id="2017836877785168846">Izbriše zgodovino in samodokončanja v naslovni vrstici.</translation> <translation id="2021896219286479412">Kontrol. za mesto v celo. načinu</translation> <translation id="2038563949887743358">Vklop možnosti »Zahteva za namizno spletno mesto«</translation> @@ -183,7 +182,6 @@ <translation id="2650751991977523696">Želite znova prenesti datoteko?</translation> <translation id="2653659639078652383">Pošlji</translation> <translation id="2677748264148917807">Zapusti</translation> -<translation id="2693813674743028984">Skrij shrambo</translation> <translation id="2704606927547763573">Kopirano</translation> <translation id="2707726405694321444">Osveži stran</translation> <translation id="2709516037105925701">Samodejno izpolnjevanje</translation> @@ -209,7 +207,6 @@ <translation id="2956410042958133412">Ta računa upravljata <ph name="PARENT_NAME_1" /> in <ph name="PARENT_NAME_2" />.</translation> <translation id="2960796085439532066">Copyright <ph name="YEAR" /> Google Inc. Vse pravice pridržane.</translation> <translation id="2962095958535813455">Preklopljeno na zavihke brez beleženja zgodovine</translation> -<translation id="2965945119655563012">Prikaži shrambo</translation> <translation id="2968755619301702150">Pregledovalnik potrdil</translation> <translation id="2979025552038692506">Izbrani zavihek brez beleženja zgodovine</translation> <translation id="2989523299700148168">Nedavno obiskano</translation> @@ -527,7 +524,6 @@ <translation id="5817918615728894473">Seznani</translation> <translation id="583281660410589416">Neznano</translation> <translation id="5833984609253377421">Deli povezavo z drugimi</translation> -<translation id="583891442612896534">Chrome ne more dostopati do Googlovih strežnikov za stiskanje podatkov. Prihranek podatkov bo morda omejen.</translation> <translation id="5854790677617711513">Starejše od 30 dni</translation> <translation id="5858741533101922242">Chrome ne more vklopiti vmesnika za Bluetooth</translation> <translation id="5860033963881614850">Izklopljeno</translation> @@ -589,7 +585,6 @@ <translation id="6395288395575013217">POVEZAVA</translation> <translation id="6404511346730675251">Uredi zaznamek</translation> <translation id="6406506848690869874">Sinhronizacija</translation> -<translation id="6409731863280057959">Pojavna okna</translation> <translation id="641643625718530986">Tiskanje …</translation> <translation id="6416782512398055893">Preneseno <ph name="MBS" /> MB</translation> <translation id="6433501201775827830">Izbira iskalnika</translation> @@ -840,7 +835,6 @@ <translation id="8676374126336081632">Izbriši vnos</translation> <translation id="8687353297350450808">{N_BARS,plural, =1{Moč signala: # črtica}one{Moč signala: # črtica}two{Moč signala: # črtici}few{Moč signala: # črtice}other{Moč signala: # črtic}}</translation> <translation id="869891660844655955">Datum izteka</translation> -<translation id="8712637175834984815">Razumem</translation> <translation id="8719023831149562936">Trenutnega zavihka ni mogoče prenesti</translation> <translation id="8725066075913043281">Poskusite znova</translation> <translation id="8728487861892616501">Če uporabljate to aplikacijo, se strinjate s Chromovimi <ph name="BEGIN_LINK1" />pogoji storitve<ph name="END_LINK1" /> in <ph name="BEGIN_LINK2" />obvestilom o zasebnosti<ph name="END_LINK2" /> ter <ph name="BEGIN_LINK3" />obvestilom o zasebnosti za Google Račune, upravljane s Family Linkom<ph name="END_LINK3" />.</translation> @@ -850,7 +844,6 @@ <translation id="8812260976093120287">Na nekaterih spletnih mestih je mogoče plačevati z zgoraj navedenimi podprtimi aplikacijami v napravi.</translation> <translation id="8816439037877937734">Aplikacija <ph name="APP_NAME" /> se bo odprla v Chromu. Če nadaljujete, se strinjate s Chromovimi <ph name="BEGIN_LINK1" />pogoji storitve<ph name="END_LINK1" /> in <ph name="BEGIN_LINK2" />pravilnikom o zasebnosti<ph name="END_LINK2" /> ter <ph name="BEGIN_LINK3" />obvestilom o zasebnosti za Google Račune, upravljane s Family Linkom<ph name="END_LINK3" />.</translation> <translation id="8820817407110198400">Zaznamki</translation> -<translation id="883635517171802338">Spletnim mestom prepreči prikazovanje pojavnih oken (priporočeno)</translation> <translation id="883806473910249246">Pri prenosu vsebine je prišlo do napake.</translation> <translation id="8840953339110955557">Ta stran se morda razlikuje od spletne različice.</translation> <translation id="8847988622838149491">USB</translation>
diff --git a/chrome/android/java/strings/translations/android_chrome_strings_sr.xtb b/chrome/android/java/strings/translations/android_chrome_strings_sr.xtb index 911c7e55..f08d1dd 100644 --- a/chrome/android/java/strings/translations/android_chrome_strings_sr.xtb +++ b/chrome/android/java/strings/translations/android_chrome_strings_sr.xtb
@@ -111,7 +111,6 @@ <translation id="1993768208584545658"><ph name="SITE" /> жели да се упари</translation> <translation id="1994173015038366702">URL сајта</translation> <translation id="200815880754187296"><ph name="KILOBYTES" /> kB – друге апликације</translation> -<translation id="2015632741368427174">Блокирано је преусмеравање на овај сајт:</translation> <translation id="2017836877785168846">Брише историју и аутоматска довршавања у траци за адресу.</translation> <translation id="2021896219286479412">Контроле сајта на целом екрану</translation> <translation id="2038563949887743358">Укључи захтевање верзије сајта за рачунаре</translation> @@ -183,7 +182,6 @@ <translation id="2650751991977523696">Преузимате датотеку поново?</translation> <translation id="2653659639078652383">Пошаљи</translation> <translation id="2677748264148917807">Затвори</translation> -<translation id="2693813674743028984">Сакриј меморијски простор</translation> <translation id="2704606927547763573">Копирано</translation> <translation id="2707726405694321444">Освежи страницу</translation> <translation id="2709516037105925701">Аутоматско попуњавање</translation> @@ -209,7 +207,6 @@ <translation id="2956410042958133412">Овим налогом управљају <ph name="PARENT_NAME_1" /> и <ph name="PARENT_NAME_2" />.</translation> <translation id="2960796085439532066">Ауторска права <ph name="YEAR" />. Google Inc. Сва права задржана.</translation> <translation id="2962095958535813455">Пребацили сте на картице без архивирања</translation> -<translation id="2965945119655563012">Прикажи меморијски простор</translation> <translation id="2968755619301702150">Приказивач сертификата</translation> <translation id="2979025552038692506">Изабране картице без архивирањa</translation> <translation id="2989523299700148168">Недавно посећено</translation> @@ -527,7 +524,6 @@ <translation id="5817918615728894473">Упари</translation> <translation id="583281660410589416">Непознато</translation> <translation id="5833984609253377421">Дели линк</translation> -<translation id="583891442612896534">Chrome није успео да контактира Google сервере ради компримовања података. Уштеда података може да буде ограничена.</translation> <translation id="5854790677617711513">Старије од 30 дана</translation> <translation id="5858741533101922242">Chrome не може да укључи Bluetooth адаптер</translation> <translation id="5860033963881614850">Искључено</translation> @@ -589,7 +585,6 @@ <translation id="6395288395575013217">ЛИНК</translation> <translation id="6404511346730675251">Измена обележивача</translation> <translation id="6406506848690869874">Синхронизација</translation> -<translation id="6409731863280057959">Искачући прозори</translation> <translation id="641643625718530986">Штампај...</translation> <translation id="6416782512398055893">Преузели сте <ph name="MBS" /> MB</translation> <translation id="6433501201775827830">Изаберите претраживач</translation> @@ -840,7 +835,6 @@ <translation id="8676374126336081632">Обриши унос</translation> <translation id="8687353297350450808">{N_BARS,plural, =1{Ниво јачине сигнала: # црта}one{Ниво јачине сигнала: # црта}few{Ниво јачине сигнала: # црте}other{Ниво јачине сигнала: # црта}}</translation> <translation id="869891660844655955">Датум истека</translation> -<translation id="8712637175834984815">Важи</translation> <translation id="8719023831149562936">Није могуће пребацити актуелну картицу</translation> <translation id="8725066075913043281">Пробајте поново</translation> <translation id="8728487861892616501">Ако користите ову апликацију, прихватате Chrome <ph name="BEGIN_LINK1" />услове коришћења услуге<ph name="END_LINK1" /> и <ph name="BEGIN_LINK2" />обавештење о приватности<ph name="END_LINK2" />, као и <ph name="BEGIN_LINK3" />обавештење о приватности за Google налоге којима се управља помоћу Family Link-а<ph name="END_LINK3" />.</translation> @@ -850,7 +844,6 @@ <translation id="8812260976093120287">На неким веб-сајтовима можете да плаћате помоћу претходно наведених подржаних апликација за плаћање на уређају.</translation> <translation id="8816439037877937734"><ph name="APP_NAME" /> ће се отворити у Chrome-у. Ако наставите, прихватате Chrome <ph name="BEGIN_LINK1" />услове коришћења услуге<ph name="END_LINK1" /> и <ph name="BEGIN_LINK2" />обавештење о приватности<ph name="END_LINK2" />, као и <ph name="BEGIN_LINK3" />обавештење о приватности за Google налоге којима се управља помоћу Family Link-а<ph name="END_LINK3" />.</translation> <translation id="8820817407110198400">Обележивачи</translation> -<translation id="883635517171802338">Блокирај сајтове тако да не приказују искачуће прозоре (препоручено)</translation> <translation id="883806473910249246">Дошло је до грешке при преузимању садржаја.</translation> <translation id="8840953339110955557">Ова страница може да се разликује од онлајн верзије.</translation> <translation id="8847988622838149491">USB</translation>
diff --git a/chrome/android/java/strings/translations/android_chrome_strings_sv.xtb b/chrome/android/java/strings/translations/android_chrome_strings_sv.xtb index 703b6fe..cd3b46f 100644 --- a/chrome/android/java/strings/translations/android_chrome_strings_sv.xtb +++ b/chrome/android/java/strings/translations/android_chrome_strings_sv.xtb
@@ -111,7 +111,6 @@ <translation id="1993768208584545658"><ph name="SITE" /> vill kopplas</translation> <translation id="1994173015038366702">Webbadress</translation> <translation id="200815880754187296"><ph name="KILOBYTES" /> kB används av övriga appar</translation> -<translation id="2015632741368427174">Omdirigering till den här sidan blockerades:</translation> <translation id="2017836877785168846">Rensar historik och autoslutföranden i adressfältet.</translation> <translation id="2021896219286479412">Helskärmskontroller på webbsidan</translation> <translation id="2038563949887743358">Aktivera begäran av skrivbordsversion</translation> @@ -183,7 +182,6 @@ <translation id="2650751991977523696">Vill du ladda ned filen igen?</translation> <translation id="2653659639078652383">Skicka</translation> <translation id="2677748264148917807">Lämna</translation> -<translation id="2693813674743028984">Dölj lagringsutrymme</translation> <translation id="2704606927547763573">Kopierat</translation> <translation id="2707726405694321444">Uppdatera sidan</translation> <translation id="2709516037105925701">Autofyll</translation> @@ -209,7 +207,6 @@ <translation id="2956410042958133412">Det här kontot hanteras av <ph name="PARENT_NAME_1" /> och <ph name="PARENT_NAME_2" />.</translation> <translation id="2960796085439532066">Upphovsrätt <ph name="YEAR" /> Google Inc. Med ensamrätt.</translation> <translation id="2962095958535813455">Byter till inkognitoflikar</translation> -<translation id="2965945119655563012">Visa lagringsutrymme</translation> <translation id="2968755619301702150">Certifikatvisare</translation> <translation id="2979025552038692506">Vald inkognitoflik</translation> <translation id="2989523299700148168">Nyligen besökta</translation> @@ -527,7 +524,6 @@ <translation id="5817918615728894473">Koppla</translation> <translation id="583281660410589416">Okänd</translation> <translation id="5833984609253377421">Dela länk</translation> -<translation id="583891442612896534">Chrome kan inte nå Googles servrar för datakomprimeringen. Du kanske inte sparar data i någon större utsträckning.</translation> <translation id="5854790677617711513">Äldre än 30 dagar</translation> <translation id="5858741533101922242">Det gick inte att aktivera Bluetooth-adaptern i Chrome</translation> <translation id="5860033963881614850">Av</translation> @@ -589,7 +585,6 @@ <translation id="6395288395575013217">LÄNK</translation> <translation id="6404511346730675251">Redigera bokmärke</translation> <translation id="6406506848690869874">Synkronisera</translation> -<translation id="6409731863280057959">Popup-fönster</translation> <translation id="641643625718530986">Skriv ut …</translation> <translation id="6416782512398055893"><ph name="MBS" /> MB har laddats ned</translation> <translation id="6433501201775827830">Välj sökmotor</translation> @@ -840,7 +835,6 @@ <translation id="8676374126336081632">Radera inmatning</translation> <translation id="8687353297350450808">{N_BARS,plural, =1{Signalstyrka: # streck}other{Signalstyrka: # streck}}</translation> <translation id="869891660844655955">Utgångsdatum</translation> -<translation id="8712637175834984815">Uppfattat</translation> <translation id="8719023831149562936">Den aktuella fliken kan inte överföras</translation> <translation id="8725066075913043281">Försök igen</translation> <translation id="8728487861892616501">Genom att fortsätta att använda programmet godkänner du Chromes <ph name="BEGIN_LINK1" />användarvillkor<ph name="END_LINK1" />, <ph name="BEGIN_LINK2" />sekretessmeddelande<ph name="END_LINK2" /> och <ph name="BEGIN_LINK3" />sekretessmeddelandet för Google-konton som hanteras via Family Link<ph name="END_LINK3" />.</translation> @@ -850,7 +844,6 @@ <translation id="8812260976093120287">På vissa webbplatser kan du betala med ovanstående betalningsappar som stöds på enheten.</translation> <translation id="8816439037877937734"><ph name="APP_NAME" /> öppnas i Chrome. Genom att fortsätta godkänner du Chromes <ph name="BEGIN_LINK1" />användarvillkor<ph name="END_LINK1" /> och <ph name="BEGIN_LINK2" />sekretesspolicy<ph name="END_LINK2" /> samt <ph name="BEGIN_LINK3" />sekretessmeddelandet för Google-konton som hanteras via Family Link<ph name="END_LINK3" />.</translation> <translation id="8820817407110198400">Bokmärken</translation> -<translation id="883635517171802338">Blockera webbplatser från att visa popup-fönster (rekommenderas)</translation> <translation id="883806473910249246">Ett fel uppstod när innehållet skulle laddas ned.</translation> <translation id="8840953339110955557">Sidan kan skilja sig från onlineversionen.</translation> <translation id="8847988622838149491">USB</translation>
diff --git a/chrome/android/java/strings/translations/android_chrome_strings_sw.xtb b/chrome/android/java/strings/translations/android_chrome_strings_sw.xtb index d10f687..d59101b 100644 --- a/chrome/android/java/strings/translations/android_chrome_strings_sw.xtb +++ b/chrome/android/java/strings/translations/android_chrome_strings_sw.xtb
@@ -111,7 +111,6 @@ <translation id="1993768208584545658"><ph name="SITE" /> inataka kuoanisha</translation> <translation id="1994173015038366702">URL ya Tovuti</translation> <translation id="200815880754187296">Programu nyingine za KB <ph name="KILOBYTES" /></translation> -<translation id="2015632741368427174">URL ya kuelekeza kwingine imezuiwa katika tovuti:</translation> <translation id="2017836877785168846">Hufuta historia na ujazaji kiotomatiki katika sehemu ya anwani.</translation> <translation id="2021896219286479412">Vidhibiti vya tovuti vya skrini nzima</translation> <translation id="2038563949887743358">Washa Omba Tovuti ya Eneo-kazi</translation> @@ -183,7 +182,6 @@ <translation id="2650751991977523696">Ungependa kupakua faili tena?</translation> <translation id="2653659639078652383">Wasilisha</translation> <translation id="2677748264148917807">Ondoka</translation> -<translation id="2693813674743028984">Ficha hifadhi</translation> <translation id="2704606927547763573">Imenakiliwa</translation> <translation id="2707726405694321444">Onyesha upya ukurasa</translation> <translation id="2709516037105925701">Kujaza Kiotomatiki</translation> @@ -209,7 +207,6 @@ <translation id="2956410042958133412">Akaunti hii inadhibitiwa na <ph name="PARENT_NAME_1" /> na <ph name="PARENT_NAME_2" />.</translation> <translation id="2960796085439532066">Hakimiliki <ph name="YEAR" /> Google Inc. Haki zote zimehifadhiwa.</translation> <translation id="2962095958535813455">Inabadilisha kwenda vichupo fiche</translation> -<translation id="2965945119655563012">Onyesha hifadhi</translation> <translation id="2968755619301702150">Kitazamaji vyeti</translation> <translation id="2979025552038692506">Kichupo Fiche Kilichochaguliwa</translation> <translation id="2989523299700148168">Ulizotembelea hivi karibuni</translation> @@ -527,7 +524,6 @@ <translation id="5817918615728894473">Oanisha</translation> <translation id="583281660410589416">Haijulikani</translation> <translation id="5833984609253377421">Shiriki kiungo</translation> -<translation id="583891442612896534">Chrome haiwezi kufikia seva za Google ili kushindilia data. Hifadhi zako za data zinaweza kuwa chache.</translation> <translation id="5854790677617711513">Iliyohifadhiwa kwa zaidi ya siku 30</translation> <translation id="5858741533101922242">Chrome imeshindwa kuwasha adapta ya Bluetooth</translation> <translation id="5860033963881614850">Kimezimwa</translation> @@ -589,7 +585,6 @@ <translation id="6395288395575013217">KIUNGO</translation> <translation id="6404511346730675251">Badilisha alamisho</translation> <translation id="6406506848690869874">Sawazisha</translation> -<translation id="6409731863280057959">Madirisha ibukizi</translation> <translation id="641643625718530986">Chapisha...</translation> <translation id="6416782512398055893">Umepakua MB <ph name="MBS" /></translation> <translation id="6433501201775827830">Chagua mtambo wako wa kutafuta</translation> @@ -840,7 +835,6 @@ <translation id="8676374126336081632">Futa uingizaji wa maandishi</translation> <translation id="8687353297350450808">{N_BARS,plural, =1{Kiwango cha Udhibiti wa Mawimbi: upau #}other{Kiwango cha Udhibiti wa Mawimbi: pau #}}</translation> <translation id="869891660844655955">Muda wake unakwisha tarehe</translation> -<translation id="8712637175834984815">Nimeelewa</translation> <translation id="8719023831149562936">Haiwezi kusambaza kichupo cha sasa</translation> <translation id="8725066075913043281">Jaribu tena</translation> <translation id="8728487861892616501">Kwa kutumia programu hii, unakubaliana na <ph name="BEGIN_LINK1" />Sheria na Masharti<ph name="END_LINK1" /> na <ph name="BEGIN_LINK2" />Ilani ya Faragha<ph name="END_LINK2" /> ya Chrome na <ph name="BEGIN_LINK3" />Ilani ya Faragha ya Akaunti za Google Zinazodhibitiwa na Family Link<ph name="END_LINK3" />.</translation> @@ -850,7 +844,6 @@ <translation id="8812260976093120287">Kwenye baadhi ya tovuti, unaweza kulipa kwa programu za malipo zinazotumika zilizo hapo juu kwenye kifaa chako.</translation> <translation id="8816439037877937734">Itafungua <ph name="APP_NAME" /> katika Chrome. Kwa kuendelea, unakubali <ph name="BEGIN_LINK1" />Sheria na Masharti<ph name="END_LINK1" /> na <ph name="BEGIN_LINK2" />Ilani ya Faragha<ph name="END_LINK2" />, na <ph name="BEGIN_LINK3" />Ilani ya Faragha ya Akaunti za Google Zinazodhibitiwa na Family Link<ph name="END_LINK3" />.</translation> <translation id="8820817407110198400">Alamisho</translation> -<translation id="883635517171802338">Zuia tovuti zisionyeshe madirisha ibukizi (inapendekezwa)</translation> <translation id="883806473910249246">Hitilafu imetokea wakati wa kupakua maudhui.</translation> <translation id="8840953339110955557">Ukurasa huu huenda ukatofautiana na toleo la mtandaoni.</translation> <translation id="8847988622838149491">USB</translation>
diff --git a/chrome/android/java/strings/translations/android_chrome_strings_th.xtb b/chrome/android/java/strings/translations/android_chrome_strings_th.xtb index 455ca1e..dce8937 100644 --- a/chrome/android/java/strings/translations/android_chrome_strings_th.xtb +++ b/chrome/android/java/strings/translations/android_chrome_strings_th.xtb
@@ -111,7 +111,6 @@ <translation id="1993768208584545658"><ph name="SITE" /> ต้องการจับคู่</translation> <translation id="1994173015038366702">URL ของเว็บไซต์</translation> <translation id="200815880754187296"><ph name="KILOBYTES" /> KB จากแอปอื่นๆ</translation> -<translation id="2015632741368427174">มีการบล็อกการเปลี่ยนเส้นทางไปยังเว็บไซต์ต่อไปนี้</translation> <translation id="2017836877785168846">ล้างประวัติการเข้าชมและการเติมข้อความอัตโนมัติในแถบที่อยู่เว็บ</translation> <translation id="2021896219286479412">ส่วนควบคุมเว็บไซต์แบบเต็มหน้าจอ</translation> <translation id="2038563949887743358">เปิดการขอเว็บไซต์เดสก์ท็อป</translation> @@ -183,7 +182,6 @@ <translation id="2650751991977523696">ดาวน์โหลดไฟล์อีกครั้งไหม</translation> <translation id="2653659639078652383">ส่ง</translation> <translation id="2677748264148917807">ออก</translation> -<translation id="2693813674743028984">ซ่อนพื้นที่เก็บข้อมูล</translation> <translation id="2704606927547763573">คัดลอกแล้ว</translation> <translation id="2707726405694321444">รีเฟรชหน้า</translation> <translation id="2709516037105925701">ป้อนอัตโนมัติ</translation> @@ -209,7 +207,6 @@ <translation id="2956410042958133412">บัญชีนี้ได้รับการจัดการโดย <ph name="PARENT_NAME_1" /> และ <ph name="PARENT_NAME_2" /></translation> <translation id="2960796085439532066">ลิขสิทธิ์ <ph name="YEAR" /> Google Inc. สงวนลิขสิทธิ์</translation> <translation id="2962095958535813455">สลับเป็นแท็บไม่ระบุตัวตนแล้ว</translation> -<translation id="2965945119655563012">แสดงพื้นที่เก็บข้อมูล</translation> <translation id="2968755619301702150">เครื่องมือดูใบรับรอง</translation> <translation id="2979025552038692506">แท็บที่ไม่ระบุตัวตนที่เลือก</translation> <translation id="2989523299700148168">เข้าชมล่าสุด</translation> @@ -527,7 +524,6 @@ <translation id="5817918615728894473">จับคู่</translation> <translation id="583281660410589416">ไม่รู้จัก</translation> <translation id="5833984609253377421">แชร์ลิงก์</translation> -<translation id="583891442612896534">Chrome ไม่สามารถเข้าถึงเซิร์ฟเวอร์ Google เพื่อบีบอัดข้อมูล การประหยัดอินเทอร์เน็ตของคุณอาจมีข้อจำกัด</translation> <translation id="5854790677617711513">เกิน 30 วัน</translation> <translation id="5858741533101922242">Chrome ไม่สามารถเปิดอะแดปเตอร์บลูทูธ</translation> <translation id="5860033963881614850">ปิด</translation> @@ -589,7 +585,6 @@ <translation id="6395288395575013217">ลิงก์</translation> <translation id="6404511346730675251">แก้ไขบุ๊กมาร์ก</translation> <translation id="6406506848690869874">การซิงค์ข้อมูล</translation> -<translation id="6409731863280057959">ป๊อปอัป</translation> <translation id="641643625718530986">พิมพ์…</translation> <translation id="6416782512398055893">ดาวน์โหลดแล้ว <ph name="MBS" /> MB</translation> <translation id="6433501201775827830">เลือกเครื่องมือค้นหา</translation> @@ -840,7 +835,6 @@ <translation id="8676374126336081632">ล้างข้อมูลที่ป้อน</translation> <translation id="8687353297350450808">{N_BARS,plural, =1{ระดับความแรงของสัญญาณ: # แถบ}other{ระดับความแรงของสัญญาณ: # แถบ}}</translation> <translation id="869891660844655955">วันหมดอายุ</translation> -<translation id="8712637175834984815">สำเร็จ</translation> <translation id="8719023831149562936">ไม่สามารถบีมแท็บปัจจุบัน</translation> <translation id="8725066075913043281">ลองอีกครั้ง</translation> <translation id="8728487861892616501">การใช้แอปพลิเคชันนี้หมายความว่าคุณยอมรับ <ph name="BEGIN_LINK1" />ข้อกำหนดในการให้บริการ<ph name="END_LINK1" /> และ <ph name="BEGIN_LINK2" />ประกาศเกี่ยวกับนโยบายความเป็นส่วนตัว<ph name="END_LINK2" /> ของ Chrome รวมถึง <ph name="BEGIN_LINK3" />ประกาศเกี่ยวกับนโยบายความเป็นส่วนตัวสำหรับบัญชี Google ที่จัดการด้วย Family Link<ph name="END_LINK3" /></translation> @@ -850,7 +844,6 @@ <translation id="8812260976093120287">ในบางเว็บไซต์ คุณสามารถชำระเงินด้วยแอปชำระเงินที่รองรับด้านบนในอุปกรณ์ของคุณ</translation> <translation id="8816439037877937734"><ph name="APP_NAME" /> จะเปิดขึ้นใน Chrome การดำเนินการต่อแสดงว่าคุณยอมรับ<ph name="BEGIN_LINK1" />ข้อกำหนดในการให้บริการ<ph name="END_LINK1" />และ<ph name="BEGIN_LINK2" />ประกาศเกี่ยวกับนโยบายความเป็นส่วนตัว<ph name="END_LINK2" />ของ Chrome รวมถึง<ph name="BEGIN_LINK3" />ประกาศเกี่ยวกับนโยบายความเป็นส่วนตัวสำหรับบัญชี Google ที่จัดการด้วย Family Link<ph name="END_LINK3" /></translation> <translation id="8820817407110198400">บุ๊กมาร์ก</translation> -<translation id="883635517171802338">บล็อกเว็บไซต์ไม่ให้แสดงป๊อปอัป (แนะนำ)</translation> <translation id="883806473910249246">เกิดข้อผิดพลาดขณะดาวน์โหลดเนื้อหา</translation> <translation id="8840953339110955557">หน้าเว็บนี้อาจแตกต่างไปจากเวอร์ชันที่ออนไลน์</translation> <translation id="8847988622838149491">USB</translation>
diff --git a/chrome/android/java/strings/translations/android_chrome_strings_tr.xtb b/chrome/android/java/strings/translations/android_chrome_strings_tr.xtb index 428cfc46..67dc97b 100644 --- a/chrome/android/java/strings/translations/android_chrome_strings_tr.xtb +++ b/chrome/android/java/strings/translations/android_chrome_strings_tr.xtb
@@ -111,7 +111,6 @@ <translation id="1993768208584545658"><ph name="SITE" /> eşlenmek istiyor</translation> <translation id="1994173015038366702">Site URL'si</translation> <translation id="200815880754187296"><ph name="KILOBYTES" /> KB diğer uygulamalar</translation> -<translation id="2015632741368427174">Şu web sitesine yönlendirme engellendi:</translation> <translation id="2017836877785168846">Geçmişi ve adres çubuğundaki otomatik tamamlama bilgilerini temizler.</translation> <translation id="2021896219286479412">Tam ekran site kontrolleri</translation> <translation id="2038563949887743358">Masaüstü sitesi iste işlevini etkinleştir</translation> @@ -183,7 +182,6 @@ <translation id="2650751991977523696">Dosya tekrar indirilsin mi?</translation> <translation id="2653659639078652383">Gönder</translation> <translation id="2677748264148917807">Çık</translation> -<translation id="2693813674743028984">Depolama alanını gizle</translation> <translation id="2704606927547763573">Kopyalandı</translation> <translation id="2707726405694321444">Sayfayı yenile</translation> <translation id="2709516037105925701">Otomatik doldurma</translation> @@ -209,7 +207,6 @@ <translation id="2956410042958133412">Bu hesap <ph name="PARENT_NAME_1" /> ve <ph name="PARENT_NAME_2" /> tarafından yönetiliyor.</translation> <translation id="2960796085439532066">Telif Hakkı <ph name="YEAR" /> Google Inc. Tüm hakları saklıdır.</translation> <translation id="2962095958535813455">Gizli mod sekmelerine geçildi</translation> -<translation id="2965945119655563012">Depolama alanını göster</translation> <translation id="2968755619301702150">Sertifika görüntüleyici</translation> <translation id="2979025552038692506">Seçili Gizli Sekme</translation> <translation id="2989523299700148168">Son ziyaret edilenler</translation> @@ -527,7 +524,6 @@ <translation id="5817918615728894473">Eşle</translation> <translation id="583281660410589416">Bilinmiyor</translation> <translation id="5833984609253377421">Bağlantıyı paylaş</translation> -<translation id="583891442612896534">Chrome, veri sıkıştırma için Google sunucularına erişemiyor. Veri tasarrufunuz sınırlı olabilir.</translation> <translation id="5854790677617711513">30 günden daha eski</translation> <translation id="5858741533101922242">Chrome, Bluetooth adaptörünü açamıyor</translation> <translation id="5860033963881614850">Kapalı</translation> @@ -589,7 +585,6 @@ <translation id="6395288395575013217">BAĞLANTI</translation> <translation id="6404511346730675251">Yer işaretini düzenle</translation> <translation id="6406506848690869874">Senkronizasyon</translation> -<translation id="6409731863280057959">Pop-up'lar</translation> <translation id="641643625718530986">Yazdır…</translation> <translation id="6416782512398055893"><ph name="MBS" /> MB indirildi</translation> <translation id="6433501201775827830">Arama motorunuzu seçin</translation> @@ -840,7 +835,6 @@ <translation id="8676374126336081632">Girişi temizle</translation> <translation id="8687353297350450808">{N_BARS,plural, =1{Sinyal Gücü Düzeyi: # çubuk}other{Sinyal Gücü Düzeyi: # çubuk}}</translation> <translation id="869891660844655955">Son kullanma tarihi</translation> -<translation id="8712637175834984815">Anlaşıldı</translation> <translation id="8719023831149562936">Geçerli sekme ışınlanamıyor</translation> <translation id="8725066075913043281">Yeniden dene</translation> <translation id="8728487861892616501">Bu uygulamayı kullanarak Chrome’un <ph name="BEGIN_LINK1" />Hizmet Şartları<ph name="END_LINK1" /> ve <ph name="BEGIN_LINK2" />Gizlilik Bildirimi<ph name="END_LINK2" /> ile <ph name="BEGIN_LINK3" />Family Link ile Yönetilen Google Hesapları için Gizlilik Bildirimi<ph name="END_LINK3" />'ni kabul etmiş olursunuz.</translation> @@ -850,7 +844,6 @@ <translation id="8812260976093120287">Bazı web sitelerinde, yukarıdaki desteklenen ödeme uygulamalarıyla cihazınızdan ödeme yapabilirsiniz.</translation> <translation id="8816439037877937734"><ph name="APP_NAME" /> Chrome'da açılacak. Devam ederek Chrome'un <ph name="BEGIN_LINK1" />Hizmet Şartları<ph name="END_LINK1" />'nı, <ph name="BEGIN_LINK2" />Gizlilik Uyarısı<ph name="END_LINK2" />'nı ve <ph name="BEGIN_LINK3" />Family Link ile Yönetilen Google Hesapları için Gizlilik Uyarısı<ph name="END_LINK3" />'nı kabul etmiş olursunuz.</translation> <translation id="8820817407110198400">Favoriler</translation> -<translation id="883635517171802338">Sitelerin pop-up göstermesini engelle (önerilir)</translation> <translation id="883806473910249246">İçerik indirilirken bir hata oluştu.</translation> <translation id="8840953339110955557">Bu sayfa, web'deki sürümden farklı olabilir.</translation> <translation id="8847988622838149491">USB</translation>
diff --git a/chrome/android/java/strings/translations/android_chrome_strings_uk.xtb b/chrome/android/java/strings/translations/android_chrome_strings_uk.xtb index 19f0bdc..32db1b77 100644 --- a/chrome/android/java/strings/translations/android_chrome_strings_uk.xtb +++ b/chrome/android/java/strings/translations/android_chrome_strings_uk.xtb
@@ -111,7 +111,6 @@ <translation id="1993768208584545658">Сайт <ph name="SITE" /> хоче підключитися до пристрою</translation> <translation id="1994173015038366702">URL-адреса сайту</translation> <translation id="200815880754187296"><ph name="KILOBYTES" /> КБ використовується іншими додатками</translation> -<translation id="2015632741368427174">Заблоковано переспрямування на сайт:</translation> <translation id="2017836877785168846">Очищує історію й автозавершення в адресному рядку.</translation> <translation id="2021896219286479412">Керування повноекранним режимом</translation> <translation id="2038563949887743358">Увімкнути опцію "Запитувати версію сайту для комп’ютера"</translation> @@ -183,7 +182,6 @@ <translation id="2650751991977523696">Завантажити файл ще раз?</translation> <translation id="2653659639078652383">Надіслати</translation> <translation id="2677748264148917807">Вийти</translation> -<translation id="2693813674743028984">Сховати дані про обсяг пам’яті</translation> <translation id="2704606927547763573">Скопійов.</translation> <translation id="2707726405694321444">Оновити сторінку</translation> <translation id="2709516037105925701">Автозаповнення</translation> @@ -209,7 +207,6 @@ <translation id="2956410042958133412">Цим обліковим записом керують <ph name="PARENT_NAME_1" /> і <ph name="PARENT_NAME_2" />.</translation> <translation id="2960796085439532066">Авторське право <ph name="YEAR" /> Google Inc. Усі права захищено.</translation> <translation id="2962095958535813455">Ви перейшли на анонімні вкладки</translation> -<translation id="2965945119655563012">Показати дані про обсяг пам’яті</translation> <translation id="2968755619301702150">Перегляд сертифікатів</translation> <translation id="2979025552038692506">Вибрана анонімна вкладка</translation> <translation id="2989523299700148168">Нещодавно відвідані</translation> @@ -527,7 +524,6 @@ <translation id="5817918615728894473">Підключити</translation> <translation id="583281660410589416">Невідомий</translation> <translation id="5833984609253377421">Поділитися посиланням</translation> -<translation id="583891442612896534">Chrome не може зв’язатись із серверами Google для стиснення даних. Можливо, у вас обмежене заощадження даних.</translation> <translation id="5854790677617711513">Понад 30 днів тому</translation> <translation id="5858741533101922242">Chrome не може ввімкнути адаптер Bluetooth</translation> <translation id="5860033963881614850">Вимк.</translation> @@ -589,7 +585,6 @@ <translation id="6395288395575013217">ПОСИЛАННЯ</translation> <translation id="6404511346730675251">Редагувати закладку</translation> <translation id="6406506848690869874">Синхронізація</translation> -<translation id="6409731863280057959">Спливаючі вікна</translation> <translation id="641643625718530986">Друк…</translation> <translation id="6416782512398055893">Завантажено <ph name="MBS" /> МБ</translation> <translation id="6433501201775827830">Виберіть пошукову систему</translation> @@ -840,7 +835,6 @@ <translation id="8676374126336081632">Видалити введений текст</translation> <translation id="8687353297350450808">{N_BARS,plural, =1{Рівень сигналу: # поділка}one{Рівень сигналу: # поділка}few{Рівень сигналу: # поділки}many{Рівень сигналу: # поділок}other{Рівень сигналу: # поділки}}</translation> <translation id="869891660844655955">Діє до</translation> -<translation id="8712637175834984815">Виконано</translation> <translation id="8719023831149562936">Неможливо передати дані поточної вкладки</translation> <translation id="8725066075913043281">Повторити спробу</translation> <translation id="8728487861892616501">Користуючись цим додатком, ви приймаєте <ph name="BEGIN_LINK1" />Умови використання<ph name="END_LINK1" /> та <ph name="BEGIN_LINK2" />Примітку про конфіденційність<ph name="END_LINK2" /> Chrome, а також <ph name="BEGIN_LINK3" />Примітку про конфіденційність для облікових записів Google, якими можна керувати у Family Link<ph name="END_LINK3" />.</translation> @@ -850,7 +844,6 @@ <translation id="8812260976093120287">На деяких веб-сайтах ви можна оплачувати за допомогою перелічених вище підтримуваних додатків для платежів на вашому пристрої.</translation> <translation id="8816439037877937734">Додаток <ph name="APP_NAME" /> відкриватиметься в Chrome. Продовжуючи, ви приймаєте <ph name="BEGIN_LINK1" />Умови використання<ph name="END_LINK1" /> та <ph name="BEGIN_LINK2" />Примітку про конфіденційність<ph name="END_LINK2" /> Chrome, а також <ph name="BEGIN_LINK3" />Примітку про конфіденційність для облікових записів Google, якими можна керувати у Family Link<ph name="END_LINK3" />.</translation> <translation id="8820817407110198400">Закладки</translation> -<translation id="883635517171802338">Блокувати спливаючі вікна на сайтах (рекомендується)</translation> <translation id="883806473910249246">Не вдалося завантажити вміст.</translation> <translation id="8840953339110955557">Ця сторінка може відрізнятися від онлайн-версії.</translation> <translation id="8847988622838149491">Сповіщення щодо USB</translation>
diff --git a/chrome/android/java/strings/translations/android_chrome_strings_vi.xtb b/chrome/android/java/strings/translations/android_chrome_strings_vi.xtb index ab43b21..a9cb2aea 100644 --- a/chrome/android/java/strings/translations/android_chrome_strings_vi.xtb +++ b/chrome/android/java/strings/translations/android_chrome_strings_vi.xtb
@@ -111,7 +111,6 @@ <translation id="1993768208584545658"><ph name="SITE" /> muốn ghép nối</translation> <translation id="1994173015038366702">URL trang web</translation> <translation id="200815880754187296">Các ứng dụng khác chiếm <ph name="KILOBYTES" /> KB</translation> -<translation id="2015632741368427174">Đã chặn chuyển hướng đến trang web:</translation> <translation id="2017836877785168846">Xóa lịch sử và tự động hoàn thành trong thanh địa chỉ.</translation> <translation id="2021896219286479412">Kiểm soát trang toàn màn hình</translation> <translation id="2038563949887743358">Bật Yêu cầu trang web cho máy tính</translation> @@ -183,7 +182,6 @@ <translation id="2650751991977523696">Tải tệp xuống lần nữa?</translation> <translation id="2653659639078652383">Gửi</translation> <translation id="2677748264148917807">Rời khỏi</translation> -<translation id="2693813674743028984">Ẩn thông tin về bộ nhớ</translation> <translation id="2704606927547763573">Đã sao chép</translation> <translation id="2707726405694321444">Làm mới trang</translation> <translation id="2709516037105925701">Tự động điền</translation> @@ -209,7 +207,6 @@ <translation id="2956410042958133412">Tài khoản này do <ph name="PARENT_NAME_1" /> và <ph name="PARENT_NAME_2" /> quản lý.</translation> <translation id="2960796085439532066">Bản quyền <ph name="YEAR" /> Google Inc. Mọi quyền được bảo lưu.</translation> <translation id="2962095958535813455">Đã chuyển sang tab ẩn danh</translation> -<translation id="2965945119655563012">Hiển thị thông tin về bộ nhớ</translation> <translation id="2968755619301702150">Trình xem chứng chỉ</translation> <translation id="2979025552038692506">Tab ẩn danh được chọn</translation> <translation id="2989523299700148168">Đã truy cập gần đây</translation> @@ -527,7 +524,6 @@ <translation id="5817918615728894473">Ghép nối</translation> <translation id="583281660410589416">Không xác định</translation> <translation id="5833984609253377421">Chia sẻ liên kết</translation> -<translation id="583891442612896534">Chrome không thể kết nối với máy chủ của Google để nén dữ liệu. Các khoản tiết kiệm đối với dữ liệu của bạn có thể bị giới hạn.</translation> <translation id="5854790677617711513">Đã tồn tại hơn 30 ngày</translation> <translation id="5858741533101922242">Chrome không thể bật bộ điều hợp Bluetooth</translation> <translation id="5860033963881614850">Tắt</translation> @@ -589,7 +585,6 @@ <translation id="6395288395575013217">LIÊN KẾT</translation> <translation id="6404511346730675251">Chỉnh sửa dấu trang</translation> <translation id="6406506848690869874">Đồng bộ hóa</translation> -<translation id="6409731863280057959">Cửa sổ bật lên</translation> <translation id="641643625718530986">In…</translation> <translation id="6416782512398055893">Đã tải xuống <ph name="MBS" /> MB</translation> <translation id="6433501201775827830">Chọn công cụ tìm kiếm của bạn</translation> @@ -840,7 +835,6 @@ <translation id="8676374126336081632">Xóa văn bản nhập</translation> <translation id="8687353297350450808">{N_BARS,plural, =1{Mức cường độ tín hiệu: # vạch}other{Mức cường độ tín hiệu: # vạch}}</translation> <translation id="869891660844655955">Ngày hết hạn</translation> -<translation id="8712637175834984815">Bỏ qua</translation> <translation id="8719023831149562936">Không thể chiếu tab hiện tại</translation> <translation id="8725066075913043281">Thử lại</translation> <translation id="8728487861892616501">Bằng việc sử dụng ứng dụng này, bạn đồng ý với <ph name="BEGIN_LINK1" />Điều khoản dịch vụ<ph name="END_LINK1" /> và <ph name="BEGIN_LINK2" />Thông báo bảo mật<ph name="END_LINK2" /> của Chrome cũng như <ph name="BEGIN_LINK3" />Thông báo bảo mật cho Tài khoản Google được quản lý bằng Family Link<ph name="END_LINK3" />.</translation> @@ -850,7 +844,6 @@ <translation id="8812260976093120287">Trên một số trang web, bạn có thể thanh toán bằng các ứng dụng thanh toán được hỗ trợ bên trên trên thiết bị của bạn.</translation> <translation id="8816439037877937734"><ph name="APP_NAME" /> sẽ mở trong Chrome. Bằng việc tiếp tục, bạn đồng ý với <ph name="BEGIN_LINK1" />Điều khoản dịch vụ<ph name="END_LINK1" /> và <ph name="BEGIN_LINK2" />Thông báo bảo mật<ph name="END_LINK2" /> của Chrome, cũng như <ph name="BEGIN_LINK3" />Thông báo bảo mật cho Tài khoản Google được quản lý bằng Family Link<ph name="END_LINK3" />.</translation> <translation id="8820817407110198400">Dấu trang</translation> -<translation id="883635517171802338">Chặn trang web hiển thị cửa sổ bật lên (được đề xuất)</translation> <translation id="883806473910249246">Đã xảy ra lỗi khi tải nội dung xuống.</translation> <translation id="8840953339110955557">Trang này có thể khác với phiên bản trực tuyến.</translation> <translation id="8847988622838149491">USB</translation>
diff --git a/chrome/android/java/strings/translations/android_chrome_strings_zh-CN.xtb b/chrome/android/java/strings/translations/android_chrome_strings_zh-CN.xtb index a0f56ef..c55fb89a 100644 --- a/chrome/android/java/strings/translations/android_chrome_strings_zh-CN.xtb +++ b/chrome/android/java/strings/translations/android_chrome_strings_zh-CN.xtb
@@ -82,10 +82,12 @@ <translation id="1718835860248848330">过去一小时</translation> <translation id="1729516292547892356">要查看虚拟实境内容,请更新 Google VR 服务</translation> <translation id="1733116627827457509"><ph name="FILE_SIZE" /> - 更新时间:<ph name="TIME_SINCE_UPDATE" /></translation> +<translation id="1743802530341753419">在允许网站连接到设备前先询问(推荐)</translation> <translation id="1749561566933687563">同步您的书签</translation> <translation id="17513872634828108">目前打开的标签页</translation> <translation id="1756600373018374892">点按此按钮即可快速访问您的标签页。</translation> <translation id="1779089405699405702">图片解码器</translation> +<translation id="1792959175193046959">随时更改默认的下载内容保存位置</translation> <translation id="1807246157184219062">浅色调</translation> <translation id="1829244130665387512">在网页中查找</translation> <translation id="1832521218263067499">安全事件</translation> @@ -109,7 +111,6 @@ <translation id="1993768208584545658"><ph name="SITE" /> 希望与以下所选设备配对:</translation> <translation id="1994173015038366702">网站网址</translation> <translation id="200815880754187296">其他应用已占用的空间:<ph name="KILOBYTES" /> KB</translation> -<translation id="2015632741368427174">已阻止重定向到以下网站:</translation> <translation id="2017836877785168846">清除历史记录和地址栏中的自动填充项。</translation> <translation id="2021896219286479412">全屏网站控件</translation> <translation id="2038563949887743358">开启“请求切换到桌面版网站”</translation> @@ -181,7 +182,6 @@ <translation id="2650751991977523696">是否重新下载文件?</translation> <translation id="2653659639078652383">提交</translation> <translation id="2677748264148917807">离开</translation> -<translation id="2693813674743028984">隐藏存储信息</translation> <translation id="2704606927547763573">已复制</translation> <translation id="2707726405694321444">刷新网页</translation> <translation id="2709516037105925701">自动填充</translation> @@ -207,7 +207,6 @@ <translation id="2956410042958133412">该帐号由 <ph name="PARENT_NAME_1" /> 和 <ph name="PARENT_NAME_2" /> 管理。</translation> <translation id="2960796085439532066">版权所有 <ph name="YEAR" /> Google Inc. 保留所有权利。</translation> <translation id="2962095958535813455">已切换到隐身标签页</translation> -<translation id="2965945119655563012">显示存储信息</translation> <translation id="2968755619301702150">证书查看器</translation> <translation id="2979025552038692506">所选的隐身标签页</translation> <translation id="2989523299700148168">最近用过的搜索引擎</translation> @@ -525,7 +524,6 @@ <translation id="5817918615728894473">配对</translation> <translation id="583281660410589416">未知</translation> <translation id="5833984609253377421">分享链接</translation> -<translation id="583891442612896534">Chrome 无法连接到 Google 服务器来进行数据压缩,因此您节省的数据流量可能有限。</translation> <translation id="5854790677617711513">30 天之前的</translation> <translation id="5858741533101922242">Chrome 无法开启蓝牙适配器</translation> <translation id="5860033963881614850">关闭</translation> @@ -587,7 +585,6 @@ <translation id="6395288395575013217">链接</translation> <translation id="6404511346730675251">修改书签</translation> <translation id="6406506848690869874">同步</translation> -<translation id="6409731863280057959">弹出式窗口</translation> <translation id="641643625718530986">打印…</translation> <translation id="6416782512398055893">已下载 <ph name="MBS" /> MB</translation> <translation id="6433501201775827830">选择您的搜索引擎</translation> @@ -647,6 +644,7 @@ <translation id="6910211073230771657">已删除</translation> <translation id="6912998170423641340">阻止网站读取剪贴板中的文字和图片</translation> <translation id="6914783257214138813">所有能查看此导出文件的人员都能看到您的密码。</translation> +<translation id="6942665639005891494">使用“设置”菜单选项随时更改默认的下载内容保存位置</translation> <translation id="6945221475159498467">选择</translation> <translation id="6963766334940102469">删除书签</translation> <translation id="6965382102122355670">确定</translation> @@ -814,6 +812,7 @@ <translation id="8503813439785031346">用户名</translation> <translation id="8514477925623180633">导出存储在 Chrome 中的密码</translation> <translation id="8514577642972634246">进入隐身模式</translation> +<translation id="851751545965956758">禁止网站连接到设备</translation> <translation id="8523928698583292556">删除存储的密码</translation> <translation id="854522910157234410">打开此网页</translation> <translation id="8559990750235505898">显示翻译界面以翻译其他语言的网页</translation> @@ -836,7 +835,6 @@ <translation id="8676374126336081632">清除输入的内容</translation> <translation id="8687353297350450808">{N_BARS,plural, =1{信号强度:# 格}other{信号强度:# 格}}</translation> <translation id="869891660844655955">截止日期</translation> -<translation id="8712637175834984815">知道了</translation> <translation id="8719023831149562936">无法传输当前的标签页</translation> <translation id="8725066075913043281">重试</translation> <translation id="8728487861892616501">使用此应用即表示您同意 Chrome 的<ph name="BEGIN_LINK1" />服务条款<ph name="END_LINK1" />和<ph name="BEGIN_LINK2" />隐私权声明<ph name="END_LINK2" />,以及<ph name="BEGIN_LINK3" />针对通过 Family Link 管理的 Google 帐号的隐私权声明<ph name="END_LINK3" />。</translation> @@ -846,7 +844,6 @@ <translation id="8812260976093120287">在某些网站上,您可以使用自己的设备通过上述支持的付款应用付款。</translation> <translation id="8816439037877937734"><ph name="APP_NAME" />将在 Chrome 中打开。继续操作即表示您同意 Chrome 的<ph name="BEGIN_LINK1" />服务条款<ph name="END_LINK1" />和<ph name="BEGIN_LINK2" />隐私权声明<ph name="END_LINK2" />,以及<ph name="BEGIN_LINK3" />针对通过 Family Link 管理的 Google 帐号的隐私权声明<ph name="END_LINK3" />。</translation> <translation id="8820817407110198400">书签</translation> -<translation id="883635517171802338">禁止网站显示弹出式窗口(推荐)</translation> <translation id="883806473910249246">下载此内容时出错。</translation> <translation id="8840953339110955557">此网页可能与在线版本有所不同。</translation> <translation id="8847988622838149491">USB</translation>
diff --git a/chrome/android/java/strings/translations/android_chrome_strings_zh-TW.xtb b/chrome/android/java/strings/translations/android_chrome_strings_zh-TW.xtb index cd9c269..59db36e8 100644 --- a/chrome/android/java/strings/translations/android_chrome_strings_zh-TW.xtb +++ b/chrome/android/java/strings/translations/android_chrome_strings_zh-TW.xtb
@@ -82,10 +82,12 @@ <translation id="1718835860248848330">過去 1 小時</translation> <translation id="1729516292547892356">如要查看虛擬實境內容,請更新 Google VR 服務</translation> <translation id="1733116627827457509"><ph name="FILE_SIZE" /> - 上次更新時間:<ph name="TIME_SINCE_UPDATE" /></translation> +<translation id="1743802530341753419">允許網站連線至裝置前,必須先詢問你 (建議)</translation> <translation id="1749561566933687563">同步處理您的書籤</translation> <translation id="17513872634828108">開啟分頁</translation> <translation id="1756600373018374892">輕觸這個按鈕即可快速存取分頁。</translation> <translation id="1779089405699405702">影像解碼器</translation> +<translation id="1792959175193046959">你隨時可以變更預設的下載位置</translation> <translation id="1807246157184219062">淺色</translation> <translation id="1829244130665387512">在網頁中尋找</translation> <translation id="1832521218263067499">安全性事件</translation> @@ -109,7 +111,6 @@ <translation id="1993768208584545658"><ph name="SITE" /> 要求配對</translation> <translation id="1994173015038366702">網站網址</translation> <translation id="200815880754187296">其他應用程式佔 <ph name="KILOBYTES" /> KB</translation> -<translation id="2015632741368427174">已禁止重新導向至下列網站:</translation> <translation id="2017836877785168846">將歷史記錄和自動即時查詢從網址列中清除。</translation> <translation id="2021896219286479412">全螢幕網站控制</translation> <translation id="2038563949887743358">開啟「要求電腦版網站」</translation> @@ -181,7 +182,6 @@ <translation id="2650751991977523696">要再次下載檔案嗎?</translation> <translation id="2653659639078652383">提交</translation> <translation id="2677748264148917807">離開</translation> -<translation id="2693813674743028984">隱藏儲存空間</translation> <translation id="2704606927547763573">已複製</translation> <translation id="2707726405694321444">重新整理頁面</translation> <translation id="2709516037105925701">自動填入</translation> @@ -207,7 +207,6 @@ <translation id="2956410042958133412">這個帳戶受 <ph name="PARENT_NAME_1" /> 和 <ph name="PARENT_NAME_2" /> 管理。</translation> <translation id="2960796085439532066">Copyright <ph name="YEAR" /> Google Inc. 版權所有。</translation> <translation id="2962095958535813455">已切換成無痕式分頁</translation> -<translation id="2965945119655563012">顯示儲存空間</translation> <translation id="2968755619301702150">憑證檢視器</translation> <translation id="2979025552038692506">選取的無痕式分頁</translation> <translation id="2989523299700148168">最近造訪過</translation> @@ -525,7 +524,6 @@ <translation id="5817918615728894473">配對</translation> <translation id="583281660410589416">未知</translation> <translation id="5833984609253377421">分享連結</translation> -<translation id="583891442612896534">Chrome 無法連上 Google 的伺服器進行資料壓縮,這可能會導致您無法節省某些數據流量。</translation> <translation id="5854790677617711513">超過 30 天前</translation> <translation id="5858741533101922242">Chrome 無法開啟藍牙轉接器</translation> <translation id="5860033963881614850">關閉</translation> @@ -587,7 +585,6 @@ <translation id="6395288395575013217">連結</translation> <translation id="6404511346730675251">編輯書籤</translation> <translation id="6406506848690869874">同步</translation> -<translation id="6409731863280057959">彈出式視窗</translation> <translation id="641643625718530986">列印…</translation> <translation id="6416782512398055893">已下載 <ph name="MBS" /> MB</translation> <translation id="6433501201775827830">選擇搜尋引擎</translation> @@ -647,6 +644,7 @@ <translation id="6910211073230771657">已刪除</translation> <translation id="6912998170423641340">禁止網站讀取剪貼簿中的文字和圖片</translation> <translation id="6914783257214138813">凡是可查看匯出的檔案的使用者都能看到你的密碼。</translation> +<translation id="6942665639005891494">你隨時可以使用 [設定] 選單選項變更預設的下載位置</translation> <translation id="6945221475159498467">選取</translation> <translation id="6963766334940102469">刪除書籤</translation> <translation id="6965382102122355670">確定</translation> @@ -814,6 +812,7 @@ <translation id="8503813439785031346">使用者名稱</translation> <translation id="8514477925623180633">將使用 Chrome 儲存的密碼匯出</translation> <translation id="8514577642972634246">進入無痕模式</translation> +<translation id="851751545965956758">禁止網站連線至裝置</translation> <translation id="8523928698583292556">刪除已儲存的密碼</translation> <translation id="854522910157234410">開啟以下網頁</translation> <translation id="8559990750235505898">詢問是否將網頁內容翻譯成其他語言</translation> @@ -836,7 +835,6 @@ <translation id="8676374126336081632">清除輸入</translation> <translation id="8687353297350450808">{N_BARS,plural, =1{訊號強度等級:# 格}other{訊號強度等級:# 格}}</translation> <translation id="869891660844655955">到期日</translation> -<translation id="8712637175834984815">我瞭解了</translation> <translation id="8719023831149562936">無法傳輸目前的分頁</translation> <translation id="8725066075913043281">再試一次</translation> <translation id="8728487861892616501">使用這個應用程式即表示您同意接受 Chrome 的《<ph name="BEGIN_LINK1" />服務條款<ph name="END_LINK1" />》和《<ph name="BEGIN_LINK2" />隱私權聲明<ph name="END_LINK2" />》,以及《<ph name="BEGIN_LINK3" />透過 Family Link 管理的 Google 帳戶所適用的隱私權聲明<ph name="END_LINK3" />》。</translation> @@ -846,7 +844,6 @@ <translation id="8812260976093120287">在部分網站上,你可以在你的裝置上使用上述支援的付款應用程式付款。</translation> <translation id="8816439037877937734">「<ph name="APP_NAME" />」將在 Chrome 中開啟。繼續操作即表示您同意接受 Chrome 的《<ph name="BEGIN_LINK1" />服務條款<ph name="END_LINK1" />》和《<ph name="BEGIN_LINK2" />隱私權聲明<ph name="END_LINK2" />》,以及《<ph name="BEGIN_LINK3" />透過 Family Link 管理的 Google 帳戶所適用的隱私權聲明<ph name="END_LINK3" />》。</translation> <translation id="8820817407110198400">書籤</translation> -<translation id="883635517171802338">禁止網站顯示彈出式視窗 (建議)</translation> <translation id="883806473910249246">下載這項內容時發生錯誤。</translation> <translation id="8840953339110955557">這個網頁可能會和線上版本有所不同。</translation> <translation id="8847988622838149491">USB</translation>
diff --git a/chrome/android/java_sources.gni b/chrome/android/java_sources.gni index 4822894..0764133 100644 --- a/chrome/android/java_sources.gni +++ b/chrome/android/java_sources.gni
@@ -386,6 +386,7 @@ "java/src/org/chromium/chrome/browser/download/DownloadForegroundServiceManager.java", "java/src/org/chromium/chrome/browser/download/DownloadForegroundServiceObservers.java", "java/src/org/chromium/chrome/browser/download/DownloadInfo.java", + "java/src/org/chromium/chrome/browser/download/DownloadInfoBarController.java", "java/src/org/chromium/chrome/browser/download/DownloadItem.java", "java/src/org/chromium/chrome/browser/download/DownloadLocationDialog.java", "java/src/org/chromium/chrome/browser/download/DownloadLocationDialogBridge.java", @@ -566,6 +567,7 @@ "java/src/org/chromium/chrome/browser/infobar/SearchGeolocationDisclosureInfoBar.java", "java/src/org/chromium/chrome/browser/infobar/SimpleConfirmInfoBarBuilder.java", "java/src/org/chromium/chrome/browser/infobar/AdsBlockedInfoBar.java", + "java/src/org/chromium/chrome/browser/infobar/DownloadProgressInfoBar.java", "java/src/org/chromium/chrome/browser/infobar/SubPanelListener.java", "java/src/org/chromium/chrome/browser/infobar/SurveyInfoBar.java", "java/src/org/chromium/chrome/browser/infobar/SurveyInfoBarDelegate.java", @@ -774,7 +776,6 @@ "java/src/org/chromium/chrome/browser/ntp/cards/ScrollToLoadListener.java", "java/src/org/chromium/chrome/browser/ntp/cards/SectionList.java", "java/src/org/chromium/chrome/browser/ntp/cards/SignInPromo.java", - "java/src/org/chromium/chrome/browser/ntp/cards/SpacingItem.java", "java/src/org/chromium/chrome/browser/ntp/cards/StatusCardViewHolder.java", "java/src/org/chromium/chrome/browser/ntp/cards/StatusItem.java", "java/src/org/chromium/chrome/browser/ntp/cards/SuggestionsCategoryInfo.java", @@ -1261,6 +1262,7 @@ "java/src/org/chromium/chrome/browser/tabmodel/TabModelImpl.java", "java/src/org/chromium/chrome/browser/tabmodel/TabModelJniBridge.java", "java/src/org/chromium/chrome/browser/tabmodel/TabModelObserver.java", + "java/src/org/chromium/chrome/browser/tabmodel/TabModelObserverJniBridge.java", "java/src/org/chromium/chrome/browser/tabmodel/TabModelOrderController.java", "java/src/org/chromium/chrome/browser/tabmodel/TabModelSelector.java", "java/src/org/chromium/chrome/browser/tabmodel/TabModelSelectorBase.java",
diff --git a/chrome/android/javatests/src/org/chromium/chrome/browser/TabsTest.java b/chrome/android/javatests/src/org/chromium/chrome/browser/TabsTest.java index 15c538f9..86af7f63 100644 --- a/chrome/android/javatests/src/org/chromium/chrome/browser/TabsTest.java +++ b/chrome/android/javatests/src/org/chromium/chrome/browser/TabsTest.java
@@ -36,11 +36,11 @@ import org.chromium.base.test.util.RetryOnFailure; import org.chromium.base.test.util.UrlUtils; import org.chromium.chrome.R; -import org.chromium.chrome.browser.compositor.CompositorViewHolder; import org.chromium.chrome.browser.compositor.layouts.Layout; import org.chromium.chrome.browser.compositor.layouts.LayoutManager; import org.chromium.chrome.browser.compositor.layouts.LayoutManagerChrome; import org.chromium.chrome.browser.compositor.layouts.LayoutManagerChromePhone; +import org.chromium.chrome.browser.compositor.layouts.SceneChangeObserver; import org.chromium.chrome.browser.compositor.layouts.StaticLayout; import org.chromium.chrome.browser.compositor.layouts.components.LayoutTab; import org.chromium.chrome.browser.compositor.layouts.eventfilter.EdgeSwipeHandler; @@ -50,14 +50,13 @@ import org.chromium.chrome.browser.compositor.layouts.phone.stack.StackTab; import org.chromium.chrome.browser.tab.EmptyTabObserver; import org.chromium.chrome.browser.tab.Tab; -import org.chromium.chrome.browser.tabmodel.EmptyTabModelObserver; import org.chromium.chrome.browser.tabmodel.EmptyTabModelSelectorObserver; import org.chromium.chrome.browser.tabmodel.TabModel; import org.chromium.chrome.browser.tabmodel.TabModel.TabLaunchType; import org.chromium.chrome.browser.tabmodel.TabModel.TabSelectionType; -import org.chromium.chrome.browser.tabmodel.TabModelObserver; import org.chromium.chrome.browser.tabmodel.TabModelSelector; import org.chromium.chrome.browser.tabmodel.TabModelSelectorImpl; +import org.chromium.chrome.browser.tabmodel.TabModelSelectorTabModelObserver; import org.chromium.chrome.browser.tabmodel.TabModelUtils; import org.chromium.chrome.browser.tabmodel.TabbedModeTabPersistencePolicy; import org.chromium.chrome.browser.toolbar.ToolbarPhone; @@ -156,7 +155,11 @@ || mActivityTestRule.getName().equals("testIncognitoTabsNotRestoredAfterSwipe")) { return; } - mActivityTestRule.startMainActivityFromLauncher(); + mActivityTestRule.startMainActivityOnBlankPage(); + mActivityTestRule.getActivity() + .getLayoutManager() + .getAnimationHandler() + .enableTestingMode(); } @@ -1556,8 +1559,8 @@ @Restriction(RESTRICTION_TYPE_NON_LOW_END_DEVICE) @RetryOnFailure public void testToolbarSwipeNextThenPrevTab() throws InterruptedException, TimeoutException { - ChromeTabUtils.newTabFromMenu( - InstrumentationRegistry.getInstrumentation(), mActivityTestRule.getActivity()); + ChromeTabUtils.fullyLoadUrlInNewTab(InstrumentationRegistry.getInstrumentation(), + mActivityTestRule.getActivity(), ContentUrlConstants.ABOUT_BLANK_URL, false); ChromeTabUtils.switchTabInCurrentTabModel(mActivityTestRule.getActivity(), 0); UiUtils.settleDownUI(InstrumentationRegistry.getInstrumentation()); @@ -1578,8 +1581,11 @@ @RetryOnFailure public void testToolbarSwipeNextThenPrevTabIncognito() throws InterruptedException, TimeoutException { - mActivityTestRule.newIncognitoTabFromMenu(); - mActivityTestRule.newIncognitoTabFromMenu(); + ChromeTabUtils.fullyLoadUrlInNewTab(InstrumentationRegistry.getInstrumentation(), + mActivityTestRule.getActivity(), ContentUrlConstants.ABOUT_BLANK_URL, true); + ChromeTabUtils.fullyLoadUrlInNewTab(InstrumentationRegistry.getInstrumentation(), + mActivityTestRule.getActivity(), ContentUrlConstants.ABOUT_BLANK_URL, true); + mActivityTestRule.getActivity().getTabModelSelector().selectModel(true); ChromeTabUtils.switchTabInCurrentTabModel(mActivityTestRule.getActivity(), 0); UiUtils.settleDownUI(InstrumentationRegistry.getInstrumentation()); @@ -1596,41 +1602,44 @@ private void runToolbarSideSwipeTestOnCurrentModel(ScrollDirection direction, int finalIndex, boolean expectsSelection) throws InterruptedException, TimeoutException { final CallbackHelper selectCallback = new CallbackHelper(); - final int id = - mActivityTestRule.getActivity().getCurrentTabModel().getTabAt(finalIndex).getId(); - final TabModelObserver observer = new EmptyTabModelObserver() { + final ChromeTabbedActivity activity = mActivityTestRule.getActivity(); + final int id = activity.getCurrentTabModel().getTabAt(finalIndex).getId(); + final TabModelSelectorTabModelObserver observer = new TabModelSelectorTabModelObserver( + activity.getTabModelSelector()) { @Override public void didSelectTab(Tab tab, TabSelectionType type, int lastId) { if (tab.getId() == id) selectCallback.notifyCalled(); } }; - if (expectsSelection) { - ThreadUtils.runOnUiThreadBlocking(() -> { - TabModelSelector selector = mActivityTestRule.getActivity().getTabModelSelector(); - for (TabModel tabModel : selector.getModels()) { - tabModel.addObserver(observer); - } - }); - } + int tabSelectedCallCount = selectCallback.getCallCount(); + // Listen for changes in the layout to indicate the swipe has completed. + final CallbackHelper staticLayoutCallbackHelper = new CallbackHelper(); + activity.getCompositorViewHolder().getLayoutManager().addSceneChangeObserver( + new SceneChangeObserver() { + @Override + public void onTabSelectionHinted(int tabId) {} + + @Override + public void onSceneChange(Layout layout) { + if (layout instanceof StaticLayout) { + staticLayoutCallbackHelper.notifyCalled(); + } + } + }); + + int callLayouChangeCount = staticLayoutCallbackHelper.getCallCount(); performToolbarSideSwipe(direction); - waitForStaticLayout(); + staticLayoutCallbackHelper.waitForCallback(callLayouChangeCount, 1); + + if (expectsSelection) selectCallback.waitForCallback(tabSelectedCallCount, 1); + ThreadUtils.runOnUiThreadBlocking(() -> observer.destroy()); + Assert.assertEquals("Index after toolbar side swipe is incorrect", finalIndex, - mActivityTestRule.getActivity().getCurrentTabModel().index()); - - if (expectsSelection) { - selectCallback.waitForCallback(0); - ThreadUtils.runOnUiThreadBlocking(() -> { - TabModelSelector selector = mActivityTestRule.getActivity().getTabModelSelector(); - for (TabModel tabModel : selector.getModels()) { - tabModel.removeObserver(observer); - } - }); - } + activity.getCurrentTabModel().index()); } - private void performToolbarSideSwipe(ScrollDirection direction) { Assert.assertTrue("Unexpected direction for side swipe " + direction, direction == ScrollDirection.LEFT || direction == ScrollDirection.RIGHT); @@ -1651,21 +1660,6 @@ TouchCommon.dragEnd(mActivityTestRule.getActivity(), toX, y, downTime); } - private void waitForStaticLayout() throws InterruptedException { - CriteriaHelper.pollUiThread( - new Criteria("Static Layout never selected after side swipe") { - @Override - public boolean isSatisfied() { - CompositorViewHolder compositorViewHolder = - (CompositorViewHolder) mActivityTestRule.getActivity().findViewById( - R.id.compositor_view_holder); - LayoutManager layoutManager = compositorViewHolder.getLayoutManager(); - - return layoutManager.getActiveLayout() instanceof StaticLayout; - } - }); - } - /** * Test that swipes and tab transitions are not causing URL bar to be focused. */
diff --git a/chrome/android/javatests/src/org/chromium/chrome/browser/ntp/NewTabPageTest.java b/chrome/android/javatests/src/org/chromium/chrome/browser/ntp/NewTabPageTest.java index 1503dfd..1b0c66f 100644 --- a/chrome/android/javatests/src/org/chromium/chrome/browser/ntp/NewTabPageTest.java +++ b/chrome/android/javatests/src/org/chromium/chrome/browser/ntp/NewTabPageTest.java
@@ -50,7 +50,6 @@ import org.chromium.chrome.browser.ntp.snippets.SectionHeader; import org.chromium.chrome.browser.omnibox.LocationBarLayout; import org.chromium.chrome.browser.omnibox.UrlBar; -import org.chromium.chrome.browser.preferences.ChromePreferenceManager; import org.chromium.chrome.browser.preferences.Pref; import org.chromium.chrome.browser.preferences.PrefServiceBridge; import org.chromium.chrome.browser.suggestions.SiteSuggestion; @@ -152,9 +151,6 @@ @Before public void setUp() throws Exception { - // Disable peeking card animation. - ChromePreferenceManager.getInstance().setNewTabPageFirstCardAnimationRunCount(100); - mTestServer = EmbeddedTestServer.createAndStartServer(InstrumentationRegistry.getContext()); mSiteSuggestions = new ArrayList<>(); @@ -220,6 +216,17 @@ @Test @MediumTest + @Feature({"NewTabPage", "RenderTest"}) + @EnableFeatures({ChromeFeatureList.SIMPLIFIED_NTP}) + @ParameterAnnotations.UseMethodParameter(ModernParams.class) + public void testRender_Simplified(boolean modern) throws IOException { + InstrumentationRegistry.getInstrumentation().waitForIdleSync(); + RenderTestRule.sanitize(mNtp.getView()); + mRenderTestRule.render(mNtp.getView().getRootView(), "simplified_new_tab_page"); + } + + @Test + @MediumTest @Feature({"NewTabPage"}) public void testThumbnailInvalidations() throws Throwable { mActivityTestRule.runOnUiThread(new Runnable() { @@ -624,7 +631,6 @@ } @Test - @DisabledTest(message = "crbug.com/829377") @SmallTest @Feature({"NewTabPage", "RenderTest"}) @EnableFeatures(ChromeFeatureList.NTP_ARTICLE_SUGGESTIONS_EXPANDABLE_HEADER) @@ -633,10 +639,10 @@ (NewTabPage) mActivityTestRule.getActivity().getActivityTab().getNativePage(); RecyclerView recyclerView = ntp.getNewTabPageView().getRecyclerView(); NewTabPageAdapter adapter = (NewTabPageAdapter) recyclerView.getAdapter(); + int position = adapter.getFirstHeaderPosition(); + RecyclerViewTestUtils.scrollToView(recyclerView, position); RecyclerViewTestUtils.waitForStableRecyclerView(recyclerView); - View view = ThreadUtils.runOnUiThreadBlocking( - () -> recyclerView.findViewHolderForAdapterPosition( - adapter.getFirstHeaderPosition()).itemView); + View view = recyclerView.findViewHolderForAdapterPosition(position).itemView; // Check header is expanded. mRenderTestRule.render(view, "expandable_header_expanded");
diff --git a/chrome/android/junit/src/org/chromium/chrome/browser/ntp/cards/NewTabPageAdapterTest.java b/chrome/android/junit/src/org/chromium/chrome/browser/ntp/cards/NewTabPageAdapterTest.java index 49ccb4a..697eeff3 100644 --- a/chrome/android/junit/src/org/chromium/chrome/browser/ntp/cards/NewTabPageAdapterTest.java +++ b/chrome/android/junit/src/org/chromium/chrome/browser/ntp/cards/NewTabPageAdapterTest.java
@@ -102,10 +102,12 @@ */ @RunWith(BaseRobolectricTestRunner.class) @Config(manifest = Config.NONE, shadows = {CustomShadowAsyncTask.class}) -@DisableFeatures({ChromeFeatureList.NTP_CONDENSED_LAYOUT, ChromeFeatureList.CHROME_HOME, - ChromeFeatureList.CONTENT_SUGGESTIONS_SCROLL_TO_LOAD, - ChromeFeatureList.NTP_ARTICLE_SUGGESTIONS_EXPANDABLE_HEADER, - ChromeFeatureList.NTP_SHORTCUTS, ChromeFeatureList.CHROME_DUPLEX}) + +@DisableFeatures({ChromeFeatureList.CHROME_HOME, + ChromeFeatureList.CONTENT_SUGGESTIONS_SCROLL_TO_LOAD, + ChromeFeatureList.NTP_ARTICLE_SUGGESTIONS_EXPANDABLE_HEADER, + ChromeFeatureList.SIMPLIFIED_NTP, ChromeFeatureList.CHROME_DUPLEX}) + public class NewTabPageAdapterTest { @Rule public DisableHistogramsRule mDisableHistogramsRule = new DisableHistogramsRule(); @@ -262,10 +264,6 @@ mInOrder.verify(mVisitor, mVerification).visitFooter(); } - public void expectSpacingItem() { - mInOrder.verify(mVisitor, mVerification).visitSpacingItem(); - } - public void expectEnd() { try { verifyNoMoreInteractions(mVisitor); @@ -883,28 +881,23 @@ // 2-4 | Sugg*3 // 5 | Action // 6 | Footer - // 7 | Spacer // Dismiss the second suggestion of the second section. mAdapter.dismissItem(3, itemDismissedCallback); verify(itemDismissedCallback).onResult(anyString()); verify(dataObserver).onItemRangeRemoved(3, 1); - verify(dataObserver).onItemRangeChanged(6, 1, null); // Make sure the call with the updated position works properly. mAdapter.dismissItem(3, itemDismissedCallback); verify(itemDismissedCallback, times(2)).onResult(anyString()); verify(dataObserver, times(2)).onItemRangeRemoved(3, 1); - verify(dataObserver).onItemRangeChanged(5, 1, null); // Dismiss the last suggestion in the section. We should now show the status card. reset(dataObserver); mAdapter.dismissItem(2, itemDismissedCallback); verify(itemDismissedCallback, times(3)).onResult(anyString()); verify(dataObserver).onItemRangeRemoved(2, 1); // Suggestion removed - verify(dataObserver).onItemRangeChanged(4, 1, null); // Spacer refresh verify(dataObserver).onItemRangeInserted(2, 1); // Status card added - verify(dataObserver).onItemRangeChanged(5, 1, null); // Spacer refresh // Adapter content: // Idx | Item @@ -915,16 +908,13 @@ // 3 | Action // 4 | Progress Indicator // 5 | Footer - // 6 | Spacer final int newSuggestionCount = 7; reset(dataObserver); suggestionsSource.setSuggestionsForCategory( TEST_CATEGORY, createDummySuggestions(newSuggestionCount, TEST_CATEGORY)); verify(dataObserver).onItemRangeInserted(2, newSuggestionCount); - verify(dataObserver).onItemRangeChanged(5 + newSuggestionCount, 1, null); // Spacer refresh verify(dataObserver).onItemRangeRemoved(2 + newSuggestionCount, 1); - verify(dataObserver).onItemRangeChanged(4 + newSuggestionCount, 1, null); // Spacer refresh // Adapter content: // Idx | Item @@ -934,7 +924,6 @@ // 2-8 | Sugg*7 // 9 | Action // 10 | Footer - // 11 | Spacer reset(dataObserver); suggestionsSource.setSuggestionsForCategory( @@ -943,9 +932,6 @@ TEST_CATEGORY, CategoryStatus.CATEGORY_EXPLICITLY_DISABLED); // All suggestions as well as the header and the action should be gone. verify(dataObserver).onItemRangeRemoved(1, newSuggestionCount + 2); - // The spacer gets refreshed twice: Once when the section is removed, and then again when - // the "all dismissed" item gets added. - verify(dataObserver, times(2)).onItemRangeChanged(2, 1, null); } @Test @@ -1090,7 +1076,6 @@ // 2 | Status // 3 | Progress Indicator // 4 | Footer - // 5 | Spacer assertEquals(4, mAdapter.getFirstPositionForType(ItemViewType.FOOTER)); assertEquals(RecyclerView.NO_POSITION, mAdapter.getFirstPositionForType(ItemViewType.ALL_DISMISSED)); @@ -1105,7 +1090,6 @@ // ----|-------------------- // 0 | Above-the-fold // 1 | All Dismissed - // 2 | Spacer assertEquals( RecyclerView.NO_POSITION, mAdapter.getFirstPositionForType(ItemViewType.FOOTER)); assertEquals(1, mAdapter.getFirstPositionForType(ItemViewType.ALL_DISMISSED)); @@ -1119,7 +1103,6 @@ // 0 | Above-the-fold // 1 | Sign In Promo // 2 | Footer - // 3 | Spacer assertEquals(2, mAdapter.getFirstPositionForType(ItemViewType.FOOTER)); assertEquals(RecyclerView.NO_POSITION, mAdapter.getFirstPositionForType(ItemViewType.ALL_DISMISSED)); @@ -1132,7 +1115,6 @@ // ----|-------------------- // 0 | Above-the-fold // 1 | All Dismissed - // 2 | Spacer assertEquals( RecyclerView.NO_POSITION, mAdapter.getFirstPositionForType(ItemViewType.FOOTER)); assertEquals(1, mAdapter.getFirstPositionForType(ItemViewType.ALL_DISMISSED)); @@ -1146,7 +1128,6 @@ // 0 | Above-the-fold // 1 | Sign In Promo // 2 | Footer - // 3 | Spacer assertEquals(ItemViewType.FOOTER, mAdapter.getItemViewType(2)); assertEquals(RecyclerView.NO_POSITION, mAdapter.getFirstPositionForType(ItemViewType.ALL_DISMISSED)); @@ -1162,8 +1143,6 @@ // 0 | Above-the-fold assertEquals( RecyclerView.NO_POSITION, mAdapter.getFirstPositionForType(ItemViewType.FOOTER)); - assertEquals( - RecyclerView.NO_POSITION, mAdapter.getFirstPositionForType(ItemViewType.SPACING)); assertEquals(RecyclerView.NO_POSITION, mAdapter.getFirstPositionForType(ItemViewType.ALL_DISMISSED)); assertEquals( @@ -1178,7 +1157,7 @@ mSource.setStatusForCategory(TEST_CATEGORY, CategoryStatus.AVAILABLE); mSource.setSuggestionsForCategory(TEST_CATEGORY, createDummySuggestions(1, TEST_CATEGORY)); mSource.setInfoForCategory(TEST_CATEGORY, new CategoryInfoBuilder(TEST_CATEGORY).build()); - assertEquals(4, mAdapter.getItemCount()); // TODO(dgn): rewrite with section descriptors. + assertEquals(3, mAdapter.getItemCount()); // TODO(dgn): rewrite with section descriptors. // On Sign in, we should reset the sections, bring back suggestions instead of the All // Dismissed item. @@ -1192,7 +1171,6 @@ // 1 | Header // 2 | Suggestion // 4 | Footer - // 5 | Spacer assertEquals(3, mAdapter.getFirstPositionForType(ItemViewType.FOOTER)); assertEquals(RecyclerView.NO_POSITION, mAdapter.getFirstPositionForType(ItemViewType.ALL_DISMISSED)); @@ -1268,7 +1246,6 @@ } else { matcher.expectFooter(); } - matcher.expectSpacingItem(); matcher.expectEnd(); } @@ -1279,7 +1256,6 @@ matcher.expectAboveTheFoldItem(); matcher.expectSection(section); matcher.expectFooter(); // TODO(dgn): Handle scroll to reload with removes the footer - matcher.expectSpacingItem(); matcher.expectEnd(); } @@ -1290,7 +1266,6 @@ matcher.expectAboveTheFoldItem(); matcher.expectAllDismissedItem(); matcher.expectSection(section); - matcher.expectSpacingItem(); matcher.expectEnd(); }
diff --git a/chrome/app/resources/generated_resources_am.xtb b/chrome/app/resources/generated_resources_am.xtb index e2b5f77..a31ea58 100644 --- a/chrome/app/resources/generated_resources_am.xtb +++ b/chrome/app/resources/generated_resources_am.xtb
@@ -42,7 +42,6 @@ <translation id="1056898198331236512">ማስጠንቀቂያ</translation> <translation id="1058262162121953039">PUK</translation> <translation id="1062407476771304334">ተካ</translation> -<translation id="1062866675591297858">በክትትል ስር ያሉ ተጠቃሚዎችዎን በ<ph name="BEGIN_LINK" />በክትትል ስር ያሉ ተጠቃሚዎች ዳሽቦርድ<ph name="END_LINK" /> በኩል ያስተዳድሩ።</translation> <translation id="1064835277883315402">የግል አውታረ መረብን ይቀላቀሉ</translation> <translation id="1064912851688322329">የGoogle መለያዎትን ግንኙነት ያቋርጡ</translation> <translation id="1067048845568873861">ተፈጥሯል</translation> @@ -65,7 +64,6 @@ <translation id="1091767800771861448">ለመዝለል ESCAPEን ይጫኑ (ይፋዊ ላልሆኑ ግንባታዎች ብቻ)።</translation> <translation id="1093457606523402488">የሚታዩ አውታረ መረቦች፦</translation> <translation id="1094607894174825014">በሚከተለው ላይ የማንብብ ወይም የመጻፍ ክወና ልክ ባልሆነ ማሸጋሸጊያ ነው የተጠየቀው፦ «<ph name="DEVICE_NAME" />»።</translation> -<translation id="1097507499312291972">ይህ ሰው የሚጎበኛቸውን ድር ጣቢያዎች ለመቆጣጠር እና ለመመልከት <ph name="BEGIN_SIGN_IN_LINK" />በመለያ ይግቡ<ph name="END_SIGN_IN_LINK" />።</translation> <translation id="109758035718544977">የጣቢያዎች ድምፀ-ከል አንሳ</translation> <translation id="1097658378307015415">ከመግባትዎ በፊት አውታረ መረብ <ph name="NETWORK_ID" />ን ለማንቃት እባክዎ እንደ እንግዳ ይግቡ</translation> <translation id="1103523840287552314">ሁልጊዜ <ph name="LANGUAGE" />ን መተርጎም</translation> @@ -244,7 +242,6 @@ <translation id="1361655923249334273">ጥቅም ላይ ያልዋለ</translation> <translation id="1363028406613469049">ትራክ</translation> <translation id="1367951781824006909">ፋይል ይምረጡ</translation> -<translation id="136802136832547685">ወደዚህ መሣሪያ የሚታከሉ ምንም ክትትል የሚደረግባቸው ተጠቃሚዎች የሉም።</translation> <translation id="1368265273904755308">ችግር ሪፖርት ያድርጉ</translation> <translation id="1370646789215800222">ሰው ይወገድ?</translation> <translation id="1372681413396468867">{NUM_ITEMS,plural, =1{1 የሚወገድ ንጥል}one{# የሚወገዱ ንጥሎች}other{# የሚወገዱ ንጥሎች}}</translation> @@ -472,7 +469,6 @@ <translation id="1692799361700686467">ከበርካታ ጣቢያዎች የሚመጡ ኩኪዎች ተፈቅደዋል።</translation> <translation id="169515659049020177">Shift</translation> <translation id="1698122934742150150">የአሁኑ ማንነት የማያሳውቅ ክፍለ-ጊዜ ብቻ</translation> -<translation id="1700199471143028312">የእርስዎ አስተዳዳሪ ክትትል የሚደረግባቸው ተጠቃሚዎችን እንዲፈጥሩ አይፈቅዱልዎትም።</translation> <translation id="1701062906490865540">ይህን ሰው አስወግድ</translation> <translation id="1706586824377653884">በእርስዎ አስተዳዳሪ ታክሏል</translation> <translation id="1706625117072057435">የማጉላት ደረጃዎች</translation> @@ -1041,7 +1037,6 @@ <translation id="2604255671529671813">የአውታረ መረብ ግንኙነት ስህተት</translation> <translation id="2606246518223360146">ውሂብ አገናኝ</translation> <translation id="2607101320794533334">የርዕሰ ጉዳዩ ህዝባዊ ቁልፍ መረጃ</translation> -<translation id="2607459012323956820">የዚህ ክትትል የሚደረግበት ተጠቃሚ ቅንብሮች እና የአሰሳ ታሪክ አሁንም <ph name="BEGIN_LINK" /><ph name="DISPLAY_LINK" /><ph name="END_LINK" /> ላይ በአስተዳዳሪው ሊታይ ይችላል።</translation> <translation id="2608770217409477136">ነባሪ ቅንብሮችን ይጠቀሙ</translation> <translation id="2609896558069604090">አቋራጮችን ይፍጠሩ...</translation> <translation id="2610157865375787051">አንቀላፋ</translation> @@ -1284,7 +1279,6 @@ <translation id="2951247061394563839">መስኮቱን ወደ መሃል አምጣ</translation> <translation id="2956763290572484660"><ph name="COOKIES" /> ኩኪዎች</translation> <translation id="2958721676848865875">የጥቅል ቅጥያ ማስጠንቀቂያ</translation> -<translation id="2961043351165706615">የጫኗቸው የLinux መተግበሪያዎች ከዚህ Chromebook ይሰረዛሉ።</translation> <translation id="2961090598421146107"><ph name="CERTIFICATE_NAME" /> (ቅጥያ ቀርቧል)</translation> <translation id="2961695502793809356">ወደ ፊት ለመሄድ ጠቅ ያድርጉ፣ ታሪክ ለማየት ይያዙ</translation> <translation id="2963151496262057773">የሚከተለው ተሰኪ ምላሽ አይሰጥም፦ <ph name="PLUGIN_NAME" />ሊያቆሙት ይፈልጋሉ?</translation> @@ -1336,15 +1330,6 @@ <translation id="3022978424994383087">አልሰማሁትም።</translation> <translation id="3024374909719388945">ባለ 24 ሰዓት ይጠቀሙ</translation> <translation id="302781076327338683">የሚታለፈው መሸጎጫን ዳግም ጫን</translation> -<translation id="3030243755303701754">ክትትል የሚደረግበት ተጠቃሚ በእርስዎ አመራር ድሩ ሊያስስ ይችላል። በChrome ውስጥ ክትትል የሚደረግበት ተጠቃሚ አስተዳዳሪ እንደመሆንዎ መጠን እነዚህን ማድረግ ይችላሉ፦ - - • የተወሰኑ ድር ጣቢያዎችን መፍቀድ ወይም መከልከል፣ - • ክትትል የሚደረግበት ተጠቃሚው የጎበኛቸውን ድር ጣቢያዎችን መከለስ፣ እና - • ሌሎች ቅንብሮችን ማቀናበር። - -ክትትል የሚደረግበት ተጠቃሚ የGoogle መለያ አይፈጥርም፣ እና የእነሱ ዕልባቶች፣ የአሰሳ ታሪክ እና ሌሎች ምርጫዎች ከChrome ስምረት ጋር ወደ ሌሎች መሣሪያዎች አይከተሏቸውም። አዲስ ክትትል የሚደረግበት ተጠቃሚ ከፈጠሩ በኋላ ቅንብሮቻቸውን በ<ph name="BEGIN_MANAGE_LINK" /><ph name="DISPLAY_LINK" /><ph name="END_MANAGE_LINK" /> ላይ በማንኛውም ጊዜ ከማንኛውም መሣሪያ ላይ ማቀናበር ይችላሉ። - -ተጨማሪ መረጃ ለማግኘት <ph name="BEGIN_LINK" />የእገዛ ማዕከላችንን<ph name="END_LINK" /> ይጎብኙ።</translation> <translation id="3031417829280473749">Agent X</translation> <translation id="3031557471081358569">ከውጪ ለማስመጣት ንጥሎችን ምረጥ፦</translation> <translation id="3031601332414921114">ማተምን ካቆምክበት ቀጥል</translation> @@ -1385,7 +1370,6 @@ <translation id="3085412380278336437">ጣቢያ የእርስዎን ካሜራ መጠቀም ይችላል</translation> <translation id="3085752524577180175">የSOCKS አስተናጋጅ</translation> <translation id="3088325635286126843">እንደገና &ሰይም...</translation> -<translation id="3089231390674410424">በእርስዎ ምስክርነቶች ላይ ችግር ያለ ይመስላል። እባክዎ እርስዎ በአግባቡ የገቡ መሆንዎን ያረጋግጡና እንደገና ይሞክሩ።</translation> <translation id="3090193911106258841">የኦዲዮ እና የቪዲዮ ግብዓትን በመድረስ ላይ</translation> <translation id="3090819949319990166">ውጫዊ የcrx ፋይል ወደ <ph name="TEMP_CRX_FILE" /> መቅዳት አልተቻለም።</translation> <translation id="3090871774332213558">«<ph name="DEVICE_NAME" />» ተጣምሯል</translation> @@ -1400,7 +1384,6 @@ <translation id="3121793941267913344">ይህን የ<ph name="IDS_SHORT_PRODUCT_NAME" /> መሣሪያ ዳግም ያስጀምሩት</translation> <translation id="3122464029669770682">ሲፒዩ</translation> <translation id="3122496702278727796">የውሂብ ማውጫ ለመፍጠር አልተቻለም</translation> -<translation id="3123569374670379335">(ክትትል የሚደረግበት)</translation> <translation id="3124111068741548686">የተጠቃሚ መያዣዎች</translation> <translation id="3126026824346185272">Ctrl</translation> <translation id="3127156390846601284">ይህ ለሁሉም ለሚታዩት ጣቢያዎች በእርስዎ መሣሪያ ላይ የተክማቸ ማናቸውንም ውሂብ ይሰርዛል። ለመቀጠል ይፈልጋሉ?</translation> @@ -1435,8 +1418,6 @@ <translation id="3160842278951476457"><ph name="ISSUED_BY" /> [<ph name="ISSUED_TO" />] (በሃርድዌር የሚደገፍ)</translation> <translation id="316125635462764134">መተግበሪያ አስወግድ</translation> <translation id="3161522574479303604">ሁሉም ቋንቋዎች</translation> -<translation id="316307797510303346">ይህ ሰው ከ<ph name="CUSTODIAN_EMAIL" /> ሆኖ የሚጎበኛቸው ድር ጣቢያዎችን ይቆጣጠሩ እና ይመልከቱ። - የመለያ መግቢያ ዝርዝሮችዎ ጊዜ ያለፈባቸው ናቸው።</translation> <translation id="3165390001037658081">አንዳንድ የአገልግሎት አቅራቢዎች ይህን ባህሪ ሊያግዱት ይችላሉ።</translation> <translation id="316854673539778496">ሁሉንም የእርስዎ ቅጥያዎች በሁሉም መሣሪያዎችዎ ላይ ለማግኘት በመለያ ይግቡና ስምረትን ያብሩ።</translation> <translation id="3170072451822350649">እንዲሁም መግባቱን ትተው <ph name="LINK_START" />እንደ እንግዳ ማሰስ<ph name="LINK_END" /> ይችላሉ።</translation> @@ -1469,7 +1450,6 @@ <translation id="3229922550070982305">አጫውት / ባለበት አቁም</translation> <translation id="3232318083971127729">እሴት፦</translation> <translation id="3236289833370040187">ባለቤትነትን ወደ <ph name="DESTINATION_DOMAIN" /> ይዛወራል።</translation> -<translation id="3237784613213365159"><ph name="NEW_PROFILE_NAME" /> አሁን ክትትል የሚደረግባቸው ተጠቃሚ ናቸው</translation> <translation id="323803881985677942">የቅጥያ አማራጮችን ይክፈቱ</translation> <translation id="3241680850019875542">ለመሸከፍ የቅጥያውን ስርወ ማውጫ ይምረጡ። ቅጥያውን ለማዘመን እንዲሁ የግል ቁልፍ ፋይልን እንደገና ለመጠቀም ይምረጡ።</translation> <translation id="3242765319725186192">ቅድሚያ የተጋራ ቁልፍ፦</translation> @@ -1701,7 +1681,6 @@ <translation id="3584169441612580296">በኮምፒውተርዎ ላይ ያሉ ፎቶዎችን፣ ሙዚቃን እና ሌላ ማህደረመረጃ ያነብባል እና ይቀይራል</translation> <translation id="3587482841069643663">ሁሉም</translation> <translation id="358796204584394954">ለማጣመር ይህን ኮድ በ«<ph name="DEVICE_NAME" />» ላይ ይተይቡ፦</translation> -<translation id="3589532742556016615">ይህ በሌሎች መሣሪያዎች ላይ በመተግበሪያዎች ወይም ይዘት ላይ ተጽዕኖ አያሳርፍም።</translation> <translation id="3589766037099229847">ደህንነቱ ያልተጠበቀ ይዘት ታግዷል</translation> <translation id="3590194807845837023">መገለጫ አስፈክትና ዳግም አስጀምር</translation> <translation id="3592260987370335752">&ተጨማሪ ይወቁ</translation> @@ -1835,7 +1814,6 @@ <translation id="3778152852029592020">ማውረድ ተሰርዟል።</translation> <translation id="3778740492972734840">&የዴቬሎፐር መሳሪያዎች</translation> <translation id="3778868487658107119">ጥያቄዎችን ይጠይቁት። ነገሮችን እንዲያደርግ ይንገሩት። ሁልጊዜ ለማገዝ ዝግጁ የሆነ የእርስዎ የግል Google ነው።</translation> -<translation id="3780663724044634171">ክትትል የሚደረግበት ተጠቃሚ የሚያቀናብሩበት አንድ መለያ ይምረጡ።</translation> <translation id="378312418865624974">የዚህ ኮምፒውተር ልዩ መለያውን ያነብባል</translation> <translation id="3783640748446814672">alt</translation> <translation id="3785308913036335955">የመተግበሪያዎች አቋራጮችን አሳይ</translation> @@ -2561,7 +2539,6 @@ <translation id="4964455510556214366">አደራደር</translation> <translation id="4964673849688379040">በመፈተሽ ላይ...</translation> <translation id="4965808351167763748">እርግጠኛ ነዎት ይህን መሣሪያ Hangouts Meetን እንዲያሄድ ማዋቀር ይፈልጋሉ?</translation> -<translation id="4967749818080339523">አንድ መለያ ይምረጡ</translation> <translation id="496888482094675990">የፋይሎች መተግበሪያው በGoogle Drive፣ ውጫዊ ማከማቻ ወይም በእርስዎ የChrome OS መሣሪያ ላይ ያስቀመጧቸውን ፋይሎች ፈጣን መዳረሻ ይሰጠዎታል።</translation> <translation id="4969785127455456148">አልበም</translation> <translation id="4971412780836297815">ሲጠናቀቅ ክፈት</translation> @@ -2748,7 +2725,6 @@ መሣሪያዎ ምንም ነገር ቢሆን ፋይሎችዎ በጥንቃቄ Google Drive ላይ ተከማችተዋል።<ph name="MARKUP_6" /> ፋይሎችን በአንድ ቦታ ላይ <ph name="MARKUP_7" />ያጋሩ፣ ይፍጠሩ እና ያቀናጁ<ph name="MARKUP_8" />።<ph name="MARKUP_9" /></translation> -<translation id="5262401745672360397">በLinux መተግበሪያዎች የተጋሩ ፋይሎች እንዲሁም ሊሰረዙ ይችላሉ።</translation> <translation id="5264148714798105376">ይሄ አንድ ደቂቃ አካባቢ ሊወስድ ይችላል።</translation> <translation id="5264252276333215551">የእርስዎን መተግበሪያ በኪዮስክ ሁነታ ለማስጀመር እባክዎ ከበይነመረቡ ጋር ይገናኙ።</translation> <translation id="5265562206369321422">ከአንድ ሳምንት በላይ ከመስመር ውጪ</translation> @@ -3399,7 +3375,6 @@ <translation id="6241530762627360640">ከስርዓትዎ ጋር ስለተጣመሩ የብሉቱዝ መሣሪያዎች ያለ መረጃ ይደርሳልና አቅራቢያ ያሉ የብሉቱዝ መሣሪያዎችን ያገኛል።</translation> <translation id="6243280677745499710">በአሁኑ ጊዜ የተቀናበረ</translation> <translation id="6243774244933267674">አገልጋይ አይገኝም</translation> -<translation id="6246413617632217567">ክትትል የሚደረግበት ተጠቃሚን ማስመጣት አልተቻለም። እባክዎ የደረቅ አንጻፊዎ ቦታን እና ፈቃዶችን ያረጋግጡና እንደገና ይሞክሩ።</translation> <translation id="6247708409970142803"><ph name="PERCENTAGE" />%</translation> <translation id="6247802389331535091">ሥርዓት፦ <ph name="ARC_PROCESS_NAME" /></translation> <translation id="624789221780392884">ማዘመኛ ዝግጁ ነው</translation> @@ -3598,7 +3573,6 @@ <translation id="654039047105555694"><ph name="BEGIN_BOLD" />ማስታወሻ፦<ph name="END_BOLD" /> የውሂብ መሰብሰብ አፈጻጸምን ስለሚቀንስ እያደረጉ ያሉትን ነገር የሚያውቁት ከሆነ ወይም እንዲያነቁ ከተጠየቁ ብቻ ያንቁ።</translation> <translation id="654233263479157500">የአሰሳ ስህተቶችን ለመቅረፍ እንዲያግዝ የድር አገልግሎት ይጠቀሙ</translation> <translation id="6544215763872433504">በGoogle የቀረበ የድር አሳሽ፣ ለእርስዎ</translation> -<translation id="6545325945815270297">በ<ph name="BEGIN_LINK" />Chrome ዳሽቦርድ<ph name="END_LINK" /> ላይ የሰመሩ ውሂብ እና መሣሪያዎችን ያቀናብሩ።</translation> <translation id="6545665334409411530">የድግግሞሽ ፍጥነት</translation> <translation id="6545834809683560467">በአድራሻ አሞሌ ወይም በመተግበሪያ ማስጀመሪያ ሳጥኑ ውስጥ የተተየቡ ፍለጋዎችን እና ዩአርኤሎችን ለማጠናቀቅ የመገመቻ አገልግሎት ይጠቀሙ።</translation> <translation id="6546686722964485737">የWiMAX አውታረ መረብ ይቀላቀሉ</translation> @@ -3613,7 +3587,6 @@ <translation id="6555810572223193255">ማጽዳት በአሁኑ ጊዜ አይገኝም</translation> <translation id="6556866813142980365">ድገም</translation> <translation id="6558280019477628686">አንድ ስህተት ተከስቷል። አንዳንድ ንጥሎች አልተሰረዙ ሊሆኑ ይችላሉ።</translation> -<translation id="6559580823502247193">(በዚህ መሣሪያ ላይ አስቀድሞ አለ)</translation> <translation id="6561726789132298588">ያስገቡ</translation> <translation id="656293578423618167">የፋይል ዱካው ወይም ስሙ በጣም ረጅም ነው። እባክዎ ባጠረ ስም ወይም ሌላ ቦታ ላይ ያስቀምጡ።</translation> <translation id="656398493051028875">«<ph name="FILENAME" />»ን በመሰረዝ ላይ...</translation> @@ -3810,7 +3783,6 @@ <translation id="6862635236584086457">በዚህ አቃፊ ውስጥ የተቀመጡ ፋይሎች ሁሉ በራስ-ሰር መስመር ላይ መጠባበቂያ ይቀመጥላቸዋል</translation> <translation id="6865313869410766144">የራስ-ሙላ ቅጽ ውሂብ</translation> <translation id="686664946474413495">የቀለም ሙቀት መጠን</translation> -<translation id="6867678160199975333">ወደ <ph name="NEW_PROFILE_NAME" /> ቀይር</translation> <translation id="6870888490422746447">የሚያጋሩትን መተግበሪያ ይምረጡ፦</translation> <translation id="6871644448911473373">OCSP ምላሽ ሰጪ፦ <ph name="LOCATION" /></translation> <translation id="6872781471649843364">ያስገቡት የይለፍ ቃል በአገልጋዩ ተቀባይነት አላገኘም።</translation> @@ -3904,7 +3876,6 @@ <translation id="7018275672629230621">የአሰሳ ታሪክዎን ያነብባል እና ይቀይራል</translation> <translation id="7019805045859631636">ፈጣን</translation> <translation id="7022562585984256452">የእርስዎ መነሻ ገጽ ተዋቅሯል።</translation> -<translation id="7025036625303002400">ይህን ስም ያለው ክትትል የሚደረግበት ተጠቃሚ አስቀድመው ያለዎት ይመስላል።</translation> <translation id="7025190659207909717">የተንቀሳቃሽ ስልክ ውሂብ አገልግሎት ማቀናበር</translation> <translation id="7025325401470358758">ቀጣይ ንጥል</translation> <translation id="7027125358315426638">የውሂብ ጎታ ስም፦</translation> @@ -3953,7 +3924,6 @@ <translation id="7092106376816104">የማይካተቱ ብቅ-ባዮች</translation> <translation id="7093434536568905704">GTK+</translation> <translation id="7093866338626856921">ስማቸው እንደሚከተለው ከሆኑ መሣሪያዎች ጋር ውሂብ ተለዋወጥ፦ <ph name="HOSTNAMES" /></translation> -<translation id="7096108453481049031">ክትትል የሚደረግበት ተጠቃሚን ማስመጣት አልተቻለም። እባክዎ የአውታረ መረብዎን ግንኙነት ይፈትሹና ቆይተው እንደገና ይሞክሩ።</translation> <translation id="7096406577040705016">የሙሉ ማያ ገጽ ማጉያን ቀያይር</translation> <translation id="7098447629416471489">ሌሎች የተቀመጡ የፍለጋ ፕሮግራሞች እዚህ ይታያሉ</translation> <translation id="7099337801055912064">ትልቅ PPDን መጫን አልተቻለም። ከፍተኛው መጠን 250 ኪባ ነው።</translation> @@ -4001,7 +3971,6 @@ <translation id="7168109975831002660">አነስተኛ የቅርፀ ቁምፊ መጠን</translation> <translation id="7170041865419449892">ከክልል ውጪ</translation> <translation id="7171559745792467651">መተግበሪያዎቹን ከሌሎች መሣሪያዎችዎ ይጫኑ</translation> -<translation id="7173917244679555">አስቀድመው በዚያ ስም ያለ አንድ ተጠቃሚ እያስተዳደሩ ያሉ ይመስላል። <ph name="BEGIN_LINK" /><ph name="PROFILE_NAME" />ን ወደዚህ መሣሪያ ማስመጣት<ph name="END_LINK" /> ፈልገው ነበር?</translation> <translation id="7175037578838465313"><ph name="NAME" />ን አዋቅር</translation> <translation id="7175353351958621980">የተጫነው ከ፦</translation> <translation id="7180611975245234373">አድስ</translation> @@ -4173,7 +4142,6 @@ <translation id="7444726222535375658">ወደ Hangouts Meet ቀጥል</translation> <translation id="7444983668544353857"><ph name="NETWORKDEVICE" />ን አሰናክል</translation> <translation id="7445682342344043969">ብቅ-ባዮች ታግደዋል</translation> -<translation id="744859430125590922">ይህ ሰው ከ<ph name="CUSTODIAN_EMAIL" /> ሆኖ የሚጎበኟቸውን ድር ጣቢያዎች ይቆጣጠሩ እና ይመልከቱ።</translation> <translation id="7453008956351770337">ይህን አታሚ በመምረጥዎ የሚከተለው ቅጥያ አታሚዎን እንዲደርስበት ፍቃድ እየሰጡት ነው፦</translation> <translation id="7453467225369441013">ከአብዛኛዎቹ ጣቢያዎች ዘግተው ያስወጣዎታል። ከእርስዎ የGoogle መለያ ዘግተው እንዲወጡ አይደረጉም።</translation> <translation id="7456142309650173560">dev</translation> @@ -4347,7 +4315,6 @@ <translation id="7717845620320228976">ዝማኔዎች ካለ ተመልከት</translation> <translation id="7719367874908701697">ገጽ አጉላ</translation> <translation id="771953673318695590">QA</translation> -<translation id="7720375555307821262">ይህን ሰው ለመከታተል <ph name="BEGIN_LINK" />ወደ Chrome ይግቡ<ph name="END_LINK" />።</translation> <translation id="7721179060400456005">መስኮቶች ማሳያዎችን ለመሸፈን እንዲችሉ ይፍቀዱ</translation> <translation id="7722040605881499779">ለማዘመን የሚያስፈልገው፦ <ph name="NECESSARY_SPACE" /></translation> <translation id="7724603315864178912">ቁረጥ</translation> @@ -5207,7 +5174,6 @@ <translation id="9024331582947483881">ሙሉ ገጽ ማያ</translation> <translation id="9025098623496448965">እሺ፣ ነገር ግን ተመልሰህ ወደ መግቢያ ገጹ ውሰደኝ</translation> <translation id="9026731007018893674">የወረደ</translation> -<translation id="9027146684281895941">እነኚህ ሰው የሚጎበኙትን ድር ጣቢያዎች ለመቆጣጠር እና ለመመልከት ከእርስዎ Google መለያ ሲጎበኙ ክትትል ያድርጉባቸው።</translation> <translation id="9027459031423301635">አገናኙን በአዲስ &ትር ክፈት</translation> <translation id="9027603907212475920">ማመሳሰል አዋቅር…</translation> <translation id="9030515284705930323">የእርስዎ ድርጅት Google Play መደብርን ለመለያዎ አላነቃም። ተጨማሪ መረጃን ለማግኘት አስተዳዳሪዎን ያነጋግሩ።</translation> @@ -5367,7 +5333,6 @@ <translation id="98515147261107953">በወርድ</translation> <translation id="987897973846887088">ምንም ምስሎች አይገኙም</translation> <translation id="988978206646512040">ባዶ የይለፍ ሐረግ አይፈቀድም</translation> -<translation id="990310048453480215">የLinux መተግበሪያዎችን ያስወግዳል</translation> <translation id="992032470292211616">ቅጥያዎች፣ መተግበሪያዎች እና ገጽታዎች መሣሪያዎን ሊጎዱት ይችላሉ። እርግጠኛ ነዎት መቀጠል ይፈልጋሉ?</translation> <translation id="992592832486024913">ChromeVoxን (የሚነገር ግብረመልስ) አሰናክል</translation> <translation id="994289308992179865">&ደጋግም</translation>
diff --git a/chrome/app/resources/generated_resources_ar.xtb b/chrome/app/resources/generated_resources_ar.xtb index 87186493..bbbc603 100644 --- a/chrome/app/resources/generated_resources_ar.xtb +++ b/chrome/app/resources/generated_resources_ar.xtb
@@ -42,7 +42,6 @@ <translation id="1056898198331236512">تحذير</translation> <translation id="1058262162121953039">PUK</translation> <translation id="1062407476771304334">استبدال</translation> -<translation id="1062866675591297858">يمكنك إدارة المستخدمين الخاضعين للإشراف عبر <ph name="BEGIN_LINK" />لوحة التحكم في المستخدمين الخاضعين للإشراف<ph name="END_LINK" />.</translation> <translation id="1064835277883315402">الانضمام إلى شبكة خاصة</translation> <translation id="1064912851688322329">قطع الاتصال بحساب Google</translation> <translation id="1067048845568873861">تم الإنشاء</translation> @@ -65,7 +64,6 @@ <translation id="1091767800771861448">اضغط على ESCAPE للتخطي (الإصدارات غير الرسمية فقط).</translation> <translation id="1093457606523402488">شبكات مرئية:</translation> <translation id="1094607894174825014">تم طلب عملية القراءة أو الكتابة باستخدام إزاحة غير صالحة على: "<ph name="DEVICE_NAME" />".</translation> -<translation id="1097507499312291972"><ph name="BEGIN_SIGN_IN_LINK" />سجّل الدخول<ph name="END_SIGN_IN_LINK" /> للتحكم في مواقع الويب التي يزورها هذا الشخص وعرضها.</translation> <translation id="109758035718544977">إلغاء تجاهل المواقع</translation> <translation id="1097658378307015415">قبل تسجيل الدخول، يُرجى الدخول كضيف لتفعيل الشبكة <ph name="NETWORK_ID" /></translation> <translation id="1103523840287552314">ترجمة اللغة <ph name="LANGUAGE" /> دائمًا</translation> @@ -244,7 +242,6 @@ <translation id="1361655923249334273">غير مستخدم</translation> <translation id="1363028406613469049">مقطع صوتي</translation> <translation id="1367951781824006909">اختيار ملف</translation> -<translation id="136802136832547685">ليس هناك مستخدمون تحت الإشراف لإضافتهم لهذا الجهاز.</translation> <translation id="1368265273904755308">الإبلاغ عن مشكلة</translation> <translation id="1370646789215800222">هل تريد إزالة شخص؟</translation> <translation id="1372681413396468867">{NUM_ITEMS,plural, =1{ستتم إزالة عنصر واحد}zero{ستتم إزالة # عنصر}two{ستتم إزالة عنصرين (#)}few{ستتم إزالة # عناصر}many{ستتم إزالة # عنصرًا}other{ستتم إزالة # عنصر}}</translation> @@ -473,7 +470,6 @@ <translation id="1692799361700686467">يُسمح بملفات تعريف الارتباط من مواقع متعددة.</translation> <translation id="169515659049020177">Shift</translation> <translation id="1698122934742150150">جلسة التصفح المتخفي الحالية فقط</translation> -<translation id="1700199471143028312">لا يسمح المشرف بإنشاء مستخدمين تحت الإشراف.</translation> <translation id="1701062906490865540">إزالة هذا الشخص</translation> <translation id="1706586824377653884">تمت الإضافة من قبل المشرف</translation> <translation id="1706625117072057435">مستويات التكبير/التصغير</translation> @@ -1041,7 +1037,6 @@ <translation id="2604255671529671813">خطأ في اتصال الشبكة</translation> <translation id="2606246518223360146">ربط البيانات</translation> <translation id="2607101320794533334">معلومات المفتاح العام لصاحب الشهادة</translation> -<translation id="2607459012323956820">قد تظل الإعدادات وسجل التصفح لهذا المستخدم الذي يخضع للإشراف مرئية للمدير على <ph name="BEGIN_LINK" /><ph name="DISPLAY_LINK" /><ph name="END_LINK" />.</translation> <translation id="2608770217409477136">استخدام الإعدادات التلقائية</translation> <translation id="2609896558069604090">إنشاء اختصارات...</translation> <translation id="2610157865375787051">السكون</translation> @@ -1284,7 +1279,6 @@ <translation id="2951247061394563839">توسيط النافذة</translation> <translation id="2956763290572484660"><ph name="COOKIES" /> من ملفات تعريف الارتباط</translation> <translation id="2958721676848865875">تحذير حزمة الإضافة</translation> -<translation id="2961043351165706615">سيتم حذف تطبيقات Linux التي ثبّتها من Chromebook.</translation> <translation id="2961090598421146107"><ph name="CERTIFICATE_NAME" /> (الإضافة متوفرة)</translation> <translation id="2961695502793809356">انقر للانتقال إلى الأمام واضغط لمشاهدة السجل</translation> <translation id="2963151496262057773">المكوّن الإضافي التالي غير مستجيب: <ph name="PLUGIN_NAME" />، هل تريد إيقافه؟</translation> @@ -1336,15 +1330,6 @@ <translation id="3022978424994383087">لم يتم استيعاب هذا.</translation> <translation id="3024374909719388945">استخدام تنسيق 24 ساعة</translation> <translation id="302781076327338683">إعادة تحميل تجاوز ذاكرة التخزين المؤقت</translation> -<translation id="3030243755303701754">ويمكن لمستخدم تحت الإشراف أن يستكشف الويب تحت إرشادك. بصفتك مديرًا لمستخدم تحت الإشراف في Chrome، يمكنك الآتي: - -• السماح ببعض مواقع الويب أو حظرها، -• مراجعة مواقع الويب التي زارها المستخدم تحت الإشراف، -• إدارة إعدادات أخرى. - -لا يؤدي إنشاء حساب مستخدم تحت الإشراف إلى إنشاء حساب في Google، ولن تتم مزامنة الإشارات المرجعية وسجل التصفح والتفضيلات الأخرى للمستخدم مع الأجهزة الأخرى أثناء مزامنة Chrome. بعد إنشاء حساب جديد لمستخدم تحت الإشراف، يمكنك إدارة إعداداته في أي وقت، من أي جهاز، في <ph name="BEGIN_MANAGE_LINK" /><ph name="DISPLAY_LINK" /><ph name="END_MANAGE_LINK" /> - -لمزيد من المعلومات، يرجى زيارة <ph name="BEGIN_LINK" />مركز المساعدة<ph name="END_LINK" />.</translation> <translation id="3031417829280473749">الوكيل X</translation> <translation id="3031557471081358569">اختيار العناصر المراد استيرادها:</translation> <translation id="3031601332414921114">استئناف الطباعة</translation> @@ -1385,7 +1370,6 @@ <translation id="3085412380278336437">يمكن لموقع الويب استخدام الكاميرا.</translation> <translation id="3085752524577180175">مضيف SOCKS</translation> <translation id="3088325635286126843">إ&عادة تسمية...</translation> -<translation id="3089231390674410424">يبدو أن هناك مشكلة ما في بيانات الاعتماد. يُرجى التأكد من إدخالها بشكل صحيح وإعادة المحاولة.</translation> <translation id="3090193911106258841">جارٍ الوصول إلى إدخال الصوت والفيديو</translation> <translation id="3090819949319990166">لا يمكن نسخ ملف CRX الخارجي إلى <ph name="TEMP_CRX_FILE" />.</translation> <translation id="3090871774332213558">تم إقران "<ph name="DEVICE_NAME" />"</translation> @@ -1400,7 +1384,6 @@ <translation id="3121793941267913344">إعادة تعيين جهاز <ph name="IDS_SHORT_PRODUCT_NAME" /> هذا</translation> <translation id="3122464029669770682">وحدة المعالجة المركزية</translation> <translation id="3122496702278727796">إخفاق محاولة إنشاء دليل البيانات</translation> -<translation id="3123569374670379335">(خاضع للإشراف)</translation> <translation id="3124111068741548686">معالجات المستخدم</translation> <translation id="3126026824346185272">Ctrl</translation> <translation id="3127156390846601284">سيؤدي هذا إلى حذف أي بيانات مخزنة على الجهاز لجميع المواقع المعروضة. هل ترغب في المتابعة؟</translation> @@ -1435,8 +1418,6 @@ <translation id="3160842278951476457"><ph name="ISSUED_BY" /> [<ph name="ISSUED_TO" />] (مستندة إلى الأجهزة)</translation> <translation id="316125635462764134">إزالة التطبيق</translation> <translation id="3161522574479303604">كل اللغات</translation> -<translation id="316307797510303346">تحكم في مواقع الويب التي يزورها هذا الشخص من <ph name="CUSTODIAN_EMAIL" /> واعرضها. - تفاصيل تسجيل الدخول إلى حسابك قديمة.</translation> <translation id="3165390001037658081">قد يحظر بعض مشغلي شبكات الجوّال هذه الميزة.</translation> <translation id="316854673539778496">للحصول على كل الإضافات على جميع أجهزتك، يُرجى تسجيل الدخول وتفعيل المزامنة.</translation> <translation id="3170072451822350649">يمكنك أيضًا تخطي تسجيل الدخول و<ph name="LINK_START" />التصفح كضيف<ph name="LINK_END" />.</translation> @@ -1469,7 +1450,6 @@ <translation id="3229922550070982305">التشغيل / الإيقاف المؤقت</translation> <translation id="3232318083971127729">القيمة:</translation> <translation id="3236289833370040187">سيتم نقل الملكية إلى <ph name="DESTINATION_DOMAIN" />.</translation> -<translation id="3237784613213365159">أصبح <ph name="NEW_PROFILE_NAME" /> الآن مستخدمًا تحت الإشراف</translation> <translation id="323803881985677942">فتح خيارات الإضافة</translation> <translation id="3241680850019875542">حدد الدليل الجذر للإضافة المراد إنشاء حزمة لها، ولتحديث إضافة، حدد أيضًا ملف المفتاح الخاص لإعادة استخدامه.</translation> <translation id="3242765319725186192">مفتاح مشترك مسبقًا:</translation> @@ -1700,7 +1680,6 @@ <translation id="3584169441612580296">التعرّف على الصور، والموسيقى، والوسائط الأخرى من الكمبيوتر وتغييرها</translation> <translation id="3587482841069643663">الكل</translation> <translation id="358796204584394954">اكتب هذه الشفرة في "<ph name="DEVICE_NAME" />" لإقرانه:</translation> -<translation id="3589532742556016615">لا يؤثّر هذا في التطبيقات أو المحتوى على الأجهزة الأخرى.</translation> <translation id="3589766037099229847">تم حظر محتوى غير آمن</translation> <translation id="3590194807845837023">إلغاء قفل الملف الشخصي، وإعادة التشغيل من جديد</translation> <translation id="3592260987370335752">&مزيد من المعلومات</translation> @@ -1834,7 +1813,6 @@ <translation id="3778152852029592020">تم إلغاء التنزيل.</translation> <translation id="3778740492972734840">أ&دوات مطوري البرامج</translation> <translation id="3778868487658107119">يمكنك طرح الأسئلة، وطلب تنفيذ المهام. إنه مساعدك الشخصي من Google، وهو على استعداد كامل لتقديم المساعدة.</translation> -<translation id="3780663724044634171">حدد حسابًا لإدارة المستخدم تحت الإشراف.</translation> <translation id="378312418865624974">الاطّلاع على معرّف فريد لهذا الكمبيوتر</translation> <translation id="3783640748446814672">alt</translation> <translation id="3785308913036335955">إظهار اختصار التطبيقات</translation> @@ -2559,7 +2537,6 @@ <translation id="4964455510556214366">الترتيب</translation> <translation id="4964673849688379040">جارٍ التحقق...</translation> <translation id="4965808351167763748">هل تريد بالتأكيد إعداد هذا الجهاز لتشغيل Hangouts Meet؟</translation> -<translation id="4967749818080339523">تحديد حساب</translation> <translation id="496888482094675990">يوفر تطبيق الملفات وصولاً سريعًا إلى الملفات التي حفظتها على Google Drive، أو سعة التخزين الخارجي، أو جهاز نظام التشغيل Chrome.</translation> <translation id="4969785127455456148">الألبوم</translation> <translation id="4971412780836297815">فتح عند اكتمال التنزيل</translation> @@ -2745,7 +2722,6 @@ بصرف النظر عمّا يحدث لجهازك، تظل الملفات مخزَّنة في أمان في Google Drive.<ph name="MARKUP_6" /> <ph name="MARKUP_7" />المشاركة والإنشاء والتعاون<ph name="MARKUP_8" /> في الملفات مع الآخرين في مكانٍ واحد.<ph name="MARKUP_9" /></translation> -<translation id="5262401745672360397">قد يتم أيضًا حذف الملفات التي تمت مشاركتها باستخدام تطبيقات Linux.</translation> <translation id="5264148714798105376">قد يستغرق ذلك دقيقة أو نحو ذلك.</translation> <translation id="5264252276333215551">يُرجى الاتصال بالإنترنت لتشغيل التطبيق في وضع الكشك.</translation> <translation id="5265562206369321422">بلا إنترنت لمدة تتجاوز أسبوعًا</translation> @@ -3398,7 +3374,6 @@ <translation id="6241530762627360640">الوصول إلى معلومات حول أجهزة البلوتوث المقترنة بنظامك واكتشاف أجهزة البلوتوث القريبة.</translation> <translation id="6243280677745499710">المحدّدة حاليًا</translation> <translation id="6243774244933267674">الخادم غير متاح</translation> -<translation id="6246413617632217567">تعذّر استيراد المستخدم تحت الإشراف. يُرجى التحقق من مساحة محرك الأقراص الثابتة والأذونات، وإعادة المحاولة.</translation> <translation id="6247708409970142803">%<ph name="PERCENTAGE" /></translation> <translation id="6247802389331535091">النظام: <ph name="ARC_PROCESS_NAME" /></translation> <translation id="624789221780392884">التحديث جاهز</translation> @@ -3597,7 +3572,6 @@ <translation id="654039047105555694"><ph name="BEGIN_BOLD" />ملاحظة:<ph name="END_BOLD" /> يُوصى بعدم التمكين إلا إذا كنت تعرف ماذا تريد أو عندما يُطلب منك إجراء ذلك، ذلك أن جمع البيانات قد يقلل من مستوى الأداء.</translation> <translation id="654233263479157500">استخدام إحدى خدمات الويب للمساعدة على حل أخطاء التنقل</translation> <translation id="6544215763872433504">متصفح الويب المقدم من Google، لك</translation> -<translation id="6545325945815270297">يمكنك إدارة بياناتك وأجهزتك المتزامنة على <ph name="BEGIN_LINK" />لوحة تحكم Chrome<ph name="END_LINK" />.</translation> <translation id="6545665334409411530">معدل التكرار</translation> <translation id="6545834809683560467">يمكنك استخدام خدمة التوقع لمساعدتك في إكمال عبارات البحث وعناوين URL التي تكتبها في شريط العناوين أو في مربع بحث تطبيقات Launcher</translation> <translation id="6546686722964485737">الانضمام إلى شبكة WiMAX</translation> @@ -3612,7 +3586,6 @@ <translation id="6555810572223193255">إزالة البرامج غير متاحة حاليًا</translation> <translation id="6556866813142980365">إعادة</translation> <translation id="6558280019477628686">حدث خطأ ما. ربما لم يتمّ حذف بعض العناصر.</translation> -<translation id="6559580823502247193">(موجود من قبل على هذا الجهاز)</translation> <translation id="6561726789132298588">إدخال</translation> <translation id="656293578423618167">اسم الملف أو مساره طويل جدًا. يُرجى الحفظ باستخدام اسم أقصر أو في مكان آخر.</translation> <translation id="656398493051028875">جارٍ حذف "<ph name="FILENAME" />"...</translation> @@ -3809,7 +3782,6 @@ <translation id="6862635236584086457">جميع الملفات المحفوظة في هذا المجلد يتم الاحتفاظ بنسخة احتياطية منها تلقائيًا على الإنترنت</translation> <translation id="6865313869410766144">الملء التلقائي من البيانات</translation> <translation id="686664946474413495">درجة حرارة الألوان</translation> -<translation id="6867678160199975333">التبديل إلى <ph name="NEW_PROFILE_NAME" /></translation> <translation id="6870888490422746447">اختيار تطبيق للمشاركة في:</translation> <translation id="6871644448911473373">مستجيب OCSP: <ph name="LOCATION" /></translation> <translation id="6872781471649843364">رفض الخادم كلمة المرور التي أدخلتَها.</translation> @@ -3903,7 +3875,6 @@ <translation id="7018275672629230621">الاطّلاع على سجل التصفح وتغييره</translation> <translation id="7019805045859631636">سريع</translation> <translation id="7022562585984256452">تم تعيين صفحتك الرئيسية.</translation> -<translation id="7025036625303002400">يبدو أن لديك بالفعل مستخدمًا تحت الإشراف يحمل هذا الاسم.</translation> <translation id="7025190659207909717">إدارة خدمة بيانات الجوال</translation> <translation id="7025325401470358758">الجزء التالي</translation> <translation id="7027125358315426638">اسم قاعدة البيانات:</translation> @@ -3952,7 +3923,6 @@ <translation id="7092106376816104">استثناءات النوافذ المنبثقة</translation> <translation id="7093434536568905704">مظهر +GTK</translation> <translation id="7093866338626856921">تبادل البيانات مع الأجهزة المسماه: <ph name="HOSTNAMES" /></translation> -<translation id="7096108453481049031">تعذّر استيراد المستخدم تحت الإشراف. يُرجى التحقق من اتصال الشبكة وإعادة المحاولة لاحقًا.</translation> <translation id="7096406577040705016">تبديل وضع "المكبّر بملء الشاشة"</translation> <translation id="7098447629416471489">ستظهر هنا محركات البحث المحفوظة الأخرى</translation> <translation id="7099337801055912064">يتعذّر تحميل ملف PPD كبير الحجم. الحد الأقصى للحجم هو 250 كيلوبايت.</translation> @@ -4000,7 +3970,6 @@ <translation id="7168109975831002660">الحد الأدنى لحجم الخط</translation> <translation id="7170041865419449892">خارج النطاق</translation> <translation id="7171559745792467651">تثبيت التطبيقات من أجهزتك الأخرى</translation> -<translation id="7173917244679555">يبدو أنك تدير مستخدمًا من خلال هذا الاسم بالفعل. هل أردت <ph name="BEGIN_LINK" />الاستيراد <ph name="PROFILE_NAME" /><ph name="END_LINK" /> إلى هذا الجهاز؟</translation> <translation id="7175037578838465313">تهيئة <ph name="NAME" /></translation> <translation id="7175353351958621980">تم التحميل من:</translation> <translation id="7180611975245234373">تحديث</translation> @@ -4172,7 +4141,6 @@ <translation id="7444726222535375658">المتابعة إلى Hangouts Meet</translation> <translation id="7444983668544353857">إيقاف <ph name="NETWORKDEVICE" /></translation> <translation id="7445682342344043969">تم حظر النوافذ المنبثقة</translation> -<translation id="744859430125590922">تحكم في مواقع الويب التي يزورها هذا الشخص من <ph name="CUSTODIAN_EMAIL" /> واعرضها.</translation> <translation id="7453008956351770337">عند تحديد الطابعة، فإنك تمنح الإضافة التالية الإذن للدخول إلى الطابعة.</translation> <translation id="7453467225369441013">سيتم تسجيل الخروج من معظم مواقع الويب لكن لن يتم تسجيل الخروج من حسابك في Google.</translation> <translation id="7456142309650173560">مطوري البرامج</translation> @@ -4347,7 +4315,6 @@ <translation id="7717845620320228976">البحث عن تحديثات</translation> <translation id="7719367874908701697">تكبير/تصغير الصفحة</translation> <translation id="771953673318695590">QA</translation> -<translation id="7720375555307821262">للإشراف على هذا الشخص، <ph name="BEGIN_LINK" />سجّل الدخول إلى Chrome<ph name="END_LINK" />.</translation> <translation id="7721179060400456005">السماح للنوافذ بتوحيد العروض</translation> <translation id="7722040605881499779">المساحة اللازمة لإجراء التحديث: <ph name="NECESSARY_SPACE" /></translation> <translation id="7724603315864178912">قص</translation> @@ -5202,7 +5169,6 @@ <translation id="9024331582947483881">ملء الشاشة</translation> <translation id="9025098623496448965">حسنًا، أعدني إلى شاشة تسجيل الدخول</translation> <translation id="9026731007018893674">تنزيل</translation> -<translation id="9027146684281895941">يمكنك الإشراف على هذا الشخص للتحكم في مواقع الويب التي يزورها وعرضها من حسابك في Google.</translation> <translation id="9027459031423301635">فتح الرابط في &علامة تبويب جديدة</translation> <translation id="9027603907212475920">إعداد المزامنة...</translation> <translation id="9030515284705930323">لم تمكّن مؤسستك متجر Google Play لحسابك. اتصل بالمشرف للحصول على مزيد من المعلومات.</translation> @@ -5362,7 +5328,6 @@ <translation id="98515147261107953">أفقي</translation> <translation id="987897973846887088">لا تتوفر أي صور.</translation> <translation id="988978206646512040">غير مسموح باستخدام عبارة مرور فارغة</translation> -<translation id="990310048453480215">إزالة تطبيقات Linux</translation> <translation id="992032470292211616">قد تضر الإضافات والتطبيقات والمظاهر بجهازك. هل تريد فعلًا المتابعة؟</translation> <translation id="992592832486024913">إيقاف ChromeVox (التعليقات المنطوقة)</translation> <translation id="994289308992179865">ت&كرار</translation>
diff --git a/chrome/app/resources/generated_resources_bg.xtb b/chrome/app/resources/generated_resources_bg.xtb index 91ac8e4..b018cd6 100644 --- a/chrome/app/resources/generated_resources_bg.xtb +++ b/chrome/app/resources/generated_resources_bg.xtb
@@ -42,7 +42,6 @@ <translation id="1056898198331236512">Предупреждение</translation> <translation id="1058262162121953039">PUK</translation> <translation id="1062407476771304334">Замяна</translation> -<translation id="1062866675591297858">Управлявайте контролираните от вас потребители чрез <ph name="BEGIN_LINK" />съответното табло за управление<ph name="END_LINK" />.</translation> <translation id="1064835277883315402">Присъединяване към частна мрежа</translation> <translation id="1064912851688322329">Прекъсване на връзката с профила ви в Google...</translation> <translation id="1067048845568873861">Дата на създаване</translation> @@ -65,7 +64,6 @@ <translation id="1091767800771861448">Натиснете „ESCAPE“ за пропускане (само в неофициалните версии).</translation> <translation id="1093457606523402488">Видими мрежи:</translation> <translation id="1094607894174825014">Операция за четене или запис с невалидно отместване бе заявена на: <ph name="DEVICE_NAME" />.</translation> -<translation id="1097507499312291972"><ph name="BEGIN_SIGN_IN_LINK" />Влезте в профила си<ph name="END_SIGN_IN_LINK" />, за да контролирате и преглеждате посещаваните от този човек уебсайтове.</translation> <translation id="109758035718544977">Включване на звука за сайтовете</translation> <translation id="1097658378307015415">Преди да влезете в профила си, моля, влезте като гост, за да активирате мрежата <ph name="NETWORK_ID" /></translation> <translation id="1103523840287552314">Винаги да се превежда от <ph name="LANGUAGE" /></translation> @@ -244,7 +242,6 @@ <translation id="1361655923249334273">Не се използва</translation> <translation id="1363028406613469049">Запис</translation> <translation id="1367951781824006909">Избор на файл</translation> -<translation id="136802136832547685">Няма контролирани потребители, които да добавите към това устройство.</translation> <translation id="1368265273904755308">Подаване на сигнал за проблем</translation> <translation id="1370646789215800222">Да се премахне ли този човек?</translation> <translation id="1372681413396468867">{NUM_ITEMS,plural, =1{1 елемент за премахване}other{# елемента за премахване}}</translation> @@ -469,7 +466,6 @@ <translation id="1692799361700686467">„Бисквитките“ от няколко сайта са разрешени.</translation> <translation id="169515659049020177">Shift</translation> <translation id="1698122934742150150">Само за текущата сесия в режим „инкогнито“</translation> -<translation id="1700199471143028312">Администраторът ви не разрешава да създавате контролирани потребители.</translation> <translation id="1701062906490865540">Премахване на този човек</translation> <translation id="1706586824377653884">Добавено от администратора ви</translation> <translation id="1706625117072057435">Нива на мащаба</translation> @@ -1038,7 +1034,6 @@ <translation id="2604255671529671813">Грешка при свързване с мрежата</translation> <translation id="2606246518223360146">Свързване на данните</translation> <translation id="2607101320794533334">Информация за публичен ключ на субект</translation> -<translation id="2607459012323956820">Настройките и историята на сърфирането за този контролиран потребител пак може да се виждат от мениджъра на адрес <ph name="BEGIN_LINK" /><ph name="DISPLAY_LINK" /><ph name="END_LINK" />.</translation> <translation id="2608770217409477136">Използване на настройките по подразбиране</translation> <translation id="2609896558069604090">Създаване на преки пътища...</translation> <translation id="2610157865375787051">Спящ режим</translation> @@ -1281,7 +1276,6 @@ <translation id="2951247061394563839">Центриране на прозореца</translation> <translation id="2956763290572484660"><ph name="COOKIES" /> „бисквитки“</translation> <translation id="2958721676848865875">Предупреждение за пакетиране на разширението</translation> -<translation id="2961043351165706615">Инсталираните от вас приложения за Linux ще бъдат изтрити от този Chromebook.</translation> <translation id="2961090598421146107"><ph name="CERTIFICATE_NAME" /> (предоставено от разширение)</translation> <translation id="2961695502793809356">Кликнете, за да преминете напред. Задръжте, за да видите историята.</translation> <translation id="2963151496262057773">Следната приставка е блокирала: <ph name="PLUGIN_NAME" />. Искате ли да я спрете?</translation> @@ -1333,15 +1327,6 @@ <translation id="3022978424994383087">Не разбрахме това.</translation> <translation id="3024374909719388945">Използване на 24-часов часовник</translation> <translation id="302781076327338683">Презареждане със заобикаляне на кеша</translation> -<translation id="3030243755303701754">Контролираният потребител може да изследва мрежата с ваше напътствие. Като негов мениджър в Chrome сте в състояние: - - • да разрешавате или забранявате определени уебсайтове; - • да преглеждате посетените от контролирания потребител уебсайтове; - • да управлявате други настройки. - -Създаването на контролиран потребител не създава профил в Google. Отметките, историята на сърфиране и останалите предпочитания на съответния човек няма да бъдат налични за него на други устройства чрез синхронизирането в Chrome. След като създадете нов контролиран потребител, можете по всяко време и от всяко устройство да управлявате настройките му на адрес <ph name="BEGIN_MANAGE_LINK" /><ph name="DISPLAY_LINK" /><ph name="END_MANAGE_LINK" />. - -За повече информация посетете <ph name="BEGIN_LINK" />Помощния ни център<ph name="END_LINK" />.</translation> <translation id="3031417829280473749">Агент „X“</translation> <translation id="3031557471081358569">Изберете елементи за импортиране:</translation> <translation id="3031601332414921114">Възобновяване на отпечатването</translation> @@ -1382,7 +1367,6 @@ <translation id="3085412380278336437">Сайтът може да използва камерата ви</translation> <translation id="3085752524577180175">SOCKS хост</translation> <translation id="3088325635286126843">&Преименуване...</translation> -<translation id="3089231390674410424">Изглежда, че има проблем с идентификационните ви данни. Моля, уверете се, че сте влезли правилно, и опитайте отново.</translation> <translation id="3090193911106258841">Осъществява се достъп до аудио- и видеовхода</translation> <translation id="3090819949319990166">Външният crx файл не може да се копира в/ъв „<ph name="TEMP_CRX_FILE" />“.</translation> <translation id="3090871774332213558">Успешно сдвояване на <ph name="DEVICE_NAME" /></translation> @@ -1397,7 +1381,6 @@ <translation id="3121793941267913344">Възстановяване на това устройство с <ph name="IDS_SHORT_PRODUCT_NAME" /></translation> <translation id="3122464029669770682">Процесор</translation> <translation id="3122496702278727796">Неуспешно създаване на директория за данни</translation> -<translation id="3123569374670379335">(Контролиран)</translation> <translation id="3124111068741548686">Манипулатори за потребителски обекти</translation> <translation id="3126026824346185272">Ctrl</translation> <translation id="3127156390846601284">Това ще изтрие всички данни, съхранени на устройството ви, за всички показани сайтове. Искате ли да продължите?</translation> @@ -1432,8 +1415,6 @@ <translation id="3160842278951476457"><ph name="ISSUED_BY" /> [<ph name="ISSUED_TO" />] (с хардуерно съхраняване)</translation> <translation id="316125635462764134">Премахване на приложението</translation> <translation id="3161522574479303604">Всички езици</translation> -<translation id="316307797510303346">Контролиране и преглед на уебсайтовете, които този човек посещава, от страна на <ph name="CUSTODIAN_EMAIL" />. - Данните за вход в профила ви не са актуални.</translation> <translation id="3165390001037658081">Някои оператори може да блокират тази функция.</translation> <translation id="316854673539778496">Влезте в профила си и включете синхронизирането, за да получите разширенията си на всичките си устройства.</translation> <translation id="3170072451822350649">Може също да пропуснете влизането и <ph name="LINK_START" />да сърфирате като гост<ph name="LINK_END" />.</translation> @@ -1466,7 +1447,6 @@ <translation id="3229922550070982305">пускане/поставяне на пауза</translation> <translation id="3232318083971127729">Стойност:</translation> <translation id="3236289833370040187">Собствеността ще бъде прехвърлена на <ph name="DESTINATION_DOMAIN" />.</translation> -<translation id="3237784613213365159"><ph name="NEW_PROFILE_NAME" /> вече е контролиран потребител</translation> <translation id="323803881985677942">Отваряне на опциите на разширението</translation> <translation id="3241680850019875542">Изберете основната директория на разширението, което ще се пакетира. За да актуализирате разширение, изберете и файла с личен ключ за повторно използване.</translation> <translation id="3242765319725186192">Предварително споделен ключ:</translation> @@ -1698,7 +1678,6 @@ <translation id="3584169441612580296">Четене и промяна на снимки, музика и друга мултимедия от компютъра ви</translation> <translation id="3587482841069643663">Всички</translation> <translation id="358796204584394954">За сдвояване въведете този код на <ph name="DEVICE_NAME" />:</translation> -<translation id="3589532742556016615">Това не се отразява върху приложенията и съдържанието на други устройства.</translation> <translation id="3589766037099229847">Незащитеното съдържание е блокирано</translation> <translation id="3590194807845837023">Отключване на потребителския профил и повторно стартиране</translation> <translation id="3592260987370335752">&Научете повече</translation> @@ -1833,7 +1812,6 @@ <translation id="3778152852029592020">Изтеглянето бе анулирано.</translation> <translation id="3778740492972734840">&Инструменти за програмисти</translation> <translation id="3778868487658107119">Вашият личен помощник от Google – винаги на разположение, за да отговаря на въпросите ви и да изпълнява желанията ви.</translation> -<translation id="3780663724044634171">Изберете профил за управление на контролирания потребител.</translation> <translation id="378312418865624974">Четене на уникалния идентификатор на този компютър</translation> <translation id="3783640748446814672">alt</translation> <translation id="3785308913036335955">Показване на прекия път към приложенията</translation> @@ -2561,7 +2539,6 @@ <translation id="4964455510556214366">Подредба</translation> <translation id="4964673849688379040">Проверява се...</translation> <translation id="4965808351167763748">Наистина ли искате да настроите това устройство да изпълнява Hangouts Meet?</translation> -<translation id="4967749818080339523">Избиране на профил</translation> <translation id="496888482094675990">Приложението Файлове предоставя бърз достъп до файловете, които сте запазили в Google Диск, във външно хранилище или на устройството си с Chrome OS.</translation> <translation id="4969785127455456148">Албум</translation> <translation id="4971412780836297815">Отваряне след приключване</translation> @@ -2748,7 +2725,6 @@ Каквото и да се случи с устройството ви, те ще се съхраняват надеждно в Google Диск.<ph name="MARKUP_6" /> <ph name="MARKUP_7" />Споделяйте, създавайте и работете съвместно<ph name="MARKUP_8" /> по файлове с други хора – всичко от едно място.<ph name="MARKUP_9" /></translation> -<translation id="5262401745672360397">Файловете, споделени с приложенията за Linux, също може да бъдат изтрити.</translation> <translation id="5264148714798105376">Това може да отнеме около минута.</translation> <translation id="5264252276333215551">Моля, свържете се с интернет, за да стартирате приложението си в павилионен режим.</translation> <translation id="5265562206369321422">Офлайн за повече от една седмица</translation> @@ -3401,7 +3377,6 @@ <translation id="6241530762627360640">Да осъществява достъп до информацията за сдвоените със системата ви устройства с Bluetooth и да открива тези, които са наблизо.</translation> <translation id="6243280677745499710">Зададено понастоящем</translation> <translation id="6243774244933267674">Няма достъп до сървъра</translation> -<translation id="6246413617632217567">Контролираният потребител не можа да бъде импортиран. Моля, проверете свободното място и разрешенията на твърдия си диск и опитайте отново.</translation> <translation id="6247708409970142803"><ph name="PERCENTAGE" />%</translation> <translation id="6247802389331535091">Система: <ph name="ARC_PROCESS_NAME" /></translation> <translation id="624789221780392884">Актуализацията е готова</translation> @@ -3600,7 +3575,6 @@ <translation id="654039047105555694"><ph name="BEGIN_BOLD" />Забележка<ph name="END_BOLD" />: Активирайте само ако знаете какви ще са последствията или сте помолени да го направите, тъй като събирането на данни може да намали ефективността.</translation> <translation id="654233263479157500">Използване на уеб услуга за помощ при отстраняването на грешки при навигация</translation> <translation id="6544215763872433504">Уеб браузърът, създаден за вас от Google</translation> -<translation id="6545325945815270297">Управлявайте синхронизираните си данни и устройства от <ph name="BEGIN_LINK" />таблото за управление на Chrome<ph name="END_LINK" />.</translation> <translation id="6545665334409411530">Честота на повтаряне</translation> <translation id="6545834809683560467">Използване на услуга за предвиждания за помощ при завършването на заявките за търсене и URL адресите, въвеждани в адресната лента или в полето за търсене в стартовия панел за приложения</translation> <translation id="6546686722964485737">Присъединяване към WiMAX мрежа</translation> @@ -3615,7 +3589,6 @@ <translation id="6555810572223193255">Почистването понастоящем не е налице.</translation> <translation id="6556866813142980365">Възстановяване</translation> <translation id="6558280019477628686">Възникна грешка. Някои елементи може да не са изтрити.</translation> -<translation id="6559580823502247193">(вече е на това устройство)</translation> <translation id="6561726789132298588">enter</translation> <translation id="656293578423618167">Пътят или името на файла са твърде дълги. Моля, запазете файла с по-кратко име или на друго място.</translation> <translation id="656398493051028875">„<ph name="FILENAME" />“ се изтрива...</translation> @@ -3812,7 +3785,6 @@ <translation id="6862635236584086457">За всички файлове, запазени в тази папка, автоматично се създават резервни копия онлайн</translation> <translation id="6865313869410766144">Данни за автоматично попълване на формуляри</translation> <translation id="686664946474413495">Цветна температура</translation> -<translation id="6867678160199975333">Превключване към <ph name="NEW_PROFILE_NAME" /></translation> <translation id="6870888490422746447">Изберете приложение, с което да споделите:</translation> <translation id="6871644448911473373">OCSP респондер: <ph name="LOCATION" /></translation> <translation id="6872781471649843364">Въведената от вас парола бе отхвърлена от сървъра.</translation> @@ -3906,7 +3878,6 @@ <translation id="7018275672629230621">Четене и промяна на историята на сърфирането ви</translation> <translation id="7019805045859631636">Бързо</translation> <translation id="7022562585984256452">Началната ви страница е зададена.</translation> -<translation id="7025036625303002400">Изглежда, че вече имате контролиран потребител с това име.</translation> <translation id="7025190659207909717">Управление на мобилната услуга за данни</translation> <translation id="7025325401470358758">Следващият панел</translation> <translation id="7027125358315426638">Име на базата от данни:</translation> @@ -3955,7 +3926,6 @@ <translation id="7092106376816104">Изключения за изскачащи прозорци</translation> <translation id="7093434536568905704">GTK+</translation> <translation id="7093866338626856921">Обмен на данни с устройствата със следните имена: <ph name="HOSTNAMES" /></translation> -<translation id="7096108453481049031">Контролираният потребител не можа да бъде импортиран. Моля, проверете мрежовата си връзка и опитайте отново по-късно.</translation> <translation id="7096406577040705016">Превключване на лупата за увеличаване на целия екран</translation> <translation id="7098447629416471489">Тук ще се покажат другите запазени търсещи машини</translation> <translation id="7099337801055912064">PPD файлът е твърде голям, за да бъде зареден. Максималният размер е 250 КБ.</translation> @@ -4003,7 +3973,6 @@ <translation id="7168109975831002660">Минимален размер на шрифта</translation> <translation id="7170041865419449892">Извън обхват</translation> <translation id="7171559745792467651">Инсталиране на приложения от другите ви устройства</translation> -<translation id="7173917244679555">Изглежда, че вече управлявате потребител с това име. Искате ли <ph name="BEGIN_LINK" />да импортирате <ph name="PROFILE_NAME" /><ph name="END_LINK" /> в устройството?</translation> <translation id="7175037578838465313">Конфигуриране на „<ph name="NAME" />“</translation> <translation id="7175353351958621980">Заредено от:</translation> <translation id="7180611975245234373">Опресняване</translation> @@ -4175,7 +4144,6 @@ <translation id="7444726222535375658">Напред към Hangouts Meet</translation> <translation id="7444983668544353857">Деактивиране на <ph name="NETWORKDEVICE" /></translation> <translation id="7445682342344043969">Изскачащите прозорци са блокирани</translation> -<translation id="744859430125590922">Контролиране и преглед на уебсайтовете, които този човек посещава от <ph name="CUSTODIAN_EMAIL" />.</translation> <translation id="7453008956351770337">С избирането на този принтер давате разрешение за достъп до него на следното разширение:</translation> <translation id="7453467225369441013">Ще излезете от повечето сайтове, но не и от профила си в Google.</translation> <translation id="7456142309650173560">за програмисти</translation> @@ -4349,7 +4317,6 @@ <translation id="7717845620320228976">Проверка за актуализации</translation> <translation id="7719367874908701697">Промяна на мащаба на страницата</translation> <translation id="771953673318695590">КК</translation> -<translation id="7720375555307821262"><ph name="BEGIN_LINK" />Влезте в Chrome<ph name="END_LINK" />, за да контролирате сърфирането на този човек.</translation> <translation id="7721179060400456005">Разрешаване на прозорците да се простират на няколко екрана</translation> <translation id="7722040605881499779">Необходимо място за актуализацията: <ph name="NECESSARY_SPACE" /></translation> <translation id="7724603315864178912">Изрязване</translation> @@ -5204,7 +5171,6 @@ <translation id="9024331582947483881">цял екран</translation> <translation id="9025098623496448965">Добре, върнете ме на екрана за вход</translation> <translation id="9026731007018893674">изтеглен файл</translation> -<translation id="9027146684281895941">Контролиране на този човек с цел управление и преглед на уебсайтовете, които посещава от профила ви в Google.</translation> <translation id="9027459031423301635">Отваряне на връзката в нов &раздел</translation> <translation id="9027603907212475920">Настройване на синхронизирането...</translation> <translation id="9030515284705930323">Организацията ви не е активирала Google Play Магазин за профила ви. Свържете се с администратора си за повече информация.</translation> @@ -5364,7 +5330,6 @@ <translation id="98515147261107953">Хоризонтално</translation> <translation id="987897973846887088">Няма налични изображения</translation> <translation id="988978206646512040">Трябва да се въведе пропуск</translation> -<translation id="990310048453480215">Премахване на приложенията за Linux</translation> <translation id="992032470292211616">Разширенията, приложенията и темите могат да навредят на устройството ви. Наистина ли искате да продължите?</translation> <translation id="992592832486024913">Деактивиране на ChromeVox (обратна връзка с говор)</translation> <translation id="994289308992179865">Цикъ&л</translation>
diff --git a/chrome/app/resources/generated_resources_bn.xtb b/chrome/app/resources/generated_resources_bn.xtb index 5800206..4430be8 100644 --- a/chrome/app/resources/generated_resources_bn.xtb +++ b/chrome/app/resources/generated_resources_bn.xtb
@@ -42,7 +42,6 @@ <translation id="1056898198331236512">সতর্কতা</translation> <translation id="1058262162121953039">PUK</translation> <translation id="1062407476771304334">প্রতিস্থাপন করুন</translation> -<translation id="1062866675591297858"><ph name="BEGIN_LINK" />তত্ত্বাবধানে থাকা ব্যবহারকারীদের ড্যাশবোর্ড<ph name="END_LINK" /> এর মাধ্যমে আপনার তত্ত্বাবধানে থাকা ব্যবহারকারীদের পরিচালনা করুন৷</translation> <translation id="1064835277883315402">ব্যক্তিগত নেটওয়ার্কে যোগদান করুন</translation> <translation id="1064912851688322329">আপনার Google অ্যাকাউন্ট সংযোগ বিচ্ছিন্ন করুন</translation> <translation id="1067048845568873861">তৈরি হয়েছে</translation> @@ -63,7 +62,6 @@ <translation id="1091767800771861448">ছেড়ে যেতে ESCAPE টিপুন (কেবল নন-অফিশিয়াল বিল্ড)৷</translation> <translation id="1093457606523402488">দৃশ্যমান নেটওয়ার্কগুলি</translation> <translation id="1094607894174825014">এখানে একটি অবৈধ অফসেট সহ পড়া বা লেখার ক্রিয়াকলাপের অনুরোধ করা হয়েছিল:: "<ph name="DEVICE_NAME" />".</translation> -<translation id="1097507499312291972">এই ব্যক্তির পরিদর্শন করা ওয়েবসাইটগুলি নিয়ন্ত্রণ করতে এবং দেখতে <ph name="BEGIN_SIGN_IN_LINK" />প্রবেশ করুন<ph name="END_SIGN_IN_LINK" /> করুন৷</translation> <translation id="109758035718544977">সাইটগুলি আনমিউট করুন</translation> <translation id="1097658378307015415">প্রবেশ করার আগে, <ph name="NETWORK_ID" /> নেটওয়ার্ক সক্রিয় করতে দয়া করে অতিথি রূপে প্রবেশ করুন</translation> <translation id="1103523840287552314">সর্বদা অনুবাদ করুন <ph name="LANGUAGE" /></translation> @@ -238,7 +236,6 @@ <translation id="1361655923249334273">অব্যবহৃত</translation> <translation id="1363028406613469049">ট্র্যাক</translation> <translation id="1367951781824006909">একটি ফাইল বেছে নিন</translation> -<translation id="136802136832547685">এই ডিভাইসটিতে যোগ করার মতো কোনো তত্ত্বাবধানে থাকা ব্যবহারকারী নেই৷</translation> <translation id="1368265273904755308">সমস্যা অভিযোগ করুন</translation> <translation id="1370646789215800222">ব্যক্তিকে সরাবেন?</translation> <translation id="1372681413396468867">{NUM_ITEMS,plural, =1{সরানোর মতো ১টি আইটেম আছে}one{সরানোর মতো #টি আইটেম আছে}other{সরানোর মতো #টি আইটেম আছে}}</translation> @@ -465,7 +462,6 @@ <translation id="1692799361700686467">একাধিক সাইট থেকে কুকিজ মঞ্জুরিপ্রাপ্ত৷</translation> <translation id="169515659049020177">Shift</translation> <translation id="1698122934742150150">শুধুমাত্র বর্তমান ছদ্মবেশী সেশন</translation> -<translation id="1700199471143028312">আপনার প্রশাসক তত্বাবধানে থাকা ব্যবহারকারী তৈরি করার অনুমতি দেয় না।</translation> <translation id="1701062906490865540">এই ব্যক্তিকে সরান</translation> <translation id="1706586824377653884">আপনার প্রশাসক দ্বারা যোগ করা হয়েছে</translation> <translation id="1706625117072057435">জুম স্তরগুলি</translation> @@ -1029,7 +1025,6 @@ <translation id="2604255671529671813">নেটওয়ার্ক সংযোগে সমস্যা</translation> <translation id="2606246518223360146">ডেটা লিঙ্ক করুন</translation> <translation id="2607101320794533334">বিষয় সর্বজনীন কী তথ্য</translation> -<translation id="2607459012323956820">এই তত্ত্বাবধানে থাকা ব্যবহারকারীর জন্য সেটিংস এবং ব্রাউজিং ইতিহাস <ph name="BEGIN_LINK" /><ph name="DISPLAY_LINK" /><ph name="END_LINK" /> এ পরিচালকের কাছে এখনো দৃশ্যমান হতে পারে৷</translation> <translation id="2608770217409477136">ডিফল্ট সেটিংস ব্যবহার করুন</translation> <translation id="2609896558069604090">শর্টকাটগুলি তৈরি করুন...</translation> <translation id="2610157865375787051">স্লীপ মোড</translation> @@ -1320,14 +1315,6 @@ <translation id="3022978424994383087">বুঝতে পারিনি।</translation> <translation id="3024374909719388945">24-ঘন্টার ঘড়ি ব্যবহার করুন</translation> <translation id="302781076327338683">ক্যাশে বাইপাস করা আবার লোড করুন</translation> -<translation id="3030243755303701754">একজন তত্ত্বাবধানে থাকা ব্যবহারকারী আপনার নির্দেশনা অনুযায়ী ওয়েব ঘুরে দেখতে পারে। Chrome এ একজন তত্ত্বাবধানে থাকা ব্যবহারকারীর পরিচালক হিসাবে, আপনি: -• নির্দিষ্ট কিছু ওয়েবসাইটকে মঞ্জুরি দিতে বা নিষিদ্ধ করতে পারেন, -• তত্ত্বাবধানে থাকা ব্যবহারকারীর ঘুরে দেখা ওয়েবসাইটগুলি পর্যালোচনা করতে পারেন, এবং -• অন্যান্য সেটিংস পরিচালনা করতে পারেন। - -একজন তত্ত্বাবধানে থাকা ব্যবহারকারী তৈরী করা হলে কোনো Google অ্যাকাউন্ট তৈরি হয় না এবং তাদের বুকমার্ক, ব্রাউজিং ইতিহাস এবং অন্যান্য পছন্দগুলি Chrome সিঙ্কের সঙ্গে অন্যান্য ডিভাইসগুলিতে তাদেরকে অনুসরণ করবে না। আপনি একজন নতুন তত্ত্বাবধানে থাকা ব্যবহারকারী তৈরি করার পরে, <ph name="BEGIN_MANAGE_LINK" /><ph name="DISPLAY_LINK" /><ph name="END_MANAGE_LINK" /> এ গিয়ে যেকোনো সময়ে যেকোনো ডিভাইস থেকে তাদের সেটিংস পরিচালনা করতে পারেন। - -আরও তথ্যের জন্য, আমাদের <ph name="BEGIN_LINK" />সহায়তা কেন্দ্র<ph name="END_LINK" /> ঘুরে দেখুন।</translation> <translation id="3031417829280473749">এজেন্ট X</translation> <translation id="3031557471081358569">আমদানির জন্য আইটেম বেছে নিন:</translation> <translation id="3031601332414921114">প্রিন্ট আবার শুরু করুন</translation> @@ -1368,7 +1355,6 @@ <translation id="3085412380278336437">সাইটটি আপনার ক্যামেরা ব্যবহার করতে পারে</translation> <translation id="3085752524577180175">সক্স হোস্ট</translation> <translation id="3088325635286126843">&পুনঃনামকরণ...</translation> -<translation id="3089231390674410424">দেখে মনে হচ্ছে আপনার শংসাপত্রগুলিতে কিছু সমস্যা রয়েছে৷ দয়া করে নিশ্চিত করুন যে আপনি সঠিকভাবে প্রবেশ করুন করছেন এবং আবার চেষ্টা করুন৷</translation> <translation id="3090193911106258841">অডিও এবং ভিডিও ইনপুটে অ্যাক্সেস করা হচ্ছে</translation> <translation id="3090819949319990166"><ph name="TEMP_CRX_FILE" /> এ বহিরাগত crx ফাইলটি অনুলিপি করতে পারবেন না৷</translation> <translation id="3090871774332213558">"<ph name="DEVICE_NAME" />" যুক্ত করা হয়েছে</translation> @@ -1383,7 +1369,6 @@ <translation id="3121793941267913344">এই <ph name="IDS_SHORT_PRODUCT_NAME" /> ডিভাইসটি আবার সেট করুন</translation> <translation id="3122464029669770682">সিপিইউ</translation> <translation id="3122496702278727796">ডেটা ডিরেক্টরি তৈরি করতে ব্যর্থ</translation> -<translation id="3123569374670379335">(তত্ত্বাবধানে থাকা)</translation> <translation id="3124111068741548686">ব্যবহারকারীর হ্যান্ডলগুলি</translation> <translation id="3126026824346185272">Ctrl</translation> <translation id="3127156390846601284">এটি প্রদর্শিত সমস্ত সাইটের জন্য আপনার ডিভাইসে সঞ্চিত যেকোনো ডেটা মুছে ফেলবে। আপনি কি চালিয়ে যেতে চান?</translation> @@ -1418,8 +1403,6 @@ <translation id="3160842278951476457"><ph name="ISSUED_BY" /> [<ph name="ISSUED_TO" />] (হার্ডওয়্যার-সাহায্যপ্রাপ্ত)</translation> <translation id="316125635462764134">অ্যাপ্লিকেশান সরান</translation> <translation id="3161522574479303604">সকল ভাষা</translation> -<translation id="316307797510303346"><ph name="CUSTODIAN_EMAIL" /> থেকে এই ব্যক্তির পরিদর্শন করা ওয়েবসাইটগুলি নিয়ন্ত্রণ করুন এবং দেখুন৷ - আপনার অ্যাকাউন্ট সাইন-ইনের বিশদ বিবরণ পুরানো হয়ে গেছে৷</translation> <translation id="3165390001037658081">কিছু পরিষেবা প্রদানকারী এই বৈশিষ্ট্যকে অবরুদ্ধ করতে পারে।</translation> <translation id="316854673539778496">সব ডিভাইসে আপনার এক্সটেনশন পেতে, সাইন-ইন করুন এবং সিঙ্ক চালু করুন।</translation> <translation id="3170072451822350649">এছাড়াও আপনি প্রবেশ করুন এড়িয়ে যেতে ও <ph name="LINK_START" />অতিথি হিসাবে ব্রাউজ<ph name="LINK_END" /> করতে পারেন৷</translation> @@ -1451,7 +1434,6 @@ <translation id="3229922550070982305">প্লে করুন/বিরত করুন</translation> <translation id="3232318083971127729">মান:</translation> <translation id="3236289833370040187">মালিকানা <ph name="DESTINATION_DOMAIN" /> এ স্থানান্তর করা হবে।</translation> -<translation id="3237784613213365159"><ph name="NEW_PROFILE_NAME" /> এখন একজন তত্ত্বাবধানে থাকা ব্যবহারকারী</translation> <translation id="323803881985677942">এক্সটেনশান বিকল্পগুলি খুলুন</translation> <translation id="3241680850019875542">প্যাক করার জন্য এক্সটেনশনের রুট ডিরেক্টরিটি নির্বাচন করুন৷ কোন এক্সটেনশন আপডেট করতে, আবার ব্যবহার করার জন্য ব্যক্তিগত কী ফাইলটিও নির্বাচন করুন৷</translation> <translation id="3242765319725186192">প্রাক্-অংশীদারী করা কী:</translation> @@ -1810,7 +1792,6 @@ <translation id="3778152852029592020">ডাউনলোড বাতিল হয়েছে৷</translation> <translation id="3778740492972734840">&বিকাশকারী টুল</translation> <translation id="3778868487658107119">প্রশ্ন জিজ্ঞাসা করুন। কিছু করতে বলুন। এটি আপনার নিজস্ব Google যেটি সবসময় আপনাকে সাহায্য করে।</translation> -<translation id="3780663724044634171">তত্ত্বাবধানে থাকা ব্যবহারকারীকে পরিচালনা করার জন্য একটি অ্যাকাউন্ট বেছে নিন।</translation> <translation id="378312418865624974">এই কম্পিউটারের জন্য একটি অনন্য শনাক্তকারী পড়ুন</translation> <translation id="3783640748446814672">alt</translation> <translation id="3785308913036335955">অ্যাপ্লিকেশানগুলির শর্টকাট দেখান</translation> @@ -2520,7 +2501,6 @@ <translation id="4964455510556214366">সাজানোর ব্যবস্থা</translation> <translation id="4964673849688379040">চেক করা হচ্ছে...</translation> <translation id="4965808351167763748">Hangouts Meet চালাতে আপনি এই ডিভাইস সেট আপ করতে চান?</translation> -<translation id="4967749818080339523">একটি অ্যাকাউন্ট বেছে নিন</translation> <translation id="496888482094675990">Google ড্রাইভ, বহিরাগত সঞ্চয়স্থান অথবা আপনার Chrome OS ডিভাইসে আপনি যে ফাইলগুলি সংরক্ষণ করেছেন ফাইল অ্যাপ্লিকেশান সেগুলিতে দ্রুত অ্যাক্সেস প্রদান করে।</translation> <translation id="4969785127455456148">অ্যালবাম</translation> <translation id="4971412780836297815">সম্পন্ন হলে খুলুন</translation> @@ -3346,7 +3326,6 @@ <translation id="6241530762627360640">আপনার সিস্টেমের সঙ্গে যুক্ত করা ব্লুটুথ ডিভাইসগুলির সম্পর্কে তথ্য অ্যাক্সেস করুন এবং কাছাকাছি ব্লুটুথ ডিভাইসগুলি খুঁজুন।</translation> <translation id="6243280677745499710">বর্তমানে সেট করা রয়েছে</translation> <translation id="6243774244933267674">সার্ভার অনুপলব্ধ</translation> -<translation id="6246413617632217567">তত্বাবধানে থাকা ব্যবহারকারী আমদানি করা যায়নি৷ দয়া করে আপনার হার্ড ডিস্কের সঞ্চয়স্থান ও অনুমতি পরীক্ষা করুন এবং আবার চেষ্টা করুন৷</translation> <translation id="6247708409970142803"><ph name="PERCENTAGE" />%</translation> <translation id="6247802389331535091">সিস্টেম: <ph name="ARC_PROCESS_NAME" /></translation> <translation id="624789221780392884">আপডেট প্রস্তুত</translation> @@ -3541,7 +3520,6 @@ <translation id="654039047105555694"><ph name="BEGIN_BOLD" />দ্রষ্টব্য:<ph name="END_BOLD" /> আপনি যদি জানেন যে আপনি কি করছেন তাহলে সক্ষম করুন বা যদি আপনাকে এমনটি করতে বলা হয়ে থাকে, তাহলে মনে রাখবেন যে ডেটা সংগ্রহ কর্মক্ষমতাকে হ্রাস করতে পারে৷</translation> <translation id="654233263479157500">নেভিগেশন ত্রুটিগুলি সমাধানে সহায়তা করতে একটি ওয়েব পরিষেবা ব্যবহার করুন</translation> <translation id="6544215763872433504">Google পরিচালিত ওয়েব ব্রাউজার, আপনারই জন্য</translation> -<translation id="6545325945815270297"><ph name="BEGIN_LINK" />Chrome ড্যাশবোর্ডে<ph name="END_LINK" /> আপনার সিঙ্ক করা ডেটা ও ডিভাইসগুলি পরিচালনা করুন।</translation> <translation id="6545665334409411530">পুনরাবৃত্তির হার</translation> <translation id="6545834809683560467">অনুসন্ধানগুলি এবং ঠিকানা দণ্ডে টাইপ করা URLগুলি অথবা অ্যাপ্লিকেশান লঞ্চার অনুসন্ধান বাক্স সম্পূর্ণ করার বিষয়ে সহায়তা করার জন্য একটি পূর্বানুমান পরিষেবা ব্যবহার করুন</translation> <translation id="6546686722964485737">WiMAX নেটওয়ার্কে যোগদান করুন</translation> @@ -3556,7 +3534,6 @@ <translation id="6555810572223193255">এখন সরানো যাবে না</translation> <translation id="6556866813142980365">আবার করুন</translation> <translation id="6558280019477628686">একটি ত্রুটি হয়েছে৷ কিছু আইটেম হয়ত মোছা যায়নি।</translation> -<translation id="6559580823502247193">(ইতিমধ্যে এই ডিভাইসে)</translation> <translation id="6561726789132298588">লিখুন</translation> <translation id="656293578423618167">ফাইল পাথ অথবা নাম অত্যন্ত বড়৷ দয়া করে একটি সংক্ষিপ্ত নামে বা অন্য কোনো স্থানে সংরক্ষণ করুন৷</translation> <translation id="656398493051028875">"<ph name="FILENAME" />" মোছা হচ্ছে...</translation> @@ -3749,7 +3726,6 @@ <translation id="6862635236584086457">এই ফোল্ডারটিতে সংরক্ষিত সব ফাইল অনলাইনে স্বয়ংক্রিয়ভাবে ব্যাক আপ করা হয়েছে</translation> <translation id="6865313869410766144">স্বতঃপূর্ণ ফর্ম ডেটা</translation> <translation id="686664946474413495">রঙের তাপমাত্রা</translation> -<translation id="6867678160199975333"><ph name="NEW_PROFILE_NAME" /> এ স্যুইচ করুন</translation> <translation id="6870888490422746447">যে অ্যাপ্লিকেশানে শেয়ার করবেন সেটি বেছে নিন:</translation> <translation id="6871644448911473373">OCSP প্রতিক্রিয়াকারী: <ph name="LOCATION" /> </translation> <translation id="6872781471649843364">আপনার দেওয়া পাসওয়ার্ডটি সার্ভার থেকে প্রত্যাখ্যান করা হয়েছে।</translation> @@ -3843,7 +3819,6 @@ <translation id="7018275672629230621">আপনার ব্রাউজিং ইতিহাস পড়ুন এবং পরিবর্তন করুন</translation> <translation id="7019805045859631636">দ্রুত</translation> <translation id="7022562585984256452">আপনার হোম পৃষ্ঠা সেট করা হয়েছে৷</translation> -<translation id="7025036625303002400">মনে হচ্ছে যে আপনার ইতোমধ্যে এই নামের একটি তত্ত্বাবধানে থাকা ব্যবহারকারী আছে।</translation> <translation id="7025190659207909717">মোবাইল ডেটা পরিষেবা পরিচালন</translation> <translation id="7025325401470358758">পরবর্তী ফলক</translation> <translation id="7027125358315426638">ডেটাবেসের নাম:</translation> @@ -3892,7 +3867,6 @@ <translation id="7092106376816104">পপ-আও ব্যতিক্রম</translation> <translation id="7093434536568905704">GTK+</translation> <translation id="7093866338626856921"><ph name="HOSTNAMES" />: নামের্ ডিভাইসসমূহের সাথে ডেটা বিনিময় করুন</translation> -<translation id="7096108453481049031">তত্ত্বাবধানে থাকা ব্যবহারকারী আমদানি করা যায়নি৷ দয়া করে আপনার নেটওয়ার্ক সংযোগটি পরীক্ষা করে দেখুন এবং পরে আবার চেষ্টা করুন৷</translation> <translation id="7098447629416471489">অন্যান্য সংরক্ষিত সার্চ ইঞ্জিন এখানে দেখা যাবে</translation> <translation id="7099337801055912064">বড় PPD লোড করা যাবে না। সর্বাধিক সাইজ ২৫০ কেবি।</translation> <translation id="7100897339030255923"><ph name="COUNT" />টি আইটেম নির্বাচিত</translation> @@ -3938,7 +3912,6 @@ <translation id="716810439572026343"><ph name="FILE_NAME" /> ডাউনলোড করা হচ্ছে</translation> <translation id="7168109975831002660">ন্যূনতম হরফ আকার</translation> <translation id="7170041865419449892">সীমার বাইরে</translation> -<translation id="7173917244679555">দেখে মনে হচ্ছে আপনি ইতিমধ্যে এই নাম দিয়ে একজন ব্যবহারকারীকে পরিচালনা করছেন৷ আপনি কি এই ডিভাইসে <ph name="BEGIN_LINK" /><ph name="PROFILE_NAME" /> আমদানি<ph name="END_LINK" /> করতে চান?</translation> <translation id="7175037578838465313"><ph name="NAME" /> কনফিগার করুন</translation> <translation id="7175353351958621980">এখান থেকে লোড হয়েছে:</translation> <translation id="7180611975245234373">রিফ্রেশ করুন</translation> @@ -4108,7 +4081,6 @@ <translation id="7444726222535375658">Hangouts Meet চালিয়ে যেতে</translation> <translation id="7444983668544353857">অক্ষম <ph name="NETWORKDEVICE" /></translation> <translation id="7445682342344043969">পপ-আপগুলি ব্লক করা হয়েছে</translation> -<translation id="744859430125590922"><ph name="CUSTODIAN_EMAIL" /> থেকে এই ব্যক্তির পরিদর্শিত ওয়েবসাইগুলি নিয়ন্ত্রণ করুন এবং দেখুন৷</translation> <translation id="7453008956351770337">এই প্রিন্টারটি নির্বাচন করে, আপনি নিম্নল্লিখিত এক্সটেনশানটিকে আপনার প্রিন্টারে অ্যাক্সেস করার অনুমতি দিচ্ছেন:</translation> <translation id="7453467225369441013">বেশিরভাগ সাইট থেকে আপনাকে সাইন-আউট করিয়ে দেয়। তবে আপনার Google অ্যাকাউন্ট থেকে আপনাকে সাইন-আউট করানো হবে না।</translation> <translation id="7456142309650173560">dev</translation> @@ -4282,7 +4254,6 @@ <translation id="7717845620320228976">আপডেটগুলির জন্য চেক করুন</translation> <translation id="7719367874908701697">পৃষ্ঠা জুম</translation> <translation id="771953673318695590">প্রশ্ন-উত্তর</translation> -<translation id="7720375555307821262">এই ব্যক্তিকে তত্ত্বাবধান করার জন্য, <ph name="BEGIN_LINK" />Chrome এ প্রবেশ করুন<ph name="END_LINK" />।</translation> <translation id="7721179060400456005">উইন্ডোগুলিকে স্ক্রিন জুড়ে দেখানোর অনুমতি দিন।</translation> <translation id="7722040605881499779">আপডেটের জন্য প্রয়োজন: <ph name="NECESSARY_SPACE" /></translation> <translation id="7724603315864178912">কাটুন</translation> @@ -5105,7 +5076,6 @@ <translation id="9024331582947483881">পূর্ণ স্ক্রীন</translation> <translation id="9025098623496448965">ঠিক আছে, আমাকে সাইন-ইন স্ক্রীনে ফিরিয়ে নিয়ে চলুন</translation> <translation id="9026731007018893674">ডাউনলোড</translation> -<translation id="9027146684281895941">এই ব্যক্তিকে তত্ত্বাবধান করুন যেন আপনার Google অ্যাকাউন্ট থেকে তার ঘুরে দেখা ওয়েবসাইগুলি নিয়ন্ত্রণ করতে এবং দেখতে পারেন</translation> <translation id="9027459031423301635">নতুন &ট্যাবে লিঙ্ক খুলুন</translation> <translation id="9027603907212475920">সিঙ্ক সেট আপ করুন...</translation> <translation id="9030515284705930323">আপনার প্রতিষ্ঠান আপনার অ্যাকাউন্টের জন্য Google Play স্টোর সক্ষম করেনি। আরও তথ্যের জন্য আপনার প্রশাসকের সাথে যোগাযোগ করুন।</translation>
diff --git a/chrome/app/resources/generated_resources_ca.xtb b/chrome/app/resources/generated_resources_ca.xtb index db46f34..544cfb5 100644 --- a/chrome/app/resources/generated_resources_ca.xtb +++ b/chrome/app/resources/generated_resources_ca.xtb
@@ -42,7 +42,6 @@ <translation id="1056898198331236512">Advertiment</translation> <translation id="1058262162121953039">PUK</translation> <translation id="1062407476771304334">Substitueix</translation> -<translation id="1062866675591297858">Gestiona els usuaris supervisats mitjançant el <ph name="BEGIN_LINK" />tauler d'usuaris supervisats<ph name="END_LINK" />.</translation> <translation id="1064835277883315402">Unió a la xarxa privada</translation> <translation id="1064912851688322329">Desconnexió del vostre compte de Google</translation> <translation id="1067048845568873861">Creada</translation> @@ -65,7 +64,6 @@ <translation id="1091767800771861448">Premeu ESCAPE per ometre (només compilacions no oficials).</translation> <translation id="1093457606523402488">Xarxes visibles:</translation> <translation id="1094607894174825014">S'ha sol·licitat una operació de lectura o escriptura amb un decalatge no vàlid a <ph name="DEVICE_NAME" />.</translation> -<translation id="1097507499312291972"><ph name="BEGIN_SIGN_IN_LINK" />Inicieu la sessió<ph name="END_SIGN_IN_LINK" /> per controlar i consultar els llocs web que aquesta persona visita.</translation> <translation id="109758035718544977">Activa el so dels llocs web</translation> <translation id="1097658378307015415">Abans d'iniciar la sessió amb el vostre usuari, entreu com a convidat per activar la xarxa <ph name="NETWORK_ID" /></translation> <translation id="1103523840287552314">Tradueix sempre el text en <ph name="LANGUAGE" /></translation> @@ -244,7 +242,6 @@ <translation id="1361655923249334273">No utilitzat</translation> <translation id="1363028406613469049">Pista</translation> <translation id="1367951781824006909">Trieu un fitxer</translation> -<translation id="136802136832547685">No hi ha cap usuari supervisat per afegir a aquest dispositiu.</translation> <translation id="1368265273904755308">Informeu d'un problema</translation> <translation id="1370646789215800222">Voleu suprimir la persona?</translation> <translation id="1372681413396468867">{NUM_ITEMS,plural, =1{1 element que cal suprimir}other{# elements que cal suprimir}}</translation> @@ -472,7 +469,6 @@ <translation id="1692799361700686467">S'admeten les galetes de diversos llocs.</translation> <translation id="169515659049020177">Maj</translation> <translation id="1698122934742150150">Només la sessió d'incògnit actual</translation> -<translation id="1700199471143028312">L'administrador no permet que creeu usuaris supervisats.</translation> <translation id="1701062906490865540">Suprimeix aquesta persona</translation> <translation id="1706586824377653884">Afegida per l'administrador</translation> <translation id="1706625117072057435">Nivells de zoom</translation> @@ -1040,7 +1036,6 @@ <translation id="2604255671529671813">Error de connexió a la xarxa</translation> <translation id="2606246518223360146">Enllaça les dades</translation> <translation id="2607101320794533334">Informació de clau pública del subjecte</translation> -<translation id="2607459012323956820">És possible que el gestor encara pugui veure la configuració i l'historial de navegació d'aquest usuari supervisat a <ph name="BEGIN_LINK" /><ph name="DISPLAY_LINK" /><ph name="END_LINK" />.</translation> <translation id="2608770217409477136">Fes servir la configuració predeterminada</translation> <translation id="2609896558069604090">Crea dreceres...</translation> <translation id="2610157865375787051">Repòs</translation> @@ -1283,7 +1278,6 @@ <translation id="2951247061394563839">Finestra central</translation> <translation id="2956763290572484660"><ph name="COOKIES" /> galetes</translation> <translation id="2958721676848865875">Advertiment de l'empaquetatge d'extensió</translation> -<translation id="2961043351165706615">Se suprimiran d'aquest Chromebook les aplicacions per a Linux que hi has instal·lat.</translation> <translation id="2961090598421146107"><ph name="CERTIFICATE_NAME" /> (extensió proporcionada)</translation> <translation id="2961695502793809356">Feu clic per anar endavant o manteniu premut per veure l'historial</translation> <translation id="2963151496262057773">El connector següent no respon: <ph name="PLUGIN_NAME" />. Voleu aturar-lo?</translation> @@ -1335,15 +1329,6 @@ <translation id="3022978424994383087">No t'he entès.</translation> <translation id="3024374909719388945">Utilitza el rellotge de 24 hores</translation> <translation id="302781076327338683">Actualitza sense utilizar la memòria cau</translation> -<translation id="3030243755303701754">Un usuari supervisat pot explorar el web sota la vostra supervisió. Com a gestor d'un usuari supervisat a Chrome, podeu fer el següent: - - • Permetre o prohibir determinats llocs web. - • Consultar els llocs web visitats per l'usuari supervisat. - • Gestionar altres opcions de configuració. - -La creació d'un usuari supervisat no crea automàticament un compte de Google, i les adreces d'interès, l'historial de navegació i altres preferències no se sincronitzaran en altres dispositius amb la Sincronització de Chrome. Quan hàgiu creat un usuari supervisat, podeu gestionar-ne la configuració en qualsevol moment i des de qualsevol dispositiu a <ph name="BEGIN_MANAGE_LINK" /><ph name="DISPLAY_LINK" /><ph name="END_MANAGE_LINK" />. - -Per obtenir més informació sobre els usuaris supervisats, consulteu el <ph name="BEGIN_LINK" />Centre d'ajuda<ph name="END_LINK" />.</translation> <translation id="3031417829280473749">Agent X</translation> <translation id="3031557471081358569">Seleccioneu els elements que voleu importar:</translation> <translation id="3031601332414921114">Reprèn la impressió</translation> @@ -1384,7 +1369,6 @@ <translation id="3085412380278336437">El lloc web pot utilitzar la càmera</translation> <translation id="3085752524577180175">Amfitrió SOCKS</translation> <translation id="3088325635286126843">&Canvia el nom...</translation> -<translation id="3089231390674410424">Sembla que hi ha un problema amb les credencials. Assegureu-vos que la sessió està ben iniciada i torneu-ho a provar.</translation> <translation id="3090193911106258841">S'està accedint a l'entrada d'àudio i de vídeo</translation> <translation id="3090819949319990166">No es pot copiar el fitxer crx extern a <ph name="TEMP_CRX_FILE" />.</translation> <translation id="3090871774332213558">"<ph name="DEVICE_NAME" />" vinculat</translation> @@ -1399,7 +1383,6 @@ <translation id="3121793941267913344">Restabliu aquest dispositiu <ph name="IDS_SHORT_PRODUCT_NAME" />.</translation> <translation id="3122464029669770682">CPU</translation> <translation id="3122496702278727796">Error en crear un directori de dades</translation> -<translation id="3123569374670379335">(supervisat)</translation> <translation id="3124111068741548686">Controls d'USUARI</translation> <translation id="3126026824346185272">Ctrl</translation> <translation id="3127156390846601284">Se suprimiran totes les dades emmagatzemades al dispositiu per a tots els llocs mostrats. Vols continuar?</translation> @@ -1434,8 +1417,6 @@ <translation id="3160842278951476457"><ph name="ISSUED_BY" /> [<ph name="ISSUED_TO" />] (emmagatzemat en maquinari)</translation> <translation id="316125635462764134">Suprimeix l'aplicació</translation> <translation id="3161522574479303604">Tots els idiomes</translation> -<translation id="316307797510303346">Controla i consulta els llocs web que aquesta persona visita des de <ph name="CUSTODIAN_EMAIL" />. - Les dades d'inici de sessió del compte no estan actualitzades.</translation> <translation id="3165390001037658081">Alguns operadors de telefonia mòbil poden bloquejar aquesta funció.</translation> <translation id="316854673539778496">Per accedir a totes les teves extensions des de tots els dispositius, inicia la sessió i activa la sincronització.</translation> <translation id="3170072451822350649">També podeu <ph name="LINK_START" />navegar com a convidat<ph name="LINK_END" /> sense iniciar sessió.</translation> @@ -1468,7 +1449,6 @@ <translation id="3229922550070982305">reprodueix / posa en pausa</translation> <translation id="3232318083971127729">Valor:</translation> <translation id="3236289833370040187">La propietat es transferirà a <ph name="DESTINATION_DOMAIN" />.</translation> -<translation id="3237784613213365159"><ph name="NEW_PROFILE_NAME" /> ara és un usuari supervisat</translation> <translation id="323803881985677942">Obre les opcions de l'extensió</translation> <translation id="3241680850019875542">Seleccioneu el directori arrel de l'extensió que voleu empaquetar. Per actualitzar una extensió, cal que seleccioneu també el fitxer de clau privada que s'utilitzarà.</translation> <translation id="3242765319725186192">Clau precompartida d'IPSec:</translation> @@ -1699,7 +1679,6 @@ <translation id="3584169441612580296">Accedeix a fotos, a música i a altres fitxers multimèdia de l'ordinador i modifica'ls</translation> <translation id="3587482841069643663">Tots</translation> <translation id="358796204584394954">Escriviu aquest codi a "<ph name="DEVICE_NAME" />" per emparellar-lo:</translation> -<translation id="3589532742556016615">No afecta les aplicacions ni el contingut d'altres dispositius.</translation> <translation id="3589766037099229847">S'ha bloquejat el contingut no segur</translation> <translation id="3590194807845837023">Desbloqueja el perfil i torna a iniciar</translation> <translation id="3592260987370335752">&Més informació</translation> @@ -1833,7 +1812,6 @@ <translation id="3778152852029592020">La baixada s'ha cancel·lat.</translation> <translation id="3778740492972734840">Eines per a &desenvolupadors</translation> <translation id="3778868487658107119">Fes-li preguntes o demana-li que faci coses. És el teu Google personal, sempre a punt per ajudar-te.</translation> -<translation id="3780663724044634171">Seleccioneu un compte per gestionar l'usuari supervisat.</translation> <translation id="378312418865624974">Llegeix un identificador únic per a aquest ordinador</translation> <translation id="3783640748446814672">alt</translation> <translation id="3785308913036335955">Mostra la drecera d'aplicacions</translation> @@ -2561,7 +2539,6 @@ <translation id="4964455510556214366">Disposició</translation> <translation id="4964673849688379040">S'està comprovant…</translation> <translation id="4965808351167763748">Confirmes que vols configurar aquest dispositiu perquè executi Hangouts Meet?</translation> -<translation id="4967749818080339523">Seleccioneu un compte</translation> <translation id="496888482094675990">L'aplicació Fitxers permet accedir ràpidament als fitxers desats a Google Drive, a l'emmagatzematge extern o al dispositiu Chrome OS.</translation> <translation id="4969785127455456148">Àlbum</translation> <translation id="4971412780836297815">Obre quan acabi</translation> @@ -2749,7 +2726,6 @@ Passi el que passi amb el vostre dispositiu, els fitxers s'emmagatzemen amb tota seguretat a Google Drive.<ph name="MARKUP_6" /> <ph name="MARKUP_7" />Compartiu, creeu fitxers i col·laboreu-hi<ph name="MARKUP_8" /> amb altres persones; tot en un sol lloc.<ph name="MARKUP_9" /></translation> -<translation id="5262401745672360397">És possible que també se suprimeixin els fitxers compartits amb aplicacions per a Linux.</translation> <translation id="5264148714798105376">Aquesta acció pot tardar més o menys un minut.</translation> <translation id="5264252276333215551">Connecteu-vos a Internet per iniciar l'aplicació en el mode quiosc.</translation> <translation id="5265562206369321422">Fora de línia des de fa més d'una setmana</translation> @@ -3402,7 +3378,6 @@ <translation id="6241530762627360640">Accedir a informació sobre els dispositius Bluetooth vinculats al sistema i descobrir dispositius Bluetooth a prop</translation> <translation id="6243280677745499710">Establert actualment</translation> <translation id="6243774244933267674">El servidor no està disponible</translation> -<translation id="6246413617632217567">L'usuari supervisat no s'ha pogut importar. Comproveu els vostres permisos i l'espai disponible a la unitat de disc dur i torneu-ho a provar.</translation> <translation id="6247708409970142803"><ph name="PERCENTAGE" />%</translation> <translation id="6247802389331535091">Sistema: <ph name="ARC_PROCESS_NAME" /></translation> <translation id="624789221780392884">Actualització a punt.</translation> @@ -3492,7 +3467,7 @@ <translation id="6383051423892982287">Encripta les dades sincronitzades amb la teva <ph name="BEGIN_LINK" />frase de contrasenya de sincronització<ph name="END_LINK" /></translation> <translation id="6384275966486438344">Canvia la configuració de la cerca a: <ph name="SEARCH_HOST" /></translation> <translation id="6385543213911723544">Els llocs poden desar i llegir dades de galetes</translation> -<translation id="6388429472088318283">Idiomes de cerca</translation> +<translation id="6388429472088318283">Cerca idiomes</translation> <translation id="6388771388956873507">Localitza el sensor d'empremtes digitals al dispositiu i toca'l amb el dit</translation> <translation id="6390799748543157332">Les pàgines que visualitzeu en aquesta finestra no es mostraran a l'historial del navegador i no deixaran cap altre rastre a l'ordinador, com ara galetes, després de tancar totes les finestres obertes de la sessió de convidat. No obstant això, es conservaran tots els fitxers que baixeu.</translation> <translation id="6395423953133416962">Envia les <ph name="BEGIN_LINK2" />mètriques<ph name="END_LINK2" /> i la <ph name="BEGIN_LINK1" />informació del sistema<ph name="END_LINK1" /></translation> @@ -3600,7 +3575,6 @@ <translation id="654039047105555694"><ph name="BEGIN_BOLD" />Nota:<ph name="END_BOLD" /> activeu aquesta opció només si sabeu què esteu fent o si se us ha demanat que ho feu, ja que la recopilació de dades pot reduir el rendiment.</translation> <translation id="654233263479157500">Utilitza un servei web per solucionar els errors de navegació</translation> <translation id="6544215763872433504">El navegador web de Google, pensat per a tu</translation> -<translation id="6545325945815270297">Gestiona les dades i els dispositius sincronitzats al <ph name="BEGIN_LINK" />Tauler de control de Chrome<ph name="END_LINK" />.</translation> <translation id="6545665334409411530">Freqüència de repetició</translation> <translation id="6545834809683560467">Utilitza un servei de predicció per completar fàcilment les cerques i els URL introduïts a la barra d'adreces o al quadre de cerca del menú d'aplicacions.</translation> <translation id="6546686722964485737">Inscripció a la xarxa Wimax</translation> @@ -3615,7 +3589,6 @@ <translation id="6555810572223193255">Actualment no es pot dur a terme la neteja</translation> <translation id="6556866813142980365">Refés</translation> <translation id="6558280019477628686">S'ha produït un error. És possible que alguns elements no s'hagin suprimit.</translation> -<translation id="6559580823502247193">(ja és en aquest dispositiu)</translation> <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="656398493051028875">S'està suprimint "<ph name="FILENAME" />"...</translation> @@ -3812,7 +3785,6 @@ <translation id="6862635236584086457">Es fa una còpia de seguretat en línia automàticament de tots els fitxers desats en aquesta carpeta</translation> <translation id="6865313869410766144">Dades d'Emplenament automàtic de formularis</translation> <translation id="686664946474413495">Temperatura de color</translation> -<translation id="6867678160199975333">Canvia a <ph name="NEW_PROFILE_NAME" /></translation> <translation id="6870888490422746447">Tria una aplicació per compartir a:</translation> <translation id="6871644448911473373">Resposta OCSP: <ph name="LOCATION" /></translation> <translation id="6872781471649843364">El servidor ha rebutjat la contrasenya que has introduït.</translation> @@ -3906,7 +3878,6 @@ <translation id="7018275672629230621">Llegeix i modifica l'historial de navegació</translation> <translation id="7019805045859631636">Ràpid</translation> <translation id="7022562585984256452">S'ha definit la pàgina d'inici.</translation> -<translation id="7025036625303002400">Sembla que ja teniu un usuari supervisat amb aquest nom.</translation> <translation id="7025190659207909717">Gestió de serveis de dades mòbils</translation> <translation id="7025325401470358758">Subfinestra següent</translation> <translation id="7027125358315426638">Nom de la base de dades:</translation> @@ -3955,7 +3926,6 @@ <translation id="7092106376816104">Excepcions de finestres emergents</translation> <translation id="7093434536568905704">GTK+</translation> <translation id="7093866338626856921">Intercanviar dades amb els dispositius <ph name="HOSTNAMES" /></translation> -<translation id="7096108453481049031">L'usuari supervisat no s'ha pogut importar. Comproveu la connexió a la xarxa i torneu-ho a provar més tard.</translation> <translation id="7096406577040705016">Activa o desactiva la lupa de pantalla completa</translation> <translation id="7098447629416471489">Els altres motors de cerca desats es mostraran aquí</translation> <translation id="7099337801055912064">No es poden carregar fitxers PPD grans. La mida màxima és de 250 kB.</translation> @@ -4003,7 +3973,6 @@ <translation id="7168109975831002660">Mida mínima de tipus de lletra</translation> <translation id="7170041865419449892">Fora de l'interval</translation> <translation id="7171559745792467651">Instal·la aplicacions des dels altres dispositius que tinguis</translation> -<translation id="7173917244679555">Sembla que ja gestioneu un usuari amb aquest nom. Volíeu <ph name="BEGIN_LINK" />importar <ph name="PROFILE_NAME" /><ph name="END_LINK" /> a aquest dispositiu?</translation> <translation id="7175037578838465313">Configura <ph name="NAME" /></translation> <translation id="7175353351958621980">Carregat des de:</translation> <translation id="7180611975245234373">Actualitza</translation> @@ -4169,7 +4138,6 @@ <translation id="7444726222535375658">Continua a Hangouts Meet</translation> <translation id="7444983668544353857">Desactiva <ph name="NETWORKDEVICE" /></translation> <translation id="7445682342344043969">S'han bloquejat les finestres emergents</translation> -<translation id="744859430125590922">Controla i consulta els llocs web que aquesta persona visita des de l'adreça <ph name="CUSTODIAN_EMAIL" /></translation> <translation id="7453008956351770337">En seleccionar aquesta impressora, doneu permís a l'extensió següent per accedir a la vostra impressora:</translation> <translation id="7453467225369441013">Et tanca la sessió de la majoria de llocs web, però no la del compte de Google.</translation> <translation id="7456142309650173560">dev</translation> @@ -4341,7 +4309,6 @@ <translation id="7717845620320228976">Cerca actualitzacions</translation> <translation id="7719367874908701697">Zoom de la pàgina</translation> <translation id="771953673318695590">Control de qualitat</translation> -<translation id="7720375555307821262"><ph name="BEGIN_LINK" />Inicieu la sessió a Chrome<ph name="END_LINK" /> per supervisar aquesta persona.</translation> <translation id="7721179060400456005">Permet que les finestres ocupin diverses pantalles</translation> <translation id="7722040605881499779">Espai necessari per fer l'actualització: <ph name="NECESSARY_SPACE" /></translation> <translation id="7724603315864178912">Retalla</translation> @@ -5196,7 +5163,6 @@ <translation id="9024331582947483881">pantalla completa</translation> <translation id="9025098623496448965">D'acord, torna a la pantalla d'inici de sessió</translation> <translation id="9026731007018893674">baixa</translation> -<translation id="9027146684281895941">Supervisa aquesta persona per controlar i consultar els llocs web que visita des del teu compte de Google.</translation> <translation id="9027459031423301635">Obre l'enllaç en una pes&tanya nova</translation> <translation id="9027603907212475920">Configura la sincronització...</translation> <translation id="9030515284705930323">La teva organització no t'ha activat Google Play Store al compte. Contacta amb l'administrador per obtenir més informació.</translation> @@ -5356,7 +5322,6 @@ <translation id="98515147261107953">Horitzontal</translation> <translation id="987897973846887088">No hi ha cap imatge disponible</translation> <translation id="988978206646512040">No es permeten les frases de contrasenya buides</translation> -<translation id="990310048453480215">Suprimeix les aplicacions per a Linux</translation> <translation id="992032470292211616">Les extensions, les aplicacions i els temes poden malmetre el vostre dispositiu. Confirmeu que voleu continuar?</translation> <translation id="992592832486024913">Desactiva ChromeVox (comentaris de veu)</translation> <translation id="994289308992179865">&Bucle</translation>
diff --git a/chrome/app/resources/generated_resources_cs.xtb b/chrome/app/resources/generated_resources_cs.xtb index 340d777..91fdb54 100644 --- a/chrome/app/resources/generated_resources_cs.xtb +++ b/chrome/app/resources/generated_resources_cs.xtb
@@ -42,7 +42,6 @@ <translation id="1056898198331236512">Upozornění</translation> <translation id="1058262162121953039">PUK</translation> <translation id="1062407476771304334">Nahradit</translation> -<translation id="1062866675591297858">Spravujte dozorovaného uživatele prostřednictvím <ph name="BEGIN_LINK" />panelu dozorovaných uživatelů<ph name="END_LINK" />.</translation> <translation id="1064835277883315402">Připojit se k privátní síti</translation> <translation id="1064912851688322329">Odpojit účet Google</translation> <translation id="1067048845568873861">Vytvořeno</translation> @@ -65,7 +64,6 @@ <translation id="1091767800771861448">Akci přeskočíte stisknutím klávesy Esc (pouze neoficiální sestavení).</translation> <translation id="1093457606523402488">Viditelné sítě:</translation> <translation id="1094607894174825014">Na zařízení <ph name="DEVICE_NAME" /> byla požadována operace čtení nebo zápisu s neplatným odstupem.</translation> -<translation id="1097507499312291972">Chcete-li spravovat a zobrazit weby, které tento uživatel navštěvuje, <ph name="BEGIN_SIGN_IN_LINK" />přihlaste se<ph name="END_SIGN_IN_LINK" />.</translation> <translation id="109758035718544977">Zapnout zvuk webů</translation> <translation id="1097658378307015415">Chcete-li aktivovat síť <ph name="NETWORK_ID" />, vstupte prosím před přihlášením jako host</translation> <translation id="1103523840287552314">Vždy překládat jazyk <ph name="LANGUAGE" /></translation> @@ -244,7 +242,6 @@ <translation id="1361655923249334273">Nepoužit</translation> <translation id="1363028406613469049">Stopa</translation> <translation id="1367951781824006909">Vybrat soubor</translation> -<translation id="136802136832547685">Nejsou k dispozici žádní dozorovaní uživatelé, které by do tohoto zařízení bylo možné přidat.</translation> <translation id="1368265273904755308">Nahlásit problém</translation> <translation id="1370646789215800222">Odebrat uživatele?</translation> <translation id="1372681413396468867">{NUM_ITEMS,plural, =1{Bude odstraněna 1 položka}few{Budou odstraněny # položky}many{Bude odstraněno # položky}other{Bude odstraněno # položek}}</translation> @@ -473,7 +470,6 @@ <translation id="1692799361700686467">Byly povoleny soubory cookie z několika webů.</translation> <translation id="169515659049020177">Shift</translation> <translation id="1698122934742150150">Pouze aktuální anonymní relace</translation> -<translation id="1700199471143028312">Váš administrátor vám vytváření dozorovaných uživatelů nepovolil.</translation> <translation id="1701062906490865540">Odebrat tohoto uživatele</translation> <translation id="1706586824377653884">Přidáno administrátorem</translation> <translation id="1706625117072057435">Úrovně přiblížení</translation> @@ -1042,7 +1038,6 @@ <translation id="2604255671529671813">Chyba připojení k síti</translation> <translation id="2606246518223360146">Propojit data</translation> <translation id="2607101320794533334">Informace o veřejném klíči subjektu</translation> -<translation id="2607459012323956820">Nastavení a historii procházení tohoto dozorovaného uživatele si správce může i nadále zobrazit na adrese <ph name="BEGIN_LINK" /><ph name="DISPLAY_LINK" /><ph name="END_LINK" />.</translation> <translation id="2608770217409477136">Použít výchozí nastavení</translation> <translation id="2609896558069604090">Vytvořit zástupce…</translation> <translation id="2610157865375787051">Režim spánku</translation> @@ -1285,7 +1280,6 @@ <translation id="2951247061394563839">Vycentrovat okno</translation> <translation id="2956763290572484660">Soubory cookie: <ph name="COOKIES" /></translation> <translation id="2958721676848865875">Upozornění na zabalení rozšíření</translation> -<translation id="2961043351165706615">Z tohoto Chromebooku budou smazány nainstalované aplikace pro Linux.</translation> <translation id="2961090598421146107"><ph name="CERTIFICATE_NAME" /> (poskytnuto rozšířením)</translation> <translation id="2961695502793809356">Kliknutím přejdete vpřed, přidržením se zobrazí historie</translation> <translation id="2963151496262057773">Následující plugin nereaguje: <ph name="PLUGIN_NAME" /> Chcete jej zastavit?</translation> @@ -1337,15 +1331,6 @@ <translation id="3022978424994383087">Nerozumím.</translation> <translation id="3024374909719388945">Použít hodiny s formátem 24 h</translation> <translation id="302781076327338683">Znovu načíst bez použití mezipaměti</translation> -<translation id="3030243755303701754">Dozorovaný uživatel může procházet web podle vašich pravidel. Jako správce dozorovaného uživatele v Chromu můžete: - - • povolit nebo zakázat některé weby, - • kontrolovat weby, které dozorovaný uživatel navštívil, - • spravovat jiná nastavení. - -Vytvořením dozorovaného uživatele se nevytvoří účet Google. Záložky, historie prohlížení a další nastavení uživatele se nebude synchronizovat do dalších zařízení pomocí Synchronizace Chrome. Po vytvoření nového dozorovaného uživatele můžete jeho nastavení spravovat na stránce <ph name="BEGIN_MANAGE_LINK" /><ph name="DISPLAY_LINK" /><ph name="END_MANAGE_LINK" />, a to kdykoli a z libovolného zařízení. - -Další informace najdete v <ph name="BEGIN_LINK" />centru nápovědy<ph name="END_LINK" />.</translation> <translation id="3031417829280473749">Agentka</translation> <translation id="3031557471081358569">Vyberte položky k importu:</translation> <translation id="3031601332414921114">Obnovit tisk</translation> @@ -1386,7 +1371,6 @@ <translation id="3085412380278336437">Web může použít kameru</translation> <translation id="3085752524577180175">Hostitel protokolu SOCKS</translation> <translation id="3088325635286126843">&Přejmenovat...</translation> -<translation id="3089231390674410424">Zdá se, že došlo k problému s vašimi identifikačními údaji. Zkontrolujte, zda jste správně přihlášeni, a zkuste to znovu.</translation> <translation id="3090193911106258841">Přístup ke vstupu zvuku a videa</translation> <translation id="3090819949319990166">Obsah externího souboru CRX nelze zkopírovat do souboru <ph name="TEMP_CRX_FILE" />.</translation> <translation id="3090871774332213558">Zařízení „<ph name="DEVICE_NAME" />“ bylo spárováno</translation> @@ -1401,7 +1385,6 @@ <translation id="3121793941267913344">Resetování tohoto zařízení <ph name="IDS_SHORT_PRODUCT_NAME" /></translation> <translation id="3122464029669770682">CPU</translation> <translation id="3122496702278727796">Nepodařilo se vytvořit datový adresář</translation> -<translation id="3123569374670379335">(Dozorovaný)</translation> <translation id="3124111068741548686">Popisovače – UŽIVATEL</translation> <translation id="3126026824346185272">Ctrl</translation> <translation id="3127156390846601284">Touto akcí vymažete všechna data uložená v zařízení pro všechny zobrazené weby. Chcete pokračovat?</translation> @@ -1436,8 +1419,6 @@ <translation id="3160842278951476457"><ph name="ISSUED_BY" /> [<ph name="ISSUED_TO" />] (hardwarový)</translation> <translation id="316125635462764134">Odstranit aplikaci</translation> <translation id="3161522574479303604">Všechny jazyky</translation> -<translation id="316307797510303346">Umožnit kontrolu a zobrazení webových stránek, které tento uživatel navštěvuje, z adresy <ph name="CUSTODIAN_EMAIL" /> - Přihlašovací údaje vašeho účtu jsou zastaralé.</translation> <translation id="3165390001037658081">Někteří operátoři mohou tuto funkci blokovat.</translation> <translation id="316854673539778496">Chcete-li mít rozšíření ve všech zařízeních, přihlaste se a zapněte synchronizaci.</translation> <translation id="3170072451822350649">Také můžete přihlášení přeskočit a <ph name="LINK_START" />prohlížet v roli hosta<ph name="LINK_END" />.</translation> @@ -1470,7 +1451,6 @@ <translation id="3229922550070982305">přehrát / pozastavit</translation> <translation id="3232318083971127729">Hodnota:</translation> <translation id="3236289833370040187">Vlastnictví bude převedeno na <ph name="DESTINATION_DOMAIN" />.</translation> -<translation id="3237784613213365159"><ph name="NEW_PROFILE_NAME" /> je teď dozorovaný uživatel</translation> <translation id="323803881985677942">Otevřít možnosti rozšíření</translation> <translation id="3241680850019875542">Vyberte kořenový adresář rozšíření, které chcete zabalit. Chcete-li rozšíření aktualizovat, vyberte také soubor soukromého klíče, který chcete znovu použít.</translation> <translation id="3242765319725186192">Předsdílený klíč:</translation> @@ -1700,7 +1680,6 @@ <translation id="3584169441612580296">Číst a měnit fotografie, hudbu a další média z počítače</translation> <translation id="3587482841069643663">Vše</translation> <translation id="358796204584394954">V zařízení „<ph name="DEVICE_NAME" />“ zadejte tento kód:</translation> -<translation id="3589532742556016615">Na aplikace a obsah v jiných zařízeních tato akce nemá vliv.</translation> <translation id="3589766037099229847">Byl zablokován nezabezpečený obsah</translation> <translation id="3590194807845837023">Odemknout profil a spustit znovu</translation> <translation id="3592260987370335752">&Další informace</translation> @@ -1834,7 +1813,6 @@ <translation id="3778152852029592020">Stahování bylo zrušeno</translation> <translation id="3778740492972734840">&Nástroje pro vývojáře</translation> <translation id="3778868487658107119">Můžete mu zadávat dotazy. Můžete mu udělovat příkazy. Je to váš osobní Google a je vám neustále k službám.</translation> -<translation id="3780663724044634171">Vyberte účet, který dozorovaného uživatele bude spravovat.</translation> <translation id="378312418865624974">Číst jedinečný identifikátor tohoto počítače</translation> <translation id="3783640748446814672">alt</translation> <translation id="3785308913036335955">Zobrazit zástupce aplikací</translation> @@ -2561,7 +2539,6 @@ <translation id="4964455510556214366">Uspořádání</translation> <translation id="4964673849688379040">Kontrola...</translation> <translation id="4965808351167763748">Opravdu toto zařízení chcete nastavit pro službu Hangouts Meet?</translation> -<translation id="4967749818080339523">Vyberte účet</translation> <translation id="496888482094675990">Aplikace Soubory umožňuje rychlý přístup k souborům, které jste uložili na Disk Google, externí úložiště nebo zařízení se systémem Chrome OS.</translation> <translation id="4969785127455456148">Album</translation> <translation id="4971412780836297815">Po dokončení otevřít</translation> @@ -2747,7 +2724,6 @@ <ph name="MARKUP_4" />Mějte své soubory v bezpečí.<ph name="MARKUP_5" /> Vaše soubory jsou bezpečně uloženy na Disku Google bez ohledu na to, co se stane s vaším zařízením.<ph name="MARKUP_6" /> <ph name="MARKUP_7" />Sdílejte, vytvářejte a spolupracujte<ph name="MARKUP_8" /> na souborech s ostatními, a to vše na jednom místě.<ph name="MARKUP_9" /></translation> -<translation id="5262401745672360397">Mohou být smazány i soubory sdílené s aplikacemi pro Linux.</translation> <translation id="5264148714798105376">Tato akce může chvíli trvat.</translation> <translation id="5264252276333215551">Chcete-li aplikaci spustit v režimu veřejného terminálu, připojte se k internetu.</translation> <translation id="5265562206369321422">Offline déle než týden</translation> @@ -3399,7 +3375,6 @@ <translation id="6241530762627360640">Přístup k informacím o zařízeních Bluetooth spárovaných s vaším systémem a objevování zařízení Bluetooth v okolí</translation> <translation id="6243280677745499710">Aktuálně nastaveno</translation> <translation id="6243774244933267674">Server není dostupný</translation> -<translation id="6246413617632217567">Import dozorovaného uživatele se nezdařil. Zkontrolujte místo na disku a oprávnění a zkuste to znovu.</translation> <translation id="6247708409970142803"><ph name="PERCENTAGE" /> %</translation> <translation id="6247802389331535091">Systém: <ph name="ARC_PROCESS_NAME" /></translation> <translation id="624789221780392884">Je připravena aktualizace</translation> @@ -3598,7 +3573,6 @@ <translation id="654039047105555694"><ph name="BEGIN_BOLD" />Poznámka:<ph name="END_BOLD" /> Tuto možnost aktivujte pouze v případě, pokud máte jistotu, že to chcete udělat, nebo pokud jste k tomu byli vyzváni. Shromažďování dat může zhoršit výkon.</translation> <translation id="654233263479157500">Vyřešit chyby v navigaci pomocí webové služby</translation> <translation id="6544215763872433504">Webový prohlížeč od Googlu, pro vás</translation> -<translation id="6545325945815270297">Svá synchronizovaná data a zařízení můžete spravovat na <ph name="BEGIN_LINK" />Hlavním panelu Chrome<ph name="END_LINK" />.</translation> <translation id="6545665334409411530">Rychlost opakování</translation> <translation id="6545834809683560467">Používat službu předpovídání, která pomáhá dokončovat vyhledávací dotazy a adresy URL zadávané do adresního řádku nebo do vyhledávacího pole spouštěče aplikací</translation> <translation id="6546686722964485737">Připojit k síti WiMAX</translation> @@ -3613,7 +3587,6 @@ <translation id="6555810572223193255">Vyčištění aktuálně není k dispozici</translation> <translation id="6556866813142980365">Opakovat</translation> <translation id="6558280019477628686">Došlo k chybě. Některé položky možná nebyly smazány.</translation> -<translation id="6559580823502247193">(již v zařízení)</translation> <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="656398493051028875">Mazání souboru <ph name="FILENAME" />...</translation> @@ -3810,7 +3783,6 @@ <translation id="6862635236584086457">Všechny soubory uložené v této složce se automaticky zálohují online</translation> <translation id="6865313869410766144">Automatické vyplňování formulářů</translation> <translation id="686664946474413495">Teplota barev</translation> -<translation id="6867678160199975333">Přepnout na profil <ph name="NEW_PROFILE_NAME" /></translation> <translation id="6870888490422746447">Vyberte aplikaci, se kterou obsah chcete sdílet:</translation> <translation id="6871644448911473373">Odpovídač OCSP: <ph name="LOCATION" /></translation> <translation id="6872781471649843364">Zadané heslo bylo serverem odmítnuto.</translation> @@ -3904,7 +3876,6 @@ <translation id="7018275672629230621">Číst a upravovat vaši historii procházení</translation> <translation id="7019805045859631636">Rychle</translation> <translation id="7022562585984256452">Domovská stránka byla nastavena.</translation> -<translation id="7025036625303002400">Zdá se, že dozorovaný uživatel s tímto jménem již existuje.</translation> <translation id="7025190659207909717">Správa mobilních datových služeb</translation> <translation id="7025325401470358758">Další podokno</translation> <translation id="7027125358315426638">Název databáze:</translation> @@ -3953,7 +3924,6 @@ <translation id="7092106376816104">Výjimky vyskakovacích oken</translation> <translation id="7093434536568905704">GTK+</translation> <translation id="7093866338626856921">Výměna dat s následujícími zařízeními: <ph name="HOSTNAMES" /></translation> -<translation id="7096108453481049031">Import dozorovaného uživatele se nezdařil. Zkontrolujte připojení k síti a zkuste to znovu.</translation> <translation id="7096406577040705016">Přepnout lupu celé obrazovky</translation> <translation id="7098447629416471489">Zde se zobrazí ostatní uložené vyhledávače</translation> <translation id="7099337801055912064">Soubor PPD nelze načíst, protože je příliš velký. Maximální povolená velikost je 250 kB.</translation> @@ -4001,7 +3971,6 @@ <translation id="7168109975831002660">Minimální velikost písma</translation> <translation id="7170041865419449892">Mimo dosah</translation> <translation id="7171559745792467651">Nainstalovat aplikace z vašich dalších zařízení</translation> -<translation id="7173917244679555">Zdá se, že uživatele s tímto jménem již spravujete. Chtěli jste <ph name="BEGIN_LINK" />importovat profil <ph name="PROFILE_NAME" /><ph name="END_LINK" /> do tohoto zařízení?</translation> <translation id="7175037578838465313">Konfigurace sítě <ph name="NAME" /></translation> <translation id="7175353351958621980">Načteno z:</translation> <translation id="7180611975245234373">Obnovit</translation> @@ -4171,7 +4140,6 @@ <translation id="7444726222535375658">Pokračovat do služby Hangouts Meet</translation> <translation id="7444983668544353857">Deaktivovat <ph name="NETWORKDEVICE" /></translation> <translation id="7445682342344043969">Byla zablokována vyskakovací okna</translation> -<translation id="744859430125590922">Umožnit kontrolu a zobrazení webových stránek, které tento uživatel navštěvuje, z adresy <ph name="CUSTODIAN_EMAIL" /></translation> <translation id="7453008956351770337">Výběrem tiskárny udělíte následujícímu rozšíření oprávnění k přístupu k tiskárně:</translation> <translation id="7453467225369441013">Odhlásí vás z většiny webů. Z účtu Google odhlášeni nebudete.</translation> <translation id="7456142309650173560">pro vývojáře</translation> @@ -4343,7 +4311,6 @@ <translation id="7717845620320228976">Kontrola dostupnosti aktualizací</translation> <translation id="7719367874908701697">Přiblížení/oddálení stránky</translation> <translation id="771953673318695590">Kontrola kvality</translation> -<translation id="7720375555307821262">Chcete-li tohoto uživatele dozorovat, <ph name="BEGIN_LINK" />přihlaste se do Chromu<ph name="END_LINK" />.</translation> <translation id="7721179060400456005">Povolit rozložení oken na více obrazovek</translation> <translation id="7722040605881499779">Místo potřebné pro aktualizaci: <ph name="NECESSARY_SPACE" /></translation> <translation id="7724603315864178912">Vyjmout</translation> @@ -5198,7 +5165,6 @@ <translation id="9024331582947483881">celá obrazovka</translation> <translation id="9025098623496448965">Chci přejít zpět na obrazovku pro přihlášení</translation> <translation id="9026731007018893674">stažený soubor</translation> -<translation id="9027146684281895941">Dohlížet nad touto osobou a umožnit z vašeho účtu Google nastavovat a zobrazovat weby, které tato osoba navštěvuje</translation> <translation id="9027459031423301635">Otevří&t odkaz v nové kartě</translation> <translation id="9027603907212475920">Nastavit synchronizaci...</translation> <translation id="9030515284705930323">Vaše organizace pro váš účet Obchod Google Play nepovolila. Další informace získáte u svého administrátora.</translation> @@ -5358,7 +5324,6 @@ <translation id="98515147261107953">Na šířku</translation> <translation id="987897973846887088">Nejsou k dispozici žádné obrázky</translation> <translation id="988978206646512040">Prázdné přístupové heslo není povoleno</translation> -<translation id="990310048453480215">Odstranit aplikace pro Linux</translation> <translation id="992032470292211616">Rozšíření, aplikace a motivy mohou poškodit vaše zařízení. Opravdu chcete pokračovat?</translation> <translation id="992592832486024913">Deaktivovat funkci ChromeVox (hlasovou odezvu)</translation> <translation id="994289308992179865">&Opakovat</translation>
diff --git a/chrome/app/resources/generated_resources_da.xtb b/chrome/app/resources/generated_resources_da.xtb index a0e22a5..82b7764 100644 --- a/chrome/app/resources/generated_resources_da.xtb +++ b/chrome/app/resources/generated_resources_da.xtb
@@ -42,7 +42,6 @@ <translation id="1056898198331236512">Advarsel</translation> <translation id="1058262162121953039">PUK-kode</translation> <translation id="1062407476771304334">Erstat</translation> -<translation id="1062866675591297858">Administrer dine brugere via <ph name="BEGIN_LINK" />Betjeningspanelet for administrerede brugere<ph name="END_LINK" />.</translation> <translation id="1064835277883315402">Deltag i et privat netværk</translation> <translation id="1064912851688322329">Afbryd din Google-konto</translation> <translation id="1067048845568873861">Oprettet</translation> @@ -65,7 +64,6 @@ <translation id="1091767800771861448">Tryk på ESC for at springe over (kun uofficielle builds).</translation> <translation id="1093457606523402488">Synlige netværk:</translation> <translation id="1094607894174825014">Der blev anmodet om en læse- eller skrivehandling med en ugyldig forskydning på: "<ph name="DEVICE_NAME" />".</translation> -<translation id="1097507499312291972"><ph name="BEGIN_SIGN_IN_LINK" />Log på<ph name="END_SIGN_IN_LINK" /> for at kontrollere og se, hvilke websites denne person besøger.</translation> <translation id="109758035718544977">Slå lyden til på websites</translation> <translation id="1097658378307015415">Før du logger ind, skal du logge ind som gæst for at aktivere netværket <ph name="NETWORK_ID" /></translation> <translation id="1103523840287552314">Oversæt altid <ph name="LANGUAGE" /></translation> @@ -244,7 +242,6 @@ <translation id="1361655923249334273">Ikke brugt</translation> <translation id="1363028406613469049">Spor</translation> <translation id="1367951781824006909">Vælg en fil</translation> -<translation id="136802136832547685">Der er ingen administrerede brugere at føje til denne enhed.</translation> <translation id="1368265273904755308">Rapportér problem</translation> <translation id="1370646789215800222">Vil du fjerne personen?</translation> <translation id="1372681413396468867">{NUM_ITEMS,plural, =1{1 element fjernes}one{# element fjernes}other{# elementer fjernes}}</translation> @@ -469,7 +466,6 @@ <translation id="1692799361700686467">Cookies fra flere websites er tilladt.</translation> <translation id="169515659049020177">Shift</translation> <translation id="1698122934742150150">Kun for den aktuelle inkognitosession</translation> -<translation id="1700199471143028312">Din administrator tillader ikke, at du opretter administrerede brugere.</translation> <translation id="1701062906490865540">Fjern denne person</translation> <translation id="1706586824377653884">Tilføjet af din administrator</translation> <translation id="1706625117072057435">Zoomniveauer</translation> @@ -1039,7 +1035,6 @@ <translation id="2604255671529671813">Fejl i netværksforbindelsen</translation> <translation id="2606246518223360146">Tilknyt data</translation> <translation id="2607101320794533334">Oplysninger om emnets offentlige nøgle</translation> -<translation id="2607459012323956820">Indstillinger og browserhistorik for denne overvågede bruger kan muligvis stadig ses af administratoren for <ph name="BEGIN_LINK" /><ph name="DISPLAY_LINK" /><ph name="END_LINK" /></translation> <translation id="2608770217409477136">Anvend standardindstillinger</translation> <translation id="2609896558069604090">Opret genveje...</translation> <translation id="2610157865375787051">Dvale</translation> @@ -1282,7 +1277,6 @@ <translation id="2951247061394563839">Midtervindue</translation> <translation id="2956763290572484660"><ph name="COOKIES" /> cookies</translation> <translation id="2958721676848865875">Advarsel om pakkeudvidelse</translation> -<translation id="2961043351165706615">Dine installerede Linux-apps slettes fra denne Chromebook.</translation> <translation id="2961090598421146107"><ph name="CERTIFICATE_NAME" /> (forlængelse givet)</translation> <translation id="2961695502793809356">Klik for at gå frem. Hold knappen inde for at se historikken.</translation> <translation id="2963151496262057773">Følgende plugins svarer ikke: <ph name="PLUGIN_NAME" />Vil du stoppe det?</translation> @@ -1334,17 +1328,6 @@ <translation id="3022978424994383087">Det er ikke forstået.</translation> <translation id="3024374909719388945">Brug 24-timers ur</translation> <translation id="302781076327338683">Genindlæs med omgåelse af cachen</translation> -<translation id="3030243755303701754">En administreret bruger kan udforske internettet med din vejledning. Som administrator af en administreret bruger i Chrome kan du: - - - - • Tillade eller forbyde bestemte websites. - • Gennemse de websites, den administrerede bruger har besøgt. - • Administrere andre indstillinger. - -Når du opretter en administreret bruger, oprettes der ikke nogen Google-konto, og brugerens bogmærker, browserhistorik og andre indstillinger følger ikke med vedkommende til andre enheder med Chrome-synkronisering. Når du har oprettet en ny administreret bruger, kan du administrere vedkommendes indstillinger når som helst og fra enhver enhed på <ph name="BEGIN_MANAGE_LINK" /><ph name="DISPLAY_LINK" /><ph name="END_MANAGE_LINK" />. - -Få flere oplysninger i <ph name="BEGIN_LINK" />Hjælp<ph name="END_LINK" />.</translation> <translation id="3031417829280473749">Scully</translation> <translation id="3031557471081358569">Vælg at importere følgende:</translation> <translation id="3031601332414921114">Genoptag udskrivning</translation> @@ -1385,7 +1368,6 @@ <translation id="3085412380278336437">Websitet kan anvende dit kamera</translation> <translation id="3085752524577180175">SOCKS-host</translation> <translation id="3088325635286126843">&Omdøb...</translation> -<translation id="3089231390674410424">Det ser ud til, at der er et problem med dine loginoplysninger. Sørg for, at du er logget ind på korrekt vis, og prøv igen.</translation> <translation id="3090193911106258841">Åbner lyd- og videoinput</translation> <translation id="3090819949319990166">Ekstern crx-fil kan ikke kopieres til <ph name="TEMP_CRX_FILE" />.</translation> <translation id="3090871774332213558">"<ph name="DEVICE_NAME" />" er parret</translation> @@ -1400,7 +1382,6 @@ <translation id="3121793941267913344">Nulstil denne <ph name="IDS_SHORT_PRODUCT_NAME" />-enhed</translation> <translation id="3122464029669770682">CPU</translation> <translation id="3122496702278727796">Oprettelsen af datamappe mislykkedes</translation> -<translation id="3123569374670379335">(Administreret)</translation> <translation id="3124111068741548686">BRUGER-håndtag</translation> <translation id="3126026824346185272">Ctrl</translation> <translation id="3127156390846601284">Dette sletter data, der er gemt på din enhed, for alle de viste websites. Vil du fortsætte?</translation> @@ -1435,8 +1416,6 @@ <translation id="3160842278951476457"><ph name="ISSUED_BY" /> [<ph name="ISSUED_TO" />] (hardwarebaserede)</translation> <translation id="316125635462764134">Fjern appen</translation> <translation id="3161522574479303604">Alle sprog</translation> -<translation id="316307797510303346">Kontrollér og se de websites, som denne person besøger via <ph name="CUSTODIAN_EMAIL" />. - Loginoplysningerne for din konto er forældede.</translation> <translation id="3165390001037658081">Nogle mobilselskaber blokerer muligvis denne funktion.</translation> <translation id="316854673539778496">Log ind, og aktivér synkronisering for at få alle dine udvidelser på alle dine enheder.</translation> <translation id="3170072451822350649">Du kan også springe login over og <ph name="LINK_START" />anvende som gæst<ph name="LINK_END" />.</translation> @@ -1469,7 +1448,6 @@ <translation id="3229922550070982305">afspil/sæt på pause</translation> <translation id="3232318083971127729">Værdi:</translation> <translation id="3236289833370040187">Ejerskabet overføres til <ph name="DESTINATION_DOMAIN" />.</translation> -<translation id="3237784613213365159"><ph name="NEW_PROFILE_NAME" /> er nu en administreret bruger</translation> <translation id="323803881985677942">Åbn valgmuligheder for udvidelser</translation> <translation id="3241680850019875542">Vælg rodmappen for udvidelsen, der skal pakkes. Opdater en udvidelse ved også at vælge den private nøglefil til genbrug.</translation> <translation id="3242765319725186192">Foruddelt nøgle:</translation> @@ -1701,7 +1679,6 @@ <translation id="3584169441612580296">Læs og rediger billeder, musik og andre medier på din computer</translation> <translation id="3587482841069643663">Alle</translation> <translation id="358796204584394954">Angiv denne kode på enheden "<ph name="DEVICE_NAME" />" for at parre:</translation> -<translation id="3589532742556016615">Dette påvirker ikke apps eller indhold på andre enheder.</translation> <translation id="3589766037099229847">Usikkert indhold er blokeret</translation> <translation id="3590194807845837023">Lås profilen op, og genstart</translation> <translation id="3592260987370335752">&Få flere oplysninger</translation> @@ -1835,7 +1812,6 @@ <translation id="3778152852029592020">Download blev annulleret.</translation> <translation id="3778740492972734840">&Udviklerværktøjer</translation> <translation id="3778868487658107119">Stil den spørgsmål. Giv den opgaver. Den er dit personlige Google, der altid er parat til at hjælpe dig.</translation> -<translation id="3780663724044634171">Vælg en konto til administration af den administrerede bruger.</translation> <translation id="378312418865624974">Læs et unikt id for denne computer</translation> <translation id="3783640748446814672">alt</translation> <translation id="3785308913036335955">Vis genveje for Apps</translation> @@ -2537,7 +2513,7 @@ <translation id="4917385247580444890">Stærk</translation> <translation id="4918021164741308375"><ph name="ORIGIN" /> ønsker at kommunikere med udvidelsen "<ph name="EXTENSION_NAME" />"</translation> <translation id="4918086044614829423">Accepter</translation> -<translation id="4920350943031252905">Køre Linux-værktøjer, -redigeringsværktøjer og -IDE'er på din Chromebook.</translation> +<translation id="4920350943031252905">Kør Linux-værktøjer, -redigeringsværktøjer og -IDE'er på din Chromebook.</translation> <translation id="4920887663447894854">Følgende websites kan ikke spore din placering på denne side:</translation> <translation id="492299503953721473">Fjern Android-apps</translation> <translation id="4923279099980110923">Ja. Jeg vil gerne hjælpe</translation> @@ -2563,7 +2539,6 @@ <translation id="4964455510556214366">Opstilling</translation> <translation id="4964673849688379040">Kontrollerer...</translation> <translation id="4965808351167763748">Er du sikker på, at du vil konfigurere denne enhed til at køre Hangouts Meet?</translation> -<translation id="4967749818080339523">Vælg en konto</translation> <translation id="496888482094675990">Appen Filer giver hurtig adgang til filer, som du har gemt i Google Drev, på et eksternt lager eller på din Chrome OS-enhed.</translation> <translation id="4969785127455456148">Album</translation> <translation id="4971412780836297815">Åbn, når den er gennemført</translation> @@ -2750,7 +2725,6 @@ Uanset hvad der sker på din enhed, er dine filer gemt sikkert i Google Drev.<ph name="MARKUP_6" /> <ph name="MARKUP_7" />Del, opret og samarbejd<ph name="MARKUP_8" /> om filer med andre på ét sted.<ph name="MARKUP_9" /></translation> -<translation id="5262401745672360397">Filer, der er delt med Linux-apps, slettes muligvis også.</translation> <translation id="5264148714798105376">Dette kan tage et øjeblik.</translation> <translation id="5264252276333215551">Opret forbindelse til internettet for at starte din app i terminaltilstand.</translation> <translation id="5265562206369321422">Offline i mere end en uge</translation> @@ -2967,7 +2941,7 @@ <translation id="555746285996217175">Lås/tænd</translation> <translation id="5557991081552967863">Behold Wi-Fi slået til under dvale</translation> <translation id="5558129378926964177">Zoom &ind</translation> -<translation id="5558446705802335921">Tjekker websites, du besøger, og filer, du downloader, for skadelig adfærd eller indhold, f.eks. phishing og malware</translation> +<translation id="5558446705802335921">Tjekker websites, du besøger, og filer, du downloader, for adfærd eller indhold, der er skadeligt, f.eks. phishing og malware</translation> <translation id="5559719557406102971">Starter Termina VM.</translation> <translation id="55601339223879446">Tilpas grænserne for dit skrivebord inden for skærmvisningen</translation> <translation id="5562781907504170924">Denne fane er tilsluttet en Bluetooth-enhed.</translation> @@ -3403,7 +3377,6 @@ <translation id="6241530762627360640">Få adgang til oplysninger om Bluetooth-enheder, der er parret med dit system, og registrér Bluetooth-enheder i nærheden.</translation> <translation id="6243280677745499710">Nuværende</translation> <translation id="6243774244933267674">Serveren er utilgængelig</translation> -<translation id="6246413617632217567">Den administrerede bruger kunne ikke importeres. Kontrollér, om der er ledig plads på din harddisk, og at du har de rette tilladelser, og prøv igen.</translation> <translation id="6247708409970142803"><ph name="PERCENTAGE" /> %</translation> <translation id="6247802389331535091">System: <ph name="ARC_PROCESS_NAME" /></translation> <translation id="624789221780392884">Opdateringen er klar</translation> @@ -3602,7 +3575,6 @@ <translation id="654039047105555694"><ph name="BEGIN_BOLD" />Bemærk:<ph name="END_BOLD" /> Aktivér kun, hvis du ved hvad du gør, eller hvis du er blevet bedt om at gøre det, eftersom dataregistrering kan reducere ydeevnen.</translation> <translation id="654233263479157500">Brug en webtjeneste til at hjælpe med at løse navigationsfejl</translation> <translation id="6544215763872433504">Googles webbrowser til dig</translation> -<translation id="6545325945815270297">Administrer dine synkroniserede data og enheder i <ph name="BEGIN_LINK" />Chrome Betjeningspanel<ph name="END_LINK" />.</translation> <translation id="6545665334409411530">Gentagelseshastighed</translation> <translation id="6545834809683560467">Brug en forslagstjeneste til at færdiggøre søgninger og webadresser, der indtastes i adresselinjen eller søgefeltet i applisten</translation> <translation id="6546686722964485737">Opret forbindelse til WiMAX-netværk</translation> @@ -3617,7 +3589,6 @@ <translation id="6555810572223193255">Det er i øjeblikket ikke muligt at rydde indhold</translation> <translation id="6556866813142980365">Gør det igen</translation> <translation id="6558280019477628686">Der opstod en fejl. Nogle elementer blev muligvis ikke slettet.</translation> -<translation id="6559580823502247193">(findes allerede på denne enhed)</translation> <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="656398493051028875">Slettter "<ph name="FILENAME" />"...</translation> @@ -3814,7 +3785,6 @@ <translation id="6862635236584086457">Alle de filer, der er gemt i denne mappe, sikkerhedskopieres automatisk online</translation> <translation id="6865313869410766144">Formulardata for AutoFyld</translation> <translation id="686664946474413495">Farvetemperatur</translation> -<translation id="6867678160199975333">Skift til <ph name="NEW_PROFILE_NAME" /></translation> <translation id="6870888490422746447">Vælg en app, du vil dele med:</translation> <translation id="6871644448911473373">OCSP-responder: <ph name="LOCATION" /></translation> <translation id="6872781471649843364">Den angivne adgangskode blev afvist af serveren.</translation> @@ -3908,7 +3878,6 @@ <translation id="7018275672629230621">Læs og rediger din browserhistorik</translation> <translation id="7019805045859631636">Hurtig</translation> <translation id="7022562585984256452">Din startside er blevet konfigureret.</translation> -<translation id="7025036625303002400">Det ser ud til, at du allerede har en administreret bruger med dette navn.</translation> <translation id="7025190659207909717">Administration af mobildatatjeneste</translation> <translation id="7025325401470358758">Næste rude</translation> <translation id="7027125358315426638">Databasenavn:</translation> @@ -3957,7 +3926,6 @@ <translation id="7092106376816104">Undtagelser for pop op-vinduer</translation> <translation id="7093434536568905704">GTK+</translation> <translation id="7093866338626856921">Udveksle data med enhederne ved navn: <ph name="HOSTNAMES" /></translation> -<translation id="7096108453481049031">Den overvågede bruger kunne ikke importeres. Kontrollér din netværksforbindelse, og prøv igen senere.</translation> <translation id="7096406577040705016">Slå forstørrelse af fuld skærm til/fra</translation> <translation id="7098447629416471489">Andre gemte søgemaskiner vises her</translation> <translation id="7099337801055912064">Den store PPD-fil kan ikke indlæses. Filen må ikke fylde mere end 250 kB.</translation> @@ -4005,7 +3973,6 @@ <translation id="7168109975831002660">Mindste skriftstørrelse</translation> <translation id="7170041865419449892">Intet signal</translation> <translation id="7171559745792467651">Installer apps fra dine andre enheder</translation> -<translation id="7173917244679555">Det lader til, at du allerede administrerer en bruger med det navn. Ville du <ph name="BEGIN_LINK" />importere <ph name="PROFILE_NAME" /><ph name="END_LINK" /> til denne enhed?</translation> <translation id="7175037578838465313">Konfigurer <ph name="NAME" /></translation> <translation id="7175353351958621980">Indlæst fra:</translation> <translation id="7180611975245234373">Opdater</translation> @@ -4177,7 +4144,6 @@ <translation id="7444726222535375658">Fortsæt til Hangouts Meet</translation> <translation id="7444983668544353857">Deaktiver <ph name="NETWORKDEVICE" /></translation> <translation id="7445682342344043969">Pop op-vinduer er blokeret</translation> -<translation id="744859430125590922">Bestem og se, hvilke websites denne person besøger via <ph name="CUSTODIAN_EMAIL" />.</translation> <translation id="7453008956351770337">Ved at vælge denne printer giver du følgende udvidelser adgang til din printer:</translation> <translation id="7453467225369441013">Logger dig ud af de fleste websites. Du bliver ikke logget ud af din Google-konto.</translation> <translation id="7456142309650173560">dev</translation> @@ -4351,7 +4317,6 @@ <translation id="7717845620320228976">Søg efter opdateringer</translation> <translation id="7719367874908701697">Sidezoom</translation> <translation id="771953673318695590">QA</translation> -<translation id="7720375555307821262"><ph name="BEGIN_LINK" />Log ind på Chrome<ph name="END_LINK" /> for at administrere denne person.</translation> <translation id="7721179060400456005">Tillad, at vinduer kan dække flere skærme</translation> <translation id="7722040605881499779">Opdateringen kræver: <ph name="NECESSARY_SPACE" /></translation> <translation id="7724603315864178912">Klip</translation> @@ -5206,7 +5171,6 @@ <translation id="9024331582947483881">fuld skærm</translation> <translation id="9025098623496448965">OK. Før mig tilbage til loginskærmen</translation> <translation id="9026731007018893674">download</translation> -<translation id="9027146684281895941">Administrer denne person for at kontrollere og få vist de websites, vedkommende besøger via din Google-konto.</translation> <translation id="9027459031423301635">Åbn link på ny &fane</translation> <translation id="9027603907212475920">Konfigurer synkronisering...</translation> <translation id="9030515284705930323">Din organisation har ikke aktiveret Google Play Butik for din konto. Kontakt din administrator for at få yderligere oplysninger.</translation> @@ -5366,7 +5330,6 @@ <translation id="98515147261107953">Liggende</translation> <translation id="987897973846887088">Der er ingen tilgængelige billeder</translation> <translation id="988978206646512040">Tomme adgangssætninger er ikke tilladt</translation> -<translation id="990310048453480215">Fjern Linux-apps</translation> <translation id="992032470292211616">Udvidelser, apps og temaer kan skade din enhed. Er du sikker på, at du vil fortsætte?</translation> <translation id="992592832486024913">Deaktiver ChromeVox (talefeedback)</translation> <translation id="994289308992179865">&Sløjfe</translation>
diff --git a/chrome/app/resources/generated_resources_de.xtb b/chrome/app/resources/generated_resources_de.xtb index c88cbb4..d010c62 100644 --- a/chrome/app/resources/generated_resources_de.xtb +++ b/chrome/app/resources/generated_resources_de.xtb
@@ -42,7 +42,6 @@ <translation id="1056898198331236512">Warnung</translation> <translation id="1058262162121953039">PUK</translation> <translation id="1062407476771304334">Ersetzen</translation> -<translation id="1062866675591297858">Ihre betreuten Nutzer mithilfe des <ph name="BEGIN_LINK" />Dashboards für betreute Nutzer<ph name="END_LINK" /> verwalten</translation> <translation id="1064835277883315402">Privatem Netzwerk beitreten</translation> <translation id="1064912851688322329">Verbindung zum Google-Konto trennen</translation> <translation id="1067048845568873861">Erstellt</translation> @@ -65,7 +64,6 @@ <translation id="1091767800771861448">Drücken Sie die Esc-Taste, um die Aktualisierung zu überspringen (nur inoffizielle Builds).</translation> <translation id="1093457606523402488">Sichtbare Netzwerke:</translation> <translation id="1094607894174825014">Auf folgendem Gerät wurde ein Lese- oder Schreibvorgang mit ungültiger Abweichung angefordert: "<ph name="DEVICE_NAME" />".</translation> -<translation id="1097507499312291972"><ph name="BEGIN_SIGN_IN_LINK" />Melden Sie sich an<ph name="END_SIGN_IN_LINK" />, um die von dieser Person besuchten Websites einzusehen.</translation> <translation id="109758035718544977">Stummschaltung für Websites aufheben</translation> <translation id="1097658378307015415">Melden Sie vor der Anmeldung als Gast an, um das Netzwerk <ph name="NETWORK_ID" /> zu aktivieren.</translation> <translation id="1103523840287552314"><ph name="LANGUAGE" /> immer übersetzen</translation> @@ -244,7 +242,6 @@ <translation id="1361655923249334273">Nicht verwendet</translation> <translation id="1363028406613469049">Titel</translation> <translation id="1367951781824006909">Datei auswählen</translation> -<translation id="136802136832547685">Es gibt keine betreuten Nutzer, die diesem Gerät hinzugefügt werden können.</translation> <translation id="1368265273904755308">Problem melden</translation> <translation id="1370646789215800222">Person entfernen?</translation> <translation id="1372681413396468867">{NUM_ITEMS,plural, =1{1 zu entfernendes Element}other{# zu entfernende Elemente}}</translation> @@ -469,7 +466,6 @@ <translation id="1692799361700686467">Es sind Cookies von mehreren Websites zulässig.</translation> <translation id="169515659049020177">Umschalttaste</translation> <translation id="1698122934742150150">Nur aktuelle Inkognitositzung</translation> -<translation id="1700199471143028312">Ihr Administrator erlaubt Ihnen nicht, betreute Nutzer zu erstellen.</translation> <translation id="1701062906490865540">Diese Person entfernen</translation> <translation id="1706586824377653884">Von Ihrem Administrator hinzugefügt</translation> <translation id="1706625117072057435">Zoomstufen</translation> @@ -1037,7 +1033,6 @@ <translation id="2604255671529671813">Fehler bei der Netzwerkverbindung</translation> <translation id="2606246518223360146">Daten verknüpfen</translation> <translation id="2607101320794533334">Informationen zum öffentlichen Schlüssel des Antragstellers</translation> -<translation id="2607459012323956820">Der Administrator kann die Einstellungen und den Browserverlauf des betreuten Nutzers möglicherweise weiterhin unter <ph name="BEGIN_LINK" /><ph name="DISPLAY_LINK" /><ph name="END_LINK" /> einsehen.</translation> <translation id="2608770217409477136">Standardeinstellungen verwenden</translation> <translation id="2609896558069604090">Verknüpfungen erstellen...</translation> <translation id="2610157865375787051">Ruhemodus</translation> @@ -1280,7 +1275,6 @@ <translation id="2951247061394563839">Fenster zentrieren</translation> <translation id="2956763290572484660"><ph name="COOKIES" /> Cookies</translation> <translation id="2958721676848865875">Erweiterung packen: Warnung</translation> -<translation id="2961043351165706615">Von Ihnen installierte Linux-Apps werden von diesem Chromebook gelöscht.</translation> <translation id="2961090598421146107"><ph name="CERTIFICATE_NAME" /> (Verlängerung gewährt)</translation> <translation id="2961695502793809356">Klicken, um weiterzugehen. Gedrückt halten, um Verlauf aufzurufen</translation> <translation id="2963151496262057773">Das folgende Plug-in reagiert nicht: <ph name="PLUGIN_NAME" />. Möchten Sie es anhalten?</translation> @@ -1332,15 +1326,6 @@ <translation id="3022978424994383087">Nicht verstanden.</translation> <translation id="3024374909719388945">24-Stunden-Format verwenden</translation> <translation id="302781076327338683">Unter Umgehung des Cache neu laden</translation> -<translation id="3030243755303701754">Ein betreuter Nutzer kann ohne Ihre Anleitung im Web surfen. Als Administrator eines betreuten Nutzers können Sie in Chrome: - - • bestimmte Websites zulassen oder sperren, - • die Websites ansehen, die der betreute Nutzer besucht hat, und - • sonstige Einstellungen vornehmen. - -Durch die Einrichtung eines betreuten Nutzers wird kein Google-Konto erstellt. Die Lesezeichen, der Browserverlauf und andere Einstellungen werden nicht über die Chrome-Synchronisierung auf andere Geräte übertragen. Nachdem Sie einen neuen betreuten Nutzer erstellt haben, können Sie dessen Einstellungen jederzeit von jedem Gerät unter <ph name="BEGIN_MANAGE_LINK" /><ph name="DISPLAY_LINK" /><ph name="END_MANAGE_LINK" /> ändern. - -Mehr dazu erfahren Sie in <ph name="BEGIN_LINK" />unserer Hilfe<ph name="END_LINK" />.</translation> <translation id="3031417829280473749">Agentin X</translation> <translation id="3031557471081358569">Zu importierende Daten wählen:</translation> <translation id="3031601332414921114">Druckvorgang fortsetzen</translation> @@ -1381,7 +1366,6 @@ <translation id="3085412380278336437">Die Website kann Ihre Kamera verwenden</translation> <translation id="3085752524577180175">SOCKS-Host</translation> <translation id="3088325635286126843">&Umbenennen...</translation> -<translation id="3089231390674410424">Bei Ihren Anmeldedaten ist ein Problem aufgetreten. Bitte melden Sie sich mit den korrekten Daten an und versuchen Sie es noch einmal.</translation> <translation id="3090193911106258841">Zugriff auf Audio- und Video-Eingang</translation> <translation id="3090819949319990166">Externe CRX-Datei konnte nicht als <ph name="TEMP_CRX_FILE" /> kopiert werden.</translation> <translation id="3090871774332213558">"<ph name="DEVICE_NAME" />" ist gekoppelt</translation> @@ -1396,7 +1380,6 @@ <translation id="3121793941267913344"><ph name="IDS_SHORT_PRODUCT_NAME" />-Gerät zurücksetzen</translation> <translation id="3122464029669770682">CPU</translation> <translation id="3122496702278727796">Erstellen eines Datenverzeichnisses fehlgeschlagen</translation> -<translation id="3123569374670379335">(Betreut)</translation> <translation id="3124111068741548686">NUTZER-Handles</translation> <translation id="3126026824346185272">Strg</translation> <translation id="3127156390846601284">Dadurch werden sämtliche für alle angezeigten Websites auf dem Gerät gespeicherten Daten gelöscht. Möchten Sie fortfahren?</translation> @@ -1431,8 +1414,6 @@ <translation id="3160842278951476457"><ph name="ISSUED_BY" /> [<ph name="ISSUED_TO" />] (hardwaregestützt)</translation> <translation id="316125635462764134">App entfernen</translation> <translation id="3161522574479303604">Alle Sprachen</translation> -<translation id="316307797510303346">Von dieser Person besuchte Websites über <ph name="CUSTODIAN_EMAIL" /> einsehen. - Die Anmeldedaten für Ihr Konto sind veraltet.</translation> <translation id="3165390001037658081">Einige Mobilfunkanbieter blockieren diese Funktion möglicherweise.</translation> <translation id="316854673539778496">Wenn Sie Ihre Erweiterungen auf allen Ihren Geräten verfügbar haben möchten, melden Sie sich an und aktivieren Sie die Synchronisierung.</translation> <translation id="3170072451822350649">Sie können die Anmeldung auch überspringen und <ph name="LINK_START" />als Gast surfen<ph name="LINK_END" />.</translation> @@ -1465,7 +1446,6 @@ <translation id="3229922550070982305">Wiedergabe/Pause</translation> <translation id="3232318083971127729">Wert:</translation> <translation id="3236289833370040187">Die Inhaberschaft wird übertragen an <ph name="DESTINATION_DOMAIN" />.</translation> -<translation id="3237784613213365159"><ph name="NEW_PROFILE_NAME" /> ist jetzt ein betreuter Nutzer</translation> <translation id="323803881985677942">Erweiterungsoptionen öffnen</translation> <translation id="3241680850019875542">Wählen Sie das Stammverzeichnis der Erweiterung, die gepackt werden soll. Zur Aktualisierung einer Erweiterung wählen Sie eine private Schlüsseldatei zur Wiederverwendung.</translation> <translation id="3242765319725186192">Vorinstallierter Schlüssel:</translation> @@ -1697,7 +1677,6 @@ <translation id="3584169441612580296">Fotos, Musik und andere Medien auf Ihrem Computer lesen und ändern</translation> <translation id="3587482841069643663">Alle</translation> <translation id="358796204584394954">Geben Sie zur Kopplung diesen Code auf "<ph name="DEVICE_NAME" />" ein:</translation> -<translation id="3589532742556016615">Apps oder Inhalte auf anderen Geräten sind davon nicht betroffen.</translation> <translation id="3589766037099229847">Unsichere Inhalte blockiert</translation> <translation id="3590194807845837023">Profil entsperren und Chrome neu starten</translation> <translation id="3592260987370335752">&Weitere Informationen</translation> @@ -1831,7 +1810,6 @@ <translation id="3778152852029592020">Der Download wurde abgebrochen.</translation> <translation id="3778740492972734840">E&ntwicklertools</translation> <translation id="3778868487658107119">Sie können ihm Fragen stellen und ihn Dinge erledigen lassen. Er ist immer für Sie da.</translation> -<translation id="3780663724044634171">Wählen Sie ein Konto aus, um den betreuten Nutzer zu verwalten.</translation> <translation id="378312418865624974">Eindeutige Kennung für diesen Computer lesen</translation> <translation id="3783640748446814672">Alt</translation> <translation id="3785308913036335955">Verknüpfung "Apps" anzeigen</translation> @@ -2378,7 +2356,7 @@ Falls dies eine unerwartete Aktion ist, wenden Sie sich bitte an den Support.</translation> <translation id="469230890969474295">OEM-Ordner</translation> <translation id="4692623383562244444">Suchmaschinen</translation> -<translation id="4694024090038830733">Die Druckerkonfiguration wird vom Administrator vorgenommen.</translation> +<translation id="4694024090038830733">Um die Druckerkonfiguration kümmert sich der Administrator.</translation> <translation id="4697551882387947560">Beim Beenden der Browsersitzung</translation> <translation id="4699172675775169585">Bilder und Dateien im Cache</translation> <translation id="4699357559218762027">(wird automatisch gestartet)</translation> @@ -2559,7 +2537,6 @@ <translation id="4964455510556214366">Anordnung</translation> <translation id="4964673849688379040">Wird überprüft...</translation> <translation id="4965808351167763748">Möchten Sie dieses Gerät wirklich für Hangouts Meet einrichten?</translation> -<translation id="4967749818080339523">Konto auswählen</translation> <translation id="496888482094675990">Mit der App "Dateien" erhalten Sie schnellen Zugriff auf Dateien, die Sie in Google Drive, auf externen Speichermedien oder auf Ihrem Chrome OS-Gerät gespeichert haben.</translation> <translation id="4969785127455456148">Album</translation> <translation id="4971412780836297815">Nach abgeschlossenem Download öffnen</translation> @@ -2746,7 +2723,6 @@ Was auch immer mit Ihrem Gerät passiert, Ihre Dateien sind in Google Drive sicher gespeichert.<ph name="MARKUP_6" /> <ph name="MARKUP_7" />Teilen, erstellen und bearbeiten<ph name="MARKUP_8" /> Sie Ihre Dateien mit anderen an einem zentralen Ort.<ph name="MARKUP_9" /></translation> -<translation id="5262401745672360397">Dateien, die mit Linux-Apps geteilt wurden, werden möglicherweise auch gelöscht.</translation> <translation id="5264148714798105376">Dies kann etwa eine Minute dauern.</translation> <translation id="5264252276333215551">Stellen Sie eine Internetverbindung her, um die App im Kioskmodus zu starten.</translation> <translation id="5265562206369321422">Seit über einer Woche offline</translation> @@ -2758,7 +2734,7 @@ <translation id="527605719918376753">Stummschalten</translation> <translation id="527605982717517565">JavaScript auf <ph name="HOST" /> immer zulassen</translation> <translation id="5280426389926346830">Verknüpfung erstellen?</translation> -<translation id="528208740344463258">Um Android-Apps herunterladen und verwenden zu können, müssen Sie zuerst dieses erforderliche Update installieren. Sie können Ihr <ph name="DEVICE_TYPE" /> während des Updates nicht nutzen. Nach Abschluss der Installation wird Ihr <ph name="DEVICE_TYPE" /> neu gestartet.</translation> +<translation id="528208740344463258">Wenn Sie Android-Apps herunterladen und verwenden möchten, müssen Sie zuerst dieses erforderliche Update installieren. Sie können Ihr <ph name="DEVICE_TYPE" /> während des Updates nicht nutzen. Nach Abschluss der Installation wird Ihr <ph name="DEVICE_TYPE" /> neu gestartet.</translation> <translation id="5282733140964383898">Wenn Sie "Do Not Track" aktivieren, wird eine Anfrage in Ihre Browseraufrufe aufgenommen. Welche Auswirkungen dies hat, hängt davon ab, ob eine Website auf die Anfrage reagiert und wie diese interpretiert wird. Einige Websites reagieren möglicherweise auf die Anfrage, indem sie Anzeigen einblenden, die nicht auf anderen von Ihnen besuchten Websites basieren. Viele Websites erfassen und nutzen dennoch Ihre Browserdaten, etwa zur Verbesserung der Sicherheit, zur Bereitstellung von Inhalten, Diensten, Anzeigen und Empfehlungen auf der Website sowie zur Erstellung von Berichtsstatistiken. <ph name="BEGIN_LINK" />Weitere Informationen<ph name="END_LINK" /></translation> <translation id="5283677936944177147">Hoppla! Das System konnte das Gerätemodell oder die Seriennummer nicht erkennen.</translation> <translation id="5284445933715251131">Download fortsetzen</translation> @@ -3398,7 +3374,6 @@ <translation id="6241530762627360640">Informationen zu mit ihrem System gekoppelten Bluetooth-Geräten abrufen und Bluetooth-Geräte in der Nähe finden</translation> <translation id="6243280677745499710">Derzeit festgelegt</translation> <translation id="6243774244933267674">Server nicht verfügbar</translation> -<translation id="6246413617632217567">Der betreute Nutzer konnte nicht importiert werden. Bitte überprüfen Sie Ihren Festplattenspeicherplatz und Ihre Berechtigungen und versuchen Sie es noch einmal.</translation> <translation id="6247708409970142803"><ph name="PERCENTAGE" /> %</translation> <translation id="6247802389331535091">System: <ph name="ARC_PROCESS_NAME" /></translation> <translation id="624789221780392884">Update bereit</translation> @@ -3488,7 +3463,7 @@ <translation id="6383051423892982287">Alle synchronisierten Daten werden mit meiner eigenen <ph name="BEGIN_LINK" />Synchronisierungspassphrase<ph name="END_LINK" /> verschlüsselt</translation> <translation id="6384275966486438344">Sucheinstellungen in <ph name="SEARCH_HOST" /> ändern</translation> <translation id="6385543213911723544">Websites können Cookiedaten speichern und lesen.</translation> -<translation id="6388429472088318283">Sprachen suchen</translation> +<translation id="6388429472088318283">Nach Sprache suchen</translation> <translation id="6388771388956873507">Suchen Sie den Fingerabdrucksensor Ihres Geräts und berühren Sie ihn mit dem Finger</translation> <translation id="6390799748543157332">In diesem Fenster aufgerufene Seiten erscheinen nicht im Browserverlauf und hinterlassen auch keine anderweitigen Spuren wie Cookies auf dem Computer, nachdem Sie alle geöffneten Gastmodus-Fenster geschlossen haben. Heruntergeladene Dateien bleiben jedoch erhalten.</translation> <translation id="6395423953133416962"><ph name="BEGIN_LINK1" />Systeminformationen<ph name="END_LINK1" /> und <ph name="BEGIN_LINK2" />Messwerte<ph name="END_LINK2" /> senden</translation> @@ -3597,7 +3572,6 @@ <translation id="654039047105555694"><ph name="BEGIN_BOLD" />Hinweis:<ph name="END_BOLD" /> Aktivieren Sie diese Option nur dann, wenn Sie dazu aufgefordert wurden und sich sicher sind, dass es unbedenklich ist. Die Datenerfassung kann die Leistung verringern.</translation> <translation id="654233263479157500">Navigationsfehler mithilfe eines Webdienstes beheben</translation> <translation id="6544215763872433504">Der Webbrowser von Google, für Sie</translation> -<translation id="6545325945815270297">Verwalten Sie Ihre synchronisierten Daten und Geräte über <ph name="BEGIN_LINK" />Chrome Dashboard<ph name="END_LINK" />.</translation> <translation id="6545665334409411530">Wiederholungsrate</translation> <translation id="6545834809683560467">Funktion zur Vervollständigung von Suchanfragen und URLs verwenden, die in die Adressleiste oder die Suchleiste des App Launchers eingegeben werden</translation> <translation id="6546686722964485737">Mit WiMAX-Netzwerk verbinden</translation> @@ -3612,7 +3586,6 @@ <translation id="6555810572223193255">Die Bereinigung ist derzeit nicht verfügbar</translation> <translation id="6556866813142980365">Wiederholen</translation> <translation id="6558280019477628686">Ein Fehler ist aufgetreten. Einige Elemente wurden möglicherweise nicht gelöscht.</translation> -<translation id="6559580823502247193">(auf diesem Gerät bereits vorhanden)</translation> <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="656398493051028875">"<ph name="FILENAME" />" wird gelöscht...</translation> @@ -3809,7 +3782,6 @@ <translation id="6862635236584086457">Alle in diesem Ordner gespeicherten Dateien werden automatisch online gesichert.</translation> <translation id="6865313869410766144">AutoFill-Formulardaten</translation> <translation id="686664946474413495">Farbtemperatur</translation> -<translation id="6867678160199975333">Zu <ph name="NEW_PROFILE_NAME" /> wechseln</translation> <translation id="6870888490422746447">App wählen, um sie zu teilen über:</translation> <translation id="6871644448911473373">OCSP-Antwortdienst: <ph name="LOCATION" /></translation> <translation id="6872781471649843364">Das eingegebene Passwort wurde vom Server zurückgewiesen.</translation> @@ -3903,7 +3875,6 @@ <translation id="7018275672629230621">Ihren Browserverlauf lesen und ändern</translation> <translation id="7019805045859631636">Schnell</translation> <translation id="7022562585984256452">Ihre Startseite wurde eingerichtet.</translation> -<translation id="7025036625303002400">Offenbar existiert bereits ein betreuter Nutzer mit diesem Namen.</translation> <translation id="7025190659207909717">Verwaltung mobiler Datendienste</translation> <translation id="7025325401470358758">Nächster Bereich</translation> <translation id="7027125358315426638">Datenbankname:</translation> @@ -3952,7 +3923,6 @@ <translation id="7092106376816104">Ausnahmen für Pop-ups</translation> <translation id="7093434536568905704">GTK+</translation> <translation id="7093866338626856921">Daten mit den Geräten mit folgenden Namen austauschen: <ph name="HOSTNAMES" /></translation> -<translation id="7096108453481049031">Der betreute Nutzer konnte nicht importiert werden. Bitte überprüfen Sie die Netzwerkverbindung und versuchen Sie es später noch einmal.</translation> <translation id="7096406577040705016">Vollbildlupe ein-/ausschalten</translation> <translation id="7098447629416471489">Hier werden andere gespeicherte Suchmaschinen angezeigt</translation> <translation id="7099337801055912064">Große PPD-Datei kann nicht geladen werden. Die Maximalgröße beträgt 250 KB.</translation> @@ -4000,7 +3970,6 @@ <translation id="7168109975831002660">Mindestgröße</translation> <translation id="7170041865419449892">Außerhalb des Bereichs</translation> <translation id="7171559745792467651">Apps von Ihren anderen Geräten installieren</translation> -<translation id="7173917244679555">Sie verwalten offenbar bereits einen Nutzer mit diesem Namen. Möchten Sie <ph name="BEGIN_LINK" /><ph name="PROFILE_NAME" /> auf dieses Gerät importieren<ph name="END_LINK" />?</translation> <translation id="7175037578838465313"><ph name="NAME" /> konfigurieren</translation> <translation id="7175353351958621980">Geladen von:</translation> <translation id="7180611975245234373">Aktualisieren</translation> @@ -4175,7 +4144,6 @@ <translation id="7444726222535375658">Weiter zu Hangouts Meet</translation> <translation id="7444983668544353857"><ph name="NETWORKDEVICE" /> deaktivieren</translation> <translation id="7445682342344043969">Pop-ups blockiert</translation> -<translation id="744859430125590922">Von dieser Person besuchte Websites über <ph name="CUSTODIAN_EMAIL" /> einsehen</translation> <translation id="7453008956351770337">Durch die Auswahl dieses Druckers berechtigen Sie die folgende Erweiterung, auf Ihren Drucker zuzugreifen:</translation> <translation id="7453467225369441013">Sie werden von den meisten Websites, aber nicht aus Ihrem Google-Konto abgemeldet.</translation> <translation id="7456142309650173560">Dev</translation> @@ -4349,7 +4317,6 @@ <translation id="7717845620320228976">Nach Updates suchen</translation> <translation id="7719367874908701697">Seitenzoom</translation> <translation id="771953673318695590">QA</translation> -<translation id="7720375555307821262">Zum Überwachen dieses Nutzers <ph name="BEGIN_LINK" />melden Sie sich bei Chrome an<ph name="END_LINK" />.</translation> <translation id="7721179060400456005">Fenster können sich über mehrere Bildschirme erstrecken</translation> <translation id="7722040605881499779">Für Update benötigt: <ph name="NECESSARY_SPACE" /></translation> <translation id="7724603315864178912">Ausschneiden</translation> @@ -4360,7 +4327,7 @@ <translation id="773426152488311044">Sie sind momentan der einzige <ph name="PRODUCT_NAME" />-Nutzer.</translation> <translation id="7740996059027112821">Standard</translation> <translation id="7748528009589593815">Vorheriger Tab</translation> -<translation id="7748626145866214022">Weitere Optionen auf der Aktionsleiste. Drücken Sie Alt + A, um den Fokus auf die Aktionsleiste zu legen.</translation> +<translation id="7748626145866214022">Auf der Aktionsleiste sind weitere Optionen verfügbar. Drücken Sie Alt + A, um den Fokus auf die Aktionsleiste zu setzen.</translation> <translation id="7751260505918304024">Alle anzeigen</translation> <translation id="7754704193130578113">Vor dem Download von Dateien nach dem Speicherort fragen</translation> <translation id="7758450972308449809">Bildschirmbegrenzungen anpassen</translation> @@ -5205,7 +5172,6 @@ <translation id="9024331582947483881">Vollbild</translation> <translation id="9025098623496448965">OK, zurück zur Anmeldeseite</translation> <translation id="9026731007018893674">Download</translation> -<translation id="9027146684281895941">Überwachen Sie diesen Nutzer, um von ihm besuchte Websites über Ihr Google-Konto zu verwalten und einzusehen.</translation> <translation id="9027459031423301635">Link in neuem Tab öffnen</translation> <translation id="9027603907212475920">Synchronisierung einrichten...</translation> <translation id="9030515284705930323">Ihre Organisation hat den Google Play Store für Ihr Konto nicht aktiviert. Weitere Informationen erhalten Sie von Ihrem Administrator.</translation> @@ -5366,7 +5332,6 @@ <translation id="98515147261107953">Querformat</translation> <translation id="987897973846887088">Keine Bilder verfügbar</translation> <translation id="988978206646512040">Eine leere Passphrase ist nicht zulässig</translation> -<translation id="990310048453480215">Linux-Apps entfernen</translation> <translation id="992032470292211616">Erweiterungen, Apps und Designs können Schäden auf Ihrem Gerät verursachen. Möchten Sie wirklich fortfahren?</translation> <translation id="992592832486024913">ChromeVox deaktivieren (gesprochenes Feedback)</translation> <translation id="994289308992179865">Sch&leife</translation>
diff --git a/chrome/app/resources/generated_resources_el.xtb b/chrome/app/resources/generated_resources_el.xtb index 99088574..2ca8bb1 100644 --- a/chrome/app/resources/generated_resources_el.xtb +++ b/chrome/app/resources/generated_resources_el.xtb
@@ -42,7 +42,6 @@ <translation id="1056898198331236512">Προειδοποίηση</translation> <translation id="1058262162121953039">Κωδικός PUK</translation> <translation id="1062407476771304334">Αντικατάσταση</translation> -<translation id="1062866675591297858">Διαχειριστείτε τους εποπτευόμενους χρήστες σας μέσω του <ph name="BEGIN_LINK" />Πίνακα ελέγχου εποπτευόμενων χρηστών<ph name="END_LINK" />.</translation> <translation id="1064835277883315402">Συνδεθείτε σε ιδιωτικό δίκτυο</translation> <translation id="1064912851688322329">Αποσύνδεση του Λογαριασμού σας Google</translation> <translation id="1067048845568873861">Δημιουργήθηκε</translation> @@ -65,7 +64,6 @@ <translation id="1091767800771861448">Πατήστε ESCAPE για παράλειψη (Μόνο για ανεπίσημες εκδόσεις).</translation> <translation id="1093457606523402488">Ορατά δίκτυα:</translation> <translation id="1094607894174825014">Η λειτουργία ανάγνωσης ή γραφής ζητήθηκε με μη έγκυρη μετατόπιση στη συσκευή: "<ph name="DEVICE_NAME" />".</translation> -<translation id="1097507499312291972"><ph name="BEGIN_SIGN_IN_LINK" />Συνδεθείτε<ph name="END_SIGN_IN_LINK" /> για να ελέγξετε και να δείτε τους ιστότοπους που επισκέπτεται αυτό το άτομο.</translation> <translation id="109758035718544977">Κατάργηση σίγασης ιστοτόπων</translation> <translation id="1097658378307015415">Προτού συνδεθείτε, πραγματοποιήστε είσοδο ως επισκέπτης για να ενεργοποιηθεί το δίκτυο <ph name="NETWORK_ID" /></translation> <translation id="1103523840287552314">Να μεταφράζονται πάντα τα <ph name="LANGUAGE" /></translation> @@ -244,7 +242,6 @@ <translation id="1361655923249334273">Δεν χρησιμοποιείται</translation> <translation id="1363028406613469049">Κομμάτι</translation> <translation id="1367951781824006909">Επιλογή αρχείου</translation> -<translation id="136802136832547685">Δεν υπάρχουν εποπτευόμενοι χρήστες για προσθήκη σε αυτήν τη συσκευή.</translation> <translation id="1368265273904755308">Αναφορά προβλήματος</translation> <translation id="1370646789215800222">Κατάργηση ατόμου;</translation> <translation id="1372681413396468867">{NUM_ITEMS,plural, =1{1 στοιχείο για κατάργηση}other{# στοιχεία για κατάργηση}}</translation> @@ -473,7 +470,6 @@ <translation id="1692799361700686467">Επιτρέπονται τα cookie από πολλούς ιστότοπους</translation> <translation id="169515659049020177">Shift</translation> <translation id="1698122934742150150">Μόνο για την τρέχουσα περίοδο λειτουργίας σε κατάσταση ανώνυμης περιήγησης</translation> -<translation id="1700199471143028312">Ο διαχειριστής σας δεν σας επιτρέπει να δημιουργήσετε εποπτευόμενους χρήστες.</translation> <translation id="1701062906490865540">Κατάργηση αυτού του ατόμου</translation> <translation id="1706586824377653884">Προστέθηκε από τον διαχειριστή σας</translation> <translation id="1706625117072057435">Επίπεδα εστίασης</translation> @@ -1042,7 +1038,6 @@ <translation id="2604255671529671813">Σφάλμα σύνδεσης δικτύου</translation> <translation id="2606246518223360146">Σύνδεση δεδομένων</translation> <translation id="2607101320794533334">Πληροφορίες δημόσιου κλειδιού υποκειμένου</translation> -<translation id="2607459012323956820">Οι ρυθμίσεις και το ιστορικό περιήγησης του εποπτευόμενου χρήστη ενδέχεται να εξακολουθήσουν να είναι ορατά στο διαχειριστή στη διεύθυνση <ph name="BEGIN_LINK" /><ph name="DISPLAY_LINK" /><ph name="END_LINK" />.</translation> <translation id="2608770217409477136">Χρήση προεπιλεγμένων ρυθμίσεων</translation> <translation id="2609896558069604090">Δημιουργία συντομεύσεων…</translation> <translation id="2610157865375787051">Αδράνεια</translation> @@ -1285,7 +1280,6 @@ <translation id="2951247061394563839">Κέντρο παραθύρου</translation> <translation id="2956763290572484660"><ph name="COOKIES" /> cookie</translation> <translation id="2958721676848865875">Προειδοποίηση στοίβαξης επέκτασης</translation> -<translation id="2961043351165706615">Οι εφαρμογές Linux που έχετε εγκαταστήσει θα διαγραφούν από αυτό το Chromebook.</translation> <translation id="2961090598421146107"><ph name="CERTIFICATE_NAME" /> (παρέχεται επέκταση)</translation> <translation id="2961695502793809356">Κάντε κλικ για να πάτε μπροστά, κρατήστε το κουμπί πατημένο για να δείτε το ιστορικό</translation> <translation id="2963151496262057773">Η ακόλουθη προσθήκη δεν ανταποκρίνεται: <ph name="PLUGIN_NAME" />Θέλετε να την τερματίσετε;</translation> @@ -1337,15 +1331,6 @@ <translation id="3022978424994383087">Δεν έγινε κατανοητό.</translation> <translation id="3024374909719388945">Χρήση ρολογιού 24 ωρών</translation> <translation id="302781076327338683">Επανάληψη φόρτωσης με παράκαμψη της κρυφής μνήμης</translation> -<translation id="3030243755303701754">Οι εποπτευόμενοι χρήστες μπορούν να εξερευνήσουν το διαδίκτυο με την καθοδήγησή σας. Ως διαχειριστής ενός εποπτευόμενου χρήστη στο Chrome, μπορείτε: - - • να επιτρέψετε ή να αποκλείσετε ορισμένους ιστότοπους, - • να ελέγξετε τους ιστότοπους που επισκέφτηκε ο εποπτευόμενος χρήστης και - • να διαχειριστείτε άλλες ρυθμίσεις. - -Με τη δημιουργία ενός εποπτευόμενου χρήστη, δεν δημιουργείται ένας Λογαριασμός Google, ενώ οι σελιδοδείκτες, το ιστορικό περιήγησης και οι άλλες προτιμήσεις του θα τον ακολουθούν σε άλλες συσκευές με το Συγχρονισμό Chrome. Αφού δημιουργήσετε έναν εποπτευόμενο χρήστη, μπορείτε να διαχειριστείτε τις ρυθμίσεις του ανά πάσα στιγμή, από οποιαδήποτε συσκευή, στη διεύθυνση <ph name="BEGIN_MANAGE_LINK" /><ph name="DISPLAY_LINK" /><ph name="END_MANAGE_LINK" />. - -Για περισσότερες πληροφορίες, επισκεφτείτε το <ph name="BEGIN_LINK" />Κέντρο βοήθειας<ph name="END_LINK" />.</translation> <translation id="3031417829280473749">Πράκτορας X</translation> <translation id="3031557471081358569">Επιλογή στοιχείων για εισαγωγή:</translation> <translation id="3031601332414921114">Συνέχιση εκτύπωσης</translation> @@ -1386,7 +1371,6 @@ <translation id="3085412380278336437">Ο ιστότοπος μπορεί να χρησιμοποιήσει την κάμερά σας</translation> <translation id="3085752524577180175">Κεντρικός υπολογιστής SOCKS</translation> <translation id="3088325635286126843">&Μετονομασία...</translation> -<translation id="3089231390674410424">Φαίνεται πως υπάρχει πρόβλημα με τα διαπιστευτήριά σας. Βεβαιωθείτε ότι έχετε συνδεθεί σωστά και δοκιμάστε ξανά.</translation> <translation id="3090193911106258841">Πρόσβαση στην είσοδο ήχου και βίντεο</translation> <translation id="3090819949319990166">Δεν είναι δυνατή η αντιγραφή του εξωτερικού αρχείου crx στο <ph name="TEMP_CRX_FILE" />.</translation> <translation id="3090871774332213558">Έγινε σύζευξη της συσκευής "<ph name="DEVICE_NAME" />"</translation> @@ -1401,7 +1385,6 @@ <translation id="3121793941267913344">Επαναφορά αυτής της συσκευής <ph name="IDS_SHORT_PRODUCT_NAME" /></translation> <translation id="3122464029669770682">Κεντρική μονάδα επεξεργασίας</translation> <translation id="3122496702278727796">Η δημιουργία καταλόγου δεδομένων απέτυχε</translation> -<translation id="3123569374670379335">(Εποπτευόμενο)</translation> <translation id="3124111068741548686">Χειρισμοί ΧΡΗΣΤΗ</translation> <translation id="3126026824346185272">Ctrl</translation> <translation id="3127156390846601284">Με αυτόν τον τρόπο, θα διαγραφούν όλα τα δεδομένα που έχουν αποθηκευτεί στη συσκευή σας για όλους τους εμφανιζόμενους ιστότοπους. Θέλετε να συνεχίσετε;</translation> @@ -1436,8 +1419,6 @@ <translation id="3160842278951476457"><ph name="ISSUED_BY" /> [<ph name="ISSUED_TO" />] (βασιζόμενο σε υλικό)</translation> <translation id="316125635462764134">Κατάργηση εφαρμογής</translation> <translation id="3161522574479303604">Όλες οι γλώσσες</translation> -<translation id="316307797510303346">'Ελεγχος και προβολή των ιστοτόπων που αυτό το άτομο επισκέπτεται από το <ph name="CUSTODIAN_EMAIL" />. - Οι λεπτομέρειες σύνδεσης του λογαριασμού σας δεν είναι ενημερωμένες.</translation> <translation id="3165390001037658081">Ορισμένες εταιρείες κινητής τηλεφωνίας ενδέχεται να αποκλείσουν αυτήν τη λειτουργία.</translation> <translation id="316854673539778496">Για να έχετε όλες τις επεκτάσεις σας σε όλες τις συσκευές σας, συνδεθείτε και ενεργοποιήστε τον συγχρονισμό.</translation> <translation id="3170072451822350649">Μπορείτε επίσης να παραλείψετε τη σύνδεση και να <ph name="LINK_START" />πραγματοποιήσετε περιήγηση ως Επισκέπτης<ph name="LINK_END" />.</translation> @@ -1470,7 +1451,6 @@ <translation id="3229922550070982305">αναπαραγωγή / παύση</translation> <translation id="3232318083971127729">Τιμή:</translation> <translation id="3236289833370040187">Η ιδιοκτησία θα μεταφερθεί στον τομέα <ph name="DESTINATION_DOMAIN" />.</translation> -<translation id="3237784613213365159">Ο χρήστης <ph name="NEW_PROFILE_NAME" /> είναι πλέον εποπτευόμενος χρήστης</translation> <translation id="323803881985677942">Άνοιγμα επιλογών επεκτάσεων</translation> <translation id="3241680850019875542">Επιλέξτε τον κατάλογο ρίζας της επέκτασης που θέλετε να στοιβάξετε. Για να ενημερώσετε μια επέκταση, επιλέξτε επίσης το αρχείο ιδιωτικού κλειδιού που θα επαναχρησιμοποιηθεί.</translation> <translation id="3242765319725186192">Ήδη κοινόχρηστο κλειδί:</translation> @@ -1702,7 +1682,6 @@ <translation id="3584169441612580296">Ανάγνωση και αλλαγή φωτογραφιών, μουσικής και άλλων μέσων από τον υπολογιστή σας</translation> <translation id="3587482841069643663">Όλες</translation> <translation id="358796204584394954">Πληκτρολογήστε αυτόν τον κωδικό στη συσκευή "<ph name="DEVICE_NAME" />" για να κάνετε σύζευξη:</translation> -<translation id="3589532742556016615">Αυτό δεν επηρεάζει τις εφαρμογές ή το περιεχόμενο σε άλλες συσκευές.</translation> <translation id="3589766037099229847">Το μη ασφαλές περιεχόμενο αποκλείστηκε</translation> <translation id="3590194807845837023">Ξεκλείδωμα προφίλ και επανεκκίνηση</translation> <translation id="3592260987370335752">&Μάθετε περισσότερα</translation> @@ -1836,7 +1815,6 @@ <translation id="3778152852029592020">Η λήψη έχει ακυρωθεί.</translation> <translation id="3778740492972734840">&Εργαλεία για Προγραμματιστές</translation> <translation id="3778868487658107119">Κάντε του ερωτήσεις. Πείτε του να κάνει πράγματα. Είναι το προσωπικό σας Google, πάντα έτοιμο να σας βοηθήσει.</translation> -<translation id="3780663724044634171">Επιλέξτε έναν λογαριασμό για τη διαχείριση του εποπτευόμενου χρήστη.</translation> <translation id="378312418865624974">Ανάγνωση μοναδικού αναγνωριστικού για αυτόν τον υπολογιστή</translation> <translation id="3783640748446814672">alt</translation> <translation id="3785308913036335955">Εμφάνιση συντόμευσης εφαρμογών</translation> @@ -2564,7 +2542,6 @@ <translation id="4964455510556214366">Διάταξη</translation> <translation id="4964673849688379040">Γίνεται έλεγχος…</translation> <translation id="4965808351167763748">Είστε βέβαιοι ότι θέλετε να ρυθμίσετε αυτήν τη συσκευή για εκτέλεση του Hangouts Meet;</translation> -<translation id="4967749818080339523">Επιλέξτε έναν λογαριασμό</translation> <translation id="496888482094675990">Η εφαρμογή "Αρχεία" παρέχει γρήγορη πρόσβαση σε αρχεία που έχετε αποθηκεύσει στο Google Drive, σε εξωτερικό χώρο αποθήκευσης ή στη συσκευή σας Chrome OS.</translation> <translation id="4969785127455456148">Λεύκωμα</translation> <translation id="4971412780836297815">Άνοιγμα κατά την ολοκλήρωση</translation> @@ -2751,7 +2728,6 @@ Ό,τι και να συμβεί στη συσκευή σας, τα αρχεία σας αποθηκεύονται με ασφάλεια στο Google Drive.<ph name="MARKUP_6" /> <ph name="MARKUP_7" />Κοινή χρήση, δημιουργία και συνεργασία<ph name="MARKUP_8" /> σε αρχεία με άλλους χρήστες σε ένα μέρος.<ph name="MARKUP_9" /></translation> -<translation id="5262401745672360397">Μπορεί επίσης να διαγραφούν τα κοινόχρηστα αρχεία με εφαρμογές Linux.</translation> <translation id="5264148714798105376">Αυτή η διαδικασία μπορεί να διαρκέσει περίπου ένα λεπτό.</translation> <translation id="5264252276333215551">Για να ξεκινήσετε την εφαρμογή στη λειτουργία kiosk, συνδεθείτε στο διαδίκτυο.</translation> <translation id="5265562206369321422">Εκτός σύνδεσης για περισσότερο από μία εβδομάδα</translation> @@ -3404,7 +3380,6 @@ <translation id="6241530762627360640">Πρόσβαση σε πληροφορίες σχετικά με τις συσκευές Bluetooth που βρίσκονται σε ζεύξη με το σύστημά σας και εντοπισμός κοντινών συσκευών Bluetooth.</translation> <translation id="6243280677745499710">Έχει οριστεί</translation> <translation id="6243774244933267674">Ο διακομιστής δεν είναι διαθέσιμος</translation> -<translation id="6246413617632217567">Δεν ήταν δυνατή η εισαγωγή του εποπτευόμενου χρήστη. Ελέγξτε τον ελεύθερο χώρο στον σκληρό δίσκο και τα δικαιώματά σας και προσπαθήστε ξανά.</translation> <translation id="6247708409970142803"><ph name="PERCENTAGE" />%</translation> <translation id="6247802389331535091">Σύστημα: <ph name="ARC_PROCESS_NAME" /></translation> <translation id="624789221780392884">Έτοιμη ενημέρωση</translation> @@ -3603,7 +3578,6 @@ <translation id="654039047105555694"><ph name="BEGIN_BOLD" />Σημείωση:<ph name="END_BOLD" /> Ενεργοποιήστε το μόνο εάν γνωρίζετε τι κάνετε ή εάν σας έχει ζητηθεί, καθώς η συλλογή των δεδομένων ενδέχεται να μειώσει την απόδοση.</translation> <translation id="654233263479157500">Χρησιμοποιήστε μια υπηρεσία ιστού για βοήθεια στην επίλυση σφαλμάτων πλοήγησης</translation> <translation id="6544215763872433504">Το πρόγραμμα περιήγησης από την Google, για εσάς</translation> -<translation id="6545325945815270297">Διαχειριστείτε τα συγχρονισμένα δεδομένα και τις συσκευές σας στον <ph name="BEGIN_LINK" />Πίνακα ελέγχου Chrome<ph name="END_LINK" />.</translation> <translation id="6545665334409411530">Ρυθμός επανάληψης</translation> <translation id="6545834809683560467">Χρησιμοποιήστε την υπηρεσία προβλέψεων για να συμπληρώσετε τις αναζητήσεις και τις διευθύνσεις URL που πληκτρολογείτε στη γραμμή διευθύνσεων ή το πλαίσιο αναζήτησης της Εφαρμογής εκκίνησης.</translation> <translation id="6546686722964485737">Συμμετοχή στο δίκτυο Wimax</translation> @@ -3618,7 +3592,6 @@ <translation id="6555810572223193255">Το Εργαλείο καθαρισμού δεν είναι διαθέσιμο αυτήν τη στιγμή</translation> <translation id="6556866813142980365">Επανάληψη ενέργειας</translation> <translation id="6558280019477628686">Παρουσιάστηκε σφάλμα. Ορισμένα στοιχεία ενδέχεται να μην έχουν διαγραφεί.</translation> -<translation id="6559580823502247193">(υπάρχει ήδη στη συσκευή)</translation> <translation id="6561726789132298588">enter</translation> <translation id="656293578423618167">Η διαδρομή ή το όνομα είναι πάρα πολύ μεγάλο. Αποθηκεύστε το με μικρότερο όνομα ή σε κάποια άλλη τοποθεσία.</translation> <translation id="656398493051028875">Διαγραφή αρχείου "<ph name="FILENAME" />"…</translation> @@ -3815,7 +3788,6 @@ <translation id="6862635236584086457">Για όλα τα αρχεία που αποθηκεύονται σε αυτόν το φάκελο δημιουργούνται αυτόματα αντίγραφα ασφαλείας στο διαδίκτυο</translation> <translation id="6865313869410766144">Δεδομένα φόρμας αυτόματης συμπλήρωσης</translation> <translation id="686664946474413495">Θερμοκρασία χρώματος</translation> -<translation id="6867678160199975333">Εναλλαγή στο χρήστη <ph name="NEW_PROFILE_NAME" /></translation> <translation id="6870888490422746447">Επιλέξτε μια εφαρμογή για κοινοποίηση:</translation> <translation id="6871644448911473373">Απόκριση OCSP: <ph name="LOCATION" /></translation> <translation id="6872781471649843364">Ο κωδικός πρόσβασης που εισαγάγατε απορρίφθηκε από τον διακομιστή.</translation> @@ -3909,7 +3881,6 @@ <translation id="7018275672629230621">Ανάγνωση και αλλαγή του ιστορικού περιήγησης</translation> <translation id="7019805045859631636">Γρήγορα</translation> <translation id="7022562585984256452">Η αρχική σελίδα σας έχει οριστεί.</translation> -<translation id="7025036625303002400">Φαίνεται πως υπάρχει ήδη εποπτευόμενος χρήστης με αυτό το όνομα.</translation> <translation id="7025190659207909717">Διαχείριση υπηρεσιών δεδομένων κινητής συσκευής</translation> <translation id="7025325401470358758">Επόμενο παράθυρο</translation> <translation id="7027125358315426638">Όνομα βάσης δεδομένων:</translation> @@ -3958,7 +3929,6 @@ <translation id="7092106376816104">Εξαιρέσεις αναδυόμενων παραθύρων</translation> <translation id="7093434536568905704">GTK+</translation> <translation id="7093866338626856921">Ανταλλαγή δεδομένων με συσκευές με την ονομασία: <ph name="HOSTNAMES" /></translation> -<translation id="7096108453481049031">Δεν ήταν δυνατή η εισαγωγή του εποπτευόμενου χρήστη. Ελέγξτε τη σύνδεση δικτύου σας και δοκιμάστε ξανά αργότερα.</translation> <translation id="7096406577040705016">Εναλλαγή μεγεθυντικού φακού πλήρους οθόνης</translation> <translation id="7098447629416471489">Οι άλλες αποθηκευμένες μηχανές αναζήτησης θα εμφανίζονται εδώ.</translation> <translation id="7099337801055912064">Δεν είναι δυνατή η φόρτωση μεγάλου PPD. Το μέγιστο μέγεθος είναι 250 KB.</translation> @@ -4006,7 +3976,6 @@ <translation id="7168109975831002660">Ελάχιστο μέγεθος γραμματοσειράς</translation> <translation id="7170041865419449892">Εκτός εύρους τιμών</translation> <translation id="7171559745792467651">Εγκατάσταση εφαρμογών από τις άλλες συσκευές σας</translation> -<translation id="7173917244679555">Φαίνεται ότι διαχειρίζεστε ήδη έναν χρήστη με αυτό το όνομα. Θέλετε να γίνει <ph name="BEGIN_LINK" />εισαγωγή του <ph name="PROFILE_NAME" /><ph name="END_LINK" /> σε αυτήν τη συσκευή;</translation> <translation id="7175037578838465313">Διαμόρφωση <ph name="NAME" /></translation> <translation id="7175353351958621980">Έγινε φόρτωση από:</translation> <translation id="7180611975245234373">Ανανέωση</translation> @@ -4178,7 +4147,6 @@ <translation id="7444726222535375658">Συνέχεια στο Hangouts Meet</translation> <translation id="7444983668544353857">Απενεργοποίηση <ph name="NETWORKDEVICE" /></translation> <translation id="7445682342344043969">Αποκλεισμός αναδυόμενων παραθύρων</translation> -<translation id="744859430125590922">Έλεγχος και προβολή των ιστοτόπων που αυτό το άτομο επισκέπτεται από <ph name="CUSTODIAN_EMAIL" />.</translation> <translation id="7453008956351770337">Με την επιλογή αυτού του εκτυπωτή, δίνετε στην παρακάτω επέκταση άδεια πρόσβασης στον εκτυπωτή σας:</translation> <translation id="7453467225369441013">Θα αποσυνδεθείτε από τους περισσότερους ιστοτόπους. Δεν θα αποσυνδεθείτε από τον Λογαριασμό σας Google.</translation> <translation id="7456142309650173560">προγραμματιστές</translation> @@ -4352,7 +4320,6 @@ <translation id="7717845620320228976">Έλεγχος για ενημερώσεις</translation> <translation id="7719367874908701697">Εστίαση σελίδας</translation> <translation id="771953673318695590">Εγγύηση Ποιότητας</translation> -<translation id="7720375555307821262">Για να επιβλέπετε αυτό το άτομο, <ph name="BEGIN_LINK" />συνδεθείτε στο Chrome<ph name="END_LINK" />.</translation> <translation id="7721179060400456005">Να επιτρέπεται να εκτείνονται τα παράθυρα σε οθόνες</translation> <translation id="7722040605881499779">Απαιτείται για την ενημέρωση: <ph name="NECESSARY_SPACE" /></translation> <translation id="7724603315864178912">Αποκοπή</translation> @@ -5205,7 +5172,6 @@ <translation id="9024331582947483881">πλήρης οθόνη</translation> <translation id="9025098623496448965">Εντάξει, θέλω να επιστρέψω στην οθόνη σύνδεσης</translation> <translation id="9026731007018893674">αρχείο λήψης</translation> -<translation id="9027146684281895941">Επιβλέψτε αυτό το άτομο για να ελέγξετε και να προβάλετε τους ιστότοπους που επισκέπτεται από το Λογαριασμό σας Google.</translation> <translation id="9027459031423301635">Άνοιγμα Συνδέσμου σε Νέα Καρτέ&λα</translation> <translation id="9027603907212475920">Ρύθμιση συγχρονισμού...</translation> <translation id="9030515284705930323">Ο οργανισμός σας δεν έχει ενεργοποιήσει το Google Play Store για τον λογαριασμό σας. Για περισσότερες πληροφορίες, επικοινωνήστε με τον διαχειριστή σας.</translation> @@ -5365,7 +5331,6 @@ <translation id="98515147261107953">Οριζόντια</translation> <translation id="987897973846887088">Δεν υπάρχουν διαθέσιμες εικόνες</translation> <translation id="988978206646512040">Δεν επιτρέπεται να είναι κενή η φράση πρόσβασης</translation> -<translation id="990310048453480215">Κατάργηση εφαρμογών Linux</translation> <translation id="992032470292211616">Οι επεκτάσεις, οι εφαρμογές και τα θέματα ενδέχεται να βλάψουν τη συσκευή σας. Είστε βέβαιοι ότι θέλετε να συνεχίσετε;</translation> <translation id="992592832486024913">Απενεργοποίηση ChromeVox (προφορικά σχόλια)</translation> <translation id="994289308992179865">&Επανάληψη</translation>
diff --git a/chrome/app/resources/generated_resources_en-GB.xtb b/chrome/app/resources/generated_resources_en-GB.xtb index 3b83f34..0cd1db1 100644 --- a/chrome/app/resources/generated_resources_en-GB.xtb +++ b/chrome/app/resources/generated_resources_en-GB.xtb
@@ -42,7 +42,6 @@ <translation id="1056898198331236512">Warning</translation> <translation id="1058262162121953039">PUK</translation> <translation id="1062407476771304334">Replace</translation> -<translation id="1062866675591297858">Manage your supervised users via the <ph name="BEGIN_LINK" />Supervised Users Dashboard<ph name="END_LINK" />.</translation> <translation id="1064835277883315402">Join private network</translation> <translation id="1064912851688322329">Disconnect your Google Account</translation> <translation id="1067048845568873861">Created</translation> @@ -65,7 +64,6 @@ <translation id="1091767800771861448">Press ESCAPE to skip (Non-official builds only).</translation> <translation id="1093457606523402488">Visible Networks:</translation> <translation id="1094607894174825014">Read or write operation was requested with an invalid offset on: "<ph name="DEVICE_NAME" />".</translation> -<translation id="1097507499312291972"><ph name="BEGIN_SIGN_IN_LINK" />Sign in<ph name="END_SIGN_IN_LINK" /> to control and view the websites that this person visits.</translation> <translation id="109758035718544977">Unmute Sites</translation> <translation id="1097658378307015415">Before signing in, please enter as Guest to activate the network <ph name="NETWORK_ID" /></translation> <translation id="1103523840287552314">Always translate <ph name="LANGUAGE" /></translation> @@ -244,7 +242,6 @@ <translation id="1361655923249334273">Unused</translation> <translation id="1363028406613469049">Track</translation> <translation id="1367951781824006909">Choose a file</translation> -<translation id="136802136832547685">There are no supervised users to add to this device.</translation> <translation id="1368265273904755308">Report issue</translation> <translation id="1370646789215800222">Remove person?</translation> <translation id="1372681413396468867">{NUM_ITEMS,plural, =1{One item to be removed}other{# items to be removed}}</translation> @@ -473,7 +470,6 @@ <translation id="1692799361700686467">Cookies from multiple sites allowed.</translation> <translation id="169515659049020177">Shift</translation> <translation id="1698122934742150150">Current incognito session only</translation> -<translation id="1700199471143028312">Your administrator doesn’t allow you to create supervised users.</translation> <translation id="1701062906490865540">Remove this person</translation> <translation id="1706586824377653884">Added by your administrator</translation> <translation id="1706625117072057435">Zoom levels</translation> @@ -1041,7 +1037,6 @@ <translation id="2604255671529671813">Network connection error</translation> <translation id="2606246518223360146">Link Data</translation> <translation id="2607101320794533334">Subject Public Key Info</translation> -<translation id="2607459012323956820">Settings and browsing history for this supervised user may still be visible by the manager at <ph name="BEGIN_LINK" /><ph name="DISPLAY_LINK" /><ph name="END_LINK" />.</translation> <translation id="2608770217409477136">Use default settings</translation> <translation id="2609896558069604090">Create Shortcuts...</translation> <translation id="2610157865375787051">Sleep</translation> @@ -1284,7 +1279,6 @@ <translation id="2951247061394563839">Centre window</translation> <translation id="2956763290572484660"><ph name="COOKIES" /> cookies</translation> <translation id="2958721676848865875">Pack extension warning</translation> -<translation id="2961043351165706615">Linux apps that you've installed will be deleted from this Chromebook.</translation> <translation id="2961090598421146107"><ph name="CERTIFICATE_NAME" /> (extension provided)</translation> <translation id="2961695502793809356">Click to go forward, hold to see history</translation> <translation id="2963151496262057773">The following plug-in is unresponsive: <ph name="PLUGIN_NAME" />Would you like to stop it?</translation> @@ -1336,15 +1330,6 @@ <translation id="3022978424994383087">Didn't get that.</translation> <translation id="3024374909719388945">Use 24-hour clock</translation> <translation id="302781076327338683">Reload bypassing cache</translation> -<translation id="3030243755303701754">A supervised user can explore the web with your guidance. As the manager of a supervised user in Chrome, you can: - - • allow or prohibit certain websites, - • review websites the supervised user has visited, and - • manage other settings. - -Creating a supervised user does not create a Google account, and their bookmarks, browsing history and other preferences will not follow them to other devices with Chrome Sync. After you create a new supervised user, you can manage their settings at any time, from any device, at <ph name="BEGIN_MANAGE_LINK" /><ph name="DISPLAY_LINK" /><ph name="END_MANAGE_LINK" />. - -For more information, visit our <ph name="BEGIN_LINK" />Help Centre<ph name="END_LINK" />.</translation> <translation id="3031417829280473749">Agent X</translation> <translation id="3031557471081358569">Select items to be imported:</translation> <translation id="3031601332414921114">Resume printing</translation> @@ -1385,7 +1370,6 @@ <translation id="3085412380278336437">Site can use your camera</translation> <translation id="3085752524577180175">SOCKS Host</translation> <translation id="3088325635286126843">&Rename...</translation> -<translation id="3089231390674410424">Looks like there's a problem with your credentials. Please make sure that you're signed in properly and try again.</translation> <translation id="3090193911106258841">Accessing audio and video input</translation> <translation id="3090819949319990166">Can't copy external crx file to <ph name="TEMP_CRX_FILE" />.</translation> <translation id="3090871774332213558">"<ph name="DEVICE_NAME" />" paired</translation> @@ -1400,7 +1384,6 @@ <translation id="3121793941267913344">Reset this <ph name="IDS_SHORT_PRODUCT_NAME" /> device</translation> <translation id="3122464029669770682">CPU</translation> <translation id="3122496702278727796">Failed To Create Data Directory</translation> -<translation id="3123569374670379335">(Supervised)</translation> <translation id="3124111068741548686">USER handles</translation> <translation id="3126026824346185272">Ctrl</translation> <translation id="3127156390846601284">This will delete any data stored on your device for all the sites shown. Do you want to continue?</translation> @@ -1435,8 +1418,6 @@ <translation id="3160842278951476457"><ph name="ISSUED_BY" /> [<ph name="ISSUED_TO" />] (hardware-backed)</translation> <translation id="316125635462764134">Remove app</translation> <translation id="3161522574479303604">All languages</translation> -<translation id="316307797510303346">Control and view the websites which this person visits from <ph name="CUSTODIAN_EMAIL" />. - Your account sign-in details are out of date.</translation> <translation id="3165390001037658081">Some operators might block this feature.</translation> <translation id="316854673539778496">To get all your extensions on all your devices, sign in and turn on sync.</translation> <translation id="3170072451822350649">You may also skip signing in and <ph name="LINK_START" />browse as Guest<ph name="LINK_END" />.</translation> @@ -1469,7 +1450,6 @@ <translation id="3229922550070982305">play / pause</translation> <translation id="3232318083971127729">Value:</translation> <translation id="3236289833370040187">Ownership will be transferred to <ph name="DESTINATION_DOMAIN" />.</translation> -<translation id="3237784613213365159"><ph name="NEW_PROFILE_NAME" /> is now a supervised user</translation> <translation id="323803881985677942">Open extension options</translation> <translation id="3241680850019875542">Select the root directory of the extension to pack. To update an extension, also select the private key file to reuse.</translation> <translation id="3242765319725186192">Preshared key:</translation> @@ -1701,7 +1681,6 @@ <translation id="3584169441612580296">Read and change photos, music and other media from your computer</translation> <translation id="3587482841069643663">All</translation> <translation id="358796204584394954">Type this code on "<ph name="DEVICE_NAME" />" to pair:</translation> -<translation id="3589532742556016615">This doesn't affect apps or content on other devices.</translation> <translation id="3589766037099229847">Insecure content blocked</translation> <translation id="3590194807845837023">Unlock Profile and Relaunch</translation> <translation id="3592260987370335752">&Learn more</translation> @@ -1835,7 +1814,6 @@ <translation id="3778152852029592020">Download was cancelled.</translation> <translation id="3778740492972734840">&Developer tools</translation> <translation id="3778868487658107119">Ask it questions. Tell it to do things. It's your personal Google, always ready to help.</translation> -<translation id="3780663724044634171">Select an account to manage the supervised user.</translation> <translation id="378312418865624974">Read a unique identifier for this computer</translation> <translation id="3783640748446814672">alt</translation> <translation id="3785308913036335955">Show Apps Shortcut</translation> @@ -2563,7 +2541,6 @@ <translation id="4964455510556214366">Arrangement</translation> <translation id="4964673849688379040">Checking...</translation> <translation id="4965808351167763748">Are you sure that you want to set up this device to run Hangouts Meet?</translation> -<translation id="4967749818080339523">Select an account</translation> <translation id="496888482094675990">The Files app provides quick access to files that you've saved on Google Drive, external storage or your Chrome OS device.</translation> <translation id="4969785127455456148">Album</translation> <translation id="4971412780836297815">Open when done</translation> @@ -2750,7 +2727,6 @@ No matter what happens to your device, your files are safely stored in Google Drive.<ph name="MARKUP_6" /> <ph name="MARKUP_7" />Share, create and collaborate<ph name="MARKUP_8" /> on files with others all in one place.<ph name="MARKUP_9" /></translation> -<translation id="5262401745672360397">Files shared with Linux apps may also be deleted.</translation> <translation id="5264148714798105376">This may take a minute or so.</translation> <translation id="5264252276333215551">Please connect to the Internet to launch your app in kiosk mode.</translation> <translation id="5265562206369321422">Offline for more than a week</translation> @@ -3402,7 +3378,6 @@ <translation id="6241530762627360640">Access information about Bluetooth devices paired with your system and discover nearby Bluetooth devices.</translation> <translation id="6243280677745499710">Currently set</translation> <translation id="6243774244933267674">Server unavailable</translation> -<translation id="6246413617632217567">The supervised user couldn't be imported. Please check your hard drive space and permissions and try again.</translation> <translation id="6247708409970142803"><ph name="PERCENTAGE" />%</translation> <translation id="6247802389331535091">System: <ph name="ARC_PROCESS_NAME" /></translation> <translation id="624789221780392884">Update ready</translation> @@ -3601,7 +3576,6 @@ <translation id="654039047105555694"><ph name="BEGIN_BOLD" />Note:<ph name="END_BOLD" /> Only enable if you know what you are doing or if you have been asked to do so, as collection of data may reduce performance.</translation> <translation id="654233263479157500">Use a web service to help resolve navigation errors</translation> <translation id="6544215763872433504">The web browser by Google, for you</translation> -<translation id="6545325945815270297">Manage your synced data and devices on <ph name="BEGIN_LINK" />Chrome Dashboard<ph name="END_LINK" />.</translation> <translation id="6545665334409411530">Repeat rate</translation> <translation id="6545834809683560467">Use a prediction service to help complete searches and URLs typed in the address bar or the app launcher search box</translation> <translation id="6546686722964485737">Join WiMAX network</translation> @@ -3616,7 +3590,6 @@ <translation id="6555810572223193255">Cleanup is currently unavailable</translation> <translation id="6556866813142980365">Redo</translation> <translation id="6558280019477628686">An error occurred. Some items may not have been deleted.</translation> -<translation id="6559580823502247193">(already on this device)</translation> <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="656398493051028875">Deleting "<ph name="FILENAME" />"...</translation> @@ -3813,7 +3786,6 @@ <translation id="6862635236584086457">All files saved in this folder are backed up online automatically</translation> <translation id="6865313869410766144">Autofill form data</translation> <translation id="686664946474413495">Colour temperature</translation> -<translation id="6867678160199975333">Switch to <ph name="NEW_PROFILE_NAME" /></translation> <translation id="6870888490422746447">Choose an app to share to:</translation> <translation id="6871644448911473373">OCSP Responder: <ph name="LOCATION" /></translation> <translation id="6872781471649843364">The password that you entered was rejected by the server.</translation> @@ -3907,7 +3879,6 @@ <translation id="7018275672629230621">Read and change your browsing history</translation> <translation id="7019805045859631636">Fast</translation> <translation id="7022562585984256452">Your home page has been set.</translation> -<translation id="7025036625303002400">Looks like you already have a supervised user with this name.</translation> <translation id="7025190659207909717">Mobile data service management</translation> <translation id="7025325401470358758">Next pane</translation> <translation id="7027125358315426638">Database Name:</translation> @@ -3956,7 +3927,6 @@ <translation id="7092106376816104">Pop-up exceptions</translation> <translation id="7093434536568905704">GTK+</translation> <translation id="7093866338626856921">Exchange data with the devices named: <ph name="HOSTNAMES" /></translation> -<translation id="7096108453481049031">The supervised user couldn't be imported. Please check your network connection and try again later.</translation> <translation id="7096406577040705016">Toggle Fullscreen Magnifier</translation> <translation id="7098447629416471489">Other saved search engines will appear here</translation> <translation id="7099337801055912064">Can’t load large PPD. Maximum size is 250 KB.</translation> @@ -4004,7 +3974,6 @@ <translation id="7168109975831002660">Minimum font size</translation> <translation id="7170041865419449892">Out of range</translation> <translation id="7171559745792467651">Install apps from your other devices</translation> -<translation id="7173917244679555">Looks like you're already managing a user by that name. Did you want to <ph name="BEGIN_LINK" />import <ph name="PROFILE_NAME" /><ph name="END_LINK" /> to this device?</translation> <translation id="7175037578838465313">Configure <ph name="NAME" /></translation> <translation id="7175353351958621980">Loaded from:</translation> <translation id="7180611975245234373">Refresh</translation> @@ -4176,7 +4145,6 @@ <translation id="7444726222535375658">Continue to Hangouts Meet</translation> <translation id="7444983668544353857">Disable <ph name="NETWORKDEVICE" /></translation> <translation id="7445682342344043969">Pop-ups blocked</translation> -<translation id="744859430125590922">Control and view the websites this person visits from <ph name="CUSTODIAN_EMAIL" />.</translation> <translation id="7453008956351770337">By selecting this printer, you are giving the following extension the permission to access your printer:</translation> <translation id="7453467225369441013">Signs you out of most sites. You won't be signed out of your Google Account.</translation> <translation id="7456142309650173560">dev</translation> @@ -4350,7 +4318,6 @@ <translation id="7717845620320228976">Check for updates</translation> <translation id="7719367874908701697">Page zoom</translation> <translation id="771953673318695590">QA</translation> -<translation id="7720375555307821262">To supervise this person, <ph name="BEGIN_LINK" />sign in to Chrome<ph name="END_LINK" />.</translation> <translation id="7721179060400456005">Allow windows to span displays</translation> <translation id="7722040605881499779">Needed to update: <ph name="NECESSARY_SPACE" /></translation> <translation id="7724603315864178912">Cut</translation> @@ -5205,7 +5172,6 @@ <translation id="9024331582947483881">full screen</translation> <translation id="9025098623496448965">OK, Take me back to sign-in screen</translation> <translation id="9026731007018893674">download</translation> -<translation id="9027146684281895941">Supervise this person to control and view the websites they visit from your Google Account.</translation> <translation id="9027459031423301635">Open Link in New &Tab</translation> <translation id="9027603907212475920">Set up sync...</translation> <translation id="9030515284705930323">Your organisation has not enabled Google Play Store for your account. Contact your administrator for more information.</translation> @@ -5365,7 +5331,6 @@ <translation id="98515147261107953">Landscape</translation> <translation id="987897973846887088">No images available</translation> <translation id="988978206646512040">Empty passphrase is not allowed</translation> -<translation id="990310048453480215">Remove Linux Apps</translation> <translation id="992032470292211616">Extensions, apps and themes can harm your mobile device. Are you sure that you want to continue?</translation> <translation id="992592832486024913">Disable ChromeVox (spoken feedback)</translation> <translation id="994289308992179865">&Loop</translation>
diff --git a/chrome/app/resources/generated_resources_es-419.xtb b/chrome/app/resources/generated_resources_es-419.xtb index 77cc1f3..5accf72 100644 --- a/chrome/app/resources/generated_resources_es-419.xtb +++ b/chrome/app/resources/generated_resources_es-419.xtb
@@ -42,10 +42,11 @@ <translation id="1056898198331236512">Advertencia</translation> <translation id="1058262162121953039">PUK</translation> <translation id="1062407476771304334">Reemplazar</translation> -<translation id="1062866675591297858">Administra los usuarios supervisados mediante el <ph name="BEGIN_LINK" />panel de control de usuarios supervisados<ph name="END_LINK" />.</translation> <translation id="1064835277883315402">Conectarse a una red privada</translation> <translation id="1064912851688322329">Desconecta tu cuenta de Google.</translation> <translation id="1067048845568873861">Creada</translation> +<translation id="1067291318998134776">Linux (Beta)</translation> +<translation id="1067922213147265141">Otros servicios de Google</translation> <translation id="1070066693520972135">WEP</translation> <translation id="1070377999570795893">Otro programa en tu computadora agregó una extensión que puede cambiar el funcionamiento de Chrome. @@ -63,7 +64,6 @@ <translation id="1091767800771861448">Presiona ESCAPE para omitir (solo compilaciones no oficiales).</translation> <translation id="1093457606523402488">Redes visibles:</translation> <translation id="1094607894174825014">Se solicitó una operación de lectura o escritura con un intervalo no válido en: "<ph name="DEVICE_NAME" />".</translation> -<translation id="1097507499312291972"><ph name="BEGIN_SIGN_IN_LINK" />Accede<ph name="END_SIGN_IN_LINK" /> para controlar y ver los sitios web que visita esta persona.</translation> <translation id="109758035718544977">Activar el sonido de los sitios</translation> <translation id="1097658378307015415">Antes de acceder, ingresa como Invitado para activar la red <ph name="NETWORK_ID" />.</translation> <translation id="1103523840287552314">Siempre traducir <ph name="LANGUAGE" /></translation> @@ -184,6 +184,7 @@ <translation id="1260240842868558614">Mostrar:</translation> <translation id="126710816202626562">Idioma de traducción:</translation> <translation id="126768002343224824">16x</translation> +<translation id="1271317946095246719">Envía las búsquedas de la barra de direcciones y del cuadro de búsqueda, y algunas cookies a tu motor de búsqueda predeterminado</translation> <translation id="1272079795634619415">Interrumpir</translation> <translation id="1272978324304772054">Esta cuenta de usuario no pertenece al dominio en el que se inscribió el dispositivo. Si deseas inscribirte en un dominio diferente, primero tendrás que realizar el proceso de recuperación del dispositivo.</translation> <translation id="1274977772557788323">Configuración de almacenamiento de Adobe Flash Player</translation> @@ -241,7 +242,6 @@ <translation id="1361655923249334273">No utilizado</translation> <translation id="1363028406613469049">Seguimiento</translation> <translation id="1367951781824006909">Selecciona un archivo</translation> -<translation id="136802136832547685">No hay usuarios supervisados para agregar a este dispositivo.</translation> <translation id="1368265273904755308">Informar un problema</translation> <translation id="1370646789215800222">¿Eliminar persona?</translation> <translation id="1372681413396468867">{NUM_ITEMS,plural, =1{Se quitará 1 elemento}other{Se quitarán # elementos}}</translation> @@ -466,7 +466,6 @@ <translation id="1692799361700686467">Las cookies de múltiples sitios están permitidas.</translation> <translation id="169515659049020177">Shift</translation> <translation id="1698122934742150150">Solo para la sesión en modo incógnito actual</translation> -<translation id="1700199471143028312">Tu administrador no te permite crear usuarios supervisados.</translation> <translation id="1701062906490865540">Eliminar a esta persona</translation> <translation id="1706586824377653884">Agregado por el administrador</translation> <translation id="1706625117072057435">Niveles de zoom</translation> @@ -801,6 +800,7 @@ <translation id="2230062665678605299">No se puede crear la carpeta "<ph name="FOLDER_NAME" />". <ph name="ERROR_MESSAGE" /></translation> <translation id="223106756035922488">Haz clic para ver el doodle de hoy</translation> <translation id="2231238007119540260">Al eliminar un certificado de servidor, restableces las verificaciones de seguridad normales para ese servidor, y solicitas que utilice un certificado válido.</translation> +<translation id="2232379019872353004">Envía información del sistema y contenido de la página a Google</translation> <translation id="2232876851878324699">El archivo contenía un certificado que no fue importado:</translation> <translation id="2233502537820838181">&Más información</translation> <translation id="2238379619048995541">Datos de estado de frecuencia</translation> @@ -886,6 +886,7 @@ <translation id="2359808026110333948">Continuar</translation> <translation id="236141728043665931">Bloquear siempre el acceso al micrófono</translation> <translation id="2365507699358342471">Este sitio puede ver el texto y las imágenes que se copiaron en el portapapeles.</translation> +<translation id="2366463953911599217">ERROR: No se pudo desinstalar <ph name="APP_NAME" />.</translation> <translation id="2367199180085172140">Agregar uso compartido del archivo</translation> <translation id="2367972762794486313">Mostrar aplicaciones</translation> <translation id="2371076942591664043">Abrir al &finalizar</translation> @@ -937,6 +938,7 @@ <translation id="2462724976360937186">ID de clave de la Entidad de certificación</translation> <translation id="2462752602710430187">Se agregó <ph name="PRINTER_NAME" /></translation> <translation id="2464089476039395325">Proxy HTTP</translation> +<translation id="2468205691404969808">Usa cookies para recordar tus preferencias, incluso si no visitas esas páginas</translation> <translation id="2468902267404883140">Falló la conexión con tu teléfono. Asegúrate de que tienes un teléfono Android compatible, y que esté encendido y cerca. <a>Más información</a></translation> <translation id="2470702053775288986">Extensiones no admitidas inhabilitadas</translation> <translation id="2473195200299095979">Traducir esta página</translation> @@ -1032,7 +1034,6 @@ <translation id="2604255671529671813">Error de conexión de red</translation> <translation id="2606246518223360146">Vincular datos</translation> <translation id="2607101320794533334">Información sobre la clave pública del sujeto</translation> -<translation id="2607459012323956820">De todos modos, el administrador podrá ver la configuración y el historial de navegación del usuario supervisado en <ph name="BEGIN_LINK" /><ph name="DISPLAY_LINK" /><ph name="END_LINK" />.</translation> <translation id="2608770217409477136">Usar configuración predeterminada</translation> <translation id="2609896558069604090">Crear accesos directos...</translation> <translation id="2610157865375787051">Suspender</translation> @@ -1101,6 +1102,7 @@ <translation id="2686759344028411998">No se puede detectar ningún módulo cargado.</translation> <translation id="2688196195245426394">Se produjo un error al registrar el dispositivo en el servidor: <ph name="CLIENT_ERROR" />.</translation> <translation id="2690024944919328218">Mostrar opciones de idioma</translation> +<translation id="2690824726518456119">Se está iniciando el servicio de Concierge.</translation> <translation id="2691385045260836588">Modelo</translation> <translation id="2693176596243495071">Se produjo un error desconocido. Vuelve a intentarlo más tarde o comunícate con tu administrador si el problema persiste.</translation> <translation id="2694026874607847549">Una cookie</translation> @@ -1325,15 +1327,6 @@ <translation id="3022978424994383087">No entendí.</translation> <translation id="3024374909719388945">Utilizar reloj de 24 horas</translation> <translation id="302781076327338683">Volver a cargar sin almacenar en caché</translation> -<translation id="3030243755303701754">Un usuario supervisado puede explorar la Web con tu asesoramiento. Como administrador de un usuario supervisado en Chrome, puedes hacer lo siguiente: - - • Permitir o prohibir determinados sitios web. - • Revisar los sitios web que el usuario supervisado haya visitado. - • Administrar otras opciones de configuración. - -La creación de un usuario supervisado no implica la creación de una cuenta de Google. Además, Chrome Sync no sincronizará sus favoritos, historial de navegación ni otras preferencias en otros dispositivos. Después de que hayas creado un usuario supervisado nuevo, puedes administrar su configuración en cualquier momento, desde cualquier dispositivo, mediante <ph name="BEGIN_MANAGE_LINK" /><ph name="DISPLAY_LINK" /><ph name="END_MANAGE_LINK" />. - -Para obtener más información, visita nuestro <ph name="BEGIN_LINK" />Centro de ayuda<ph name="END_LINK" />.</translation> <translation id="3031417829280473749">Agente X</translation> <translation id="3031557471081358569">Selecciona elementos para importar:</translation> <translation id="3031601332414921114">Reanudar la impresión</translation> @@ -1374,7 +1367,6 @@ <translation id="3085412380278336437">El sitio puede usar la cámara</translation> <translation id="3085752524577180175">Host SOCKS</translation> <translation id="3088325635286126843">Cambia&r nombre...</translation> -<translation id="3089231390674410424">Parece que se produjo un error con las credenciales. Asegúrate de haber accedido de forma correcta y vuelve a intentarlo.</translation> <translation id="3090193911106258841">Accediendo a la entrada de video y de audio</translation> <translation id="3090819949319990166">No se puede copiar el archivo crx externo a <ph name="TEMP_CRX_FILE" />.</translation> <translation id="3090871774332213558">"<ph name="DEVICE_NAME" />" sincronizado</translation> @@ -1389,7 +1381,6 @@ <translation id="3121793941267913344">Restablecer este dispositivo <ph name="IDS_SHORT_PRODUCT_NAME" /></translation> <translation id="3122464029669770682">CPU</translation> <translation id="3122496702278727796">Se ha producido un error al crear el directorio de datos.</translation> -<translation id="3123569374670379335">(Supervisado)</translation> <translation id="3124111068741548686">A cargo del USUARIO</translation> <translation id="3126026824346185272">Ctrl</translation> <translation id="3127156390846601284">Se borrarán todos los datos que se almacenan en tu dispositivo y se restablecerán los permisos para todos los sitios que se mostraron. ¿Deseas continuar?</translation> @@ -1424,8 +1415,6 @@ <translation id="3160842278951476457"><ph name="ISSUED_BY" /> [<ph name="ISSUED_TO" />] (copia de seguridad en hardware)</translation> <translation id="316125635462764134">Eliminar aplicación</translation> <translation id="3161522574479303604">Todos los idiomas</translation> -<translation id="316307797510303346">Puedes controlar y ver los sitios web que esta persona visita desde <ph name="CUSTODIAN_EMAIL" />. - Tus datos de acceso a la cuenta están desactualizados.</translation> <translation id="3165390001037658081">Es posible que algunos proveedores bloqueen esta función.</translation> <translation id="316854673539778496">Para obtener todas tus extensiones en todos los dispositivos, accede a tu cuenta y activa la sincronización.</translation> <translation id="3170072451822350649">También puedes omitir el acceso y <ph name="LINK_START" />navegar como invitado<ph name="LINK_END" />.</translation> @@ -1439,6 +1428,7 @@ <translation id="3190558889382726167">Se guardó la contraseña</translation> <translation id="3192947282887913208">Archivos de audio</translation> <translation id="3194737229810486521"><ph name="URL" /> desea almacenar datos de forma permanente en el dispositivo</translation> +<translation id="3197054279257119376">Se está cargando el componente de Termina.</translation> <translation id="3199127022143353223">Servidores</translation> <translation id="3202131003361292969">Ruta</translation> <translation id="3202173864863109533">El audio de esta pestaña está silenciado.</translation> @@ -1457,7 +1447,6 @@ <translation id="3229922550070982305">reproducir/pausar</translation> <translation id="3232318083971127729">Valor:</translation> <translation id="3236289833370040187">La propiedad se transferirá al dominio <ph name="DESTINATION_DOMAIN" />.</translation> -<translation id="3237784613213365159"><ph name="NEW_PROFILE_NAME" /> ahora es un usuario supervisado</translation> <translation id="323803881985677942">Abrir opciones de extensión</translation> <translation id="3241680850019875542">Seleccionar el directorio de raíz de la extensión que debe empaquetarse. Para actualizar una extensión, también debes seleccionar el archivo de clave privada que será reutilizado.</translation> <translation id="3242765319725186192">Clave previamente compartida:</translation> @@ -1563,6 +1552,7 @@ <translation id="3405664148539009465">Personalizar fuentes</translation> <translation id="3405763860805964263">...</translation> <translation id="3406605057700382950">Mo&strar la barra de favoritos</translation> +<translation id="3407837288045706722">Para obtener más opciones de configuración relacionadas con la privacidad, la seguridad y la recopilación de datos, visita <ph name="BEGIN_LINK" />Sincronización y personalización<ph name="END_LINK" /></translation> <translation id="3412265149091626468">Saltar a selección</translation> <translation id="3413122095806433232">Emisores de certificados: <ph name="LOCATION" /></translation> <translation id="3414856743105198592">El formato de los medios extraíbles borrará todos los datos. ¿Deseas continuar?</translation> @@ -1640,6 +1630,7 @@ <translation id="3504135463003295723">Nombre del grupo:</translation> <translation id="3505030558724226696">Revocar el acceso al dispositivo</translation> <translation id="3507421388498836150">Permisos actuales para "<ph name="EXTENSION_NAME" />"</translation> +<translation id="3507547268929739059">Quitar las apps de Linux para la Chromebook</translation> <translation id="3507888235492474624">Vuelve a buscar dispositivos Bluetooth</translation> <translation id="3508920295779105875">Elegir otra carpeta...</translation> <translation id="3510797500218907545">WiMAX</translation> @@ -1820,7 +1811,6 @@ <translation id="3778152852029592020">Se canceló la descarga.</translation> <translation id="3778740492972734840">&Herramientas del desarrollador</translation> <translation id="3778868487658107119">Hazle preguntas. Encárgale tareas. Es tu versión personal de Google, está siempre lista para ayudarte.</translation> -<translation id="3780663724044634171">Selecciona una cuenta para administrar el usuario supervisado.</translation> <translation id="378312418865624974">Leer un identificador único para esta computadora</translation> <translation id="3783640748446814672">alt</translation> <translation id="3785308913036335955">Mostrar acceso directo a las aplicaciones</translation> @@ -1834,6 +1824,7 @@ <translation id="379422718204375917">Usar Smart Lock para acceder a tu cuenta</translation> <translation id="3796648294839530037">Redes favoritas:</translation> <translation id="3797900183766075808">&Buscar "<ph name="SEARCH_TERMS" />" en <ph name="SEARCH_ENGINE" /></translation> +<translation id="3798133693323981089">Autocompletar búsquedas y direcciones web</translation> <translation id="3798449238516105146">Versión</translation> <translation id="3799201711591988491">{COUNT,plural, =0{&Abrir todo}=1{&Abrir favorito}other{&Abrir todo (#)}}</translation> <translation id="3800806661949714323">Mostrar todo (recomendado)</translation> @@ -2010,6 +2001,7 @@ <translation id="4065876735068446555">Es posible que la red que estás usando (<ph name="NETWORK_ID" />) requiera que visites la página de acceso.</translation> <translation id="4068506536726151626">Esta página contiene elementos de los siguientes sitios que están rastreando tu ubicación:</translation> <translation id="4068776064906523561">Huellas digitales guardadas</translation> +<translation id="407173827865827707">Al hacer clic</translation> <translation id="4071770069230198275"><ph name="PROFILE_NAME" />: error de acceso</translation> <translation id="4074900173531346617">Enviar por correo electrónico el certificado del firmante</translation> <translation id="407520071244661467">Escala</translation> @@ -2041,6 +2033,7 @@ <translation id="4109135793348361820">Mover ventana a <ph name="USER_NAME" /> (<ph name="USER_EMAIL" />)</translation> <translation id="4110559665646603267">Centrarse en la biblioteca</translation> <translation id="4110895898888439383">Navegar en la Web en el modo de contraste alto</translation> +<translation id="4112774766611964959">Esta acción desinstalará la app de <ph name="APP_NAME" /> y quitará todos los datos y apps de Linux de tu <ph name="DEVICE_TYPE" />. ¿Estás seguro?</translation> <translation id="4114360727879906392">Ventana anterior</translation> <translation id="4115002065223188701">La red está fuera de alcance</translation> <translation id="4115080753528843955">Algunos servicios de contenido usan identificadores únicos para autorizar el acceso a contenido protegido</translation> @@ -2095,6 +2088,7 @@ <translation id="42137655013211669">El servidor prohibió el acceso a este recurso.</translation> <translation id="4215350869199060536">El nombre incluye símbolos no permitidos.</translation> <translation id="4215448920900139318">Guardando una copia de seguridad de <ph name="FILE_COUNT" /></translation> +<translation id="4225397296022057997">En todos los sitios</translation> <translation id="4235200303672858594">Toda la pantalla</translation> <translation id="4235813040357936597">Agregar cuenta para <ph name="PROFILE_NAME" /></translation> <translation id="4235965441080806197">Cancelar acceso</translation> @@ -2162,6 +2156,7 @@ <translation id="4345703751611431217">Incompatibilidad de software: más información</translation> <translation id="4348766275249686434">Recopilar errores</translation> <translation id="4350019051035968019">Este dispositivo no se puede registrar en el dominio al que pertenece tu cuenta porque ya lo administra otro dominio.</translation> +<translation id="4354266305752237763">Protégete a ti y tu dispositivo de sitios peligrosos (Navegación segura)</translation> <translation id="4356334633973342967">O especifica tu propio controlador:</translation> <translation id="4358353773267946514"><ph name="LANGUAGE_1" />, <ph name="LANGUAGE_2" /></translation> <translation id="4359408040881008151">Instalada a causa de las extensiones dependientes</translation> @@ -2170,6 +2165,7 @@ <translation id="4364567974334641491"><ph name="APP_NAME" /> comparte una ventana.</translation> <translation id="4364830672918311045">Mostrar notificaciones</translation> <translation id="4365673000813822030">¡Vaya! La sincronización ha dejado de funcionar.</translation> +<translation id="4370373819607756384">Controla esta opción de configuración en <ph name="BEGIN_LINK" />Idiomas<ph name="END_LINK" /></translation> <translation id="4370975561335139969">El correo electrónico y la contraseña que ingresaste no coinciden.</translation> <translation id="437184764829821926">Configuración de fuentes avanzadas</translation> <translation id="4372884569765913867">1 x 1</translation> @@ -2224,6 +2220,7 @@ <translation id="4462159676511157176">Servidores de nombres personalizados</translation> <translation id="4467100756425880649">Galería de Chrome Web Store</translation> <translation id="4467101674048705704">Expandir <ph name="FOLDER_NAME" /></translation> +<translation id="447252321002412580">Ayudar a mejorar las funciones y el rendimiento de Chrome</translation> <translation id="4474155171896946103">Agregar a favoritos todas las pestañas...</translation> <translation id="4475552974751346499">Buscar descargas</translation> <translation id="4476590490540813026">Atleta</translation> @@ -2246,6 +2243,7 @@ <translation id="4514542542275172126">Configurar un nuevo usuario supervisado</translation> <translation id="451515744433878153">Quitar</translation> <translation id="4518677423782794009">¿Se producen fallos en Chrome, se muestran páginas de inicio o barras de herramientas inusuales, aparecen anuncios inesperados que no puedes cerrar, o la experiencia de navegación cambia de alguna manera? Puedes solucionar el problema con la Herramienta para limpiar Chrome.</translation> +<translation id="4518928191942891293">Se está iniciando el contenedor en la VM de Termina.</translation> <translation id="4520385623207007473">Cookies en uso</translation> <translation id="452039078290142656">dispositivos desconocidos de <ph name="VENDOR_NAME" /></translation> <translation id="4522570452068850558">Detalles</translation> @@ -2294,6 +2292,7 @@ <translation id="4589268276914962177">Terminal nueva</translation> <translation id="4590324241397107707">Almacenamiento en bases de datos</translation> <translation id="4593021220803146968">&Ir a <ph name="URL" /></translation> +<translation id="459505086032485258">Mostrar las opciones de configuración de los servicios de Google</translation> <translation id="4595560905247879544">Solo el administrador (<ph name="CUSTODIAN_NAME" />) puede modificar las apps y extensiones.</translation> <translation id="4596295440756783523">Tienes certificados archivados que identifican estos servidores</translation> <translation id="4598556348158889687">Administración de almacenamiento</translation> @@ -2513,6 +2512,7 @@ <translation id="4917385247580444890">Fuerte</translation> <translation id="4918021164741308375"><ph name="ORIGIN" /> quiere comunicarse con la extensión "<ph name="EXTENSION_NAME" />".</translation> <translation id="4918086044614829423">Aceptar</translation> +<translation id="4920350943031252905">Ejecuta las herramientas, los editores y los IDE de Linux en tu Chromebook.</translation> <translation id="4920887663447894854">Se bloquearon los siguientes sitios para que no puedan rastrear tu ubicación en esta página:</translation> <translation id="492299503953721473">Quitar las apps de Android</translation> <translation id="4923279099980110923">Sí, quiero ayudar</translation> @@ -2538,7 +2538,6 @@ <translation id="4964455510556214366">Disposición</translation> <translation id="4964673849688379040">Verificando…</translation> <translation id="4965808351167763748">¿Seguro que deseas configurar este dispositivo para ejecutar Meet de Hangouts?</translation> -<translation id="4967749818080339523">Seleccionar una cuenta</translation> <translation id="496888482094675990">La aplicación Archivos brinda acceso rápido a los archivos que hayas guardado en Google Drive, el almacenamiento externo o el dispositivo del Sistema operativo Chrome.</translation> <translation id="4969785127455456148">Álbum</translation> <translation id="4971412780836297815">Abrir al finalizar</translation> @@ -2678,6 +2677,7 @@ <translation id="5186650237607254032">Actualiza el bloqueo de pantalla del teléfono para que se apague cuando estés cerca. Podrás desbloquear el teléfono más rápido y disfrutar de una mejor experiencia de Smart Lock en tu <ph name="DEVICE_TYPE" />.</translation> <translation id="5187295959347858724">Accediste a <ph name="SHORT_PRODUCT_NAME" />. Tus favoritos, historial y demás parámetros de configuración se están sincronizando con tu cuenta de Google.</translation> <translation id="5187826826541650604"><ph name="KEY_NAME" /> (<ph name="DEVICE" />)</translation> +<translation id="5196721203029902230">Comunícate con Google para mejorar la navegación y Chrome</translation> <translation id="5204967432542742771">Ingresar contraseña</translation> <translation id="5206215183583316675">¿Deseas borrar el certificado "<ph name="CERTIFICATE_NAME" />"?</translation> <translation id="520621735928254154">Error en la importación de certificado</translation> @@ -2715,6 +2715,7 @@ <translation id="5254368820972107711">Mostrar los archivos que se quitarán</translation> <translation id="52550593576409946">No se pudo iniciar la aplicación del kiosco.</translation> <translation id="5255315797444241226">La frase de contraseña que ingresaste es incorrecta.</translation> +<translation id="5256861893479663409">En todos los sitios</translation> <translation id="5260508466980570042">No es posible verificar tu correo electrónico o contraseña. Inténtalo nuevamente.</translation> <translation id="5261683757250193089">Abrir en Web Store</translation> <translation id="5262311848634918433"><ph name="MARKUP_1" />Accede a los archivos desde cualquier lugar, incluso sin conexión.<ph name="MARKUP_2" /> @@ -2939,6 +2940,8 @@ <translation id="555746285996217175">Bloqueo/encendido</translation> <translation id="5557991081552967863">Mantener el Wi-Fi encendido durante la suspensión</translation> <translation id="5558129378926964177">Acercar</translation> +<translation id="5558446705802335921">Revisa los sitios que visitas y los archivos que descargas para detectar contenido o comportamiento dañinos, como suplantación de identidad (phishing) o software malicioso</translation> +<translation id="5559719557406102971">Se está iniciando la VM de Termina.</translation> <translation id="55601339223879446">Ajustar los límites de tu escritorio en la pantalla</translation> <translation id="5562781907504170924">Esta pestaña está conectada con un dispositivo Bluetooth.</translation> <translation id="5565871407246142825">Tarjetas de crédito</translation> @@ -3143,6 +3146,7 @@ <translation id="5863445608433396414">Habilitar funciones de depuración</translation> <translation id="5864471791310927901">Falló la búsqueda de DHCP</translation> <translation id="586567932979200359">Estás ejecutando <ph name="PRODUCT_NAME" /> desde la imagen de disco. Instalarlo en tu computadora te permite ejecutarlo sin la imagen de disco y garantiza que se mantenga actualizado.</translation> +<translation id="5865733239029070421">Envía automáticamente informes de fallos y estadísticas de uso a Google</translation> <translation id="5866557323934807206">Eliminar esta configuración para futuras visitas</translation> <translation id="5866840822086176774">Muy fuerte</translation> <translation id="5867841422488265304">Busca o escribe la dirección web</translation> @@ -3193,6 +3197,7 @@ <translation id="5957613098218939406">Más opciones</translation> <translation id="5958529069007801266">Usuario supervisado</translation> <translation id="5959471481388474538">Red no disponible</translation> +<translation id="595959584676692139">Vuelve a cargar la página para usar esta extensión</translation> <translation id="5963026469094486319">Obtener temas</translation> <translation id="5963453369025043595"><ph name="NUM_HANDLES" /> (<ph name="NUM_KILOBYTES_LIVE" /> máximo)</translation> <translation id="5965661248935608907">También controla qué página se muestra al hacer clic en el botón de página principal o al realizar búsquedas desde el cuadro multifunción.</translation> @@ -3366,10 +3371,10 @@ <translation id="6237816943013845465">Permite ajustar la resolución de pantalla</translation> <translation id="6238923052227198598">Mantener la nota más reciente en la pantalla bloqueada</translation> <translation id="6239558157302047471">Volver a cargar &marco</translation> +<translation id="6240004034869232531">Desinstalando…</translation> <translation id="6241530762627360640">Acceder a la información sobre los dispositivos Bluetooth sincronizados con el sistema y detectar dispositivos Bluetooth cercanos.</translation> <translation id="6243280677745499710">Establecido actualmente</translation> <translation id="6243774244933267674">Servidor no disponible</translation> -<translation id="6246413617632217567">No se pudo importar el usuario supervisado. Comprueba los permisos y el espacio del disco duro, y vuelve a intentarlo.</translation> <translation id="6247708409970142803"><ph name="PERCENTAGE" />%</translation> <translation id="6247802389331535091">Sistema: <ph name="ARC_PROCESS_NAME" /></translation> <translation id="624789221780392884">Actualización lista</translation> @@ -3568,7 +3573,6 @@ <translation id="654039047105555694"><ph name="BEGIN_BOLD" />Nota:<ph name="END_BOLD" /> Solo debes habilitar esta opción si sabes lo que estás haciendo o si alguien te lo solicitó, ya que la recopilación de datos puede reducir el rendimiento.</translation> <translation id="654233263479157500">Utilizar un servicio web para ayudar a resolver errores de navegación</translation> <translation id="6544215763872433504">El navegador web de Google, perfecto para ti</translation> -<translation id="6545325945815270297">Administra tus dispositivos y datos sincronizados en el <ph name="BEGIN_LINK" />Panel de control de Chrome<ph name="END_LINK" />.</translation> <translation id="6545665334409411530">Frecuencia de repetición</translation> <translation id="6545834809683560467">Utilizar un servicio de predicción que ayude a completar las búsquedas y URL que se escriben en la barra de direcciones o en el cuadro de búsqueda del Selector de aplicaciones.</translation> <translation id="6546686722964485737">Unirse a la red Wimax</translation> @@ -3583,7 +3587,6 @@ <translation id="6555810572223193255">La limpieza no está disponible en este momento</translation> <translation id="6556866813142980365">Rehacer</translation> <translation id="6558280019477628686">Se produjo un error. Es posible que no se hayan borrado algunos elementos.</translation> -<translation id="6559580823502247193">(ya está incluido en este dispositivo)</translation> <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="656398493051028875">Eliminando "<ph name="FILENAME" />"…</translation> @@ -3605,6 +3608,7 @@ <translation id="6596745167571172521">Inhabilitar el bloqueo de mayúsculas</translation> <translation id="6596816719288285829">Dirección IP</translation> <translation id="6597017209724497268">Muestras</translation> +<translation id="6597332018579308636">Permitir acceso</translation> <translation id="659934686219830168">La sincronización comenzará cuando salgas de esta página</translation> <translation id="6602353599068390226">mover la ventana a otra pantalla</translation> <translation id="6602956230557165253">Utiliza las teclas de flecha hacia la izquierda y derecha para navegar.</translation> @@ -3671,6 +3675,7 @@ <translation id="6690751852586194791">Selecciona un usuario supervisado para agregar a este dispositivo.</translation> <translation id="6691331417640343772">Administrar los datos sincronizados en el Panel de control de Google</translation> <translation id="6691936601825168937">&Reenviar</translation> +<translation id="6697492270171225480">Mostrar sugerencias para páginas similares cuando no se puede encontrar una página</translation> <translation id="6698810901424468597">Leer y modificar tus datos en <ph name="WEBSITE_1" /> y <ph name="WEBSITE_2" /></translation> <translation id="6700480081846086223">Transmitir <ph name="HOST_NAME" /></translation> <translation id="6701535245008341853">No se pudo obtener el perfil.</translation> @@ -3778,7 +3783,6 @@ <translation id="6862635236584086457">Se realiza automáticamente una copia de seguridad en línea de todos los archivos guardados en esta carpeta.</translation> <translation id="6865313869410766144">Datos del formulario de autocompletar</translation> <translation id="686664946474413495">Temperatura de color</translation> -<translation id="6867678160199975333">Cambiar a <ph name="NEW_PROFILE_NAME" /></translation> <translation id="6870888490422746447">Elegir una app para compartir contenido:</translation> <translation id="6871644448911473373">Respondedor de OCSP:<ph name="LOCATION" /></translation> <translation id="6872781471649843364">El servidor rechazó la contraseña que ingresaste.</translation> @@ -3872,7 +3876,6 @@ <translation id="7018275672629230621">Leer y cambiar el historial de navegación</translation> <translation id="7019805045859631636">Rápido</translation> <translation id="7022562585984256452">Se configuró tu página principal.</translation> -<translation id="7025036625303002400">Parece que ya tienes un usuario supervisado con este nombre.</translation> <translation id="7025190659207909717">Administración del servicio de datos para celulares</translation> <translation id="7025325401470358758">Siguiente panel</translation> <translation id="7027125358315426638">Nombre de la base de datos:</translation> @@ -3921,7 +3924,7 @@ <translation id="7092106376816104">Excepciones de ventanas emergentes</translation> <translation id="7093434536568905704">GTK+</translation> <translation id="7093866338626856921">Intercambiar datos con los siguientes dispositivos: <ph name="HOSTNAMES" /></translation> -<translation id="7096108453481049031">No se pudo importar el usuario supervisado. Comprueba la conexión de red y vuelve a intentarlo más tarde.</translation> +<translation id="7096406577040705016">Activar o desactivar la lupa de pantalla completa</translation> <translation id="7098447629416471489">Los otros motores de búsqueda guardados aparecerán aquí</translation> <translation id="7099337801055912064">No se pueden cargar archivos PPD grandes. El tamaño máximo es 250 kB.</translation> <translation id="7100897339030255923"><ph name="COUNT" /> elementos seleccionados</translation> @@ -3968,7 +3971,6 @@ <translation id="7168109975831002660">Tamaño de fuente mínimo</translation> <translation id="7170041865419449892">Fuera de alcance</translation> <translation id="7171559745792467651">Instalar apps desde tus otros dispositivos</translation> -<translation id="7173917244679555">Parece que ya administras un usuario con ese nombre. ¿Querías <ph name="BEGIN_LINK" />importar <ph name="PROFILE_NAME" /><ph name="END_LINK" /> a este dispositivo?</translation> <translation id="7175037578838465313">Configurar <ph name="NAME" /></translation> <translation id="7175353351958621980">Cargados desde:</translation> <translation id="7180611975245234373">Actualizar</translation> @@ -4140,7 +4142,6 @@ <translation id="7444726222535375658">Ir a Meet de Hangouts</translation> <translation id="7444983668544353857">Inhabilitar <ph name="NETWORKDEVICE" /></translation> <translation id="7445682342344043969">Se bloquearon ventanas emergentes</translation> -<translation id="744859430125590922">Controlar y ver los sitios web que esta persona visita desde <ph name="CUSTODIAN_EMAIL" /></translation> <translation id="7453008956351770337">Al seleccionar esta impresora, concedes a la siguiente extensión permiso para acceder a tu impresora.</translation> <translation id="7453467225369441013">Esta acción te hace salir de la mayoría de los sitios. No saldrás de tu cuenta de Google.</translation> <translation id="7456142309650173560">para programadores</translation> @@ -4314,7 +4315,6 @@ <translation id="7717845620320228976">Comprobar actualizaciones</translation> <translation id="7719367874908701697">Zoom de página</translation> <translation id="771953673318695590">Control de calidad</translation> -<translation id="7720375555307821262">Para supervisar a esta persona, <ph name="BEGIN_LINK" />accede a Chrome<ph name="END_LINK" />.</translation> <translation id="7721179060400456005">Permitir que las ventanas abarquen las pantallas</translation> <translation id="7722040605881499779">Espacio necesario para la actualización: <ph name="NECESSARY_SPACE" /></translation> <translation id="7724603315864178912">Cortar</translation> @@ -4386,6 +4386,24 @@ <ph name="LINE_BREAK2" /> Intenta seleccionar menos fotos.</translation> <translation id="782590969421016895">Usar páginas actuales</translation> +<translation id="7826790948326204519"><ph name="BEGIN_H3" />Funciones de depuración<ph name="END_H3" /> + <ph name="BR" /> + Puedes habilitar las funciones de depuración en tu dispositivo con el Sistema operativo Chrome a fin de instalar y probar el código personalizado en tu dispositivo. Esta acción te permitirá hacer lo siguiente:<ph name="BR" /> + <ph name="BEGIN_LIST" /> + <ph name="LIST_ITEM" />Quitar la verificación de rootfs para poder modificar archivos de SO + <ph name="LIST_ITEM" />Habilitar el acceso SSH al dispositivo con las claves de prueba estándar a fin de usar herramientas como <ph name="BEGIN_CODE" />"cros flash"<ph name="END_CODE" /> para acceder al dispositivo + <ph name="LIST_ITEM" />Habilitar el inicio desde USB para poder instalar una imagen de SO desde una unidad USB + <ph name="LIST_ITEM" />Establecer la contraseña de acceso de desarrollo y raíz del sistema en un valor personalizado para poder usar el acceso SSH al dispositivo de forma manual + <ph name="END_LIST" /> + <ph name="BR" /> + Una vez habilitadas, la mayoría de las funciones de depuración seguirán así incluso después de usar la función Powerwash o borrar los datos en un dispositivo administrado por una empresa. Para inhabilitar por completo todas las funciones de depuración, realiza todos los pasos del proceso de recuperación del Sistema operativo Chrome (https://support.google.com/chromebook/answer/1080595). + <ph name="BR" /> + <ph name="BR" /> + Para obtener más información acerca de las funciones de depuración, consulta:<ph name="BR" /> + https://www.chromium.org/chromium-os/how-tos-and-troubleshooting/debugging-features + <ph name="BR" /> + <ph name="BR" /> + <ph name="BEGIN_BOLD" />Nota:<ph name="END_BOLD" /> El sistema se reiniciará durante el proceso.</translation> <translation id="7829298379596169484">Accediendo a la entrada de audio</translation> <translation id="7831491651892296503">Se produjo un error cuando se configuraba la red</translation> <translation id="7831754656372780761"><ph name="TAB_TITLE" /> <ph name="EMOJI_MUTING" /></translation> @@ -4450,6 +4468,7 @@ <translation id="7912080627461681647">Se cambió la contraseña en el servidor. Sal de la cuenta y vuelve a acceder.</translation> <translation id="7912883689016444961">Configurar red móvil</translation> <translation id="7915471803647590281">Comunícanos lo que está pasando antes de enviarnos tus comentarios</translation> +<translation id="7916556741383518510">Al hacer clic</translation> <translation id="792514962475806987">Nivel de zoom en vista acoplada:</translation> <translation id="7925247922861151263">Falló la verificación de AAA</translation> <translation id="7925285046818567682">Esperando <ph name="HOST_NAME" />...</translation> @@ -4490,6 +4509,7 @@ <translation id="7978412674231730200">Clave privada</translation> <translation id="7979036127916589816">Error de sincronización</translation> <translation id="7980084013673500153">ID de activo: <ph name="ASSET_ID" /></translation> +<translation id="7981313251711023384">Cargar previamente las páginas para acelerar la navegación y las búsquedas</translation> <translation id="7982083145464587921">Reinicia el dispositivo para corregir el error.</translation> <translation id="7982283708762922719">Altura</translation> <translation id="7982789257301363584">Red</translation> @@ -4896,6 +4916,7 @@ <translation id="8651585100578802546">Volver a cargar esta página</translation> <translation id="8652400352452647993">Error al empaquetar extensiones</translation> <translation id="8652487083013326477">botón radio para rango de página</translation> +<translation id="8653292045957015650">Activar o desactivar la lupa con vista acoplada</translation> <translation id="8654151524613148204">El archivo es demasiado grande para que tu equipo lo procese.</translation> <translation id="8655295600908251630">Canal</translation> <translation id="8655319619291175901">Se produjo un error.</translation> @@ -4987,6 +5008,7 @@ <translation id="8757803915342932642">Dispositivo en Google Cloud Devices</translation> <translation id="8759408218731716181">No se puede configurar el acceso múltiple.</translation> <translation id="8759753423332885148">Más información</translation> +<translation id="8762207669047572135">Permitir acceso</translation> <translation id="8767621466733104912">Actualizar Chrome automáticamente para todos los usuarios</translation> <translation id="8770406935328356739">Directorio de raíz de la extensión</translation> <translation id="8770507190024617908">Administrar personas</translation> @@ -5116,7 +5138,9 @@ <translation id="8976520271376534479">Flash está bloqueado en esta página.</translation> <translation id="8977811652087512276">Contraseña incorrecta o archivo dañado</translation> <translation id="8978154919215542464">Activada: sincronizar todo</translation> +<translation id="897939795688207351">En <ph name="ORIGIN" /></translation> <translation id="8980951173413349704"><ph name="WINDOW_TITLE" />: Falló</translation> +<translation id="8983677657449185470">Ayudar a mejorar la Navegación segura</translation> <translation id="8986362086234534611">Borrar</translation> <translation id="8986494364107987395">Enviar automáticamente estadísticas de uso e informes sobre fallos a Google</translation> <translation id="8987927404178983737">Mes</translation> @@ -5125,6 +5149,7 @@ <translation id="8995603266996330174">Administrado por <ph name="DOMAIN" /></translation> <translation id="8996526648899750015">Agregar cuenta…</translation> <translation id="8997135628821231"><ph name="ISSUED_BY" /> [<ph name="ISSUED_TO" />] (<ph name="DEVICE" />)</translation> +<translation id="8998788483361403036">Se está creando la imagen de disco.</translation> <translation id="9003647077635673607">Permitir en todos los sitios web</translation> <translation id="9003677638446136377">Volver a comprobar</translation> <translation id="9003704114456258138">Frecuencia</translation> @@ -5145,7 +5170,6 @@ <translation id="9024331582947483881">pantalla completa</translation> <translation id="9025098623496448965">De acuerdo, volver a la pantalla de acceso</translation> <translation id="9026731007018893674">descarga</translation> -<translation id="9027146684281895941">Supervisa esta persona para controlar y ver los sitios web que visita desde tu cuenta de Google.</translation> <translation id="9027459031423301635">Abrir vínculo en la pes&taña nueva</translation> <translation id="9027603907212475920">Configurar sincronización...</translation> <translation id="9030515284705930323">Tu organización no habilitó Google Play Store para tu cuenta. Comunícate con tu administrador para obtener más información.</translation> @@ -5161,6 +5185,7 @@ <translation id="9042893549633094279">Privacidad y seguridad</translation> <translation id="904451693890288097">Ingresa la clave de acceso de "<ph name="DEVICE_NAME" />":</translation> <translation id="9044646465488564462">Error al establecer conexión con la red: <ph name="DETAILS" /></translation> +<translation id="9045430190527754450">Envía a Google la dirección web de la página a la que intentas acceder</translation> <translation id="9046895021617826162">No se pudo conectar</translation> <translation id="9050666287014529139">Frase de contraseña</translation> <translation id="9052208328806230490">Registraste tus impresoras con <ph name="CLOUD_PRINT_NAME" /> utilizando la cuenta <ph name="EMAIL" /></translation>
diff --git a/chrome/app/resources/generated_resources_es.xtb b/chrome/app/resources/generated_resources_es.xtb index dbe383ed..d92e0a7a 100644 --- a/chrome/app/resources/generated_resources_es.xtb +++ b/chrome/app/resources/generated_resources_es.xtb
@@ -42,7 +42,6 @@ <translation id="1056898198331236512">Advertencia</translation> <translation id="1058262162121953039">PUK</translation> <translation id="1062407476771304334">Sustituir</translation> -<translation id="1062866675591297858">Administra los usuarios supervisados mediante el <ph name="BEGIN_LINK" />panel de control de usuarios supervisados<ph name="END_LINK" />.</translation> <translation id="1064835277883315402">Conectarse a una red privada</translation> <translation id="1064912851688322329">Desvincular tu cuenta de Google</translation> <translation id="1067048845568873861">Creada</translation> @@ -65,7 +64,6 @@ <translation id="1091767800771861448">Pulsa Esc para omitir este paso (solo para compilaciones no oficiales).</translation> <translation id="1093457606523402488">Redes visibles:</translation> <translation id="1094607894174825014">La operación de lectura o escritura se ha solicitado con una variación no válida de "<ph name="DEVICE_NAME" />".</translation> -<translation id="1097507499312291972"><ph name="BEGIN_SIGN_IN_LINK" />Inicia sesión<ph name="END_SIGN_IN_LINK" /> para ver y controlar los sitios web que visite esta persona.</translation> <translation id="109758035718544977">Activar sonido de sitios web</translation> <translation id="1097658378307015415">Antes de iniciar sesión, entra como invitado para activar la red <ph name="NETWORK_ID" />.</translation> <translation id="1103523840287552314">Traducir siempre el <ph name="LANGUAGE" /></translation> @@ -244,7 +242,6 @@ <translation id="1361655923249334273">Sin utilizar</translation> <translation id="1363028406613469049">Pista</translation> <translation id="1367951781824006909">Selecciona un archivo</translation> -<translation id="136802136832547685">No hay ningún usuario supervisado para añadirlo a este dispositivo.</translation> <translation id="1368265273904755308">Notificar error</translation> <translation id="1370646789215800222">¿Eliminar a esta persona?</translation> <translation id="1372681413396468867">{NUM_ITEMS,plural, =1{Se va a quitar 1 elemento}other{Se van a quitar # elementos}}</translation> @@ -472,7 +469,6 @@ <translation id="1692799361700686467">Se han habilitado las cookies de varios sitios.</translation> <translation id="169515659049020177">Mayús</translation> <translation id="1698122934742150150">Solo a la sesión de incógnito actual</translation> -<translation id="1700199471143028312">El administrador no permite que crees usuarios supervisados.</translation> <translation id="1701062906490865540">Eliminar este perfil</translation> <translation id="1706586824377653884">Añadido por tu administrador</translation> <translation id="1706625117072057435">Niveles de zoom</translation> @@ -1041,7 +1037,6 @@ <translation id="2604255671529671813">No se ha podido establecer conexión con la red</translation> <translation id="2606246518223360146">Vincular datos</translation> <translation id="2607101320794533334">Información de clave pública de la entidad receptora</translation> -<translation id="2607459012323956820">El administrador puede seguir viendo la configuración y el historial de navegación de este usuario supervisado en la página <ph name="BEGIN_LINK" /><ph name="DISPLAY_LINK" /><ph name="END_LINK" />.</translation> <translation id="2608770217409477136">Utilizar configuración predeterminada</translation> <translation id="2609896558069604090">Crear accesos directos...</translation> <translation id="2610157865375787051">Suspensión</translation> @@ -1284,7 +1279,6 @@ <translation id="2951247061394563839">Centrar ventana</translation> <translation id="2956763290572484660"><ph name="COOKIES" /> cookies</translation> <translation id="2958721676848865875">Advertencia sobre el empaquetado de extensión</translation> -<translation id="2961043351165706615">Las aplicaciones de Linux que hayas instalado se eliminarán de este Chromebook.</translation> <translation id="2961090598421146107"><ph name="CERTIFICATE_NAME" /> (extensión proporcionada)</translation> <translation id="2961695502793809356">Haz clic para avanzar una página o pulsa unos segundos para ver el historial</translation> <translation id="2963151496262057773">El complemento <ph name="PLUGIN_NAME" /> no responde. ¿Quieres detenerlo?</translation> @@ -1336,15 +1330,6 @@ <translation id="3022978424994383087">No te he entendido.</translation> <translation id="3024374909719388945">Usar reloj de 24 horas</translation> <translation id="302781076327338683">Volver a cargar omitiendo la caché</translation> -<translation id="3030243755303701754">Un usuario supervisado puede explorar la Web con tu ayuda. Como administrador de un usuario supervisado en Chrome, puedes: - - • permitir o prohibir determinados sitios web, - • consultar sitios web que haya visitado el usuario supervisado, - • administrar otras opciones. - -Al crear un usuario supervisado, no se crea una cuenta de Google, y sus marcadores, su historial de navegación y otras preferencias no estarán disponibles en otros dispositivos con la sincronización de Chrome. Una vez que hayas creado un nuevo usuario supervisado, podrás administrar su configuración en cualquier momento y desde cualquier dispositivo en la página <ph name="BEGIN_MANAGE_LINK" /><ph name="DISPLAY_LINK" /><ph name="END_MANAGE_LINK" />. - -Para obtener más información, accede a nuestro <ph name="BEGIN_LINK" />Centro de Ayuda<ph name="END_LINK" />.</translation> <translation id="3031417829280473749">Agente X</translation> <translation id="3031557471081358569">Selecciona los elementos que quieres importar:</translation> <translation id="3031601332414921114">Reanudar la impresión</translation> @@ -1385,7 +1370,6 @@ <translation id="3085412380278336437">El sitio web puede usar la cámara</translation> <translation id="3085752524577180175">Host SOCKS</translation> <translation id="3088325635286126843">&Cambiar nombre...</translation> -<translation id="3089231390674410424">Parece que ha habido un problema con tus credenciales. Asegúrate de que has iniciado sesión correctamente y vuelve a intentarlo.</translation> <translation id="3090193911106258841">Accediendo a la entrada de vídeo y audio</translation> <translation id="3090819949319990166">No se puede copiar el archivo crx externo en <ph name="TEMP_CRX_FILE" />.</translation> <translation id="3090871774332213558"><ph name="DEVICE_NAME" /> vinculado</translation> @@ -1400,7 +1384,6 @@ <translation id="3121793941267913344">Restablece este dispositivo <ph name="IDS_SHORT_PRODUCT_NAME" /></translation> <translation id="3122464029669770682">CPU</translation> <translation id="3122496702278727796">Se ha producido un error al crear el directorio de datos.</translation> -<translation id="3123569374670379335">(Supervisado)</translation> <translation id="3124111068741548686">EL USUARIO administra</translation> <translation id="3126026824346185272">Ctrl</translation> <translation id="3127156390846601284">Esta acción eliminará de tu dispositivo los datos almacenados de todos los sitios web que se muestran. ¿Quieres continuar?</translation> @@ -1435,8 +1418,6 @@ <translation id="3160842278951476457"><ph name="ISSUED_BY" /> [<ph name="ISSUED_TO" />] (respaldado por hardware)</translation> <translation id="316125635462764134">Eliminar aplicación</translation> <translation id="3161522574479303604">Todos los idiomas</translation> -<translation id="316307797510303346">Puedes controlar y ver los sitios web que visite esta persona desde <ph name="CUSTODIAN_EMAIL" />. - Los datos de inicio de sesión de tu cuenta están obsoletos.</translation> <translation id="3165390001037658081">Es posible que algunos operadores bloqueen esta función.</translation> <translation id="316854673539778496">Inicia sesión y activa la sincronización para ver tus extensiones en todos tus dispositivos.</translation> <translation id="3170072451822350649">También puedes <ph name="LINK_START" />navegar como invitado<ph name="LINK_END" /> sin iniciar sesión.</translation> @@ -1469,7 +1450,6 @@ <translation id="3229922550070982305">reproducir/pausar</translation> <translation id="3232318083971127729">Valor:</translation> <translation id="3236289833370040187">La propiedad se transferirá a <ph name="DESTINATION_DOMAIN" />.</translation> -<translation id="3237784613213365159"><ph name="NEW_PROFILE_NAME" /> es ahora un usuario supervisado</translation> <translation id="323803881985677942">Abrir opciones de la extensión</translation> <translation id="3241680850019875542">Selecciona el directorio raíz de las extensiones que quieras empaquetar. Para actualizar una extensión, debes seleccionar también el archivo de clave privada que se va a volver a usar.</translation> <translation id="3242765319725186192">Clave precompartida:</translation> @@ -1699,7 +1679,6 @@ <translation id="3584169441612580296">Leer y modificar fotos, música y otros archivos multimedia de tu ordenador</translation> <translation id="3587482841069643663">Todo</translation> <translation id="358796204584394954">Escribe este código en el dispositivo <ph name="DEVICE_NAME" /> para vincularlo:</translation> -<translation id="3589532742556016615">Esta acción no afecta a las aplicaciones o el contenido de otros dispositivos.</translation> <translation id="3589766037099229847">Contenido no seguro bloqueado</translation> <translation id="3590194807845837023">Desbloquear perfil y volver a iniciar</translation> <translation id="3592260987370335752">&Más información</translation> @@ -1833,7 +1812,6 @@ <translation id="3778152852029592020">Se ha cancelado la descarga.</translation> <translation id="3778740492972734840">&Herramientas para desarrolladores</translation> <translation id="3778868487658107119">Puedes hacerle preguntas e indicarle tareas para que las realice. Esta función, siempre lista para ayudarte, te permite utilizar Google de forma personalizada.</translation> -<translation id="3780663724044634171">Selecciona una cuenta para administrar al usuario supervisado.</translation> <translation id="378312418865624974">Leer un identificador único para este ordenador</translation> <translation id="3783640748446814672">alt</translation> <translation id="3785308913036335955">Mostrar acceso directo de aplicaciones</translation> @@ -2560,7 +2538,6 @@ <translation id="4964455510556214366">Disposición</translation> <translation id="4964673849688379040">Comprobando...</translation> <translation id="4965808351167763748">¿Seguro que quieres configurar este dispositivo para que utilice Hangouts Meet?</translation> -<translation id="4967749818080339523">Seleccionar una cuenta</translation> <translation id="496888482094675990">La aplicación Archivos permite acceder rápidamente a los archivos que has guardado en Google Drive, en un almacenamiento externo o en tu dispositivo Chrome OS.</translation> <translation id="4969785127455456148">Álbum</translation> <translation id="4971412780836297815">Abrir al finalizar</translation> @@ -2746,7 +2723,6 @@ Pase lo que pase con el dispositivo, los archivos estarán almacenados de forma segura en Google Drive.<ph name="MARKUP_6" /> <ph name="MARKUP_7" />Comparte y crea archivos<ph name="MARKUP_8" /> y colabora en archivos con otros usuarios desde un único lugar.<ph name="MARKUP_9" /></translation> -<translation id="5262401745672360397">Es posible que también se eliminen los archivos compartidos con las aplicaciones de Linux.</translation> <translation id="5264148714798105376">Este proceso puede durar aproximadamente un minuto.</translation> <translation id="5264252276333215551">Conéctate a Internet para iniciar tu aplicación en modo de kiosco.</translation> <translation id="5265562206369321422">Sin conexión durante más de una semana</translation> @@ -3398,7 +3374,6 @@ <translation id="6241530762627360640">Acceder a información sobre dispositivos Bluetooth vinculados a tu sistema y descubrir dispositivos Bluetooth cercanos.</translation> <translation id="6243280677745499710">En uso</translation> <translation id="6243774244933267674">Servidor no disponible</translation> -<translation id="6246413617632217567">No se ha podido importar el usuario supervisado. Comprueba los permisos y el espacio de tu disco duro y vuelve a intentarlo.</translation> <translation id="6247708409970142803"><ph name="PERCENTAGE" />%</translation> <translation id="6247802389331535091">Sistema: <ph name="ARC_PROCESS_NAME" /></translation> <translation id="624789221780392884">Actualización lista</translation> @@ -3596,7 +3571,6 @@ <translation id="654039047105555694"><ph name="BEGIN_BOLD" />Nota:<ph name="END_BOLD" /> Habilita esta opción solo si tienes conciencia de los efectos de esta acción o si se te ha pedido que lo hagas, ya que la recogida de datos puede reducir el rendimiento.</translation> <translation id="654233263479157500">Utilizar un servicio web para intentar resolver errores de navegación</translation> <translation id="6544215763872433504">El navegador web de Google a tu disposición</translation> -<translation id="6545325945815270297">Administra tus dispositivos y datos sincronizados en el <ph name="BEGIN_LINK" />Panel de Control de Chrome<ph name="END_LINK" />.</translation> <translation id="6545665334409411530">Frecuencia de repetición</translation> <translation id="6545834809683560467">Utilizar un servicio de predicción para completar las búsquedas y las URL introducidas en la barra de direcciones o en el cuadro de búsqueda del menú de aplicaciones</translation> <translation id="6546686722964485737">Conectarse a la red WiMAX</translation> @@ -3611,7 +3585,6 @@ <translation id="6555810572223193255">No se puede eliminar en este momento</translation> <translation id="6556866813142980365">Rehacer</translation> <translation id="6558280019477628686">Se ha producido un error. Es posible que no se hayan eliminado algunos elementos.</translation> -<translation id="6559580823502247193">(ya está incluido en este dispositivo)</translation> <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="656398493051028875">Eliminando "<ph name="FILENAME" />"...</translation> @@ -3808,7 +3781,6 @@ <translation id="6862635236584086457">Se realiza una copia de seguridad online de forma automática de todos los archivos guardados en esta carpeta.</translation> <translation id="6865313869410766144">Datos de Autocompletar formulario</translation> <translation id="686664946474413495">Temperatura del color</translation> -<translation id="6867678160199975333">Cambiar a <ph name="NEW_PROFILE_NAME" /></translation> <translation id="6870888490422746447">Elige una aplicación con la que compartir el contenido:</translation> <translation id="6871644448911473373">Respuesta de OCSP: <ph name="LOCATION" /></translation> <translation id="6872781471649843364">El servidor ha rechazado la contraseña que has introducido.</translation> @@ -3902,7 +3874,6 @@ <translation id="7018275672629230621">Leer y modificar tu historial de navegación</translation> <translation id="7019805045859631636">Rápido</translation> <translation id="7022562585984256452">Se ha establecido tu página de inicio.</translation> -<translation id="7025036625303002400">Parece que ya tienes un usuario supervisado con este nombre.</translation> <translation id="7025190659207909717">Administración de servicio de datos para móviles</translation> <translation id="7025325401470358758">Siguiente panel</translation> <translation id="7027125358315426638">Nombre de la base de datos:</translation> @@ -3951,7 +3922,6 @@ <translation id="7092106376816104">Excepciones de ventanas emergentes</translation> <translation id="7093434536568905704">GTK+</translation> <translation id="7093866338626856921">Intercambiar datos con los dispositivos denominados <ph name="HOSTNAMES" /></translation> -<translation id="7096108453481049031">No se ha podido importar el usuario supervisado. Comprueba tu conexión de red y vuelve a intentarlo más tarde.</translation> <translation id="7096406577040705016">Activar o desactivar la lupa de pantalla completa</translation> <translation id="7098447629416471489">Otros motores de búsqueda guardados aparecerán aquí</translation> <translation id="7099337801055912064">No se pueden cargar archivos PPD grandes. El tamaño máximo es 250 kB.</translation> @@ -3999,7 +3969,6 @@ <translation id="7168109975831002660">Tamaño mínimo de fuente</translation> <translation id="7170041865419449892">Fuera del alcance</translation> <translation id="7171559745792467651">Instala aplicaciones de tus otros dispositivos</translation> -<translation id="7173917244679555">Parece que ya administras a un usuario con ese nombre. ¿Quieres <ph name="BEGIN_LINK" />importar a <ph name="PROFILE_NAME" /><ph name="END_LINK" /> a este dispositivo?</translation> <translation id="7175037578838465313">Configurar <ph name="NAME" /></translation> <translation id="7175353351958621980">Cargado desde:</translation> <translation id="7180611975245234373">Actualizar</translation> @@ -4170,7 +4139,6 @@ <translation id="7444726222535375658">Acceder a Hangouts Meet</translation> <translation id="7444983668544353857">Inhabilitar <ph name="NETWORKDEVICE" /></translation> <translation id="7445682342344043969">Ventanas emergentes bloqueadas</translation> -<translation id="744859430125590922">Controlar y ver los sitios web que visita esta persona desde <ph name="CUSTODIAN_EMAIL" />.</translation> <translation id="7453008956351770337">Al seleccionar esta impresora, concedes permiso a la siguiente extensión para acceder a tu impresora:</translation> <translation id="7453467225369441013">Cierra tu sesión en la mayoría de los sitios web. No se cerrará la sesión en tu cuenta de Google.</translation> <translation id="7456142309650173560">dev</translation> @@ -4344,7 +4312,6 @@ <translation id="7717845620320228976">Buscar actualizaciones</translation> <translation id="7719367874908701697">Zoom de la página</translation> <translation id="771953673318695590">Control de calidad</translation> -<translation id="7720375555307821262"><ph name="BEGIN_LINK" />Inicia sesión en Chrome<ph name="END_LINK" /> para supervisar a este usuario.</translation> <translation id="7721179060400456005">Permitir que las ventanas ocupen pantallas</translation> <translation id="7722040605881499779">Espacio necesario para la actualización: <ph name="NECESSARY_SPACE" /></translation> <translation id="7724603315864178912">Cortar</translation> @@ -5199,7 +5166,6 @@ <translation id="9024331582947483881">pantalla completa</translation> <translation id="9025098623496448965">De acuerdo, volver a la pantalla de inicio de sesión</translation> <translation id="9026731007018893674">descarga</translation> -<translation id="9027146684281895941">Supervisa a este usuario para controlar y ver los sitios web a los que accede desde tu cuenta de Google.</translation> <translation id="9027459031423301635">Abrir enlace en una &pestaña nueva</translation> <translation id="9027603907212475920">Configurar sincronización...</translation> <translation id="9030515284705930323">Tu organización no ha habilitado Google Play Store en tu cuenta. Ponte en contacto con el administrador para obtener más información.</translation> @@ -5359,7 +5325,6 @@ <translation id="98515147261107953">Horizontal</translation> <translation id="987897973846887088">No hay imágenes disponibles</translation> <translation id="988978206646512040">La frase de contraseña no puede estar vacía</translation> -<translation id="990310048453480215">Eliminar aplicaciones de Linux</translation> <translation id="992032470292211616">Las extensiones, las aplicaciones y los temas pueden dañar tu dispositivo. ¿Seguro que quieres continuar?</translation> <translation id="992592832486024913">Inhabilitar ChromeVox (mensajes de voz)</translation> <translation id="994289308992179865">&Bucle</translation>
diff --git a/chrome/app/resources/generated_resources_et.xtb b/chrome/app/resources/generated_resources_et.xtb index 8372bd6..ab7a504 100644 --- a/chrome/app/resources/generated_resources_et.xtb +++ b/chrome/app/resources/generated_resources_et.xtb
@@ -42,10 +42,11 @@ <translation id="1056898198331236512">Hoiatus</translation> <translation id="1058262162121953039">PUK-kood</translation> <translation id="1062407476771304334">Asenda</translation> -<translation id="1062866675591297858">Hallake jälgitavaid kasutajaid <ph name="BEGIN_LINK" />jälgitavate kasutajate juhtpaneelil<ph name="END_LINK" />.</translation> <translation id="1064835277883315402">Privaatse võrguga liitumine</translation> <translation id="1064912851688322329">Katkestage oma Google'i konto ühendus</translation> <translation id="1067048845568873861">Loodud</translation> +<translation id="1067291318998134776">Linux (beetaversioon)</translation> +<translation id="1067922213147265141">Muud Google'i teenused</translation> <translation id="1070066693520972135">WEP</translation> <translation id="1070377999570795893">Muu arvutis olev programm lisas laienduse, mis võib muuta Chrome'i tööd. @@ -63,7 +64,6 @@ <translation id="1091767800771861448">Vahelejätmiseks vajutage klahvi ESC (ainult mitteametlike järkude puhul).</translation> <translation id="1093457606523402488">Nähtavad võrgud:</translation> <translation id="1094607894174825014">Lugemise või kirjutamise toimingut taotleti sobimatu nihkega seadmes „<ph name="DEVICE_NAME" />”.</translation> -<translation id="1097507499312291972"><ph name="BEGIN_SIGN_IN_LINK" />Logige sisse<ph name="END_SIGN_IN_LINK" />, et hallata ja vaadata veebisaite, mida see isik külastab.</translation> <translation id="109758035718544977">Tühista saitide vaigistus</translation> <translation id="1097658378307015415">Enne sisselogimist sisenege võrgu <ph name="NETWORK_ID" /> aktiveerimiseks külastajana</translation> <translation id="1103523840287552314">Tõlgi alati: <ph name="LANGUAGE" /></translation> @@ -184,6 +184,7 @@ <translation id="1260240842868558614">Näita:</translation> <translation id="126710816202626562">Tõlkimiskeel:</translation> <translation id="126768002343224824">16-kordne</translation> +<translation id="1271317946095246719">Saadab teie vaikeotsingumootorile otsingud teie aadressiribalt ja otsingukastist ning mõned küpsisefailid</translation> <translation id="1272079795634619415">Peata</translation> <translation id="1272978324304772054">See kasutajakonto ei kuulu domeeni, kus seade on registreeritud. Kui soovite registreeruda mõnel teisel domeenil, peate esmalt tegema seadmetaaste.</translation> <translation id="1274977772557788323">Adobe Flash Playeri salvestusruumi seaded</translation> @@ -241,7 +242,6 @@ <translation id="1361655923249334273">Kasutamata</translation> <translation id="1363028406613469049">Rada</translation> <translation id="1367951781824006909">Vali fail</translation> -<translation id="136802136832547685">Pole jälgitavaid kasutajaid, keda sellesse seadmesse lisada.</translation> <translation id="1368265273904755308">Teata probleemist</translation> <translation id="1370646789215800222">Kas eemaldada isik?</translation> <translation id="1372681413396468867">{NUM_ITEMS,plural, =1{Eemaldatakse 1 üksus}other{Eemaldatakse # üksust}}</translation> @@ -469,7 +469,6 @@ <translation id="1692799361700686467">Mitme saidi küpsised on lubatud.</translation> <translation id="169515659049020177">Tõstuklahv</translation> <translation id="1698122934742150150">Ainult praegune inkognito seanss</translation> -<translation id="1700199471143028312">Administraator ei luba teil luua jälgitavaid kasutajaid.</translation> <translation id="1701062906490865540">Eemalda see isik</translation> <translation id="1706586824377653884">Lisas teie administraator</translation> <translation id="1706625117072057435">Suumitasemed</translation> @@ -804,6 +803,7 @@ <translation id="2230062665678605299">Kausta „<ph name="FOLDER_NAME" />” ei saa luua. <ph name="ERROR_MESSAGE" /></translation> <translation id="223106756035922488">Klõpsake tänase vigurlogo vaatamiseks</translation> <translation id="2231238007119540260">Serveri sertifikaadi kustutamisel taastate selle serveri tavapärased turvalisuse kontrollid ja selle taotlemine vajab kehtivat sertifikaati.</translation> +<translation id="2232379019872353004">Saadab Google'ile teatud süsteemiteavet ja lehe sisu</translation> <translation id="2232876851878324699">Fail sisaldas ühte sertifikaati, mida ei imporditud:</translation> <translation id="2233502537820838181">&Lisateave</translation> <translation id="2238379619048995541">Sageduse oleku andmed</translation> @@ -889,6 +889,7 @@ <translation id="2359808026110333948">Jätka</translation> <translation id="236141728043665931">Blokeeri alati juurdepääs mikrofonile</translation> <translation id="2365507699358342471">See sait näeb lõikelauale kopeeritud teksti ja kujutisi.</translation> +<translation id="2366463953911599217">VIGA: rakenduse <ph name="APP_NAME" /> desinstallimine ebaõnnestus.</translation> <translation id="2367199180085172140">Lisa failide võrguhoidla</translation> <translation id="2367972762794486313">Rakenduste kuvamine</translation> <translation id="2371076942591664043">Ava, kui on &valmis</translation> @@ -940,6 +941,7 @@ <translation id="2462724976360937186">Sertifitseerimisorgani võtme ID</translation> <translation id="2462752602710430187"><ph name="PRINTER_NAME" /> on lisatud</translation> <translation id="2464089476039395325">HTTP-puhverserver</translation> +<translation id="2468205691404969808">Kasutage küpsisefaile, et oma eelistusi meeles pidada, isegi kui te neid lehti ei külasta</translation> <translation id="2468902267404883140">Teie telefoniga ei saa ühendust luua. Veenduge, et kasutaksite ühilduvat Android-telefoni, mis on sisse lülitatud ja käepärast. <a>Lisateave</a></translation> <translation id="2470702053775288986">Toetamata laiendused on keelatud</translation> <translation id="2473195200299095979">Selle lehe tõlkimine</translation> @@ -1005,7 +1007,7 @@ <translation id="2562685439590298522">Dokumendid</translation> <translation id="2562743677925229011">Pole teenusesse <ph name="SHORT_PRODUCT_NAME" /> sisse logitud</translation> <translation id="2563856802393254086">Õnnitleme! Teie võrgu „<ph name="NAME" />” andmeteenus on aktiveeritud ja kasutamiseks valmis.</translation> -<translation id="2564520396658920462">JavaScripti käitamine AppleScripti kaudu on välja lülitatud. Selle sisselülitamiseks tehke menüüribal valikud View > Developer > Allow JavaScript from Apple Events. Vaadake lisateavet aadressilt: https://support.google.com/chrome/?p=applescript</translation> +<translation id="2564520396658920462">JavaScripti käitamine AppleScripti kaudu on välja lülitatud. Selle sisselülitamiseks tehke menüüribal valikud View > Developer > Allow JavaScript from Apple Events. Vaadake lisateavet aadressilt https://support.google.com/chrome/?p=applescript</translation> <translation id="2566124945717127842">Pärast Powerwashiga lähtestamist on teie toote <ph name="IDS_SHORT_PRODUCT_NAME" /> seade just nagu uus.</translation> <translation id="2567257616420533738">Parool salvestati. Vaadake ja hallake salvestatud paroole saidil <ph name="SAVED_PASSWORDS_LINK" /></translation> <translation id="2568774940984945469">Teaberiba ümbris</translation> @@ -1035,7 +1037,6 @@ <translation id="2604255671529671813">Võrguühenduse viga</translation> <translation id="2606246518223360146">Lingi andmed</translation> <translation id="2607101320794533334">Subjekti avaliku võtme teave</translation> -<translation id="2607459012323956820">Lehe <ph name="BEGIN_LINK" /><ph name="DISPLAY_LINK" /><ph name="END_LINK" /> haldur võib selle jälgitava kasutaja seadeid ja sirvimisajalugu endiselt näha.</translation> <translation id="2608770217409477136">Kasuta vaikeseadeid</translation> <translation id="2609896558069604090">Loo otseteid ...</translation> <translation id="2610157865375787051">Unerežiim</translation> @@ -1104,6 +1105,7 @@ <translation id="2686759344028411998">Laaditud mooduleid ei saanud tuvastada.</translation> <translation id="2688196195245426394">Seadme serveris registreerimisel ilmnes viga: <ph name="CLIENT_ERROR" />.</translation> <translation id="2690024944919328218">Kuva keelevalikud</translation> +<translation id="2690824726518456119">Teenuse Concierge käivitamine.</translation> <translation id="2691385045260836588">Mudel</translation> <translation id="2693176596243495071">Vabandust! Ilmnes tundmatu viga. Proovige hiljem uuesti või võtke probleemi püsimisel ühendust administraatoriga.</translation> <translation id="2694026874607847549">1 küpsis</translation> @@ -1328,15 +1330,6 @@ <translation id="3022978424994383087">Ei saanud aru.</translation> <translation id="3024374909719388945">Kasuta 24 h kella</translation> <translation id="302781076327338683">Laadib uuesti vahemälu vahele jättes</translation> -<translation id="3030243755303701754">Jälgitav kasutaja saab kasutada veebi teie juhiste järgi. Jälgitava kasutaja haldurina Chrome'is saate teha järgmist: - - • lubada või keelata teatud veebisaite; - • vaadata, milliseid veebisaite jälgitav kasutaja on külastanud; ja - • hallata teisi seadeid. - -Jälgitava kasutaja loomine ei loo Google'i kontot ja Chrome'i sünkroonimine ei sünkrooni kasutaja järjehoidjaid, sirvimisajalugu ega muid eelistusi muude seadmetega. Pärast uue jälgitava kasutaja loomist saate igal ajal ja igas seadmes saidil <ph name="BEGIN_MANAGE_LINK" /><ph name="DISPLAY_LINK" /><ph name="END_MANAGE_LINK" /> tema seadeid hallata. - -Lisateabe saamiseks külastage meie <ph name="BEGIN_LINK" />abikeskust<ph name="END_LINK" />.</translation> <translation id="3031417829280473749">Agent X</translation> <translation id="3031557471081358569">Valige imporditavad üksused:</translation> <translation id="3031601332414921114">Jätka printimist</translation> @@ -1377,7 +1370,6 @@ <translation id="3085412380278336437">Sait saab kasutada teie kaamerat</translation> <translation id="3085752524577180175">SOCKS-host</translation> <translation id="3088325635286126843">&Nimeta ümber ...</translation> -<translation id="3089231390674410424">Näib, et teie mandaadiga on probleem. Veenduge, et oleksite õigesti sisse logitud, ja proovige uuesti.</translation> <translation id="3090193911106258841">Juurdepääs heli- ja videosisendile</translation> <translation id="3090819949319990166">Välist crx-faili ei saa faili <ph name="TEMP_CRX_FILE" /> kopeerida.</translation> <translation id="3090871774332213558">Seade „<ph name="DEVICE_NAME" />” on seotud</translation> @@ -1392,7 +1384,6 @@ <translation id="3121793941267913344">Toote <ph name="IDS_SHORT_PRODUCT_NAME" /> seadme lähtestamine</translation> <translation id="3122464029669770682">Protsessor</translation> <translation id="3122496702278727796">Andmekataloogi loomine ebaõnnestus</translation> -<translation id="3123569374670379335">(Jälgitav)</translation> <translation id="3124111068741548686">USER nimed</translation> <translation id="3126026824346185272">Ctrl</translation> <translation id="3127156390846601284">See kustutab kõik seadmes olevad andmed, mille loetletud saidid salvestasid. Kas soovite jätkata?</translation> @@ -1427,8 +1418,6 @@ <translation id="3160842278951476457"><ph name="ISSUED_BY" /> [<ph name="ISSUED_TO" />] (riistvaratoega)</translation> <translation id="316125635462764134">Eemalda rakendus</translation> <translation id="3161522574479303604">Kõik keeled</translation> -<translation id="316307797510303346">Hallake ja vaadake veebisaite, mida see isik külastab kontolt <ph name="CUSTODIAN_EMAIL" />. - Teie konto sisselogimisandmed on aegunud.</translation> <translation id="3165390001037658081">Mõned operaatorid võivad selle funktsooni blokeerida.</translation> <translation id="316854673539778496">Selleks et hankida kõik oma laiendused kõikidesse seadmetesse, logige sisse ja lülitage sünkroonimine sisse.</translation> <translation id="3170072451822350649">Võite sisselogimise vahele jätta ja <ph name="LINK_START" />sirvida külalisena<ph name="LINK_END" />.</translation> @@ -1442,6 +1431,7 @@ <translation id="3190558889382726167">Parool salvestati</translation> <translation id="3192947282887913208">Helifailid</translation> <translation id="3194737229810486521"><ph name="URL" /> soovib andmed alaliselt teie seadmesse salvestada.</translation> +<translation id="3197054279257119376">Termina komponendi laadimine.</translation> <translation id="3199127022143353223">Serverid</translation> <translation id="3202131003361292969">Tee</translation> <translation id="3202173864863109533">Selle vahekaardi heli summutatakse.</translation> @@ -1460,7 +1450,6 @@ <translation id="3229922550070982305">esitamine/peatamine</translation> <translation id="3232318083971127729">Väärtus:</translation> <translation id="3236289833370040187">Omandiline kuuluvus kantakse üle domeenile <ph name="DESTINATION_DOMAIN" />.</translation> -<translation id="3237784613213365159">Kasutaja <ph name="NEW_PROFILE_NAME" /> on nüüd jälgitav kasutaja</translation> <translation id="323803881985677942">Ava laienduse valikud</translation> <translation id="3241680850019875542">Valige pakitava laienduse juurkaust. Laienduse värskendamiseks valige uuesti kasutamiseks ka privaatvõtme fail.</translation> <translation id="3242765319725186192">Eeljagatud võti:</translation> @@ -1566,6 +1555,7 @@ <translation id="3405664148539009465">Kohanda fonte</translation> <translation id="3405763860805964263">...</translation> <translation id="3406605057700382950">&Näita järjehoidjariba</translation> +<translation id="3407837288045706722">Privaatsuse, turvalisuse ning andmete kogumisega seotud lisaseadete nägemiseks avage jaotis <ph name="BEGIN_LINK" />Sünkroonimine ja isikupärastamine<ph name="END_LINK" /></translation> <translation id="3412265149091626468">Hüppa valikusse</translation> <translation id="3413122095806433232">CA väljastajad: <ph name="LOCATION" /></translation> <translation id="3414856743105198592">Irdkandja vormindamine kustutab kõik andmed. Kas soovite jätkata?</translation> @@ -1643,6 +1633,7 @@ <translation id="3504135463003295723">Rühma nimi:</translation> <translation id="3505030558724226696">Tühista juurdepääs seadmele</translation> <translation id="3507421388498836150">Laiendi „<ph name="EXTENSION_NAME" />” praegused õigused</translation> +<translation id="3507547268929739059">Linuxi rakenduste eemaldamine Chromebookist</translation> <translation id="3507888235492474624">Otsi Bluetoothi seadmeid uuesti</translation> <translation id="3508920295779105875">Valige muu kaust...</translation> <translation id="3510797500218907545">WiMAX</translation> @@ -1823,7 +1814,6 @@ <translation id="3778152852029592020">Allalaadimine tühistati.</translation> <translation id="3778740492972734840">&Arendaja tööriistad</translation> <translation id="3778868487658107119">Esitage talle küsimusi või paluge tal toiminguid teha. See on teie isiklik Google – alati valmis teid aitama.</translation> -<translation id="3780663724044634171">Valige konto jälgitava kasutaja haldamiseks.</translation> <translation id="378312418865624974">Arvuti ainuidentifikaatori lugemine</translation> <translation id="3783640748446814672">alt</translation> <translation id="3785308913036335955">Kuva teenuse Apps otsetee</translation> @@ -1837,6 +1827,7 @@ <translation id="379422718204375917">Kasutage oma kontole sisselogimiseks funktsiooni Smart Lock</translation> <translation id="3796648294839530037">Lemmikvõrgud:</translation> <translation id="3797900183766075808">&Otsi otsingumootoriga <ph name="SEARCH_ENGINE" /> terminit „<ph name="SEARCH_TERMS" />”</translation> +<translation id="3798133693323981089">Otsingute ja veebiaadresside automaatne täitmine</translation> <translation id="3798449238516105146">Versioon</translation> <translation id="3799201711591988491">{COUNT,plural, =0{&Ava kõik}=1{&Ava järjehoidja}other{&Ava kõik (#)}}</translation> <translation id="3800806661949714323">Kuva kõik (soovitatud)</translation> @@ -2013,6 +2004,7 @@ <translation id="4065876735068446555">Teie kasutatav võrk (<ph name="NETWORK_ID" />) võib nõuda sisselogimislehe külastamist.</translation> <translation id="4068506536726151626">See leht sisaldab järgmiste saitide elemente, mis jälgivad teie asukohta:</translation> <translation id="4068776064906523561">Salvestatud sõrmejäljed</translation> +<translation id="407173827865827707">Klõpsamisel</translation> <translation id="4071770069230198275"><ph name="PROFILE_NAME" />: sisselogimise viga</translation> <translation id="4074900173531346617">Meili allkirjastamise sertifikaat</translation> <translation id="407520071244661467">Skaleeri</translation> @@ -2044,6 +2036,7 @@ <translation id="4109135793348361820">Teisalda aken kasutaja <ph name="USER_NAME" /> töölauale (<ph name="USER_EMAIL" />)</translation> <translation id="4110559665646603267">Riiuli esiletõstmine</translation> <translation id="4110895898888439383">Sirvige veebi suure kontrastsusega režiimis</translation> +<translation id="4112774766611964959">See desinstallib rakenduse <ph name="APP_NAME" /> ning eemaldab seadmest <ph name="DEVICE_TYPE" /> kõik Linuxi andmed ja rakendused. Kas olete kindel?</translation> <translation id="4114360727879906392">Eelmine aken</translation> <translation id="4115002065223188701">Võrk ei ole läheduses</translation> <translation id="4115080753528843955">Mõned sisuteenused kasutavad kordumatuid identifikaatoreid, et kaitstud sisule juurdepääsu volitada</translation> @@ -2098,6 +2091,7 @@ <translation id="42137655013211669">Server keelas juurdepääsu ressursile.</translation> <translation id="4215350869199060536">Kahjuks on nimes valed märgid.</translation> <translation id="4215448920900139318">Varundamine: <ph name="FILE_COUNT" /></translation> +<translation id="4225397296022057997">Kõikidel saitidel</translation> <translation id="4235200303672858594">Kogu ekraan</translation> <translation id="4235813040357936597">Lisa konto profiilile <ph name="PROFILE_NAME" /></translation> <translation id="4235965441080806197">Tühista sisselogimine</translation> @@ -2165,6 +2159,7 @@ <translation id="4345703751611431217">Tarkvara ühildumatus: lisateave</translation> <translation id="4348766275249686434">Kogu vigu</translation> <translation id="4350019051035968019">Seda seadet ei saa registreerida domeenil, kuhu teie konto kuulub, sest seade on märgitud teisel domeenil haldamiseks.</translation> +<translation id="4354266305752237763">Seadme ja iseenda kaitsmine ohtlike saitide eest (ohutu sirvimine)</translation> <translation id="4356334633973342967">Või määrake oma draiver:</translation> <translation id="4358353773267946514"><ph name="LANGUAGE_1" />, <ph name="LANGUAGE_2" /></translation> <translation id="4359408040881008151">Installitud sõltuva(te) laiendus(t)e tõttu.</translation> @@ -2173,6 +2168,7 @@ <translation id="4364567974334641491">Rakendus <ph name="APP_NAME" /> jagab akent.</translation> <translation id="4364830672918311045">Kuva märguanded</translation> <translation id="4365673000813822030">Vabandust, sünkroonimine on lakanud töötamast.</translation> +<translation id="4370373819607756384">Seda seadet saab juhtida menüüs <ph name="BEGIN_LINK" />Keeled<ph name="END_LINK" /></translation> <translation id="4370975561335139969">Sisestatud e-posti aadress ja parool ei ühildu</translation> <translation id="437184764829821926">Täiustatud fondiseaded</translation> <translation id="4372884569765913867">1 x 1</translation> @@ -2227,6 +2223,7 @@ <translation id="4462159676511157176">Kohandatud nimeserverid</translation> <translation id="4467100756425880649">Chrome'i veebipoe galerii</translation> <translation id="4467101674048705704">Laienda kausta <ph name="FOLDER_NAME" /></translation> +<translation id="447252321002412580">Aidake täiustada Chrome'i funktsioone ja toimivust</translation> <translation id="4474155171896946103">Lisa kõik vahelehed järjehoidjatesse...</translation> <translation id="4475552974751346499">Otsi allalaadimisi</translation> <translation id="4476590490540813026">Sportlane</translation> @@ -2249,6 +2246,7 @@ <translation id="4514542542275172126">Uue jälgitava kasutaja seadistamine</translation> <translation id="451515744433878153">Eemalda</translation> <translation id="4518677423782794009">Kas Chrome jookseb kokku, kuvab käivitamisel tavatuid lehti, tööriistaribasid, ootamatuid reklaame, mida ei saa eemaldada, või muudab sirvimiskogemust muul moel? Probleemi lahendamiseks proovige käitada Chrome Cleanup Tooli.</translation> +<translation id="4518928191942891293">Konteineri käivitamine teenuses Termina VM.</translation> <translation id="4520385623207007473">Küpsisefailid on kasutuses</translation> <translation id="452039078290142656">müüja <ph name="VENDOR_NAME" /> tundmatud seadmed</translation> <translation id="4522570452068850558">Üksikasjad</translation> @@ -2297,6 +2295,7 @@ <translation id="4589268276914962177">Uus terminal</translation> <translation id="4590324241397107707">Andmebaasi talletusruum</translation> <translation id="4593021220803146968">&Mine asukohta <ph name="URL" /></translation> +<translation id="459505086032485258">Kuva Google'i teenuste seaded</translation> <translation id="4595560905247879544">Rakendusi ja laiendusi saab muuta ainult haldur (<ph name="CUSTODIAN_NAME" />).</translation> <translation id="4596295440756783523">Teil on neid servereid tuvastavad sertifikaadid</translation> <translation id="4598556348158889687">Salvestusruumi haldus</translation> @@ -2516,6 +2515,7 @@ <translation id="4917385247580444890">Tugev</translation> <translation id="4918021164741308375"><ph name="ORIGIN" /> tahab suhelda laiendusega „<ph name="EXTENSION_NAME" />”</translation> <translation id="4918086044614829423">Nõustu</translation> +<translation id="4920350943031252905">Linuxi tööriistade, redaktorite ja IDE-de käitamine teie Chromebookis.</translation> <translation id="4920887663447894854">Sellel lehel on järgmiseid saite blokeeritud nii, et need ei saa teie asukohta jälgida:</translation> <translation id="492299503953721473">Eemalda Androidi rakendused</translation> <translation id="4923279099980110923">Jah, soovin aidata</translation> @@ -2541,7 +2541,6 @@ <translation id="4964455510556214366">Asetus</translation> <translation id="4964673849688379040">Kontrollimine ...</translation> <translation id="4965808351167763748">Kas soovite kindlasti selle seadme seadistada, et rakendust Hangouts Meet käitada?</translation> -<translation id="4967749818080339523">Valige konto</translation> <translation id="496888482094675990">Rakendusega Failid saate kiiresti juurdepääsu Google Drive'i, välisesse talletusseadmesse või Chrome OS-i seadmesse salvestatud failidele.</translation> <translation id="4969785127455456148">Album</translation> <translation id="4971412780836297815">Ava, kui on valmis</translation> @@ -2681,6 +2680,7 @@ <translation id="5186650237607254032">Värskendage oma telefoni ekraanilukku, et see välja lülituks, kui läheduses olete. Saate telefoni kiiremini avada ja nautida seadmes <ph name="DEVICE_TYPE" /> funktsiooni Smart Lock paremat kasutuskogemust.</translation> <translation id="5187295959347858724">Olete nüüd teenusesse <ph name="SHORT_PRODUCT_NAME" /> sisse logitud. Järjehoidjad, ajalugu ja muud seaded sünkroonitakse teie Google'i kontoga.</translation> <translation id="5187826826541650604"><ph name="KEY_NAME" /> (<ph name="DEVICE" />)</translation> +<translation id="5196721203029902230">Andke Google'ile tagasisidet, et sirvimist ja Chrome'i paremaks muuta</translation> <translation id="5204967432542742771">Sisestage parool</translation> <translation id="5206215183583316675">Kas kustutada „<ph name="CERTIFICATE_NAME" />”?</translation> <translation id="520621735928254154">Viga sertifikaadi importimisel</translation> @@ -2718,6 +2718,7 @@ <translation id="5254368820972107711">Kuva eemaldatavad failid</translation> <translation id="52550593576409946">Kioski rakendust ei saanud käivitada.</translation> <translation id="5255315797444241226">Sisestatud parool on vale.</translation> +<translation id="5256861893479663409">Kõikidel saitidel</translation> <translation id="5260508466980570042">Kahjuks ei õnnestunud teie meili või parooli kinnitada. Proovige uuesti.</translation> <translation id="5261683757250193089">Ava veebipoes</translation> <translation id="5262311848634918433"><ph name="MARKUP_1" />Pääsete failidele juurde kõikjalt, ka võrguühenduseta.<ph name="MARKUP_2" /> @@ -2942,6 +2943,8 @@ <translation id="555746285996217175">Lukustus/toide</translation> <translation id="5557991081552967863">Hoia WiFi unerežiimis sisselülitatuna</translation> <translation id="5558129378926964177">Suum&i</translation> +<translation id="5558446705802335921">Kontrollib külastatud saite ja allalaaditud faile ohtliku käitumise või sisu (nt andmepüügi või pahavara) suhtes</translation> +<translation id="5559719557406102971">Teenuse Termina VM käivitamine.</translation> <translation id="55601339223879446">Töölaua piiride reguleerimine ekraani ulatuses</translation> <translation id="5562781907504170924">See vaheleht on ühendatud Bluetoothi seadmega.</translation> <translation id="5565871407246142825">Krediitkaardid</translation> @@ -3146,6 +3149,7 @@ <translation id="5863445608433396414">Silumisfunktsioonide lubamine</translation> <translation id="5864471791310927901">DHCP otsing nurjus</translation> <translation id="586567932979200359">Käitate <ph name="PRODUCT_NAME" />'i selle kettakujutiselt. Arvutisse installides saate seda käitada ilma kettakujutiseta ja see tagab ajakohasuse.</translation> +<translation id="5865733239029070421">Google'ile saadetakse automaatselt kasutusstatistikat ja krahhiaruandeid</translation> <translation id="5866557323934807206">Kustuta need seaded tulevasteks külastusteks</translation> <translation id="5866840822086176774">Väga tugev</translation> <translation id="5867841422488265304">Otsige või sisestage veebiaadress</translation> @@ -3196,6 +3200,7 @@ <translation id="5957613098218939406">Rohkem valikuid</translation> <translation id="5958529069007801266">Valvatav kasutaja</translation> <translation id="5959471481388474538">Võrk ei ole saadaval</translation> +<translation id="595959584676692139">Selle laiendi kasutamiseks laadige leht uuesti</translation> <translation id="5963026469094486319">Hangi teemasid</translation> <translation id="5963453369025043595"><ph name="NUM_HANDLES" /> (tipp <ph name="NUM_KILOBYTES_LIVE" />)</translation> <translation id="5965661248935608907">Lisaks juhib see seda, mis leht kuvatakse avalehe nupul klõpsamisel või omnikastikeses otsingu tegemisel.</translation> @@ -3369,10 +3374,10 @@ <translation id="6237816943013845465">Võimaldab kohandada ekraani eraldusvõimet</translation> <translation id="6238923052227198598">Säilita viimane märge lukustuskuval</translation> <translation id="6239558157302047471">Laadi &raam uuesti</translation> +<translation id="6240004034869232531">Desinstallimine …</translation> <translation id="6241530762627360640">Juurdepääs teie süsteemiga seotud Bluetoothi seadmete teabele ja läheduses olevate Bluetoothi seadmete tuvastamine.</translation> <translation id="6243280677745499710">Praegu määratud</translation> <translation id="6243774244933267674">Server ei ole saadaval</translation> -<translation id="6246413617632217567">Jälgitavat kasutajat ei saanud importida. Kontrollige kõvakettaruumi ja lube ning proovige uuesti.</translation> <translation id="6247708409970142803"><ph name="PERCENTAGE" />%</translation> <translation id="6247802389331535091">Süsteem: <ph name="ARC_PROCESS_NAME" /></translation> <translation id="624789221780392884">Värskendus on valmis</translation> @@ -3571,7 +3576,6 @@ <translation id="654039047105555694"><ph name="BEGIN_BOLD" />Märkus.<ph name="END_BOLD" /> Lubage see ainult siis, kui teate, mida teete, või kui teil paluti seda teha, sest andmete kogumine võib toimivust vähendada.</translation> <translation id="654233263479157500">Kasuta veebiteenust navigeerimistõrgete lahendamisele kaasaaitamiseks</translation> <translation id="6544215763872433504">Google'i loodud veebibrauser teie jaoks</translation> -<translation id="6545325945815270297">Hallake oma sünkroonitud andmeid ja seadmeid <ph name="BEGIN_LINK" />Chrome'i juhtpaneelil<ph name="END_LINK" />.</translation> <translation id="6545665334409411530">Kordussagedus</translation> <translation id="6545834809683560467">Kasuta ennustusteenust, mis aitab lõpetada otsingud, ja URL-e, mis sisestatakse aadressiribale või rakenduste käivitaja otsingukasti</translation> <translation id="6546686722964485737">WiMAX-i võrguga liitumine</translation> @@ -3586,7 +3590,6 @@ <translation id="6555810572223193255">Puhastamine ei ole praegu saadaval</translation> <translation id="6556866813142980365">Tee uuesti</translation> <translation id="6558280019477628686">Ilmnes viga. Mõnda üksust ei pruugitud kustutada.</translation> -<translation id="6559580823502247193">(on juba selles seadmes)</translation> <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="656398493051028875">Faili „<ph name="FILENAME" />” kustutamine ...</translation> @@ -3608,6 +3611,7 @@ <translation id="6596745167571172521">Suurtäheluku keelamine</translation> <translation id="6596816719288285829">IP-aadress</translation> <translation id="6597017209724497268">Näidised</translation> +<translation id="6597332018579308636">Juurdepääsu lubamine</translation> <translation id="659934686219830168">Sünkroonimine algab siis, kui lehelt lahkute</translation> <translation id="6602353599068390226">akna teisaldamine teisele ekraanile</translation> <translation id="6602956230557165253">Kasutage navigeerimiseks vasak- ja paremnooleklahve.</translation> @@ -3674,6 +3678,7 @@ <translation id="6690751852586194791">Valige jälgitav kasutaja, kes seadmes lisada.</translation> <translation id="6691331417640343772">Sünkroonitud andmete haldamine teenuses Google Dashboard</translation> <translation id="6691936601825168937">&Edasi</translation> +<translation id="6697492270171225480">Kui lehte ei leita, kuvatakse sarnaste lehtede soovitusi</translation> <translation id="6698810901424468597">Andmete lugemine ja muutmine veebisaidil <ph name="WEBSITE_1" /> ja <ph name="WEBSITE_2" /></translation> <translation id="6700480081846086223">Kanna üle host <ph name="HOST_NAME" /></translation> <translation id="6701535245008341853">Profiili ei õnnestunud hankida.</translation> @@ -3781,7 +3786,6 @@ <translation id="6862635236584086457">Kõik sellesse kausta salvestatud failid varundatakse võrgus automaatselt</translation> <translation id="6865313869410766144">Automaattäitmise vormiandmed</translation> <translation id="686664946474413495">Värvitemperatuur</translation> -<translation id="6867678160199975333">Aktiveeri <ph name="NEW_PROFILE_NAME" /></translation> <translation id="6870888490422746447">Valige rakendus, mille kaudu jagada:</translation> <translation id="6871644448911473373">OCSP vastaja: <ph name="LOCATION" /></translation> <translation id="6872781471649843364">Server lükkas sisestatud parooli tagasi.</translation> @@ -3875,7 +3879,6 @@ <translation id="7018275672629230621">Sirvimisajaloo lugemine ja muutmine</translation> <translation id="7019805045859631636">Kiire</translation> <translation id="7022562585984256452">Teie avaleht on määratud.</translation> -<translation id="7025036625303002400">Näib, et selle nimega jälgitav kasutaja on juba olemas.</translation> <translation id="7025190659207909717">Mobiilse andmesideteenuse haldus</translation> <translation id="7025325401470358758">Järgmine paan</translation> <translation id="7027125358315426638">Andmebaasi nimi:</translation> @@ -3924,7 +3927,7 @@ <translation id="7092106376816104">Hüpikute erandid</translation> <translation id="7093434536568905704">GTK+</translation> <translation id="7093866338626856921">Vaheta andmeid seadmetega <ph name="HOSTNAMES" /></translation> -<translation id="7096108453481049031">Jälgitavat kasutajat ei saanud importida. Kontrollige võrguühendust ja proovige hiljem uuesti.</translation> +<translation id="7096406577040705016">Täisekraani luubi sisse-/väljalülitamine</translation> <translation id="7098447629416471489">Muud salvestatud otsingumootorid kuvatakse siin</translation> <translation id="7099337801055912064">Suurt PPD-d ei saa laadida. Maksimaalne suurus on 250 kB.</translation> <translation id="7100897339030255923">Valitud on <ph name="COUNT" /> üksust</translation> @@ -3971,7 +3974,6 @@ <translation id="7168109975831002660">Fondi miinimumsuurus</translation> <translation id="7170041865419449892">Vahemikust väljas</translation> <translation id="7171559745792467651">Installige rakendusi muudest seadmetest</translation> -<translation id="7173917244679555">Näib, et haldate juba selle nimega kasutajat. Kas soovisite <ph name="BEGIN_LINK" />importida kasutaja <ph name="PROFILE_NAME" /><ph name="END_LINK" /> sellesse seadmesse?</translation> <translation id="7175037578838465313">Võrgu <ph name="NAME" /> seadistamine</translation> <translation id="7175353351958621980">Laaditud:</translation> <translation id="7180611975245234373">Värskenda</translation> @@ -4143,7 +4145,6 @@ <translation id="7444726222535375658">Jätka rakenduses Hangouts Meet</translation> <translation id="7444983668544353857">Keela <ph name="NETWORKDEVICE" /></translation> <translation id="7445682342344043969">Hüpikud on blokeeritud</translation> -<translation id="744859430125590922">Hallake ja vaadake veebisaite, mida see inimene külastab kontoga <ph name="CUSTODIAN_EMAIL" />.</translation> <translation id="7453008956351770337">Kui valite selle printeri, annate järgmisele laiendile loa printerile juurde pääseda.</translation> <translation id="7453467225369441013">Logib teid enamikult saitidelt välja. Google'i kontolt teid välja ei logita.</translation> <translation id="7456142309650173560">arendaja</translation> @@ -4317,7 +4318,6 @@ <translation id="7717845620320228976">Otsi värskendusi</translation> <translation id="7719367874908701697">Lehe suum</translation> <translation id="771953673318695590">Kvaliteedikontroll</translation> -<translation id="7720375555307821262">Selle inimese jälgimiseks <ph name="BEGIN_LINK" />logige Chrome'i sisse<ph name="END_LINK" />.</translation> <translation id="7721179060400456005">Luba kuva laiendada üle mitme ekraani</translation> <translation id="7722040605881499779">Värskendamiseks vajalik: <ph name="NECESSARY_SPACE" /></translation> <translation id="7724603315864178912">Lõika</translation> @@ -4389,6 +4389,24 @@ <ph name="LINE_BREAK2" /> Valige vähem fotosid.</translation> <translation id="782590969421016895">Kasuta praegusi lehti</translation> +<translation id="7826790948326204519"><ph name="BEGIN_H3" />Silumisfunktsioonid<ph name="END_H3" /> + <ph name="BR" /> + Teil on võimalik lubada Chrome OS-i seadmes silumisfunktsioonid, et installida ja testida seadmes kohandatud koodi. See võimaldab teil teha järgmist.<ph name="BR" /> + <ph name="BEGIN_LIST" /> + <ph name="LIST_ITEM" />Eemaldada kinnituse rootfs, mis võimaldab muuta OS-i faile. + <ph name="LIST_ITEM" />Lubada seadmele SSH-juurdepääsu, kasutades standardseid testvõtmeid, mis võimaldab kasutada seadmele juurdepääsu saamiseks selliseid tööriistu nagu <ph name="BEGIN_CODE" />„cros flash”<ph name="END_CODE" />. + <ph name="LIST_ITEM" />Lubada käivitamise USB-lt, mis võimaldab installida OS-kujutise USB-kettalt. + <ph name="LIST_ITEM" />Määrata nii arendaja kui ka süsteemi juursisselogimisparooli kohandatud väärtusele, et kasutada seadmesse käsitsi pääsemiseks SSH-d + <ph name="END_LIST" /> + <ph name="BR" /> + Kui see on lubatud, jäävad enamik silumisfunktsioone ettevõtte hallatud seadmes lubatuks isegi pärast Powerwashi kasutamist või andmete kustutamist. Silumisfunktsioonide täielikuks keelamiseks tehke Chrome OS-i taastamisprotsessi toimingud (https://support.google.com/chromebook/answer/1080595). + <ph name="BR" /> + <ph name="BR" /> + Lisateavet silumisfunktsioonide kohta leiate siit:<ph name="BR" /> + https://www.chromium.org/chromium-os/how-tos-and-troubleshooting/debugging-features + <ph name="BR" /> + <ph name="BR" /> + <ph name="BEGIN_BOLD" />Märkus.<ph name="END_BOLD" /> Protsessi käigus süsteem taaskäivitatakse.</translation> <translation id="7829298379596169484">Juurdepääs helisisendile</translation> <translation id="7831491651892296503">Viga võrgu seadistamisel</translation> <translation id="7831754656372780761"><ph name="TAB_TITLE" /> <ph name="EMOJI_MUTING" /></translation> @@ -4453,6 +4471,7 @@ <translation id="7912080627461681647">Teie parool serveris on muutunud. Logige välja ja seejärel uuesti sisse.</translation> <translation id="7912883689016444961">Seadista mobiilsidevõrk</translation> <translation id="7915471803647590281">Teatage meile enne tagasiside saatmist, mis toimub.</translation> +<translation id="7916556741383518510">Klõpsamisel</translation> <translation id="792514962475806987">Dokitud luubi suumitase:</translation> <translation id="7925247922861151263">AAA kontrollimine nurjus</translation> <translation id="7925285046818567682"><ph name="HOST_NAME" /> vastuse ootel...</translation> @@ -4493,6 +4512,7 @@ <translation id="7978412674231730200">Privaatvõti</translation> <translation id="7979036127916589816">Sünkroonimise viga</translation> <translation id="7980084013673500153">Vara ID: <ph name="ASSET_ID" /></translation> +<translation id="7981313251711023384">Eellaaditakse lehti kiiremaks sirvimiseks ja otsimiseks</translation> <translation id="7982083145464587921">Selle vea parandamiseks taaskäivitage seade.</translation> <translation id="7982283708762922719">Kõrgus</translation> <translation id="7982789257301363584">Võrk</translation> @@ -4899,6 +4919,7 @@ <translation id="8651585100578802546">Sundlaadi see leht uuesti</translation> <translation id="8652400352452647993">Viga laienduse ettevalmistamisel</translation> <translation id="8652487083013326477">lehtede vahemiku raadionupp</translation> +<translation id="8653292045957015650">Dokitud luubi sisse-/väljalülitamine</translation> <translation id="8654151524613148204">Kahjuks on fail teie arvuti jaoks liiga suur.</translation> <translation id="8655295600908251630">Kanal</translation> <translation id="8655319619291175901">Vabandust! Midagi läks valesti.</translation> @@ -4990,6 +5011,7 @@ <translation id="8757803915342932642">Seade Google'i pilvseadmetes</translation> <translation id="8759408218731716181">Mitmesse kontosse sisselogimist ei saa häälestada</translation> <translation id="8759753423332885148">Lisateave.</translation> +<translation id="8762207669047572135">Juurdepääsu lubamine</translation> <translation id="8767621466733104912">Värskenda Chrome'i automaatselt kõikide kasutajate jaoks</translation> <translation id="8770406935328356739">Laienduse juurkataloog</translation> <translation id="8770507190024617908">Halda inimesi</translation> @@ -5119,7 +5141,9 @@ <translation id="8976520271376534479">Flash blokeeriti sellel lehel.</translation> <translation id="8977811652087512276">Sobimatu parool või rikutud fail</translation> <translation id="8978154919215542464">Sees – sünkrooni kõik</translation> +<translation id="897939795688207351">Saidil <ph name="ORIGIN" /></translation> <translation id="8980951173413349704"><ph name="WINDOW_TITLE" /> – jooksis kokku</translation> +<translation id="8983677657449185470">Aidake ohutut sirvimist paremaks muuta</translation> <translation id="8986362086234534611">Unusta</translation> <translation id="8986494364107987395">Saada kasutusstatistika ja krahhiaruanded automaatselt Google'ile</translation> <translation id="8987927404178983737">kuu</translation> @@ -5128,6 +5152,7 @@ <translation id="8995603266996330174">Haldaja: <ph name="DOMAIN" /></translation> <translation id="8996526648899750015">Konto lisamine ...</translation> <translation id="8997135628821231"><ph name="ISSUED_BY" /> [<ph name="ISSUED_TO" />] (<ph name="DEVICE" />)</translation> +<translation id="8998788483361403036">Kettakujutise loomine.</translation> <translation id="9003647077635673607">Luba kõikidel veebisaitidel</translation> <translation id="9003677638446136377">Kontrolli uuesti</translation> <translation id="9003704114456258138">Sagedus</translation> @@ -5148,7 +5173,6 @@ <translation id="9024331582947483881">täisekraan</translation> <translation id="9025098623496448965">Olgu, vii mind tagasi sisselogimisekraanile</translation> <translation id="9026731007018893674">Allalaaditud fail</translation> -<translation id="9027146684281895941">Jälgige seda isikut, et saaksite oma Google'i kontol juhtida ja vaadata tema külastatavaid veebisaite.</translation> <translation id="9027459031423301635">Ava &link uuel vahelehel</translation> <translation id="9027603907212475920">Seadista sünkroonimine...</translation> <translation id="9030515284705930323">Organisatsioon pole Google Play poodi teie kontol lubanud. Lisateabe saamiseks võtke ühendust oma administraatoriga.</translation> @@ -5164,6 +5188,7 @@ <translation id="9042893549633094279">Privaatsus ja turvalisus</translation> <translation id="904451693890288097">Sisestage seadme „<ph name="DEVICE_NAME" />” pääsuvõti:</translation> <translation id="9044646465488564462">Võrguga ühenduse loomine ebaõnnestus: <ph name="DETAILS" /></translation> +<translation id="9045430190527754450">Saadab Google'ile teie soovitud lehe veebiaadressi.</translation> <translation id="9046895021617826162">Ühendamine nurjus</translation> <translation id="9050666287014529139">Parool</translation> <translation id="9052208328806230490">Olete oma printerid registreerinud rakenduse <ph name="CLOUD_PRINT_NAME" /> abil kontot <ph name="EMAIL" /> kasutades</translation>
diff --git a/chrome/app/resources/generated_resources_fa.xtb b/chrome/app/resources/generated_resources_fa.xtb index c5230dc..de6fc9df 100644 --- a/chrome/app/resources/generated_resources_fa.xtb +++ b/chrome/app/resources/generated_resources_fa.xtb
@@ -42,7 +42,6 @@ <translation id="1056898198331236512">اخطار</translation> <translation id="1058262162121953039">PUK</translation> <translation id="1062407476771304334">جایگزینی</translation> -<translation id="1062866675591297858">کاربران نظارتشدهتان را از طریق <ph name="BEGIN_LINK" />داشبورد کاربران نظارتشده<ph name="END_LINK" /> مدیریت کنید.</translation> <translation id="1064835277883315402">پیوستن به شبکه خصوصی</translation> <translation id="1064912851688322329">قطع ارتباط حساب Google شما</translation> <translation id="1067048845568873861">ایجاد شد</translation> @@ -65,7 +64,6 @@ <translation id="1091767800771861448">برای رد شدن، ESCAPE را فشار دهید (فقط ساختهای غیررسمی).</translation> <translation id="1093457606523402488">شبکههای قابل مشاهده:</translation> <translation id="1094607894174825014">عملیات خواندن یا نوشتن با فاصله نامعتبری در این دستگاه درخواست شد: «<ph name="DEVICE_NAME" />».</translation> -<translation id="1097507499312291972">برای کنترل و مشاهده وبسایتهایی که این شخص بازدید میکند، <ph name="BEGIN_SIGN_IN_LINK" />وارد سیستم شوید<ph name="END_SIGN_IN_LINK" />.</translation> <translation id="109758035718544977">باصدا کردن سایتها</translation> <translation id="1097658378307015415">قبل از ورود به سیستم، لطفاً جهت فعال کردن شبکه <ph name="NETWORK_ID" />، بهعنوان مهمان وارد شوید</translation> <translation id="1103523840287552314"><ph name="LANGUAGE" /> همیشه ترجمه شود</translation> @@ -244,7 +242,6 @@ <translation id="1361655923249334273">استفاده نشده</translation> <translation id="1363028406613469049">تراک</translation> <translation id="1367951781824006909">انتخاب یک فایل</translation> -<translation id="136802136832547685">کاربر تحتنظارتی برای افزودن به این دستگاه وجود ندارد.</translation> <translation id="1368265273904755308">گزارش مشکل</translation> <translation id="1370646789215800222">شخص حذف شود؟</translation> <translation id="1372681413396468867">{NUM_ITEMS,plural, =1{۱ مورد برای برداشتن}one{# مورد برای برداشتن}other{# مورد برای برداشتن}}</translation> @@ -469,7 +466,6 @@ <translation id="1692799361700686467">کوکیهای چند سایت مجاز است.</translation> <translation id="169515659049020177">تبدیل</translation> <translation id="1698122934742150150">فقط جلسه ناشناس کنونی</translation> -<translation id="1700199471143028312">سرپرست سیستم به شما اجازه ایجاد کاربران تحت نظارت را نمیدهد.</translation> <translation id="1701062906490865540">حذف این شخص</translation> <translation id="1706586824377653884">افزودهشده توسط سرپرست سیستم</translation> <translation id="1706625117072057435">سطوح بزرگنمایی</translation> @@ -1037,7 +1033,6 @@ <translation id="2604255671529671813">خطای اتصال شبکه</translation> <translation id="2606246518223360146">دادههای پیوند</translation> <translation id="2607101320794533334">اطلاعات کلید عمومی موضوع</translation> -<translation id="2607459012323956820">تنظیمات و سابقه مرور این کاربر تحت نظارت ممکن است همچنان برای مدیر در نشانی <ph name="BEGIN_LINK" /><ph name="DISPLAY_LINK" /><ph name="END_LINK" /> قابلمشاهده باشد.</translation> <translation id="2608770217409477136">استفاده از تنظیمات پیشفرض</translation> <translation id="2609896558069604090">ایجاد میانبرها...</translation> <translation id="2610157865375787051">خواب</translation> @@ -1280,7 +1275,6 @@ <translation id="2951247061394563839">پنجره مرکزی</translation> <translation id="2956763290572484660">کوکیهای <ph name="COOKIES" /></translation> <translation id="2958721676848865875">هشدار در مورد بستهبندی افزونه</translation> -<translation id="2961043351165706615">برنامههای Linux که نصب کردهاید از این Chromebook حذف میشود.</translation> <translation id="2961090598421146107"><ph name="CERTIFICATE_NAME" /> (تمدید امکانپذیر است)</translation> <translation id="2961695502793809356">برای رفتن به جلو کلیک کنید، برای دیدن سابقه نگه دارید</translation> <translation id="2963151496262057773">این افزایه جواب نمیدهد: <ph name="PLUGIN_NAME" />آیا میخواهید متوقف شود؟</translation> @@ -1332,15 +1326,6 @@ <translation id="3022978424994383087">متوجه نشدم.</translation> <translation id="3024374909719388945">استفاده از ساعت ۲۴ ساعته</translation> <translation id="302781076327338683">تازهسازی دور زدن حافظه پنهان</translation> -<translation id="3030243755303701754">کاربر تحت نظارت میتواند تحت هدایت شما وب را مرور کنند. بهعنوان مدیر کاربر تحت نظارت در Chrome، میتوانید: - - • وبسایتهای خاصی را مجاز کنید یا آنها را منع کنید، - • وبسایتهایی را که کاربر تحت نظارت دیدن کرده است مرور کنید و - • تنظیمات دیگر را مدیریت کنید. - -با ایجاد کاربر تحت نظارت، حساب Google ایجاد نمیشود و با «همگامسازی Chrome» نشانکها، سابقه مرور و سایر تنظیمات ترجیحی آن کاربر به دستگاههای دیگر منتقل نمیشود. بعد از ایجاد کاربر تحت نظارت جدید، میتوانید در <ph name="BEGIN_MANAGE_LINK" /><ph name="DISPLAY_LINK" /><ph name="END_MANAGE_LINK" />، تنظیمات او را در هر زمانی و از هر دستگاهی مدیریت کنید. - -برای اطلاعات بیشتر، از <ph name="BEGIN_LINK" />مرکز راهنمایی<ph name="END_LINK" /> دیدن کنید.</translation> <translation id="3031417829280473749">مأمور X</translation> <translation id="3031557471081358569">مواردی را برای وارد کردن انتخاب کنید:</translation> <translation id="3031601332414921114">ازسرگیری چاپ</translation> @@ -1381,7 +1366,6 @@ <translation id="3085412380278336437">سایت میتواند از دوربینتان استفاده کند</translation> <translation id="3085752524577180175">میزبان SOCKS</translation> <translation id="3088325635286126843">&تغییرنام...</translation> -<translation id="3089231390674410424">اوه! بهنظر میرسد مشکلی در اعتبارنامه شما وجود دارد. لطفاً مطمئن شوید بهدرستی به سیستم وارد شدهاید و دوباره امتحان کنید.</translation> <translation id="3090193911106258841">در حال دسترسی به ورودی صوتی و ویدئویی</translation> <translation id="3090819949319990166">فایل خارجی crx در <ph name="TEMP_CRX_FILE" /> کپی نمیشود.</translation> <translation id="3090871774332213558">«<ph name="DEVICE_NAME" />» مرتبط شد</translation> @@ -1396,7 +1380,6 @@ <translation id="3121793941267913344">این دستگاه <ph name="IDS_SHORT_PRODUCT_NAME" /> بازنشانی شود</translation> <translation id="3122464029669770682">CPU</translation> <translation id="3122496702278727796">ایجاد دایرکتوری داده ناموفق بود</translation> -<translation id="3123569374670379335">(نظارت شده)</translation> <translation id="3124111068741548686">کنترلهای کاربر</translation> <translation id="3126026824346185272">Ctrl</translation> <translation id="3127156390846601284">این کار باعث حذف دادههای ذخیرهشده روی دستگاهتان برای همه سایتهای نشاندادهشده میشود. میخواهید ادامه دهید؟</translation> @@ -1431,8 +1414,6 @@ <translation id="3160842278951476457"><ph name="ISSUED_BY" /> [<ph name="ISSUED_TO" />] (پشتیبانگیریشده در سختافزار)</translation> <translation id="316125635462764134">حذف برنامه</translation> <translation id="3161522574479303604">همه زبانها</translation> -<translation id="316307797510303346">وبسایتهایی را که این شخص بازدید میکند از <ph name="CUSTODIAN_EMAIL" /> کنترل و مشاهده کنید. - جزئیات ورود به سیستم حسابتان قدیمی است.</translation> <translation id="3165390001037658081">برخی شرکتهای مخابراتی ممکن است این قابلیت را مسدود کنند.</translation> <translation id="316854673539778496">برای اینکه همه افزونههایتان را در همه دستگاهها دریافت کنید، به سیستم وارد شوید و همگامسازی را روشن کنید.</translation> <translation id="3170072451822350649">همچنین میتوانید از ورود به سیستم صرفنظر کرده، <ph name="LINK_START" />به عنوان مهمان مرور کنید<ph name="LINK_END" />.</translation> @@ -1465,7 +1446,6 @@ <translation id="3229922550070982305">پخش / مکث</translation> <translation id="3232318083971127729">مقدار:</translation> <translation id="3236289833370040187">مالکیت به <ph name="DESTINATION_DOMAIN" /> منتقل میشود.</translation> -<translation id="3237784613213365159"><ph name="NEW_PROFILE_NAME" /> اکنون یک کاربر تحت نظارت است</translation> <translation id="323803881985677942">باز کردن گزینههای افزونه</translation> <translation id="3241680850019875542">دایرکتوری ریشه برنامهٔ افزودنی را برای فشرده کردن انتخاب کنید. همچنین برای بهروزرسانی برنامهٔ افزودنی، فایل کلید خصوصی را برای استفاده مجدد انتخاب کنید.</translation> <translation id="3242765319725186192">کلید از قبل مشترک شده:</translation> @@ -1697,7 +1677,6 @@ <translation id="3584169441612580296">خواندن و تغییر عکسها، موسیقی، و رسانههای دیگر از رایانهتان</translation> <translation id="3587482841069643663">همه</translation> <translation id="358796204584394954">برای مرتبط کردن، این کد را در «<ph name="DEVICE_NAME" />» تایپ کنید:</translation> -<translation id="3589532742556016615">این کار برنامهها یا محتوای موجود در دستگاههای دیگر را تحت تأثیر قرار نمیدهد.</translation> <translation id="3589766037099229847">محتوای ناامن مسدود شد</translation> <translation id="3590194807845837023">باز کردن قفل نمایه و راهاندازی مجدد</translation> <translation id="3592260987370335752">&بیشتر بیاموزید</translation> @@ -1831,7 +1810,6 @@ <translation id="3778152852029592020">بارگیری لغو شد.</translation> <translation id="3778740492972734840">ابزارهای &برنامه نویس</translation> <translation id="3778868487658107119">از آن سؤال بپرسید. بگویید کاری انجام دهد. این Google شخصی شما است و همیشه برای کمک آماده است.</translation> -<translation id="3780663724044634171">حسابی برای مدیریت کاربر تحت نظارت انتخاب کنید.</translation> <translation id="378312418865624974">خواندن شناسه بینظیر در این رایانه</translation> <translation id="3783640748446814672">دگرساز</translation> <translation id="3785308913036335955">نمایش میانبر «برنامهها»</translation> @@ -2559,7 +2537,6 @@ <translation id="4964455510556214366">ترتیب</translation> <translation id="4964673849688379040">درحال بررسی...</translation> <translation id="4965808351167763748">مطمئن هستید میخواهید این دستگاه را برای اجرای Hangouts Meet راهاندازی کنید؟</translation> -<translation id="4967749818080339523">انتخاب حساب</translation> <translation id="496888482094675990">برنامه Files دسترسی سریع به فایلهایی را فراهم میکند که در Google Drive، فضای ذخیره خارجی یا دستگاه Chrome OS خودتان ذخیره کردهاید.</translation> <translation id="4969785127455456148">آلبوم</translation> <translation id="4971412780836297815">بعد از اتمام باز شود</translation> @@ -2746,7 +2723,6 @@ مهم نیست برای دستگاه شما چه اتفاقی میافتد، فایلهای شما در Google Drive بهصورت امن ذخیره میشوند.<ph name="MARKUP_6" /> فایلها را با دیگران <ph name="MARKUP_7" />اشتراکگذاری، ایجاد و مشارکت<ph name="MARKUP_8" /> کنید، همه این کارها را در یک مکان انجام دهید.<ph name="MARKUP_9" /></translation> -<translation id="5262401745672360397">ممکن است فایلهای همرسانیشده با برنامههای Linux نیز حذف شود.</translation> <translation id="5264148714798105376">ممکن است یک دقیقه یا بیشتر طول بکشد.</translation> <translation id="5264252276333215551">برای راهاندازی برنامهتان در حالت کیوسک لطفاً به اینترنت متصل شوید.</translation> <translation id="5265562206369321422">آفلاین برای مدت بیش از یک هفته</translation> @@ -3398,7 +3374,6 @@ <translation id="6241530762627360640">دسترسی به اطلاعات دستگاههای بلوتوث مرتبط شده با سیستم شما و کشف دستگاههای بلوتوث در این نزدیکی.</translation> <translation id="6243280677745499710">درحال حاضر تنظیم شده است</translation> <translation id="6243774244933267674">سرور در دسترس نیست</translation> -<translation id="6246413617632217567">کاربر تحتنظارت وارد نشد. لطفاً فضای دیسک سخت و مجوزهایتان را بررسی کرده، دوباره امتحان کنید.</translation> <translation id="6247708409970142803">%<ph name="PERCENTAGE" /></translation> <translation id="6247802389331535091">سیستم: <ph name="ARC_PROCESS_NAME" /></translation> <translation id="624789221780392884">بهروزرسانی آماده است</translation> @@ -3597,7 +3572,6 @@ <translation id="654039047105555694"><ph name="BEGIN_BOLD" />توجه:<ph name="END_BOLD" /> فقط درصورتی آن را فعال کنید که اطلاع دارید چه کاری انجام میدهید یا از شما خواسته شده باشد این کار را انجام دهید، زیرا جمعآوری دادهها ممکن است عملکرد را کاهش دهد.</translation> <translation id="654233263479157500">از یک سرویس وب برای کمک به برطرف کردن خطاهای پیمایش استفاده شود</translation> <translation id="6544215763872433504">مرورگر وب از Google، برای شما</translation> -<translation id="6545325945815270297">دادهها و دستگاههای همگامسازیشده خود را در <ph name="BEGIN_LINK" />داشبورد Chrome<ph name="END_LINK" /> مدیریت کنید.</translation> <translation id="6545665334409411530">سرعت تکرار</translation> <translation id="6545834809683560467">استفاده از یک سرویس پیشبینی برای کمک به تکمیل جستجوها و نشانیهای وب تایپ شده در نوار آدرس یا کادر جستجوی راهانداز برنامه</translation> <translation id="6546686722964485737">پیوستن به شبکه Wimax</translation> @@ -3612,7 +3586,6 @@ <translation id="6555810572223193255">پاکسازی فعلاً در دسترس نیست</translation> <translation id="6556866813142980365">انجام مجدد</translation> <translation id="6558280019477628686">خطایی روی داد. ممکن است بعضی از موارد حذف نشده باشند.</translation> -<translation id="6559580823502247193">(از قبل در این دستگاه وجود دارد)</translation> <translation id="6561726789132298588">Enter</translation> <translation id="656293578423618167">مسیر یا نام فایل خیلی طولانی است. لطفاً با یک نام کوتاهتر یا در محل دیگری ذخیره کنید.</translation> <translation id="656398493051028875">در حال حذف «<ph name="FILENAME" />»...</translation> @@ -3809,7 +3782,6 @@ <translation id="6862635236584086457">از همه فایلهای ذخیره شده در این پوشه بهصورت خودکار و آنلاین نسخهٔ پشتیبان تهیه میشود</translation> <translation id="6865313869410766144">تکمیل خودکار دادههای فرم</translation> <translation id="686664946474413495">دمای رنگ</translation> -<translation id="6867678160199975333">تغییر به <ph name="NEW_PROFILE_NAME" /></translation> <translation id="6870888490422746447">انتخاب برنامهای برای اشتراکگذاری در:</translation> <translation id="6871644448911473373">پاسخگوی OCSP: <ph name="LOCATION" /></translation> <translation id="6872781471649843364">سرور گذرواژهای را که وارد کردید نپذیرفته است.</translation> @@ -3903,7 +3875,6 @@ <translation id="7018275672629230621">خواندن و تغییر سابقه مرورگرتان</translation> <translation id="7019805045859631636">سریع</translation> <translation id="7022562585984256452">صفحه اصلی شما تنظیم شد.</translation> -<translation id="7025036625303002400">به نظر میرسد از قبل کاربر تحت نظارتی به این نام دارید.</translation> <translation id="7025190659207909717">مدیریت خدمات دادههای تلفن همراه</translation> <translation id="7025325401470358758">چارچوب بعدی</translation> <translation id="7027125358315426638">نام پایگاه داده:</translation> @@ -3952,7 +3923,6 @@ <translation id="7092106376816104">موارد استثنای پنجره بازشو</translation> <translation id="7093434536568905704">GTK+</translation> <translation id="7093866338626856921">تبادل داده با دستگاههایی با نامهای: <ph name="HOSTNAMES" /></translation> -<translation id="7096108453481049031">کاربر تحتنظارت وارد نشد. لطفاً اتصال شبکهتان را بررسی کرده، بعداً دوباره امتحان کنید.</translation> <translation id="7096406577040705016">روشن/خاموش کردن «ذرهبین تمامصفحه»</translation> <translation id="7098447629416471489">سایر موتورهای جستجوی ذخیرهشده در اینجا نشان داده خواهند شد</translation> <translation id="7099337801055912064">فایل PPD بزرگ است و بار نمیشود. حداکثر اندازه ۲۵۰ کیلوبایت است.</translation> @@ -4000,7 +3970,6 @@ <translation id="7168109975831002660">حداقل اندازه قلم</translation> <translation id="7170041865419449892">خارج از محدوده</translation> <translation id="7171559745792467651">نصب برنامهها از دستگاههای دیگرتان</translation> -<translation id="7173917244679555">ظاهراً درحال حاضر کاربری با این نام را مدیریت میکنید. میخواستید <ph name="BEGIN_LINK" /><ph name="PROFILE_NAME" /> را به این دستگاه وارد کنید<ph name="END_LINK" />؟</translation> <translation id="7175037578838465313">پیکربندی <ph name="NAME" /></translation> <translation id="7175353351958621980">بارگیری شده از:</translation> <translation id="7180611975245234373">بازخوانی</translation> @@ -4174,7 +4143,6 @@ <translation id="7444726222535375658">در ادامه، به Hangouts Meet بروید</translation> <translation id="7444983668544353857">غیر فعال کردن <ph name="NETWORKDEVICE" /></translation> <translation id="7445682342344043969">پنجرههای بازشو مسدود هستند</translation> -<translation id="744859430125590922">وبسایتهایی را کنترل و مشاهده کنید که این شخص از <ph name="CUSTODIAN_EMAIL" /> بازدید میکند.</translation> <translation id="7453008956351770337">با انتخاب این چاپگر، به افزونه زیر اجازه دسترسی به چاپگرتان را میدهید:</translation> <translation id="7453467225369441013">شما را از سیستم اکثر سایتها خارج میکند. از سیستم حساب Google خارج نمیشوید.</translation> <translation id="7456142309650173560">برنامهنویسان (dev)</translation> @@ -4348,7 +4316,6 @@ <translation id="7717845620320228976">بررسی بهروزرسانیها</translation> <translation id="7719367874908701697">بزرگنمایی صفحه</translation> <translation id="771953673318695590">QA</translation> -<translation id="7720375555307821262">برای نظارت بر این شخص، <ph name="BEGIN_LINK" />به سیستم Chrome وارد شوید<ph name="END_LINK" />.</translation> <translation id="7721179060400456005">اجازه دادن به پنجرهها برای پوشاندن کل نمایشگر</translation> <translation id="7722040605881499779">فضای لازم برای بهروزرسانی: <ph name="NECESSARY_SPACE" /></translation> <translation id="7724603315864178912">برش</translation> @@ -4421,7 +4388,7 @@ <translation id="782590969421016895">استفاده از صفحات فعلی</translation> <translation id="7826790948326204519"><ph name="BEGIN_H3" />ویژگیهای رفع اشکال<ph name="END_H3" /> <ph name="BR" /> - میتوانید برای نصب و آزمایش کد سفارسی در دستگاهتان، ویژگیهای رفع اشکال را در دستگاه دارای سیستمعامل Chrome فعال کنید. با این کار میتوانید:<ph name="BR" /> + میتوانید برای نصب و آزمایش کد سفارشی در دستگاهتان، ویژگیهای رفع اشکال را در دستگاه دارای سیستمعامل Chrome فعال کنید. با این کار میتوانید:<ph name="BR" /> <ph name="BEGIN_LIST" /> <ph name="LIST_ITEM" />تأیید rootfs را بردارید تا بتوانید فایلهای سیستمعامل را تغییر دهید <ph name="LIST_ITEM" />دسترسی SSH را به دستگاهی که از کلیدهای آزمایشی استاندارد استفاده میکند فعال کنید تا بتوانید از ابزارهایی مانند <ph name="BEGIN_CODE" />cros flash<ph name="END_CODE" /> برای دسترسی به دستگاه استفاده کنید @@ -5203,7 +5170,6 @@ <translation id="9024331582947483881">تمامصفحه</translation> <translation id="9025098623496448965">بسیار خوب، به صفحه ورود به سیستم بازگردانده شوم</translation> <translation id="9026731007018893674">بارگیری</translation> -<translation id="9027146684281895941">با نظارت بر این شخص، وبسایتهایی را که از حساب Google شما بازدید میکند، کنترل و مشاهده کنید.</translation> <translation id="9027459031423301635">باز کردن پیوند در &برگه جدید</translation> <translation id="9027603907212475920">راهاندازی همگامسازی...</translation> <translation id="9030515284705930323">سازمان شما فروشگاه Google Play را برای حسابتان فعال نکرده است. برای اطلاعات بیشتر با سرپرستتان تماس بگیرید.</translation> @@ -5363,7 +5329,6 @@ <translation id="98515147261107953">افقی</translation> <translation id="987897973846887088">تصویری دردسترس نیست</translation> <translation id="988978206646512040">عبارت عبور خالی مجاز نیست</translation> -<translation id="990310048453480215">حذف برنامههای Linux</translation> <translation id="992032470292211616">افزودنیها، برنامهها و طرحهای زمینه میتوانند به دستگاه شما آسیب برسانند. آیا مطمئن هستید که میخواهید ادامه دهید؟</translation> <translation id="992592832486024913">غیرفعال کردن ChromeVox (بازخورد گفتاری)</translation> <translation id="994289308992179865">&حلقه</translation>
diff --git a/chrome/app/resources/generated_resources_fi.xtb b/chrome/app/resources/generated_resources_fi.xtb index 8c8c7daa..21c9caa 100644 --- a/chrome/app/resources/generated_resources_fi.xtb +++ b/chrome/app/resources/generated_resources_fi.xtb
@@ -42,7 +42,6 @@ <translation id="1056898198331236512">Varoitus</translation> <translation id="1058262162121953039">PUK-koodi</translation> <translation id="1062407476771304334">Korvaa</translation> -<translation id="1062866675591297858">Hallinnoi valvottuja käyttäjiäsi <ph name="BEGIN_LINK" />valvottujen käyttäjien hallintapaneelin<ph name="END_LINK" /> kautta.</translation> <translation id="1064835277883315402">Liity VPN-verkkoon</translation> <translation id="1064912851688322329">Irrota Google-tilisi</translation> <translation id="1067048845568873861">Luotu</translation> @@ -65,7 +64,6 @@ <translation id="1091767800771861448">Ohita painamalla ESCAPE (vain epävirallisissa ohjelmistoversioissa).</translation> <translation id="1093457606523402488">Näkyvät verkot:</translation> <translation id="1094607894174825014">Lukemis- tai kirjoittamistoimintoa pyydettiin virheellisellä poikkeamalla laitteella <ph name="DEVICE_NAME" />.</translation> -<translation id="1097507499312291972"><ph name="BEGIN_SIGN_IN_LINK" />Kirjaudu sisään<ph name="END_SIGN_IN_LINK" />, jos haluat hallinnoida ja tarkastella tämän henkilön käyttämiä verkkosivustoja.</translation> <translation id="109758035718544977">Poista sivustojen mykistys</translation> <translation id="1097658378307015415">Aloita vierailijakäyttö ennen sisäänkirjautumista aktivoidaksesi verkon <ph name="NETWORK_ID" />.</translation> <translation id="1103523840287552314">Käännä <ph name="LANGUAGE" /> aina</translation> @@ -244,7 +242,6 @@ <translation id="1361655923249334273">Käyttämätön</translation> <translation id="1363028406613469049">Raita</translation> <translation id="1367951781824006909">Valitse tiedosto</translation> -<translation id="136802136832547685">Tälle laitteelle lisättäviä valvottuja käyttäjiä ei ole.</translation> <translation id="1368265273904755308">Ilmoita ongelmasta</translation> <translation id="1370646789215800222">Poistetaanko tämä henkilö?</translation> <translation id="1372681413396468867">{NUM_ITEMS,plural, =1{1 poistettava kohde}other{# poistettavaa kohdetta}}</translation> @@ -472,7 +469,6 @@ <translation id="1692799361700686467">Useiden sivustojen evästeet sallittu.</translation> <translation id="169515659049020177">Shift</translation> <translation id="1698122934742150150">Vain nykyinen incognito-istunto</translation> -<translation id="1700199471143028312">Järjestelmänvalvoja ei anna sinun luoda valvottuja käyttäjiä.</translation> <translation id="1701062906490865540">Poista tämä henkilö</translation> <translation id="1706586824377653884">Järjestelmänvalvojan lisäämä</translation> <translation id="1706625117072057435">Zoomaustasot</translation> @@ -1042,7 +1038,6 @@ <translation id="2604255671529671813">Verkkoyhteysvirhe</translation> <translation id="2606246518223360146">Yhdistä tiedot</translation> <translation id="2607101320794533334">Kohteen julkisen avaimen tiedot</translation> -<translation id="2607459012323956820">Ylläpitäjä saattaa silti nähdä tämän valvotun käyttäjän asetukset ja selaushistorian osoitteessa <ph name="BEGIN_LINK" /><ph name="DISPLAY_LINK" /><ph name="END_LINK" />.</translation> <translation id="2608770217409477136">Käytä oletusasetuksia</translation> <translation id="2609896558069604090">Luo pikakuvakkeita...</translation> <translation id="2610157865375787051">Siirtyminen virransäästöön</translation> @@ -1285,7 +1280,6 @@ <translation id="2951247061394563839">Keskitä ikkuna</translation> <translation id="2956763290572484660"><ph name="COOKIES" /> evästettä</translation> <translation id="2958721676848865875">Varoitus: pakattu laajennus</translation> -<translation id="2961043351165706615">Asentamasi Linux-sovellukset poistetaan tästä Chromebookista.</translation> <translation id="2961090598421146107"><ph name="CERTIFICATE_NAME" /> (voimassaoloaikaa pidennetty)</translation> <translation id="2961695502793809356">Siirry eteenpäin klikkaamalla, tarkastele historiaa pitämällä alhaalla</translation> <translation id="2963151496262057773">Seuraava laajennus ei vastaa: <ph name="PLUGIN_NAME" />. Haluatko pysäyttää sen?</translation> @@ -1337,15 +1331,6 @@ <translation id="3022978424994383087">En ymmärtänyt.</translation> <translation id="3024374909719388945">Käytä 24 tunnin kelloa</translation> <translation id="302781076327338683">Päivitä sivu ohittamalla välimuisti</translation> -<translation id="3030243755303701754">Valvottu käyttäjä voi käyttää internetiä sinun valvonnassasi. Valvotun Chrome-käyttäjän hallinnoijana voit - - • sallia tai estää tiettyjä verkkosivustoja - • tarkastella verkkosivustoja, joilla valvottu käyttäjä on vieraillut - • hallinnoida muita asetuksia. - -Valvotun käyttäjän luominen ei luo Google-tiliä, eikä hänen kirjanmerkkejään, selaushistoriaansa ja muita asetuksiaan siirretä muille laitteille Chromen synkronoinnin yhteydessä. Kun olet luonut uuden valvotun käyttäjän, voit hallinnoida hänen asetuksiaan milloin tahansa ja miltä tahansa laitteelta osoitteessa <ph name="BEGIN_MANAGE_LINK" /><ph name="DISPLAY_LINK" /><ph name="END_MANAGE_LINK" />. - -Lisätietoja saat <ph name="BEGIN_LINK" />ohjekeskuksestamme<ph name="END_LINK" />.</translation> <translation id="3031417829280473749">Agentti X</translation> <translation id="3031557471081358569">Valitse tuotavat kohteet:</translation> <translation id="3031601332414921114">Jatka tulostusta</translation> @@ -1386,7 +1371,6 @@ <translation id="3085412380278336437">Sivusto voi käyttää kameraasi</translation> <translation id="3085752524577180175">SOCKS-isäntä</translation> <translation id="3088325635286126843">Nimeä uudelleen...</translation> -<translation id="3089231390674410424">Kirjautumistiedoissasi on jokin ongelma. Varmista, että olet kirjautunut sisään oikein, ja yritä uudelleen.</translation> <translation id="3090193911106258841">Ääni- ja videotuloa käytetään</translation> <translation id="3090819949319990166">Ulkoista crx-tiedostoa ei voi kopioida kohteeseen <ph name="TEMP_CRX_FILE" />.</translation> <translation id="3090871774332213558">Laitepari muodostettu laitteen <ph name="DEVICE_NAME" /> kanssa</translation> @@ -1401,7 +1385,6 @@ <translation id="3121793941267913344">Palauta <ph name="IDS_SHORT_PRODUCT_NAME" />-laitteesi</translation> <translation id="3122464029669770682">Keskusyksikkö</translation> <translation id="3122496702278727796">Tietohakemiston luonti epäonnistui</translation> -<translation id="3123569374670379335">(Valvottu)</translation> <translation id="3124111068741548686">KÄYTTÄJÄ-kahvat</translation> <translation id="3126026824346185272">Ctrl</translation> <translation id="3127156390846601284">Tämä poistaa kaikki tiedot, jotka luettelossa olevat sivustot ovat tallentaneet laitteellesi. Haluatko jatkaa?</translation> @@ -1436,8 +1419,6 @@ <translation id="3160842278951476457"><ph name="ISSUED_BY" /> [<ph name="ISSUED_TO" />] (laitteiston tukema)</translation> <translation id="316125635462764134">Poista sovellus</translation> <translation id="3161522574479303604">Kaikki kielet</translation> -<translation id="316307797510303346">Hallinnoi ja tarkastele tämän henkilön verkkosivustovierailuja osoitteesta <ph name="CUSTODIAN_EMAIL" />. - Tilisi kirjautumistiedot ovat vanhentuneet.</translation> <translation id="3165390001037658081">Jotkin operaattorit saattavat estää tämän ominaisuuden.</translation> <translation id="316854673539778496">Kirjaudu sisään ja ota synkronointi käyttöön, niin voit käyttää laajennuksiasi kaikilla laitteilla.</translation> <translation id="3170072451822350649">Voit myös ohittaa sisäänkirjautumisen ja <ph name="LINK_START" />selata vierailijana<ph name="LINK_END" />.</translation> @@ -1470,7 +1451,6 @@ <translation id="3229922550070982305">toisto/tauko</translation> <translation id="3232318083971127729">Arvo:</translation> <translation id="3236289833370040187">Omistajuus siirtyy verkkotunnukselle <ph name="DESTINATION_DOMAIN" />.</translation> -<translation id="3237784613213365159"><ph name="NEW_PROFILE_NAME" /> on nyt valvottu käyttäjä</translation> <translation id="323803881985677942">Avaa laajennusasetukset.</translation> <translation id="3241680850019875542">Voit pakata laajennuksen valitsemalla sen juurihakemiston. Jos haluat päivittää laajennuksen, valitse myös yksityinen avaintiedosto, jotta laajennusta voidaan käyttää uudelleen.</translation> <translation id="3242765319725186192">Esijaettu avain:</translation> @@ -1702,7 +1682,6 @@ <translation id="3584169441612580296">Käyttää ja muokata valokuvia, musiikkia ja muuta tietokoneesi mediaa</translation> <translation id="3587482841069643663">Kaikki</translation> <translation id="358796204584394954">Kirjoita tämä laitteessa <ph name="DEVICE_NAME" /> oleva koodi, jos haluat muodostaa laiteparin:</translation> -<translation id="3589532742556016615">Tämä ei vaikuta muilla laitteilla oleviin sovelluksiin tai sisältöön.</translation> <translation id="3589766037099229847">Epäluotettava sisältö estetty</translation> <translation id="3590194807845837023">Poista profiilin lukitus ja käynnistä uudelleen</translation> <translation id="3592260987370335752">&Lisätietoja</translation> @@ -1836,7 +1815,6 @@ <translation id="3778152852029592020">Lataus peruutettiin.</translation> <translation id="3778740492972734840">&Kehittäjän työkalut</translation> <translation id="3778868487658107119">Voit kysyä siltä tietoa ja pyytää asioita – se on henkilökohtainen Googlesi ja aina valmiina auttamaan.</translation> -<translation id="3780663724044634171">Valitse valvottua käyttäjää hallinnoiva tili.</translation> <translation id="378312418865624974">Käyttää tämän tietokoneen yksilöllistä tunnusta</translation> <translation id="3783640748446814672">alt</translation> <translation id="3785308913036335955">Näytä Apps-oikopolku</translation> @@ -2561,7 +2539,6 @@ <translation id="4964455510556214366">Asettelu</translation> <translation id="4964673849688379040">Tarkistetaan…</translation> <translation id="4965808351167763748">Haluatko varmasti määrittää tämän laitteen käyttämään Hangouts Meetiä?</translation> -<translation id="4967749818080339523">Valitse tili.</translation> <translation id="496888482094675990">Tiedostot-sovelluksen kautta pääset käyttämään nopeasti Google Driveen, ulkoiseen tallennustilaan tai Chrome-käyttöjärjestelmälaitteellesi tallennettuja tiedostoja.</translation> <translation id="4969785127455456148">Albumi</translation> <translation id="4971412780836297815">Avaa kun valmis</translation> @@ -2748,7 +2725,6 @@ Vaikka laitteellesi sattuisi jotain, tiedostosi ovat turvassa Google Drivessa.<ph name="MARKUP_6" /> <ph name="MARKUP_7" />Jaa, luo ja muokkaa<ph name="MARKUP_8" /> tiedostoja yhdessä muiden käyttäjien kanssa.<ph name="MARKUP_9" /></translation> -<translation id="5262401745672360397">Linux-sovellusten kanssa jaetut tiedostot saatetaan myös poistaa.</translation> <translation id="5264148714798105376">Tämä voi kestää hetken.</translation> <translation id="5264252276333215551">Yhdistä internetiin, jos haluat käynnistää sovelluksesi kioskitilassa.</translation> <translation id="5265562206369321422">Offline-tilassa yli viikon</translation> @@ -3402,7 +3378,6 @@ <translation id="6241530762627360640">Käyttää järjestelmäsi kanssa laitepariksi liitettyjen Bluetooth-laitteiden tietoja ja löytää lähellä olevia Bluetooth-laitteita.</translation> <translation id="6243280677745499710">Nykyinen taustakuva</translation> <translation id="6243774244933267674">Palvelin ei ole käytettävissä</translation> -<translation id="6246413617632217567">Valvotun käyttäjän tuonti epäonnistui. Tarkista kiintolevytila ja käyttöluvat ja yritä sitten uudelleen.</translation> <translation id="6247708409970142803"><ph name="PERCENTAGE" /> %</translation> <translation id="6247802389331535091">Järjestelmä: <ph name="ARC_PROCESS_NAME" /></translation> <translation id="624789221780392884">Päivitys on valmis</translation> @@ -3601,7 +3576,6 @@ <translation id="654039047105555694"><ph name="BEGIN_BOLD" />Huomaa:<ph name="END_BOLD" /> Ota tämä asetus käyttöön vain, jos tiedät mitä olet tekemässä tai jos sinua on pyydetty ottamaan asetus käyttöön. Tietojen kerääminen voi heikentää tehokkuutta.</translation> <translation id="654233263479157500">Käytä verkkopalvelua navigointiongelmien ratkaisemiseen</translation> <translation id="6544215763872433504">Googlen verkkoselain, juuri sinulle</translation> -<translation id="6545325945815270297">Hallitse synkronoitavia tietoja ja laitteita <ph name="BEGIN_LINK" />Chromen hallintapaneelissa<ph name="END_LINK" />.</translation> <translation id="6545665334409411530">Toistonopeus</translation> <translation id="6545834809683560467">Käytä ennakointipalvelua, niin osoitepalkkiin tai sovelluksien käynnistysohjelman hakukenttään kirjoitetut hakulausekkeet ja URL-osoitteet täydennetään</translation> <translation id="6546686722964485737">Muodosta yhteys WiMAX-verkkoon</translation> @@ -3616,7 +3590,6 @@ <translation id="6555810572223193255">Poisto ei ole tällä hetkellä käytettävissä</translation> <translation id="6556866813142980365">Tee uudelleen</translation> <translation id="6558280019477628686">Tapahtui virhe. Kaikkia kohteita ei välttämättä poistettu.</translation> -<translation id="6559580823502247193">(on jo tässä laitteessa)</translation> <translation id="6561726789132298588">enter</translation> <translation id="656293578423618167">Tiedostonimi tai -polku on liian pitkä. Lyhennä nimeä tai tallenna muuhun sijaintiin.</translation> <translation id="656398493051028875">Poistetaan tiedostoa <ph name="FILENAME" />…</translation> @@ -3813,7 +3786,6 @@ <translation id="6862635236584086457">Kaikki tähän kansioon tallennetut tiedostot varmuuskopioidaan verkkoon automaattisesti</translation> <translation id="6865313869410766144">Automaattisesti täydennetyt lomaketiedot</translation> <translation id="686664946474413495">Värilämpötila</translation> -<translation id="6867678160199975333">Vaihda profiiliin <ph name="NEW_PROFILE_NAME" /></translation> <translation id="6870888490422746447">Valitse jakamisen kohdesovellus:</translation> <translation id="6871644448911473373">OCSP-vastaus: <ph name="LOCATION" /></translation> <translation id="6872781471649843364">Palvelin hylkäsi antamasi salasanan.</translation> @@ -3907,7 +3879,6 @@ <translation id="7018275672629230621">Lukea ja muokata selaushistoriaasi</translation> <translation id="7019805045859631636">Nopea</translation> <translation id="7022562585984256452">Etusivusi on asetettu.</translation> -<translation id="7025036625303002400">Sinulla on jo tämänniminen valvottu käyttäjä.</translation> <translation id="7025190659207909717">Mobiilitiedonsiirtopalvelun hallinta</translation> <translation id="7025325401470358758">Seuraava ruutu</translation> <translation id="7027125358315426638">Tietokannan nimi:</translation> @@ -3956,7 +3927,6 @@ <translation id="7092106376816104">Ponnahdusikkunapoikkeukset</translation> <translation id="7093434536568905704">GTK+</translation> <translation id="7093866338626856921">Vaihtaa tietoja isäntää <ph name="HOSTNAMES" /> käyttävien laitteiden kanssa.</translation> -<translation id="7096108453481049031">Valvotun käyttäjän tuonti epäonnistui. Tarkista verkkoyhteys ja yritä myöhemmin uudelleen.</translation> <translation id="7096406577040705016">Ota koko näytön suurennus käyttöön ja poista se käytöstä.</translation> <translation id="7098447629416471489">Tässä näytetään muut tallennetut hakukoneesi.</translation> <translation id="7099337801055912064">PPD on liian suuri ladattavaksi. Enimmäiskoko on 250 kt.</translation> @@ -4004,7 +3974,6 @@ <translation id="7168109975831002660">Kirjasimen vähimmäiskoko</translation> <translation id="7170041865419449892">Katvealueella</translation> <translation id="7171559745792467651">Asenna muilla laitteilla käyttämiäsi sovelluksia</translation> -<translation id="7173917244679555">Hallinnoit nähtävästi jo tämännimistä käyttäjää. Haluatko <ph name="BEGIN_LINK" />tuoda käyttäjän <ph name="PROFILE_NAME" /><ph name="END_LINK" /> tähän laitteeseen?</translation> <translation id="7175037578838465313">Määritä <ph name="NAME" /></translation> <translation id="7175353351958621980">Ladattu kohteesta:</translation> <translation id="7180611975245234373">Päivitä</translation> @@ -4175,7 +4144,6 @@ <translation id="7444726222535375658">Jatka Hangouts Meetiin</translation> <translation id="7444983668544353857">Poista <ph name="NETWORKDEVICE" /> käytöstä </translation> <translation id="7445682342344043969">Ponnahdusikkunat estetty</translation> -<translation id="744859430125590922">Hallinnoi ja tarkastele tämän henkilön verkkosivustovierailuja osoitteesta <ph name="CUSTODIAN_EMAIL" />.</translation> <translation id="7453008956351770337">Valitsemalla tämän tulostimen annat seuraavalle laajennukselle tulostimesi käyttöoikeuden:</translation> <translation id="7453467225369441013">Tämä kirjaa sinut ulos useimmilta sivustoilta. Sinua ei kirjata ulos Google-tililtäsi.</translation> <translation id="7456142309650173560">kehitys</translation> @@ -4349,7 +4317,6 @@ <translation id="7717845620320228976">Tarkista päivitykset</translation> <translation id="7719367874908701697">Sivun zoomaus</translation> <translation id="771953673318695590">Laadunvalvonta</translation> -<translation id="7720375555307821262"><ph name="BEGIN_LINK" />Kirjaudu Chromeen<ph name="END_LINK" />, niin voit valvoa tätä käyttäjää.</translation> <translation id="7721179060400456005">Salli ikkunoiden ulottua näytöltä toiselle</translation> <translation id="7722040605881499779">Päivitykseen tarvitaan <ph name="NECESSARY_SPACE" />.</translation> <translation id="7724603315864178912">Leikkaa</translation> @@ -5203,7 +5170,6 @@ <translation id="9024331582947483881">koko näyttö</translation> <translation id="9025098623496448965">OK, palaa takaisin kirjautumissivulle</translation> <translation id="9026731007018893674">lataus</translation> -<translation id="9027146684281895941">Kun valvot käyttäjää, voit hallita ja tarkastella tämän verkkosivustovierailuja Google-tililläsi.</translation> <translation id="9027459031423301635">Avaa linkki uudessa &välilehdessä</translation> <translation id="9027603907212475920">Ota synkronointi käyttöön...</translation> <translation id="9030515284705930323">Organisaatiosi ei ole sallinut tilillesi Google Play Kaupan käyttöä. Kysy lisätietoja järjestelmänvalvojaltasi.</translation> @@ -5363,7 +5329,6 @@ <translation id="98515147261107953">Vaakasuunta</translation> <translation id="987897973846887088">Kuvia ei ole saatavilla.</translation> <translation id="988978206646512040">Tunnuslause ei voi olla tyhjä.</translation> -<translation id="990310048453480215">Poista Linux-sovellukset</translation> <translation id="992032470292211616">Laajennukset, sovellukset ja teemat voivat vahingoittaa laitettasi. Haluatko varmasti jatkaa?</translation> <translation id="992592832486024913">Poista ChromeVox (äänipalaute) käytöstä</translation> <translation id="994289308992179865">Toista &jatkuvasti</translation>
diff --git a/chrome/app/resources/generated_resources_fil.xtb b/chrome/app/resources/generated_resources_fil.xtb index aa58f03..7c9458d 100644 --- a/chrome/app/resources/generated_resources_fil.xtb +++ b/chrome/app/resources/generated_resources_fil.xtb
@@ -42,7 +42,6 @@ <translation id="1056898198331236512">Babala</translation> <translation id="1058262162121953039">PUK</translation> <translation id="1062407476771304334">Palitan</translation> -<translation id="1062866675591297858">Pamahalaan ang iyong mga pinangangasiwaang user sa pamamagitan ng <ph name="BEGIN_LINK" />Dashboard ng Mga Pinangangasiwaang User<ph name="END_LINK" />.</translation> <translation id="1064835277883315402">Sumali sa pribadong network</translation> <translation id="1064912851688322329">Idiskonekta ang iyong Google Account</translation> <translation id="1067048845568873861">Ginawa</translation> @@ -65,7 +64,6 @@ <translation id="1091767800771861448">Pindutin ang ESCAPE upang lumaktaw (Mga hindi opisyal na build lamang).</translation> <translation id="1093457606523402488">Mga Nakikitang Network:</translation> <translation id="1094607894174825014">Ang read o write na operation ay hiniling nang may di-wastong offset sa: "<ph name="DEVICE_NAME" />".</translation> -<translation id="1097507499312291972"><ph name="BEGIN_SIGN_IN_LINK" />Mag-sign in<ph name="END_SIGN_IN_LINK" /> upang makontrol at matingnan ang mga website na binibisita ng taong ito.</translation> <translation id="109758035718544977">I-unmute ang Mga Site</translation> <translation id="1097658378307015415">Bago mag-sign in, mangyaring pumasok bilang Bisita upang i-activate ang network <ph name="NETWORK_ID" /></translation> <translation id="1103523840287552314">Palaging i-translate ang <ph name="LANGUAGE" /></translation> @@ -244,7 +242,6 @@ <translation id="1361655923249334273">Hindi nagamit</translation> <translation id="1363028406613469049">Track</translation> <translation id="1367951781824006909">Pumili ng isang file</translation> -<translation id="136802136832547685">Walang mga pinangangasiwaang user na idaragdag sa device na ito.</translation> <translation id="1368265273904755308">Mag-ulat ng isyu</translation> <translation id="1370646789215800222">Alisin ang tao?</translation> <translation id="1372681413396468867">{NUM_ITEMS,plural, =1{Aalisin ang 1 item}one{Aalisin ang # item}other{Aalisin ang # na item}}</translation> @@ -472,7 +469,6 @@ <translation id="1692799361700686467">Pinayagan ang cookies mula sa maraming site.</translation> <translation id="169515659049020177">Shift</translation> <translation id="1698122934742150150">Kasalukuyang incognito na session lang</translation> -<translation id="1700199471143028312">Hindi ka pinapayagan ng iyong administrator na gumawa ng mga pinangangasiwaang user.</translation> <translation id="1701062906490865540">Alisin ang taong ito</translation> <translation id="1706586824377653884">Idinagdag ng iyong administrator</translation> <translation id="1706625117072057435">Mga antas ng pag-zoom</translation> @@ -1041,7 +1037,6 @@ <translation id="2604255671529671813">Error sa koneksyon ng network</translation> <translation id="2606246518223360146">I-link ang Data</translation> <translation id="2607101320794533334">Impormasyon ng Pampublikong Key ng Paksa</translation> -<translation id="2607459012323956820">Maaari pa ring makita ng manager sa <ph name="BEGIN_LINK" /><ph name="DISPLAY_LINK" /><ph name="END_LINK" /> ang mga setting at history ng pagba-browse para sa pinangangasiwaang user na ito.</translation> <translation id="2608770217409477136">Gamitin ang default mga setting</translation> <translation id="2609896558069604090">Lumikha ng Mga Shortcut...</translation> <translation id="2610157865375787051">Sleep</translation> @@ -1284,7 +1279,6 @@ <translation id="2951247061394563839">Center window</translation> <translation id="2956763290572484660"><ph name="COOKIES" /> cookies</translation> <translation id="2958721676848865875">Babala sa extension ng pack</translation> -<translation id="2961043351165706615">Made-delete sa Chromebook ang mga app ng Linux na na-install mo</translation> <translation id="2961090598421146107"><ph name="CERTIFICATE_NAME" /> (ibinigay ang extension)</translation> <translation id="2961695502793809356">I-click upang sumulong, pindutin nang matagal upang makita ang history</translation> <translation id="2963151496262057773">Hindi tumutugon ang sumusunod na plugin: <ph name="PLUGIN_NAME" />Gusto mo bang ihinto ito?</translation> @@ -1336,15 +1330,6 @@ <translation id="3022978424994383087">Hindi iyon nakuha.</translation> <translation id="3024374909719388945">Gamitin ang 24-oras na orasan</translation> <translation id="302781076327338683">I-reload ang pag-bypass sa cache</translation> -<translation id="3030243755303701754">Sa tulong mo, mae-explore ng isang pinangangasiwaang user ang web. Bilang manager ng isang pinangangasiwaang user sa Chrome, maaari mong: - - • payagan o paghigpitan ang mga partikular na website, - • suriin ang mga website na binisita ng pinangangasiwaang user, at - • pamahalaan ang iba pang mga setting. - -Kapag gumawa ng pinangangasiwaang user, hindi ito gagawa ng Google Account, at hindi masi-sync ang mga bookmark, history ng pagba-browse at iba pang mga kagustuhan ng mga ito sa iba pang mga device gamit ang Chrome Sync. Pagkatapos mong gumawa ng bagong pinangangasiwaang user, maaari mo nang pamahalaan ang mga setting ng mga ito anumang oras, mula sa anumang device sa <ph name="BEGIN_MANAGE_LINK" /><ph name="DISPLAY_LINK" /><ph name="END_MANAGE_LINK" />. - -Para sa higit pang impormasyon, bisitahin ang aming <ph name="BEGIN_LINK" />Help Center<ph name="END_LINK" />.</translation> <translation id="3031417829280473749">Agent X</translation> <translation id="3031557471081358569">Pumili ng mga item na ii-import:</translation> <translation id="3031601332414921114">Ituloy ang pag-print</translation> @@ -1385,7 +1370,6 @@ <translation id="3085412380278336437">Maaaring gamitin ng site ang iyong camera</translation> <translation id="3085752524577180175">SOCKS Host</translation> <translation id="3088325635286126843">&Palitan ang pangalan...</translation> -<translation id="3089231390674410424">Mukhang may problema sa iyong mga kredensyal. Pakitiyak na naka-sign in ka nang maayos at subukang muli.</translation> <translation id="3090193911106258841">Ina-access ang input ng audio at video</translation> <translation id="3090819949319990166">Hindi makopya ang external na crx file sa <ph name="TEMP_CRX_FILE" />.</translation> <translation id="3090871774332213558">Napares na ang "<ph name="DEVICE_NAME" />"</translation> @@ -1400,7 +1384,6 @@ <translation id="3121793941267913344">I-reset ang <ph name="IDS_SHORT_PRODUCT_NAME" /> device na ito</translation> <translation id="3122464029669770682">CPU</translation> <translation id="3122496702278727796">Nabigo Sa Paglikha ng Direktoryo sa Data</translation> -<translation id="3123569374670379335">(Pinangangasiwaan)</translation> <translation id="3124111068741548686">Mga USER handle</translation> <translation id="3126026824346185272">Ctrl</translation> <translation id="3127156390846601284">Ide-delete nito ang anumang data na naimbak sa iyong device para sa lahat ng site na ipinakita. Gusto mo bang magpatuloy?</translation> @@ -1435,8 +1418,6 @@ <translation id="3160842278951476457"><ph name="ISSUED_BY" /> [<ph name="ISSUED_TO" />] (hardware-backed)</translation> <translation id="316125635462764134">Alisin ang app</translation> <translation id="3161522574479303604">Lahat ng wika</translation> -<translation id="316307797510303346">Kontrolin at tingnan ang mga website na binibisita ng taong ito mula kay <ph name="CUSTODIAN_EMAIL" />. - Luma na ang mga detalye sa pag-sign in ng iyong account.</translation> <translation id="3165390001037658081">Maaaring i-block ng ilang carrier ang feature na ito.</translation> <translation id="316854673539778496">Upang mailagay ang lahat ng iyong extension sa lahat ng device mo, mag-sign in at i-on ang pag-sync.</translation> <translation id="3170072451822350649">Maaari mo ring laktawan ang pag-sign in at <ph name="LINK_START" />mag-browse bilang Bisita<ph name="LINK_END" />.</translation> @@ -1469,7 +1450,6 @@ <translation id="3229922550070982305">i-play / i-pause</translation> <translation id="3232318083971127729">Halaga:</translation> <translation id="3236289833370040187">Ililipat ang pagmamay-ari sa <ph name="DESTINATION_DOMAIN" />.</translation> -<translation id="3237784613213365159">Si <ph name="NEW_PROFILE_NAME" /> ay isa na ngayong pinangangasiwaang user</translation> <translation id="323803881985677942">Buksan ang mga opsyon ng extension</translation> <translation id="3241680850019875542">Piliin ang pinagmulang direktoryo ng extension sa pack. Upang mai-update ang extension, piliin rin ang file ng private na key na muling gagamitin.</translation> <translation id="3242765319725186192">Pre-shared na key:</translation> @@ -1701,7 +1681,6 @@ <translation id="3584169441612580296">Basahin at baguhin ang mga larawan, musika at iba pang media sa iyong computer</translation> <translation id="3587482841069643663">Lahat</translation> <translation id="358796204584394954">I-type ang code na ito sa "<ph name="DEVICE_NAME" />" upang ipares:</translation> -<translation id="3589532742556016615">Hindi ito nakakaapekto sa mga app o content sa iba pang device.</translation> <translation id="3589766037099229847">Na-block ang hindi secure na content</translation> <translation id="3590194807845837023">I-unlock ang Profile at Ilunsad Muli</translation> <translation id="3592260987370335752">&Matuto nang higit pa</translation> @@ -1835,7 +1814,6 @@ <translation id="3778152852029592020">Kinansela ang pag-download.</translation> <translation id="3778740492972734840">Mga tool ng Nag-&develop</translation> <translation id="3778868487658107119">Tanungin ito. Utusan ito. Ito ang iyong personal na Google, laging handang tumulong.</translation> -<translation id="3780663724044634171">Pumili ng account upang mapamahalaan ang pinangangasiwaang user.</translation> <translation id="378312418865624974">Magbasa ng natatanging identifier para sa computer na ito</translation> <translation id="3783640748446814672">alt</translation> <translation id="3785308913036335955">Ipakita ang Shortcut ng Apps</translation> @@ -2563,7 +2541,6 @@ <translation id="4964455510556214366">Kaayusan</translation> <translation id="4964673849688379040">Sinusuri...</translation> <translation id="4965808351167763748">Sigurado ka bang gusto mong i-set up ang device na ito upang patakbuhin ang Hangouts Meet?</translation> -<translation id="4967749818080339523">Pumili ng isang account</translation> <translation id="496888482094675990">Nagbibigay ang Files app ng mabilisang access sa mga file na nai-save mo sa Google Drive, external na storage o sa iyong Chrome OS device.</translation> <translation id="4969785127455456148">Album</translation> <translation id="4971412780836297815">Buksan kapag tapos na</translation> @@ -2750,7 +2727,6 @@ Anuman ang mangyari sa iyong device, ligtas na nakaimbak ang iyong mga file sa Google Drive.<ph name="MARKUP_6" /> <ph name="MARKUP_7" />Magbahagi, gumawa at mag-collaborate<ph name="MARKUP_8" /> sa mga file kasama ng iba pa, lahat sa iisang lugar.<ph name="MARKUP_9" /></translation> -<translation id="5262401745672360397">Maaari ring ma-delete ang mga file na nakabahagi sa mga app ng Linux.</translation> <translation id="5264148714798105376">Maaari itong abutin nang isang minuto o higit pa.</translation> <translation id="5264252276333215551">Mangyaring kumonekta sa Internet upang ilunsad ang iyong app sa kiosk mode.</translation> <translation id="5265562206369321422">Offline nang mahigit sa isang linggo</translation> @@ -3402,7 +3378,6 @@ <translation id="6241530762627360640">Mag-access ng impormasyon tungkol sa mga Bluetooth device na nakapares sa iyong system at tumuklas ng mga kalapit na Bluetooth device.</translation> <translation id="6243280677745499710">Kasalukuyang nakatakda</translation> <translation id="6243774244933267674">Hindi available ang server</translation> -<translation id="6246413617632217567">Hindi ma-import ang pinangangasiwaang user. Pakitingnan ang espasyo sa iyong hard drive at mga pahintulot at subukang muli.</translation> <translation id="6247708409970142803"><ph name="PERCENTAGE" />%</translation> <translation id="6247802389331535091">System: <ph name="ARC_PROCESS_NAME" /></translation> <translation id="624789221780392884">Handa na ang pag-update</translation> @@ -3601,7 +3576,6 @@ <translation id="654039047105555694"><ph name="BEGIN_BOLD" />Tandaan:<ph name="END_BOLD" /> I-enable lang kung alam mo kung ano ang iyong ginagawa o kung hiniling kang gawin ito, dahil maaaring mabawasan ng pagkolekta ng data ang pagganap.</translation> <translation id="654233263479157500">Gumamit ng serbisyo sa web upang makatulong na malutas ang error sa pag-navigate</translation> <translation id="6544215763872433504">Ang web browser ng Google, para sa iyo</translation> -<translation id="6545325945815270297">Pamahalaan ang iyong naka-sync na data at mga device sa <ph name="BEGIN_LINK" />Chrome Dashboard<ph name="END_LINK" />.</translation> <translation id="6545665334409411530">Rate ng pag-uulit</translation> <translation id="6545834809683560467">Gumamit ng serbisyo sa paghula upang makatulong sa pagkumpleto ng mga paghahanap at URL na itina-type sa address bar o sa box para sa paghahanap ng app launcher</translation> <translation id="6546686722964485737">Sumali sa WiMAX network</translation> @@ -3616,7 +3590,6 @@ <translation id="6555810572223193255">Hindi available sa kasalukuyan ang pag-clean up</translation> <translation id="6556866813142980365">Redo</translation> <translation id="6558280019477628686">Nagka-error. Maaaring may ilang item na hindi na-delete.</translation> -<translation id="6559580823502247193">(nasa device na ito na)</translation> <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="656398493051028875">Tinatanggal ang "<ph name="FILENAME" />"...</translation> @@ -3813,7 +3786,6 @@ <translation id="6862635236584086457">Lahat ng file na na-save sa folder na ito ay awtomatikong na-back up online</translation> <translation id="6865313869410766144">Data ng form ng autofill</translation> <translation id="686664946474413495">Temperatura ng kulay</translation> -<translation id="6867678160199975333">Lumipat sa <ph name="NEW_PROFILE_NAME" /></translation> <translation id="6870888490422746447">Pumili ng app na pagbabahagian:</translation> <translation id="6871644448911473373">OCSP Responder: <ph name="LOCATION" /></translation> <translation id="6872781471649843364">Tinanggihan ng server ang password na inilagay mo.</translation> @@ -3907,7 +3879,6 @@ <translation id="7018275672629230621">Basahin at baguhin ang iyong history ng pagba-browse</translation> <translation id="7019805045859631636">Mabilis</translation> <translation id="7022562585984256452">Naitakda na ang iyong home page.</translation> -<translation id="7025036625303002400">Mukhang mayroon ka nang pinapangasiwaang user na may ganitong pangalan.</translation> <translation id="7025190659207909717">Pamamahala sa serbisyo ng data ng mobile</translation> <translation id="7025325401470358758">Susunod na pane</translation> <translation id="7027125358315426638">Pangalan ng database:</translation> @@ -3956,7 +3927,6 @@ <translation id="7092106376816104">Mga pagbubukod ng pop-up</translation> <translation id="7093434536568905704">GTK+</translation> <translation id="7093866338626856921">Makipagpalit ng data sa mga device na pinangalanang: <ph name="HOSTNAMES" /></translation> -<translation id="7096108453481049031">Hindi ma-import ang pinangangasiwaang user. Pakitingnan ang iyong koneksyon sa network at subukang muli sa ibang pagkakataon.</translation> <translation id="7096406577040705016">I-toggle ang Fullscreen na Magnifier</translation> <translation id="7098447629416471489">Lalabas dito ang iba pang na-save na search engine</translation> <translation id="7099337801055912064">Hindi makapag-load ng malaking PPD. 250kB ang maximum na laki.</translation> @@ -4004,7 +3974,6 @@ <translation id="7168109975831002660">Minimum na laki ng font</translation> <translation id="7170041865419449892">Wala sa sakop</translation> <translation id="7171559745792467651">Mag-install ng mga app mula sa iba mo pang device</translation> -<translation id="7173917244679555">Mukhang may pinapamahalaan ka nang user gamit ang pangalang iyan. Gusto mo bang <ph name="BEGIN_LINK" />i-import si <ph name="PROFILE_NAME" /><ph name="END_LINK" /> sa device na ito?</translation> <translation id="7175037578838465313">I-configure ang <ph name="NAME" /></translation> <translation id="7175353351958621980">Nag-load mula sa:</translation> <translation id="7180611975245234373">I-refresh</translation> @@ -4176,7 +4145,6 @@ <translation id="7444726222535375658">Magpatuloy sa Hangouts Meet</translation> <translation id="7444983668544353857">Huwag paganahin <ph name="NETWORKDEVICE" /></translation> <translation id="7445682342344043969">Naka-block ang mga pop-up</translation> -<translation id="744859430125590922">Kontrolin at tingnan ang mga website na binibisita ng taong ito mula sa <ph name="CUSTODIAN_EMAIL" />.</translation> <translation id="7453008956351770337">Sa pamamagitan ng pagpili sa printer na ito, binibigyan mo ng pahintulot ang sumusunod na extension upang i-access ang iyong printer:</translation> <translation id="7453467225369441013">Isa-sign out ka sa karamihan ng mga site. Hindi ka masa-sign out sa iyong Google Account.</translation> <translation id="7456142309650173560">dev</translation> @@ -4350,7 +4318,6 @@ <translation id="7717845620320228976">Tumingin ng mga update</translation> <translation id="7719367874908701697">Pag-zoom ng page</translation> <translation id="771953673318695590">QA</translation> -<translation id="7720375555307821262">Upang pangasiwaan ang taong ito, <ph name="BEGIN_LINK" />mag-sign in sa Chrome<ph name="END_LINK" />.</translation> <translation id="7721179060400456005">Payagan ang mga window na gumamit ng maraming display</translation> <translation id="7722040605881499779">Kinakailangan upang mag-update: <ph name="NECESSARY_SPACE" /></translation> <translation id="7724603315864178912">I-cut</translation> @@ -5207,7 +5174,6 @@ <translation id="9024331582947483881">buong screen</translation> <translation id="9025098623496448965">OK, Dalhin ako pabalik sa screen sa pag-sign-in</translation> <translation id="9026731007018893674">i-download</translation> -<translation id="9027146684281895941">Pangasiwaan ang taong ito mula sa iyong Google Account upang makontrol at makita ang mga website na binibisita niya.</translation> <translation id="9027459031423301635">Buksan ang Link sa Bagong &Tab</translation> <translation id="9027603907212475920">I-set up ang pag-sync....</translation> <translation id="9030515284705930323">Hindi na-enable ng iyong organisasyon ang Google Play Store para sa iyong account. Makipag-ugnayan sa iyong administrator para sa higit pang impormasyon.</translation> @@ -5367,7 +5333,6 @@ <translation id="98515147261107953">Landscape</translation> <translation id="987897973846887088">Walang available na larawan</translation> <translation id="988978206646512040">Hindi pinapayagan ang passphrase na walang laman</translation> -<translation id="990310048453480215">Alisin ang Mga App ng Linux</translation> <translation id="992032470292211616">Maaaring mapinsala ng mga extension, apps at mga tema ang iyong device. Sigurado kang gusto mong magpatuloy?</translation> <translation id="992592832486024913">I-disable ang ChromeVox (pasalitang feedback)</translation> <translation id="994289308992179865">&Loop</translation>
diff --git a/chrome/app/resources/generated_resources_fr.xtb b/chrome/app/resources/generated_resources_fr.xtb index bec1dec2..9af9e91 100644 --- a/chrome/app/resources/generated_resources_fr.xtb +++ b/chrome/app/resources/generated_resources_fr.xtb
@@ -42,7 +42,6 @@ <translation id="1056898198331236512">Avertissement</translation> <translation id="1058262162121953039">Clé PUK</translation> <translation id="1062407476771304334">Remplacer</translation> -<translation id="1062866675591297858">Superviser les utilisateurs gérés via le <ph name="BEGIN_LINK" />tableau de bord des utilisateurs gérés<ph name="END_LINK" />.</translation> <translation id="1064835277883315402">Rejoindre un réseau privé</translation> <translation id="1064912851688322329">Se déconnecter du compte Google</translation> <translation id="1067048845568873861">Date de création</translation> @@ -65,7 +64,6 @@ <translation id="1091767800771861448">Appuyez sur ECHAP pour ignorer (versions non officielles uniquement).</translation> <translation id="1093457606523402488">Réseaux visibles :</translation> <translation id="1094607894174825014">L'opération de lecture ou d'écriture a été demandée avec un décalage incorrect sur l'appareil <ph name="DEVICE_NAME" />.</translation> -<translation id="1097507499312291972"><ph name="BEGIN_SIGN_IN_LINK" />Se connecter<ph name="END_SIGN_IN_LINK" /> pour contrôler et afficher les sites Web consultés par cette personne</translation> <translation id="109758035718544977">Réactiver le son des sites</translation> <translation id="1097658378307015415">Avant de vous connecter, veuillez vous connecter en tant qu'invité afin d'activer le réseau <ph name="NETWORK_ID" />.</translation> <translation id="1103523840287552314">Toujours traduire les pages en <ph name="LANGUAGE" /></translation> @@ -244,7 +242,6 @@ <translation id="1361655923249334273">Non utilisé</translation> <translation id="1363028406613469049">Titre</translation> <translation id="1367951781824006909">Choisir un fichier</translation> -<translation id="136802136832547685">Aucun utilisateur supervisé à ajouter à cet appareil.</translation> <translation id="1368265273904755308">Signaler un problème</translation> <translation id="1370646789215800222">Supprimer le profil utilisateur ?</translation> <translation id="1372681413396468867">{NUM_ITEMS,plural, =1{1 élément à supprimer}one{# élément à supprimer}other{# éléments à supprimer}}</translation> @@ -472,7 +469,6 @@ <translation id="1692799361700686467">Les cookies de plusieurs sites sont autorisés.</translation> <translation id="169515659049020177">Maj</translation> <translation id="1698122934742150150">Session de navigation privée actuelle uniquement</translation> -<translation id="1700199471143028312">Votre administrateur ne vous autorise pas à créer des utilisateurs supervisés.</translation> <translation id="1701062906490865540">Supprimer ce profil utilisateur</translation> <translation id="1706586824377653884">Ajouté par votre administrateur</translation> <translation id="1706625117072057435">Niveaux de zoom</translation> @@ -1041,7 +1037,6 @@ <translation id="2604255671529671813">Erreur de connexion réseau</translation> <translation id="2606246518223360146">Associer les données</translation> <translation id="2607101320794533334">Infos sur la clé publique de l'objet</translation> -<translation id="2607459012323956820">Le gestionnaire peut toujours consulter les paramètres et l'historique de navigation de cet utilisateur supervisé à l'adresse <ph name="BEGIN_LINK" /><ph name="DISPLAY_LINK" /><ph name="END_LINK" />.</translation> <translation id="2608770217409477136">Utiliser les paramètres par défaut</translation> <translation id="2609896558069604090">Créer des raccourcis…</translation> <translation id="2610157865375787051">Veille</translation> @@ -1284,7 +1279,6 @@ <translation id="2951247061394563839">Centrer la fenêtre</translation> <translation id="2956763290572484660"><ph name="COOKIES" /> cookies</translation> <translation id="2958721676848865875">Avertissement relatif à la mise en package des extensions</translation> -<translation id="2961043351165706615">Les applications Linux que vous avez installées seront supprimées de ce Chromebook.</translation> <translation id="2961090598421146107"><ph name="CERTIFICATE_NAME" /> (extension accordée)</translation> <translation id="2961695502793809356">Cliquer pour avancer, maintenir pour voir l'historique</translation> <translation id="2963151496262057773">Le plug-in "<ph name="PLUGIN_NAME" />" ne répond pas. Voulez-vous l'interrompre ?</translation> @@ -1336,15 +1330,6 @@ <translation id="3022978424994383087">Je n'ai pas compris.</translation> <translation id="3024374909719388945">Utiliser l'horloge au format 24 heures</translation> <translation id="302781076327338683">Actualiser en ignorant le cache</translation> -<translation id="3030243755303701754">Un utilisateur supervisé peut naviguer sur le Web sous votre contrôle. En tant que gestionnaire d'un tel utilisateur dans Chrome, vous pouvez : - - • autoriser ou interdire l'accès à certains sites Web, - • consulter les sites Web visités par l'utilisateur supervisé, et - • gérer d'autres paramètres. - -La création d'un utilisateur supervisé n'entraîne pas la création d'un compte Google. Chrome Sync ne permettra pas à cet utilisateur de retrouver ses favoris, son historique de navigation et ses autres préférences sur d'autres appareils. Une fois que vous avez créé un nouvel utilisateur supervisé, vous pouvez modifier les paramètres le concernant à tout moment, à partir de n'importe quel appareil sur <ph name="BEGIN_MANAGE_LINK" /><ph name="DISPLAY_LINK" /><ph name="END_MANAGE_LINK" />. - -Pour en savoir plus, consultez notre <ph name="BEGIN_LINK" />Centre d'aide<ph name="END_LINK" />.</translation> <translation id="3031417829280473749">Agent X</translation> <translation id="3031557471081358569">Sélectionnez les éléments à importer :</translation> <translation id="3031601332414921114">Reprendre l'impression</translation> @@ -1385,7 +1370,6 @@ <translation id="3085412380278336437">Le site peut utiliser votre caméra</translation> <translation id="3085752524577180175">Hôte SOCKS</translation> <translation id="3088325635286126843">&Renommer...</translation> -<translation id="3089231390674410424">Il semble qu'il y ait un problème avec vos identifiants. Veuillez vous assurer que vous êtes correctement connecté, puis réessayer.</translation> <translation id="3090193911106258841">Accès à l'entrée audio et vidéo en cours…</translation> <translation id="3090819949319990166">Impossible de copier le fichier crx externe dans <ph name="TEMP_CRX_FILE" />.</translation> <translation id="3090871774332213558">"<ph name="DEVICE_NAME" />" associé.</translation> @@ -1400,7 +1384,6 @@ <translation id="3121793941267913344">Réinitialiser cet appareil <ph name="IDS_SHORT_PRODUCT_NAME" /></translation> <translation id="3122464029669770682">UC</translation> <translation id="3122496702278727796">Échec de la création du répertoire des données</translation> -<translation id="3123569374670379335">(supervisé)</translation> <translation id="3124111068741548686">Handles UTILISATEUR</translation> <translation id="3126026824346185272">Ctrl</translation> <translation id="3127156390846601284">Toutes les données enregistrées sur votre appareil seront supprimées pour tous les sites affichés. Voulez-vous continuer ?</translation> @@ -1435,8 +1418,6 @@ <translation id="3160842278951476457"><ph name="ISSUED_BY" /> [<ph name="ISSUED_TO" />] (matériel requis)</translation> <translation id="316125635462764134">Supprimer l'application</translation> <translation id="3161522574479303604">Toutes les langues</translation> -<translation id="316307797510303346">Contrôler et afficher les sites Web que cette personne consulte depuis l'adresse e-mail <ph name="CUSTODIAN_EMAIL" /> - Les informations de connexion de votre compte sont obsolètes.</translation> <translation id="3165390001037658081">Certains opérateurs peuvent bloquer cette fonctionnalité.</translation> <translation id="316854673539778496">Pour accéder à toutes vos extensions sur tous vos appareils, connectez-vous et activez la synchronisation.</translation> <translation id="3170072451822350649">Vous pouvez également ignorer l'étape de connexion et <ph name="LINK_START" />naviguer en tant qu'invité<ph name="LINK_END" />.</translation> @@ -1469,7 +1450,6 @@ <translation id="3229922550070982305">lecture/pause</translation> <translation id="3232318083971127729">Valeur :</translation> <translation id="3236289833370040187">La propriété sera transférée à <ph name="DESTINATION_DOMAIN" />.</translation> -<translation id="3237784613213365159"><ph name="NEW_PROFILE_NAME" /> est maintenant un utilisateur supervisé</translation> <translation id="323803881985677942">Ouvrir les options d'extension</translation> <translation id="3241680850019875542">Sélectionnez le répertoire racine de l'extension à empaqueter. Pour mettre à jour une extension, sélectionnez également le fichier de clé privée à réutiliser.</translation> <translation id="3242765319725186192">Clé pré-partagée :</translation> @@ -1701,7 +1681,6 @@ <translation id="3584169441612580296">Accéder aux photos, à la musique et aux autres fichiers multimédias stockés sur votre ordinateur et les modifier</translation> <translation id="3587482841069643663">Tous</translation> <translation id="358796204584394954">Saisissez ce code sur "<ph name="DEVICE_NAME" />" pour l'associer :</translation> -<translation id="3589532742556016615">Cette option ne s'applique pas aux applications ni au contenu des autres appareils.</translation> <translation id="3589766037099229847">Contenu non sécurisé bloqué</translation> <translation id="3590194807845837023">Déverrouiller le profil et relancer</translation> <translation id="3592260987370335752">&En savoir plus</translation> @@ -1835,7 +1814,6 @@ <translation id="3778152852029592020">Le téléchargement a été annulé.</translation> <translation id="3778740492972734840">Outils de &développement</translation> <translation id="3778868487658107119">Posez-lui des questions et donnez-lui des choses à faire. L'Assistant Google est toujours là pour vous aider.</translation> -<translation id="3780663724044634171">Sélectionnez un compte pour gérer l'utilisateur supervisé.</translation> <translation id="378312418865624974">Accéder à un identifiant unique pour cet ordinateur</translation> <translation id="3783640748446814672">alt</translation> <translation id="3785308913036335955">Afficher le raccourci des applications</translation> @@ -2537,7 +2515,7 @@ <translation id="4917385247580444890">Très bon</translation> <translation id="4918021164741308375"><ph name="ORIGIN" /> souhaite communiquer avec l'extension "<ph name="EXTENSION_NAME" />".</translation> <translation id="4918086044614829423">Accepter</translation> -<translation id="4920350943031252905">Exécutez les outils Linux, les éditeurs et les IDE sur votre Chromebook.</translation> +<translation id="4920350943031252905">Exécutez les outils, les éditeurs et les IDE Linux sur votre Chromebook.</translation> <translation id="4920887663447894854">Le suivi de votre position géographique sur cette page a été bloqué pour les sites suivants :</translation> <translation id="492299503953721473">Supprimer des applications Android</translation> <translation id="4923279099980110923">Je souhaite apporter mon aide</translation> @@ -2563,7 +2541,6 @@ <translation id="4964455510556214366">Organisation</translation> <translation id="4964673849688379040">Vérification en cours…</translation> <translation id="4965808351167763748">Voulez-vous vraiment configurer cet appareil pour exécuter Hangouts Meet ?</translation> -<translation id="4967749818080339523">Sélectionner un compte</translation> <translation id="496888482094675990">L'application Fichiers vous permet d'accéder rapidement aux fichiers que vous avez enregistrés dans Google Drive, sur un périphérique de stockage externe ou sur votre appareil Chrome OS.</translation> <translation id="4969785127455456148">Album</translation> <translation id="4971412780836297815">Ouvrir une fois le téléchargement terminé</translation> @@ -2750,7 +2727,6 @@ Peu importe ce qui se passe sur votre appareil, vos fichiers sont stockés en toute sécurité dans Google Drive.<ph name="MARKUP_6" /> <ph name="MARKUP_7" />Travaillez en groupe, et créez et partagez<ph name="MARKUP_8" /> des fichiers depuis une seule et même interface.<ph name="MARKUP_9" /></translation> -<translation id="5262401745672360397">Il se peut que les fichiers partagés avec les applications Linux soient également supprimés.</translation> <translation id="5264148714798105376">Cette opération peut prendre environ une minute.</translation> <translation id="5264252276333215551">Veuillez vous connecter à Internet pour lancer l'application en mode Kiosque.</translation> <translation id="5265562206369321422">Hors connexion pendant plus d'une semaine</translation> @@ -3403,7 +3379,6 @@ <translation id="6241530762627360640">Accéder aux informations relatives aux appareils Bluetooth associés à votre système et détecter les appareils Bluetooth à proximité</translation> <translation id="6243280677745499710">Actuellement défini</translation> <translation id="6243774244933267674">Serveur indisponible.</translation> -<translation id="6246413617632217567">Impossible d'importer l'utilisateur supervisé. Veuillez vérifier l'espace disponible sur votre disque dur et vos autorisations, puis réessayer.</translation> <translation id="6247708409970142803"><ph name="PERCENTAGE" /> %</translation> <translation id="6247802389331535091">Système : <ph name="ARC_PROCESS_NAME" /></translation> <translation id="624789221780392884">Mise à jour prête</translation> @@ -3602,7 +3577,6 @@ <translation id="654039047105555694"><ph name="BEGIN_BOLD" />Remarque<ph name="END_BOLD" /> : N'activez cette option que si vous êtes sûr de ce que vous faites ou si vous avez été invité à le faire. En effet, la collecte d'informations est susceptible de diminuer les performances.</translation> <translation id="654233263479157500">Utiliser un service Web pour résoudre les erreurs de navigation</translation> <translation id="6544215763872433504">Le navigateur Web de Google, pour vous</translation> -<translation id="6545325945815270297">Gérez vos appareils et vos données synchronisées sur le <ph name="BEGIN_LINK" />tableau de bord Chrome<ph name="END_LINK" />.</translation> <translation id="6545665334409411530">Fréquence de répétition</translation> <translation id="6545834809683560467">Utiliser un service de prédiction afin de compléter les requêtes de recherche et les URL saisies dans la barre d'adresse ou dans le champ de recherche du lanceur d'applications</translation> <translation id="6546686722964485737">Rejoindre le réseau WiMAX</translation> @@ -3617,7 +3591,6 @@ <translation id="6555810572223193255">Le nettoyage n'est pas disponible actuellement</translation> <translation id="6556866813142980365">Rétablir</translation> <translation id="6558280019477628686">Une erreur s'est produite. Il se peut que certains éléments n'aient pas été supprimés.</translation> -<translation id="6559580823502247193">(déjà sur cet appareil)</translation> <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="656398493051028875">Suppression de "<ph name="FILENAME" />" en cours...</translation> @@ -3814,7 +3787,6 @@ <translation id="6862635236584086457">Tous les fichiers enregistrés dans ce dossier sont automatiquement sauvegardés en ligne.</translation> <translation id="6865313869410766144">Données de saisie automatique</translation> <translation id="686664946474413495">Température des couleurs</translation> -<translation id="6867678160199975333">Passer au profil "<ph name="NEW_PROFILE_NAME" />"</translation> <translation id="6870888490422746447">Sélectionnez une application pour le partage :</translation> <translation id="6871644448911473373">Répondeur OCSP : <ph name="LOCATION" /></translation> <translation id="6872781471649843364">Le serveur a refusé le mot de passe que vous avez saisi.</translation> @@ -3908,7 +3880,6 @@ <translation id="7018275672629230621">Accéder à votre historique de navigation et le modifier</translation> <translation id="7019805045859631636">Rapide</translation> <translation id="7022562585984256452">Votre page d'accueil a été définie.</translation> -<translation id="7025036625303002400">Un de vos utilisateurs supervisés porte déjà ce nom.</translation> <translation id="7025190659207909717">Gestion des services Internet mobiles</translation> <translation id="7025325401470358758">Volet suivant</translation> <translation id="7027125358315426638">Nom de la base de données :</translation> @@ -3957,7 +3928,6 @@ <translation id="7092106376816104">Exceptions liées aux fenêtres pop-up</translation> <translation id="7093434536568905704">GTK+</translation> <translation id="7093866338626856921">Échanger des données avec les appareils suivants : "<ph name="HOSTNAMES" />"</translation> -<translation id="7096108453481049031">Impossible d'importer l'utilisateur supervisé. Veuillez vérifier votre connexion réseau, puis réessayer plus tard.</translation> <translation id="7096406577040705016">Activer ou désactiver la loupe plein écran</translation> <translation id="7098447629416471489">Les autres moteurs de recherche enregistrés s'afficheront ici</translation> <translation id="7099337801055912064">Impossible de charger un fichier PPD volumineux. Le fichier ne doit pas dépasser 250 Ko.</translation> @@ -4005,7 +3975,6 @@ <translation id="7168109975831002660">Taille de police minimale</translation> <translation id="7170041865419449892">Hors de portée</translation> <translation id="7171559745792467651">Installer les applications de vos autres appareils</translation> -<translation id="7173917244679555">Il semble que vous gérez déjà un utilisateur portant ce nom. Vouliez-vous <ph name="BEGIN_LINK" />importer le profile <ph name="PROFILE_NAME" /><ph name="END_LINK" /> sur cet appareil ?</translation> <translation id="7175037578838465313">Configurer <ph name="NAME" /></translation> <translation id="7175353351958621980">Chargé depuis :</translation> <translation id="7180611975245234373">Actualiser</translation> @@ -4177,7 +4146,6 @@ <translation id="7444726222535375658">Accéder à Hangouts Meet</translation> <translation id="7444983668544353857">Désactiver <ph name="NETWORKDEVICE" /></translation> <translation id="7445682342344043969">Pop-up bloqués</translation> -<translation id="744859430125590922">Contrôler et afficher les sites Web que cette personne consulte depuis l'adresse e-mail <ph name="CUSTODIAN_EMAIL" /></translation> <translation id="7453008956351770337">En sélectionnant cette imprimante, vous autorisez l'extension suivante à y accéder :</translation> <translation id="7453467225369441013">Vous déconnecte de la plupart des sites. Vous ne serez cependant pas déconnecté de votre compte Google.</translation> <translation id="7456142309650173560">développeur</translation> @@ -4351,7 +4319,6 @@ <translation id="7717845620320228976">Rechercher des mises à jour</translation> <translation id="7719367874908701697">Zoom de la page</translation> <translation id="771953673318695590">Contrôle qualité</translation> -<translation id="7720375555307821262">Pour superviser cette personne, <ph name="BEGIN_LINK" />connectez-vous à Chrome<ph name="END_LINK" />.</translation> <translation id="7721179060400456005">Autoriser les fenêtres à occuper plusieurs écrans</translation> <translation id="7722040605881499779">Espace nécessaire pour la mise à jour : <ph name="NECESSARY_SPACE" /></translation> <translation id="7724603315864178912">Couper</translation> @@ -5206,7 +5173,6 @@ <translation id="9024331582947483881">plein écran</translation> <translation id="9025098623496448965">OK, revenir à l'écran de connexion</translation> <translation id="9026731007018893674">téléchargement</translation> -<translation id="9027146684281895941">Superviser cette personne pour contrôler et afficher les sites Web qu'elle visite depuis votre compte Google</translation> <translation id="9027459031423301635">Ouvrir le lien dans un nouvel ongle&t</translation> <translation id="9027603907212475920">Configurer la synchronisation...</translation> <translation id="9030515284705930323">Votre organisation n'a pas activé le Google Play Store pour votre compte. Contactez votre administrateur pour plus d'informations.</translation> @@ -5366,7 +5332,6 @@ <translation id="98515147261107953">Paysage</translation> <translation id="987897973846887088">Aucune image disponible</translation> <translation id="988978206646512040">Phrase secrète obligatoire</translation> -<translation id="990310048453480215">Supprimer les applications Linux</translation> <translation id="992032470292211616">Les extensions, les applications et les thèmes peuvent endommager votre appareil. Voulez-vous vraiment continuer ?</translation> <translation id="992592832486024913">Désactiver ChromeVox (commentaires audio)</translation> <translation id="994289308992179865">&Répéter</translation>
diff --git a/chrome/app/resources/generated_resources_gu.xtb b/chrome/app/resources/generated_resources_gu.xtb index 353e14e7..0500fb0b 100644 --- a/chrome/app/resources/generated_resources_gu.xtb +++ b/chrome/app/resources/generated_resources_gu.xtb
@@ -42,7 +42,6 @@ <translation id="1056898198331236512">ચેતવણી</translation> <translation id="1058262162121953039">PUK</translation> <translation id="1062407476771304334">બદલો</translation> -<translation id="1062866675591297858"><ph name="BEGIN_LINK" />નિરીક્ષિત વપરાશકર્તાઓ ડેશબોર્ડ<ph name="END_LINK" /> મારફતે તમારા નિરીક્ષિત વપરાશકર્તાઓનું સંચાલન કરો.</translation> <translation id="1064835277883315402">ખાનગી નેટવર્કથી જોડાઓ</translation> <translation id="1064912851688322329">તમારું Google એકાઉન્ટ ડિસ્કનેક્ટ કરો</translation> <translation id="1067048845568873861">બનાવ્યું</translation> @@ -63,7 +62,6 @@ <translation id="1091767800771861448">છોડવા માટે ESCAPE દબાવો (ફક્ત બિન-આધિકારીક બિલ્ડ).</translation> <translation id="1093457606523402488">દૃશ્યક્ષમ નેટવર્ક્સ:</translation> <translation id="1094607894174825014">આના પર અમાન્ય ઓફસેટ સાથે વાંચન અથવા લેખન ઓપરેશનની વિનંતી કરી હતી: "<ph name="DEVICE_NAME" />".</translation> -<translation id="1097507499312291972">આ વ્યક્તિ મુલાકાત લે છે તે વેબસાઇટ્સ જોવા અને નિયંત્રિત કરવા માટે <ph name="BEGIN_SIGN_IN_LINK" />સાઇન ઇન<ph name="END_SIGN_IN_LINK" /> કરો.</translation> <translation id="109758035718544977">સાઇટને અનમ્યૂટ કરો</translation> <translation id="1097658378307015415">સાઇન ઇન કરતા પહેલા, કૃપા કરીને નેટવર્ક <ph name="NETWORK_ID" /> ને સક્રિય કરવા માટે એક અતિથિ તરીકે દાખલ થાઓ</translation> <translation id="1103523840287552314"><ph name="LANGUAGE" /> નો હંમેશાં અનુવાદ કરો</translation> @@ -241,7 +239,6 @@ <translation id="1361655923249334273">બિનવપરાયેલ</translation> <translation id="1363028406613469049">ટ્રૅક</translation> <translation id="1367951781824006909">એક ફાઇલ પસંદ કરો</translation> -<translation id="136802136832547685">આ ઉપકરણ પર ઉમેરવા માટે કોઇ નિરીક્ષિત વપરાશકર્તાઓ નથી.</translation> <translation id="1368265273904755308">સમસ્યાની જાણ કરો</translation> <translation id="1370646789215800222">વ્યક્તિને દૂર કરીએ?</translation> <translation id="1372681413396468867">{NUM_ITEMS,plural, =1{1 આઇટમ કાઢી નાખવામાં આવશે}one{# આઇટમ કાઢી નાખવામાં આવશે}other{# આઇટમ કાઢી નાખવામાં આવશે}}</translation> @@ -464,7 +461,6 @@ <translation id="1692799361700686467">બહુવિધ સાઇટ્સની કૂકીઝને મંજૂરી છે.</translation> <translation id="169515659049020177">Shift</translation> <translation id="1698122934742150150">ફક્ત વર્તમાન છૂપું સત્ર</translation> -<translation id="1700199471143028312">તમારા વ્યવસ્થાપક તમને નિરીક્ષિત વપરાશકર્તાઓ બનાવવાની મંજૂરી આપતાં નથી.</translation> <translation id="1701062906490865540">આ વ્યક્તિને દૂર કરો</translation> <translation id="1706586824377653884">તમારા વ્યવસ્થાપક દ્વારા ઉમેરાયેલ</translation> <translation id="1706625117072057435">ઝૂમના સ્તર</translation> @@ -1027,7 +1023,6 @@ <translation id="2604255671529671813">નેટવર્ક કનેક્શનમાં ભૂલ</translation> <translation id="2606246518223360146">ડેટાને લિંક કરો</translation> <translation id="2607101320794533334">વિષય સાર્વજનિક કી માહિતી</translation> -<translation id="2607459012323956820">આ નિરીક્ષિત વપરાશકર્તા માટે સેટિંગ્સ અને બ્રાઉઝિંગ ઇતિહાસ <ph name="BEGIN_LINK" /><ph name="DISPLAY_LINK" /><ph name="END_LINK" /> પર સંચાલકને હજી પણ દૃશ્યક્ષમ હોઈ શકે છે.</translation> <translation id="2608770217409477136">ડિફૉલ્ટ સેટિંગ્સનો ઉપયોગ કરો</translation> <translation id="2609896558069604090">શૉર્ટકટ્સ બનાવો ...</translation> <translation id="2610157865375787051">નિષ્ક્રિય કરો</translation> @@ -1318,15 +1313,6 @@ <translation id="3022978424994383087">તે મળ્યો નથી.</translation> <translation id="3024374909719388945">24-કલાકની ઘડિયાળ વાપરો</translation> <translation id="302781076327338683">બાયપાસ થતી કૅશ ફરીથી લોડ કરો</translation> -<translation id="3030243755303701754">એક નિરીક્ષિત વપરાશકર્તા તમારા માર્ગદર્શન હેઠળ વેબનું અન્વેષણ કરી શકે છે. Chrome માં નિરીક્ષિત વપરાશકર્તાના સંચાલક તરીકે, તમે: - - • અમુક વેબસાઇટ્સને મંજૂર અથવા પ્રતિબંધિત કરી શકો છો, - • નિરીક્ષિત વપરાશકર્તાએ મુલાકાત લીધેલી વેબસાઇટ્સની સમીક્ષા કરી શકો છો, અને - • અન્ય સેટિંગ્સનું સંચાલન કરી શકો છો. - -નિરીક્ષિત વપરાશકર્તા બનાવવાથી Google એકાઉન્ટ બનતું નથી અને તેમના બુકમાર્ક્સ, બ્રાઉઝિંગ ઇતિહાસ અને અન્ય પસંદગીઓ Chrome સમન્વયન સાથેના અન્ય ઉપકરણો પર તેમને અનુસરશે નહીં. તમે એક નવો નિરીક્ષિત વપરાશકર્તા બનાવી લો તે પછી, તમે તેમની સેટિંગ્સને કોઈપણ સમયે, કોઈપણ ઉપકરણ પરથી <ph name="BEGIN_MANAGE_LINK" /><ph name="DISPLAY_LINK" /><ph name="END_MANAGE_LINK" /> ખાતેથી સંચાલિત કરી શકો છો. - -વધુ માહિતી માટે, અમારા <ph name="BEGIN_LINK" />સહાય કેન્દ્ર<ph name="END_LINK" />ની મુલાકાત લો.</translation> <translation id="3031417829280473749">એજંટ X</translation> <translation id="3031557471081358569">આયાત કરવા માટે આઇટમ્સ પસંદ કરો:</translation> <translation id="3031601332414921114">છાપવાનું ફરી શરૂ કરો</translation> @@ -1367,7 +1353,6 @@ <translation id="3085412380278336437">સાઇટ તમારા કૅમેરાનો ઉપયોગ કરી શકે છે</translation> <translation id="3085752524577180175">SOCKS હોસ્ટ</translation> <translation id="3088325635286126843">&નામ બદલો...</translation> -<translation id="3089231390674410424">તમારા ઓળખપત્રમાં સમસ્યા હોય એવું લાગે છે. કૃપા કરીને ખાતરી કરો કે તમે ઠીકથી સાઇન ઇન થયાં છો અને ફરી પ્રયાસ કરો.</translation> <translation id="3090193911106258841">ઑડિઓ અને વિડિઓ ઇનપુટને ઍક્સેસ કરી રહ્યું છે</translation> <translation id="3090819949319990166">બાહ્ય crx ફાઇલને <ph name="TEMP_CRX_FILE" /> પર કૉપિ કરી શકતાં નથી.</translation> <translation id="3090871774332213558">"<ph name="DEVICE_NAME" />"થી જોડી બનાવી</translation> @@ -1382,7 +1367,6 @@ <translation id="3121793941267913344">આ <ph name="IDS_SHORT_PRODUCT_NAME" /> ઉપકરણ ફરીથી સેટ કરો</translation> <translation id="3122464029669770682">CPU</translation> <translation id="3122496702278727796">ડેટા ડાયરેક્ટરી બનાવવામાટે નિષ્ફળ</translation> -<translation id="3123569374670379335">(નિરીક્ષિત)</translation> <translation id="3124111068741548686">વપરાશકર્તા હેન્ડલ કરે છે</translation> <translation id="3126026824346185272">Ctrl</translation> <translation id="3127156390846601284">બતાવેલ તમામ સાઇટ્સ માટે આ તમારા ઉપકરણ પર સંગ્રહિત કોઈપણ ડેટાને કાઢી નાખશે. શું તમે ચાલુ રાખવા માગો છો?</translation> @@ -1417,8 +1401,6 @@ <translation id="3160842278951476457"><ph name="ISSUED_BY" /> [<ph name="ISSUED_TO" />] (હાર્ડવેર સમર્થિત)</translation> <translation id="316125635462764134">ઍપ્લિકેશન દૂર કરો</translation> <translation id="3161522574479303604">બધી ભાષાઓ</translation> -<translation id="316307797510303346"><ph name="CUSTODIAN_EMAIL" /> માંથી આ વ્યક્તિ મુલાકાત લે છે તે વેબસાઇટ્સ જુઓ અને નિયંત્રિત કરો. - તમારી એકાઉન્ટ સાઇન-ઇન વિગતો જૂની થઈ ગઈ છે.</translation> <translation id="3165390001037658081">કેટલાક કૅરિઅર આ સુવિધાને અવરોધિત કરી શકે છે.</translation> <translation id="316854673539778496">તમારા બધા ઉપકરણો પર તમારા બધા એક્સ્ટેંશન મેળવવા માટે સાઇન ઇન કરો અને સિંક ચાલુ કરો.</translation> <translation id="3170072451822350649">તમે સાઇન ઇન કરવાનું છોડી અને <ph name="LINK_START" />અતિથિ તરીકે બ્રાઉઝ<ph name="LINK_END" /> પણ કરી શકો છો.</translation> @@ -1450,7 +1432,6 @@ <translation id="3229922550070982305">ચલાવો / થોભાવો</translation> <translation id="3232318083971127729">મૂલ્ય:</translation> <translation id="3236289833370040187">માલિકીને <ph name="DESTINATION_DOMAIN" />માં સ્થાનાંતરિત કરવામાં આવશે.</translation> -<translation id="3237784613213365159"><ph name="NEW_PROFILE_NAME" />, હવે એક નિરીક્ષિત વપરાશકર્તા છે</translation> <translation id="323803881985677942">એક્સ્ટેન્શન વિકલ્પો ખોલો</translation> <translation id="3241680850019875542">પૅક કરવા માટે એક્સ્ટેંશનની રૂટ ડાયરેક્ટરી પસંદ કરો. એક્સ્ટેંશનને અપડેટ કરવા માટે, ફરી ઉપયોગ કરવા ખાનગી કી ફાઇલ પણ પસંદ કરો.</translation> <translation id="3242765319725186192">પૂર્વ-શેર કરેલી કી:</translation> @@ -1812,7 +1793,6 @@ <translation id="3778152852029592020">ડાઉનલોડ રદ થયું હતું.</translation> <translation id="3778740492972734840">&વિકાસકર્તા ટુલ્સ</translation> <translation id="3778868487658107119">તેને પ્રશ્નો પૂછો. તેને વસ્તુઓ કરવા માટે કહો. આ તમારું વ્યક્તિગત Google છે, હંમેશા મદદ કરવા માટે તૈયાર છે.</translation> -<translation id="3780663724044634171">નિરીક્ષિત વપરાશકર્તાને સંચાલિત કરવા માટે એકાઉન્ટ પસંદ કરો.</translation> <translation id="378312418865624974">આ કમ્પ્યુટર માટે અનન્ય ઓળખકર્તાને વાંચો</translation> <translation id="3783640748446814672">alt</translation> <translation id="3785308913036335955">ઍપ્લિકેશનો શોર્ટકટ બતાવો</translation> @@ -2524,7 +2504,6 @@ <translation id="4964455510556214366">ગોઠવણી</translation> <translation id="4964673849688379040">તપાસી રહ્યું છે...</translation> <translation id="4965808351167763748">શું તમે ખરેખર આ ઉપકરણને Hangouts Meet ચલાવવા માટે સેટ કરવા માગો છો?</translation> -<translation id="4967749818080339523">એકાઉન્ટ પસંદ કરો</translation> <translation id="496888482094675990">ફાઇલ્સ ઍપ્લિકેશન તમે Google ડ્રાઇવ, બાહ્ય સ્ટોરેજ અથવા તમારા Chrome OS ઉપકરણ પર સાચવી છે તે ફાઇલોની ઝડપી ઍક્સેસ પ્રદાન કરે છે.</translation> <translation id="4969785127455456148">આલ્બમ</translation> <translation id="4971412780836297815">પૂર્ણ થાય ત્યારે ખોલો</translation> @@ -3355,7 +3334,6 @@ <translation id="6241530762627360640">તમારા સિસ્ટમ સાથે જોડી બનાવેલા Bluetooth ઉપકરણો વિશેની માહિતી ઍક્સેસ કરો અને નજીકના Bluetooth ઉપકરણોની શોધ કરો.</translation> <translation id="6243280677745499710">હાલમાં સેટ કરેલ</translation> <translation id="6243774244933267674">સર્વર અનુપલબ્ધ</translation> -<translation id="6246413617632217567">નિરીક્ષિત વપરાશકર્તા આયાત કરી શક્યાં નથી. કૃપા કરીને તમારું હાર્ડ ડ્રાઇવ સ્થાન અને પરવાનગીઓ તપાસો અને ફરીથી પ્રયાસ કરો.</translation> <translation id="6247708409970142803"><ph name="PERCENTAGE" />%</translation> <translation id="6247802389331535091">સિસ્ટમ: <ph name="ARC_PROCESS_NAME" /></translation> <translation id="624789221780392884">અપડેટ તૈયાર</translation> @@ -3552,7 +3530,6 @@ <translation id="654039047105555694"><ph name="BEGIN_BOLD" /> નોંધ: <ph name="END_BOLD" /> જો તમે શું કરી રહ્યાં છો તે તમે જાણતા હોવ અથવા જો તમને તેવું કરવા માટે કહેવામાં આવ્યું હોય તો જ સક્ષમ કરો, કારણ કે ડેટાનો સંગ્રહ પ્રદર્શન પર અસર કરી શકે છે.</translation> <translation id="654233263479157500">નેવિગેશન ભૂલોને ઉકેલવામાં સહાય માટે વેબ સેવાનો ઉપયોગ કરો</translation> <translation id="6544215763872433504">Google દ્વારા વેબ બ્રાઉઝર, તમારા માટે</translation> -<translation id="6545325945815270297"><ph name="BEGIN_LINK" />Chrome ડેશબોર્ડ<ph name="END_LINK" /> પર તમારો સમન્વયિત ડેટા અને ઉપકરણોને સંચાલિત કરો.</translation> <translation id="6545665334409411530">પુનરાવર્તન રેટ</translation> <translation id="6545834809683560467">શોધ અને સરનામાં બાર અથવા એપ લૉન્ચર શોધ બોક્સમાં લખેલા URL ને પૂર્ણ કરવામાં સહાય માટે પૂર્વાનુમાન સેવાનો ઉપયોગ કરો</translation> <translation id="6546686722964485737">Wimax નેટવર્કથી જોડાઓ</translation> @@ -3567,7 +3544,6 @@ <translation id="6555810572223193255">ક્લીન અપ હાલમાં અનુપલબ્ધ છે</translation> <translation id="6556866813142980365">ફરી કરો</translation> <translation id="6558280019477628686">એક ભૂલ આવી. અમુક આઇટમ કદાચ ડિલીટ કરી શકાઈ નથી.</translation> -<translation id="6559580823502247193">(પહેલાંથી જ આ ઉપકરણ પર છે)</translation> <translation id="6561726789132298588">Enter</translation> <translation id="656293578423618167">ફાઇલ પાથ અથવા નામ ખૂબ લાંબા છે. કૃપા કરીને ટૂંકા નામથી અન્ય સ્થાન પર સાચવો.</translation> <translation id="656398493051028875">"<ph name="FILENAME" />" કાઢી નાખી રહ્યું છે...</translation> @@ -3760,7 +3736,6 @@ <translation id="6862635236584086457">આ ફોલ્ડરમાં સાચવેલી તમામ ફાઇલોનો આપમેળે ઑનલાઇન બૅકઅપ લેવાય છે</translation> <translation id="6865313869410766144">સ્વતઃભરણ ફોર્મ ડેટા</translation> <translation id="686664946474413495">રંગ તાપમાન</translation> -<translation id="6867678160199975333"><ph name="NEW_PROFILE_NAME" /> પર સ્વિચ કરો</translation> <translation id="6870888490422746447">આના પર શેર કરવા માટે એક ઍપ્લિકેશન પસંદ કરો:</translation> <translation id="6871644448911473373">OCSP પ્રતિસાદકર્તા: <ph name="LOCATION" /></translation> <translation id="6872781471649843364">તમે દાખલ કરેલ પાસવર્ડ સર્વર દ્વારા નકારવામાં આવ્યો હતો.</translation> @@ -3854,7 +3829,6 @@ <translation id="7018275672629230621">તમારો બ્રાઉઝિંગ ઇતિહાસ વાંચો અને બદલો</translation> <translation id="7019805045859631636">ઝડપી</translation> <translation id="7022562585984256452">તમારું હોમ પેજ સેટ કરવામાં આવ્યું છે.</translation> -<translation id="7025036625303002400">એવું લાગે છે કે તમારી પાસે પહેલાંથી જ આ નામના નિરીક્ષિત વપરાશકર્તા છે.</translation> <translation id="7025190659207909717">મોબાઇલ ડેટા સેવા મેનેજમેન્ટ</translation> <translation id="7025325401470358758">આગલી પૅન</translation> <translation id="7027125358315426638">ડેટાબેસ નામ:</translation> @@ -3903,7 +3877,6 @@ <translation id="7092106376816104">પૉપ-અપ અપવાદો</translation> <translation id="7093434536568905704">GTK+</translation> <translation id="7093866338626856921">આ નામના ઉપકરણ સાથે ડેટા વિનિમય કરો: <ph name="HOSTNAMES" /></translation> -<translation id="7096108453481049031">નિરીક્ષિત વપરાશકર્તાને આયાત કરી શક્યાં નથી. કૃપા કરીને તમારું નેટવર્ક કનેક્શન તપાસો અને પછીથી ફરી પ્રયાસ કરો.</translation> <translation id="7098447629416471489">અન્ય સાચવેલ શોધ એંજિન અહીં દેખાશે</translation> <translation id="7099337801055912064">વિશાળ PPD લોડ કરી શકતાં નથી. મહત્તમ કદ 250 kB છે.</translation> <translation id="7100897339030255923"><ph name="COUNT" /> આઇટમ્સ પસંદ કરી</translation> @@ -3949,7 +3922,6 @@ <translation id="716810439572026343"><ph name="FILE_NAME" /> ડાઉનલોડ કરી રહ્યાં છે</translation> <translation id="7168109975831002660">ન્યૂનતમ ફોન્ટ કદ</translation> <translation id="7170041865419449892">પહોંચ બહાર</translation> -<translation id="7173917244679555">એવું લાગે છે કે તમે પહેલાંથી જ તે નામના વપરાશકર્તાનું સંચાલન કરી રહ્યાં છો. શું તમે આ ઉપકરણ પર <ph name="BEGIN_LINK" /><ph name="PROFILE_NAME" /> ને આયાત<ph name="END_LINK" /> કરવા માંગો છો?</translation> <translation id="7175037578838465313"><ph name="NAME" /> ગોઠવો</translation> <translation id="7175353351958621980">અહીંથી લોડ કરેલું:</translation> <translation id="7180611975245234373">તાજું કરો</translation> @@ -4120,7 +4092,6 @@ <translation id="7444726222535375658">Hangouts Meet ચાલુ રાખો</translation> <translation id="7444983668544353857"><ph name="NETWORKDEVICE" /> અક્ષમ કરો</translation> <translation id="7445682342344043969">પૉપ-અપ અવરોધિત છે</translation> -<translation id="744859430125590922"><ph name="CUSTODIAN_EMAIL" /> માંથી આ વ્યક્તિ મુલાકાત લે છે તે વેબસાઇટ્સ જુઓ અને નિયંત્રિત કરો.</translation> <translation id="7453008956351770337">આ પ્રિન્ટરને પસંદ કરીને, તમે નીચેના એક્સ્ટેન્શનને તમારા પ્રિન્ટરને ઍક્સેસ કરવાની પરવાનગી આપી રહ્યાં છો:</translation> <translation id="7453467225369441013">તમને મોટાભાગની સાઇટોમાંથી સાઇન આઉટ કરે છે. તમે તમારા Google એકાઉન્ટમાંથી સાઇન આઉટ નહીં થાઓ.</translation> <translation id="7456142309650173560">dev</translation> @@ -4294,7 +4265,6 @@ <translation id="7717845620320228976">અપડેટ્સ માટે તપાસો</translation> <translation id="7719367874908701697">પૃષ્ઠ ઝૂમ કરો</translation> <translation id="771953673318695590">QA</translation> -<translation id="7720375555307821262">આ વ્યક્તિનું નિરીક્ષણ કરવા માટે, <ph name="BEGIN_LINK" />Chrome માં સાઇન ઇન કરો<ph name="END_LINK" />.</translation> <translation id="7721179060400456005">વિંડોને ડિસ્પ્લે વધારવાની મંજૂરી આપો</translation> <translation id="7722040605881499779">અપડેટ કરવું જરૂરી છે: <ph name="NECESSARY_SPACE" /></translation> <translation id="7724603315864178912">કાપો</translation> @@ -5114,7 +5084,6 @@ <translation id="9024331582947483881">પૂર્ણ સ્ક્રીન</translation> <translation id="9025098623496448965">ઓકે, મને પાછા સાઇન-ઇન સ્ક્રીન પર લઈ જાઓ</translation> <translation id="9026731007018893674">ડાઉનલોડ કરો</translation> -<translation id="9027146684281895941">આ વ્યક્તિ તમારા Google એકાઉન્ટથી મુલાકાત લે છે તે વેબસાઇટ્સ જોવા અને નિયંત્રિત કરવા માટે તેનું નિરીક્ષણ કરો.</translation> <translation id="9027459031423301635">લિંક નવા &ટૅબમાં ખોલો</translation> <translation id="9027603907212475920">સમન્વયન સેટ કરો...</translation> <translation id="9030515284705930323">તમારા એકાઉન્ટ માટે તમારી સંસ્થાએ Google Play સ્ટોર સક્ષમ કરેલ નથી. વધુ માહિતી માટે તમારા વ્યવસ્થાપકનો સંપર્ક કરો.</translation>
diff --git a/chrome/app/resources/generated_resources_hi.xtb b/chrome/app/resources/generated_resources_hi.xtb index ff46d13..70260f2 100644 --- a/chrome/app/resources/generated_resources_hi.xtb +++ b/chrome/app/resources/generated_resources_hi.xtb
@@ -42,7 +42,6 @@ <translation id="1056898198331236512">चेतावनी</translation> <translation id="1058262162121953039">PUK</translation> <translation id="1062407476771304334">प्रतिस्थापित करें</translation> -<translation id="1062866675591297858">अपने पर्यवेक्षित उपयोगकर्ताओं को <ph name="BEGIN_LINK" />पर्यवेक्षित उपयोगकर्ता डैशबोर्ड<ph name="END_LINK" /> द्वारा प्रबंधित करें.</translation> <translation id="1064835277883315402">निजी नेटवर्क से जुड़ें</translation> <translation id="1064912851688322329">अपना Google खाता डिस्कनेक्ट करें</translation> <translation id="1067048845568873861">निर्मित</translation> @@ -63,7 +62,6 @@ <translation id="1091767800771861448">छोड़ने के लिए ESCAPE दबाएं (केवल गैर-आधिकारिक बिल्ड).</translation> <translation id="1093457606523402488">दृश्यमान नेटवर्क:</translation> <translation id="1094607894174825014">पढ़ें या लिखें संचालन का अनुरोध किसी अमान्य ऑफ़सेट के साथ इस पर किया गया था: "<ph name="DEVICE_NAME" />".</translation> -<translation id="1097507499312291972">इस व्यक्ति द्वारा देखी जाने वाली वेबसाइटें नियंत्रित करने और देखने के लिए <ph name="BEGIN_SIGN_IN_LINK" />प्रवेश करें<ph name="END_SIGN_IN_LINK" />.</translation> <translation id="109758035718544977">साइटें अनम्यूट करें</translation> <translation id="1097658378307015415">प्रवेश करने से पहले, कृपया <ph name="NETWORK_ID" /> नेटवर्क सक्रिय करने के लिए अतिथि के रूप में प्रविष्ट हों</translation> <translation id="1103523840287552314"><ph name="LANGUAGE" /> का हमेशा अनुवाद करें</translation> @@ -241,7 +239,6 @@ <translation id="1361655923249334273">अप्रयुक्त</translation> <translation id="1363028406613469049">ट्रैक</translation> <translation id="1367951781824006909">कोई फ़ाइल चुनें</translation> -<translation id="136802136832547685">इस डिवाइस में जोड़ने के लिए कोई पर्यवेक्षित उपयोगकर्ता नहीं है.</translation> <translation id="1368265273904755308">समस्या की रिपोर्ट करें</translation> <translation id="1370646789215800222">व्यक्ति को निकालें?</translation> <translation id="1372681413396468867">{NUM_ITEMS,plural, =1{1 आइटम हटाया जाने वाला है}one{# आइटम हटाए जाने वाले हैं}other{# आइटम हटाए जाने वाले हैं}}</translation> @@ -469,7 +466,6 @@ <translation id="1692799361700686467">एकाधिक साइटों से कुकी की अनुमति है.</translation> <translation id="169515659049020177">Shift</translation> <translation id="1698122934742150150">केवल वर्तमान गुप्त सत्र</translation> -<translation id="1700199471143028312">आपका व्यवस्थापक आपको पर्यवेक्षित उपयोगकर्ता बनाने की अनुमति नहीं देता.</translation> <translation id="1701062906490865540">इस व्यक्ति को निकालें</translation> <translation id="1706586824377653884">आपके व्यवस्थापक ने जोड़ा</translation> <translation id="1706625117072057435">ज़ूम स्तर</translation> @@ -1035,7 +1031,6 @@ <translation id="2604255671529671813">नेटवर्क कनेक्शन गड़बड़ी</translation> <translation id="2606246518223360146">डेटा लिंक करें</translation> <translation id="2607101320794533334">विषय सार्वजनिक कुंजी जानकारी</translation> -<translation id="2607459012323956820">इस निगरानी में रखे गए उपयोगकर्ता की सेटिंग और ब्राउज़िंग इतिहास प्रबंधक द्वारा अभी भी <ph name="BEGIN_LINK" /><ph name="DISPLAY_LINK" /><ph name="END_LINK" /> पर देखा जा सकता है.</translation> <translation id="2608770217409477136">डिफ़ॉल्ट सेटिंग का उपयोग करें</translation> <translation id="2609896558069604090">शॉर्टकट बनाए...</translation> <translation id="2610157865375787051">निष्क्रिय</translation> @@ -1328,15 +1323,6 @@ <translation id="3022978424994383087">समझ नहीं आया.</translation> <translation id="3024374909719388945">24-घंटे की घड़ी का उपयोग करें</translation> <translation id="302781076327338683">कैश को बाइपास कर फिर लोड करें</translation> -<translation id="3030243755303701754">निगरानी में रखा गया उपयोगकर्ता, आपके मार्गदर्शन में वेब को एक्सप्लोर कर सकता है. Chrome में निगरानी में रखे गए उपयोगकर्ता के प्रबंधक के रूप में, आप: - - • कुछ वेबसाइट को अनुमति दे सकते हैं या प्रतिबंधित कर सकते हैं, - • निगरानी में रखे गए उपयोगकर्ताद्वारा देखी गई वेबसाइट की समीक्षा कर सकते हैं, और - • अन्य सेटिंग प्रबंधित कर सकते हैं. - -निगरानी में रखा गया उपयोगकर्ता बनाने से Google खाता नहीं बनता और उसके बुकमार्क, ब्राउज़िंग इतिहास और अन्य प्राथमिकताएं Chrome सिंक के साथ अन्य डिवाइस पर उसका अनुसरण नहीं करेंगी. आपके द्वारा नया निगरानी में रखा गया उपयोगकर्ता बनाए जाने के बाद, आप <ph name="BEGIN_MANAGE_LINK" /><ph name="DISPLAY_LINK" /><ph name="END_MANAGE_LINK" /> पर कभी भी किसी भी डिवाइस से सेटिंग प्रबंधित कर सकते हैं. - -अधिक जानकारी के लिए, हमारे <ph name="BEGIN_LINK" />सहायता केंद्र<ph name="END_LINK" /> पर जाएं.</translation> <translation id="3031417829280473749">एजेंट X</translation> <translation id="3031557471081358569">आयात करने के लिए आइटम को चुनें:</translation> <translation id="3031601332414921114">प्रिंटिंग फिर से शुरू करें</translation> @@ -1377,7 +1363,6 @@ <translation id="3085412380278336437">साइट आपके कैमरे का इस्तेमाल कर सकती है</translation> <translation id="3085752524577180175">SOCKS होस्ट</translation> <translation id="3088325635286126843">&नाम बदलें...</translation> -<translation id="3089231390674410424">ऐसा लगता है कि आपके क्रेडेंशियल में कोई समस्या है. कृपया सुनिश्चित करें कि आपने ठीक तरह से प्रवेश किया हुआ है और पुनः प्रयास करें.</translation> <translation id="3090193911106258841">ऑडियो और वीडियो इनपुट ऐक्सेस हो रहा है</translation> <translation id="3090819949319990166">बाहरी crx फ़ाइल की <ph name="TEMP_CRX_FILE" /> में कॉपी नहीं बनाई जा सकती.</translation> <translation id="3090871774332213558">"<ph name="DEVICE_NAME" />" युग्मित किया गया</translation> @@ -1392,7 +1377,6 @@ <translation id="3121793941267913344">इस <ph name="IDS_SHORT_PRODUCT_NAME" /> डिवाइस को रीसेट करें</translation> <translation id="3122464029669770682">CPU</translation> <translation id="3122496702278727796">डेटा निर्देशिका बनाने में विफल</translation> -<translation id="3123569374670379335">(पर्यवेक्षित)</translation> <translation id="3124111068741548686">उपयोगकर्ता हैंडल</translation> <translation id="3126026824346185272">Ctrl</translation> <translation id="3127156390846601284">यह ऐसे किसी भी डेटा को हटा देगा जिसे दिखाई गईं सभी साइटों के लिए आपके डिवाइस पर संग्रहित किया गया है. क्या आप जारी रखना चाहते हैं?</translation> @@ -1427,8 +1411,6 @@ <translation id="3160842278951476457"><ph name="ISSUED_BY" /> [<ph name="ISSUED_TO" />] (हार्डवेयर समर्थित)</translation> <translation id="316125635462764134">ऐप्स निकालें</translation> <translation id="3161522574479303604">सभी भाषाएं</translation> -<translation id="316307797510303346">इस व्यक्ति द्वारा <ph name="CUSTODIAN_EMAIL" /> से देखी जाने वाली वेबसाइटों को नियंत्रित करें और देखें. - आपके खाता प्रवेश विवरण पुराने हो चुके हैं.</translation> <translation id="3165390001037658081">कुछ वाहक इस सुविधा को बंद कर सकते हैं.</translation> <translation id="316854673539778496">अपने सभी डिवाइस पर अपने सारे एक्सटेंशन पाने के लिए, साइन इन करें और सिंक चालू करें.</translation> <translation id="3170072451822350649">आप प्रवेश करना छोड़ भी सकते हैं और <ph name="LINK_START" />अतिथि के रूप में ब्राउज़<ph name="LINK_END" /> कर सकते हैं.</translation> @@ -1460,7 +1442,6 @@ <translation id="3229922550070982305">चलाएं / रोकें</translation> <translation id="3232318083971127729">मान:</translation> <translation id="3236289833370040187">स्वामित्व <ph name="DESTINATION_DOMAIN" /> को स्थानांतरित कर दिया जाएगा.</translation> -<translation id="3237784613213365159"><ph name="NEW_PROFILE_NAME" /> अब एक निगरानी में रखा गया उपयोगकर्ता है</translation> <translation id="323803881985677942">एक्सटेंशन के विकल्प खोलें</translation> <translation id="3241680850019875542">पैक के एक्सटेंशनकी मूल निर्देशिका को चुनें. किसी एक्स्टेंशन को अपडेट करने के लिए, पुन: उपयोग के लिए निजी कुंजी फ़ाइल का भी चुनें.</translation> <translation id="3242765319725186192">पहले से साझा की गई कुंजी:</translation> @@ -1823,7 +1804,6 @@ <translation id="3778152852029592020">डाउनलोड रद्द कर दिया गया था.</translation> <translation id="3778740492972734840">&डेवलपर टूल</translation> <translation id="3778868487658107119">इससे प्रश्न पूछें. इसे कुछ काम करने को कहें. यह आपका व्यक्तिगत Google है, जो हमेशा सहायता के लिए तैयार रहता है.</translation> -<translation id="3780663724044634171">निगरानी में रखे गए उपयोगकर्ता को प्रबंधित करने के लिए कोई खाता चुनें.</translation> <translation id="378312418865624974">इस कंप्यूटर का अद्वितीय पहचानकर्ता पढ़ें</translation> <translation id="3783640748446814672">alt</translation> <translation id="3785308913036335955">ऐप्स शॉर्टकट दिखाएं</translation> @@ -2540,7 +2520,6 @@ <translation id="4964455510556214366">व्यवस्था</translation> <translation id="4964673849688379040">जाँच कर रहा है...</translation> <translation id="4965808351167763748">क्या आप वाकई Hangouts Meet चलाने के लिए इस डिवाइस को सेट अप करना चाहते हैं?</translation> -<translation id="4967749818080339523">कोई खाता चुनें</translation> <translation id="496888482094675990">फ़ाइलें ऐप्स उन फ़ाइलों की त्वरित एक्सेस प्रदान करता है जिन्हें आपने Google डिस्क पर, बाहरी मेमोरी पर या अपने Chrome OS डिवाइस पर सहेजा है.</translation> <translation id="4969785127455456148">एल्बम</translation> <translation id="4971412780836297815">पू्र्ण होने पर खोलें</translation> @@ -3371,7 +3350,6 @@ <translation id="6241530762627360640">अपने सिस्टम के साथ युग्मित ब्लूटूथ डिवाइस से संबंधित जानकारी एक्सेस करें और आस-पास के ब्लूटूथ डिवाइस की खोज करें.</translation> <translation id="6243280677745499710">इस समय सेट है</translation> <translation id="6243774244933267674">सर्वर अनुपलब्ध है</translation> -<translation id="6246413617632217567">निगरानी में रखे गए उपयोगकर्ता को आयात नहीं किया जा सका. कृपया अपने हार्ड ड्राइव का स्थान और अनुमतियां जाँचें तथा पुनः प्रयास करें.</translation> <translation id="6247708409970142803"><ph name="PERCENTAGE" />%</translation> <translation id="6247802389331535091">सिस्टम: <ph name="ARC_PROCESS_NAME" /></translation> <translation id="624789221780392884">अपडेट तैयार है</translation> @@ -3570,7 +3548,6 @@ <translation id="654039047105555694"><ph name="BEGIN_BOLD" />ध्यान दें:<ph name="END_BOLD" /> केवल तभी सक्षम करें जबकि आपको पता हो कि आप क्या कर रहे हैं या यदि आपसे ऐसा करने के लिए कहा गया हो, क्योंकि डेटा के संकलन से निष्पादन में कमी आ सकती है.</translation> <translation id="654233263479157500">मार्गदर्शक त्रुटियों के समाधान में सहायता के लिए किसी वेब सेवा का उपयोग करें</translation> <translation id="6544215763872433504">Google का वेब ब्राउज़र, आपके लिए</translation> -<translation id="6545325945815270297"><ph name="BEGIN_LINK" />Chrome डैशबोर्ड<ph name="END_LINK" /> पर अपना सिंक किया हुआ डेटा और डिवाइस प्रबंधित करें.</translation> <translation id="6545665334409411530">दोहराने की दर</translation> <translation id="6545834809683560467">ऐप चलाने के साधन के खोज बॉक्स या पता में लिखे गए URL और खोजों को पूर्ण करने में सहायता के लिए पूर्वानुमान सेवा उपयोग करें</translation> <translation id="6546686722964485737">Wimax नेटवर्क में शामिल हों</translation> @@ -3585,7 +3562,6 @@ <translation id="6555810572223193255">क्लीनअप अभी उपलब्ध नहीं है</translation> <translation id="6556866813142980365">पुन: करें</translation> <translation id="6558280019477628686">कोई गड़बड़ी हुई है. शायद कुछ आइटम नहीं हटाए गए हैं.</translation> -<translation id="6559580823502247193">(पहले से ही इस डिवाइस पर)</translation> <translation id="6561726789132298588">enter</translation> <translation id="656293578423618167">फ़ाइल पथ या नाम बहुत बड़ा है. कृपया छोटे नाम के साथ या किसी अन्य स्थान पर सहेजें.</translation> <translation id="656398493051028875">"<ph name="FILENAME" />" हटा रहा है...</translation> @@ -3780,7 +3756,6 @@ <translation id="6862635236584086457">इस फ़ोल्डर में सहेजी गई सभी फ़ाइलों का अपने आप ऑनलाइन बैकअप लिया जाता है</translation> <translation id="6865313869410766144">ऑटोमैटिक भरने वाला फ़ॉर्म डेटा</translation> <translation id="686664946474413495">रंग का चटकीलापन</translation> -<translation id="6867678160199975333"><ph name="NEW_PROFILE_NAME" /> पर स्विच करें</translation> <translation id="6870888490422746447">साझा करने के लिए कोई ऐप चुनें:</translation> <translation id="6871644448911473373">OCSP प्रतिसादी: <ph name="LOCATION" /></translation> <translation id="6872781471649843364">आपने जो पासवर्ड डाला है उसे सर्वर ने अस्वीकार कर दिया है.</translation> @@ -3874,7 +3849,6 @@ <translation id="7018275672629230621">अपना ब्राउज़र इतिहास पढ़ें और बदलें</translation> <translation id="7019805045859631636">तेज़</translation> <translation id="7022562585984256452">आपका मुख पेज सेट कर दिया गया है.</translation> -<translation id="7025036625303002400">ऐसा लगता है कि आपके पास इस नाम वाला निगरानी में रखा गया उपयोगकर्ता पहले से है.</translation> <translation id="7025190659207909717">मोबाइल डेटा सेवा प्रबंधन</translation> <translation id="7025325401470358758">अगला फलक</translation> <translation id="7027125358315426638">डेटाबेस नाम:</translation> @@ -3923,7 +3897,6 @@ <translation id="7092106376816104">पॉप-अप अपवाद</translation> <translation id="7093434536568905704">GTK+</translation> <translation id="7093866338626856921"><ph name="HOSTNAMES" /> नामक डिवाइस से डेटा का आदान-प्रदान करें</translation> -<translation id="7096108453481049031">निगरानी में रखे गए उपयोगकर्ता आयात नहीं किया जा सकता. कृपया अपना नेटवर्क कनेक्शन जाँचें और बाद में पुनः प्रयास करें.</translation> <translation id="7098447629416471489">सहेजे गए दूसरे खोज इंजन यहां दिखाई देंगे</translation> <translation id="7099337801055912064">बड़ा PPD लोड नहीं किया जा सका. अधिकतम आकार 250 केबी है.</translation> <translation id="7100897339030255923"><ph name="COUNT" /> आइटम चयनित</translation> @@ -3970,7 +3943,6 @@ <translation id="7168109975831002660">न्यूनतम अक्षरों का आकार</translation> <translation id="7170041865419449892">सीमा से बाहर</translation> <translation id="7171559745792467651">अपने दूसरे डिवाइस से ऐप्लिकेशन इंस्टॉल करें</translation> -<translation id="7173917244679555">ऐसा लगता है कि आप पहले से ही उस नाम से किसी उपयोगकर्ता को प्रबंधित कर रहे हैं. क्या आप <ph name="BEGIN_LINK" /><ph name="PROFILE_NAME" /> को <ph name="END_LINK" /> इस डिवाइस में निर्यात करना चाहते हैं?</translation> <translation id="7175037578838465313"><ph name="NAME" /> को कॉन्फ़िगर करें</translation> <translation id="7175353351958621980">यहां से लोड किया गया:</translation> <translation id="7180611975245234373">रीफ्रेश करें</translation> @@ -4142,7 +4114,6 @@ <translation id="7444726222535375658">Hangouts Meet में जारी रखें</translation> <translation id="7444983668544353857"><ph name="NETWORKDEVICE" /> अक्षम करें </translation> <translation id="7445682342344043969">पॉप-अप ब्लॉक किए गए हैं</translation> -<translation id="744859430125590922">इस व्यक्ति द्वारा <ph name="CUSTODIAN_EMAIL" /> से देखी जाने वाली वेबसाइटें नियंत्रित करें और देखें.</translation> <translation id="7453008956351770337">इस प्रिंटर को चुनकर, आप निम्नलिखित एक्सटेंशन को अपने प्रिंटर के लिए ऐक्सेस की अनुमति दे रहे हैं:</translation> <translation id="7453467225369441013">आपको ज़्यादातर साइटों से साइन आउट कर देता है. आप अपने Google खाते से साइन आउट नहीं होंगे.</translation> <translation id="7456142309650173560">डेव</translation> @@ -4316,7 +4287,6 @@ <translation id="7717845620320228976">अपडेट के लिए देखें</translation> <translation id="7719367874908701697">पृष्ठ ज़ूम</translation> <translation id="771953673318695590">QA</translation> -<translation id="7720375555307821262">इस व्यक्ति का निरीक्षण करने के लिए, <ph name="BEGIN_LINK" />Chrome में प्रवेश करें<ph name="END_LINK" />.</translation> <translation id="7721179060400456005">विंडो को प्रदर्शन फैलाने दें</translation> <translation id="7722040605881499779">अपडेट करना ज़रूरी है: <ph name="NECESSARY_SPACE" /></translation> <translation id="7724603315864178912">काटें</translation> @@ -5146,7 +5116,6 @@ <translation id="9024331582947483881">पूर्ण स्क्रीन</translation> <translation id="9025098623496448965">ठीक है, मुझे साइन-इन स्क्रीन पर वापस ले जाएं</translation> <translation id="9026731007018893674">डाउनलोड करें</translation> -<translation id="9027146684281895941">यह व्यक्ति आपके Google खाते से जिन वेबसाइट पर जाता है, उन्हें नियंत्रित करने और देखने के लिए इस व्यक्ति का निरीक्षण करें.</translation> <translation id="9027459031423301635">नए &टैब में लिंक खोलें</translation> <translation id="9027603907212475920">समन्वयन सेट अप करें...</translation> <translation id="9030515284705930323">आपके संगठन ने आपके खाते के लिए Google Play स्टोर को सक्षम नहीं किया है. अधिक जानकारी के लिए अपने व्यवस्थापक से संपर्क करें.</translation>
diff --git a/chrome/app/resources/generated_resources_hr.xtb b/chrome/app/resources/generated_resources_hr.xtb index c01b9fc..0b29185 100644 --- a/chrome/app/resources/generated_resources_hr.xtb +++ b/chrome/app/resources/generated_resources_hr.xtb
@@ -42,7 +42,6 @@ <translation id="1056898198331236512">Upozorenje</translation> <translation id="1058262162121953039">PUK</translation> <translation id="1062407476771304334">Zamijeni</translation> -<translation id="1062866675591297858">Upravljajte svojim nadziranim korisnicima putem <ph name="BEGIN_LINK" />nadzorne ploče nadziranih korisnika<ph name="END_LINK" />.</translation> <translation id="1064835277883315402">Pridruži se privatnoj mreži</translation> <translation id="1064912851688322329">Prekidanje veze s Google računom</translation> <translation id="1067048845568873861">Izrađeno</translation> @@ -65,7 +64,6 @@ <translation id="1091767800771861448">Pritisnite tipku ESCAPE za preskakanje (samo neslužbene međuverzije).</translation> <translation id="1093457606523402488">Vidljive mreže:</translation> <translation id="1094607894174825014">Zatražena je operacija čitanja ili zapisivanja s nevažećim odstupanjem na uređaju: "<ph name="DEVICE_NAME" />".</translation> -<translation id="1097507499312291972"><ph name="BEGIN_SIGN_IN_LINK" />Prijavite se<ph name="END_SIGN_IN_LINK" /> kako biste upravljali web-lokacijama koje ova osoba posjeti i prikazali ih.</translation> <translation id="109758035718544977">Prestani zanemarivati web-lokacije</translation> <translation id="1097658378307015415">Prije nego što se prijavite, uđite kao gost da biste aktivirali mrežu <ph name="NETWORK_ID" /></translation> <translation id="1103523840287552314">Uvijek prevedi <ph name="LANGUAGE" /></translation> @@ -244,7 +242,6 @@ <translation id="1361655923249334273">Nekorišteno</translation> <translation id="1363028406613469049">Zvučni zapis</translation> <translation id="1367951781824006909">Odaberite datoteku</translation> -<translation id="136802136832547685">Nema nadziranih korisnika koji se mogu dodati na ovaj uređaj.</translation> <translation id="1368265273904755308">Prijava problema</translation> <translation id="1370646789215800222">Ukloniti osobu?</translation> <translation id="1372681413396468867">{NUM_ITEMS,plural, =1{1 stavka za uklanjanje}one{# stavka za uklanjanje}few{# stavke za uklanjanje}other{# stavki za uklanjanje}}</translation> @@ -472,7 +469,6 @@ <translation id="1692799361700686467">Dopušteni su kolačići s više web-mjesta</translation> <translation id="169515659049020177">Shift</translation> <translation id="1698122934742150150">Samo trenutačna anonimna sesija</translation> -<translation id="1700199471143028312">Administrator vam ne dopušta izradu nadziranih korisnika.</translation> <translation id="1701062906490865540">Ukloni ovu osobu</translation> <translation id="1706586824377653884">Dodao vaš administrator</translation> <translation id="1706625117072057435">Razine zumiranja</translation> @@ -1041,7 +1037,6 @@ <translation id="2604255671529671813">Pogreška mrežne veze</translation> <translation id="2606246518223360146">Poveži podatke</translation> <translation id="2607101320794533334">Informacije predmeta javnog ključa</translation> -<translation id="2607459012323956820">Postavke i povijest pregledavanja za tog nadziranog korisnika mogu i dalje biti vidljive upravitelju na adresi <ph name="BEGIN_LINK" /><ph name="DISPLAY_LINK" /><ph name="END_LINK" />.</translation> <translation id="2608770217409477136">Upotrijebi zadane postavke</translation> <translation id="2609896558069604090">Stvaranje prečaca...</translation> <translation id="2610157865375787051">Mirovanje</translation> @@ -1284,7 +1279,6 @@ <translation id="2951247061394563839">Centriranje prozora</translation> <translation id="2956763290572484660"><ph name="COOKIES" /> kolačića</translation> <translation id="2958721676848865875">Upozorenje proširenja paketa</translation> -<translation id="2961043351165706615">Linux aplikacije koje ste instalirali izbrisat će se s ovog Chromebooka.</translation> <translation id="2961090598421146107"><ph name="CERTIFICATE_NAME" /> (omogućeno produženje)</translation> <translation id="2961695502793809356">Kliknite za kretanje prema naprijed, zadržite da biste vidjeli povijest</translation> <translation id="2963151496262057773">Sljedeći dodatak ne reagira: <ph name="PLUGIN_NAME" />. Želite li ga zaustaviti?</translation> @@ -1336,15 +1330,6 @@ <translation id="3022978424994383087">Nisam shvatio.</translation> <translation id="3024374909719388945">Koristi 24-satni sat</translation> <translation id="302781076327338683">Ponovno učitavanje predmemorije sa zaobilaženjem</translation> -<translation id="3030243755303701754">Nadzirani korisnik može istraživati web prema vašim smjernicama. Kao voditelj nadziranog korisnika u Chromeu možete sljedeće: - - • dopustiti ili zabraniti određene web-lokacije - • pregledati web-lokacije koje je nadzirani korisnik posjetio - • upravljati ostalim postavkama. - -Izradom nadziranog korisnika ne izrađuje se Google račun, a korisnikove oznake, povijest pregledavanja i ostale postavke neće mu biti dostupne na drugim uređajima putem Chrome sinkronizacije. Kad izradite novog nadziranog korisnika, možete upravljati njegovim postavkama u bilo kojem trenutku putem bilo kojeg uređaja na stranici <ph name="BEGIN_MANAGE_LINK" /><ph name="DISPLAY_LINK" /><ph name="END_MANAGE_LINK" />. - -Više informacija potražite u našem <ph name="BEGIN_LINK" />centru za pomoć<ph name="END_LINK" />.</translation> <translation id="3031417829280473749">Agentica X</translation> <translation id="3031557471081358569">Odaberi stavke za uvoz:</translation> <translation id="3031601332414921114">Nastavi ispis</translation> @@ -1385,7 +1370,6 @@ <translation id="3085412380278336437">Web-lokacija može upotrebljavati vašu kameru</translation> <translation id="3085752524577180175">SOCKS host</translation> <translation id="3088325635286126843">&Preimenuj...</translation> -<translation id="3089231390674410424">Izgleda da ima problema s vašim vjerodajnicama. Provjerite jeste li se pravilno prijavili i pokušajte ponovo.</translation> <translation id="3090193911106258841">Pristupanje audio i videoulazu</translation> <translation id="3090819949319990166">Nije moguće kopiranje crx datoteke u <ph name="TEMP_CRX_FILE" />.</translation> <translation id="3090871774332213558">Upareno: "<ph name="DEVICE_NAME" />"</translation> @@ -1400,7 +1384,6 @@ <translation id="3121793941267913344">Vraćanje uređaja <ph name="IDS_SHORT_PRODUCT_NAME" /> na zadano</translation> <translation id="3122464029669770682">Procesor (CPU)</translation> <translation id="3122496702278727796">Nije uspjelo stvaranje podatkovnog direktorija</translation> -<translation id="3123569374670379335">(Pod nadzorom)</translation> <translation id="3124111068741548686">Rukuje USER</translation> <translation id="3126026824346185272">Ctrl</translation> <translation id="3127156390846601284">Time će se izbrisati svi podaci pohranjeni na vašem uređaju za sve prikazane web-lokacije. Želite li nastaviti?</translation> @@ -1435,8 +1418,6 @@ <translation id="3160842278951476457"><ph name="ISSUED_BY" /> [<ph name="ISSUED_TO" />] (s hardverskom podlogom)</translation> <translation id="316125635462764134">Ukloni aplikaciju</translation> <translation id="3161522574479303604">Svi jezici</translation> -<translation id="316307797510303346">Upravljajte web-lokacijama koje ova osoba posjeti i prikazujte ih putem računa <ph name="CUSTODIAN_EMAIL" />. - Vaši su podaci za prijavu zastarjeli.</translation> <translation id="3165390001037658081">Neki mobilni operateri mogu blokirati tu značajku.</translation> <translation id="316854673539778496">Da biste imali sva svoja proširenja na svim svojim uređajima, prijavite se i uključite sinkronizaciju.</translation> <translation id="3170072451822350649">Možete također preskočiti prijavu i <ph name="LINK_START" />pregledavati kao gost<ph name="LINK_END" />.</translation> @@ -1469,7 +1450,6 @@ <translation id="3229922550070982305">Reprodukcija/pauza</translation> <translation id="3232318083971127729">Vrijednost:</translation> <translation id="3236289833370040187">Vlasništvo će se prenijeti na domenu <ph name="DESTINATION_DOMAIN" />.</translation> -<translation id="3237784613213365159"><ph name="NEW_PROFILE_NAME" /> sada je nadzirani korisnik</translation> <translation id="323803881985677942">Otvori opcije proširenja</translation> <translation id="3241680850019875542">Odaberite korijenski direktorij proširenja za pakiranje. Da biste ažurirali proširenje, odaberite i datoteku osobnog ključa za ponovnu upotrebu.</translation> <translation id="3242765319725186192">Unaprijed podijeljen ključ:</translation> @@ -1701,7 +1681,6 @@ <translation id="3584169441612580296">čitati i mijenjati fotografije, glazbu i druge medije s vašeg računala</translation> <translation id="3587482841069643663">Sve</translation> <translation id="358796204584394954">Upišite ovaj kôd na uređaju <ph name="DEVICE_NAME" /> da biste ga uparili:</translation> -<translation id="3589532742556016615">To ne utječe na aplikacije i sadržaj na ostalim uređajima.</translation> <translation id="3589766037099229847">Nesigurni je sadržaj blokiran</translation> <translation id="3590194807845837023">Otključaj profil i pokreni ponovo</translation> <translation id="3592260987370335752">&Saznajte više</translation> @@ -1835,7 +1814,6 @@ <translation id="3778152852029592020">Preuzimanje je otkazano.</translation> <translation id="3778740492972734840">&Alati za razvojne programere</translation> <translation id="3778868487658107119">Postavljajte mu pitanja. Dajte mu naredbe. To je vaš osobni Google, uvijek spreman pomoći.</translation> -<translation id="3780663724044634171">Odaberite račun za upravljanje nadziranim korisnikom.</translation> <translation id="378312418865624974">pročitati jedinstveni identifikator ovog računala</translation> <translation id="3783640748446814672">alt</translation> <translation id="3785308913036335955">Prikaži prečac za Aplikacije</translation> @@ -2563,7 +2541,6 @@ <translation id="4964455510556214366">Poredak</translation> <translation id="4964673849688379040">Provjera u tijeku...</translation> <translation id="4965808351167763748">Jeste li sigurni da želite postaviti ovaj uređaj za pokretanje Hangouts Meeta?</translation> -<translation id="4967749818080339523">Odaberite račun</translation> <translation id="496888482094675990">Aplikacija Datoteke pruža brzi pristup datotekama spremljenima na Google disku, u vanjskoj pohrani ili na uređaju s OS-om Chrome.</translation> <translation id="4969785127455456148">Album</translation> <translation id="4971412780836297815">Otvori nakon dovršetka</translation> @@ -2750,7 +2727,6 @@ Što god da se dogodi s vašim uređajem, vaše su datoteke sigurno pohranjene na Google disku.<ph name="MARKUP_6" /> <ph name="MARKUP_7" />Dijelite, stvarajte i surađujte<ph name="MARKUP_8" /> na datotekama s drugima i sve to na jednom mjestu.<ph name="MARKUP_9" /></translation> -<translation id="5262401745672360397">Možda će se izbrisati i datoteke koje se dijele s Linux aplikacijama.</translation> <translation id="5264148714798105376">To može potrajati otprilike minutu.</translation> <translation id="5264252276333215551">Povežite se s internetom da biste pokrenuli svoju aplikaciju u načinu kioska.</translation> <translation id="5265562206369321422">Izvan mreže više od tjedan dana</translation> @@ -3402,7 +3378,6 @@ <translation id="6241530762627360640">pristupiti informacijama o Bluetooth uređajima uparenim s vašim sustavom i otkrivati Bluetooth uređaje u blizini</translation> <translation id="6243280677745499710">Trenutačno postavljeno</translation> <translation id="6243774244933267674">Poslužitelj nije dostupan</translation> -<translation id="6246413617632217567">Nadzirani korisnik nije uvezen. Provjerite imate li dovoljno prostora na tvrdom disku i potrebna dopuštenja pa pokušajte ponovo.</translation> <translation id="6247708409970142803"><ph name="PERCENTAGE" />%</translation> <translation id="6247802389331535091">Sustav: <ph name="ARC_PROCESS_NAME" /></translation> <translation id="624789221780392884">Ažuriranje je spremno</translation> @@ -3601,7 +3576,6 @@ <translation id="654039047105555694"><ph name="BEGIN_BOLD" />Napomena:<ph name="END_BOLD" /> omogućite samo ako točno znate što radite ili ako se to od vas traži jer prikupljanje podataka može umanjiti izvedbu.</translation> <translation id="654233263479157500">Koristi se web-uslugom za rješavanje pogrešaka u navigaciji</translation> <translation id="6544215763872433504">Googleov web-preglednik, za vas</translation> -<translation id="6545325945815270297">Upravljajte svojim sinkroniziranim podacima i uređajima na <ph name="BEGIN_LINK" />Chromeovoj nadzornoj ploči<ph name="END_LINK" />.</translation> <translation id="6545665334409411530">Stopa ponavljanja</translation> <translation id="6545834809683560467">Upotrijebi uslugu predviđanja za dovršavanje pretraživanja i URL-ova upisanih u adresnu traku ili okvir za pretraživanje pokretača aplikacija</translation> <translation id="6546686722964485737">Pridruživanje mreži WiMAX</translation> @@ -3616,7 +3590,6 @@ <translation id="6555810572223193255">Čišćenje trenutačno nije dostupno</translation> <translation id="6556866813142980365">Ponovi</translation> <translation id="6558280019477628686">Dogodila se pogreška. Neke stavke možda nisu izbrisane.</translation> -<translation id="6559580823502247193">(već na ovom uređaju)</translation> <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="656398493051028875">Brisanje datoteke "<ph name="FILENAME" />"...</translation> @@ -3813,7 +3786,6 @@ <translation id="6862635236584086457">Za sve datoteke spremljene u ovoj mapi automatski se izrađuje sigurnosna kopija na mreži</translation> <translation id="6865313869410766144">Automatski ispuni podatke u obrascu</translation> <translation id="686664946474413495">Temperatura boje</translation> -<translation id="6867678160199975333">Prebaci na korisnika <ph name="NEW_PROFILE_NAME" /></translation> <translation id="6870888490422746447">Odaberite aplikaciju za dijeljenje:</translation> <translation id="6871644448911473373">OCSP odgovaratelj: <ph name="LOCATION" /></translation> <translation id="6872781471649843364">Poslužitelj je odbio zaporku koju ste unijeli.</translation> @@ -3907,7 +3879,6 @@ <translation id="7018275672629230621">pročitati i promijeniti povijest pregledavanja</translation> <translation id="7019805045859631636">Brzo</translation> <translation id="7022562585984256452">Vaša je početna stranica postavljena.</translation> -<translation id="7025036625303002400">Izgleda da već imate nadziranog korisnika s tim imenom.</translation> <translation id="7025190659207909717">Upravljanje podatkovnom uslugom za mobilne uređaje</translation> <translation id="7025325401470358758">Sljedeće okno</translation> <translation id="7027125358315426638">Naziv baze podataka:</translation> @@ -3956,7 +3927,6 @@ <translation id="7092106376816104">Iznimke za skočne prozore</translation> <translation id="7093434536568905704">GTK+</translation> <translation id="7093866338626856921">razmjenjivati podatke s uređajima naziva: <ph name="HOSTNAMES" /></translation> -<translation id="7096108453481049031">Nadzirani korisnik nije uvezen. Provjerite jeste li povezani s mrežom i pokušajte ponovo.</translation> <translation id="7096406577040705016">Uključivanje/isključivanje povećala cijelog zaslona</translation> <translation id="7098447629416471489">Ovdje će se pojaviti ostale spremljene tražilice</translation> <translation id="7099337801055912064">Nije moguće učitati veliki PPD. Maksimalna veličina iznosi 250 KB.</translation> @@ -4004,7 +3974,6 @@ <translation id="7168109975831002660">Najmanja veličina fonta</translation> <translation id="7170041865419449892">Izvan raspona</translation> <translation id="7171559745792467651">Instalirajte aplikacije sa svojih ostalih uređaja</translation> -<translation id="7173917244679555">Čini se da već upravljate korisnikom s tim imenom. Želite li <ph name="BEGIN_LINK" />uvesti korisnika <ph name="PROFILE_NAME" /><ph name="END_LINK" /> na taj uređaj?</translation> <translation id="7175037578838465313">Konfiguriraj <ph name="NAME" /></translation> <translation id="7175353351958621980">Učitano iz:</translation> <translation id="7180611975245234373">Osvježi</translation> @@ -4175,7 +4144,6 @@ <translation id="7444726222535375658">Nastavi na Hangouts Meet</translation> <translation id="7444983668544353857">Onemogući <ph name="NETWORKDEVICE" /></translation> <translation id="7445682342344043969">Skočni su prozori blokirani</translation> -<translation id="744859430125590922">Nadzirite i prikazujte web-lokacije koje ova osoba posjeti putem e-adrese <ph name="CUSTODIAN_EMAIL" />.</translation> <translation id="7453008956351770337">Odabirom tog pisača sljedećem proširenju dajete dopuštenje za pristup svojem pisaču:</translation> <translation id="7453467225369441013">Odjavit ćete se s većine web-lokacija, ali se nećete odjaviti s Google računa.</translation> <translation id="7456142309650173560">razvojni</translation> @@ -4349,7 +4317,6 @@ <translation id="7717845620320228976">Provjeri ažuriranja</translation> <translation id="7719367874908701697">Zumiranje stranice</translation> <translation id="771953673318695590">Osiguranje kvalitete</translation> -<translation id="7720375555307821262">Da biste nadzirali tu osobu, <ph name="BEGIN_LINK" />prijavite se na Chrome<ph name="END_LINK" />.</translation> <translation id="7721179060400456005">Dopusti da prozori obuhvaćaju više zaslona</translation> <translation id="7722040605881499779">Potrebno za ažuriranje: <ph name="NECESSARY_SPACE" /></translation> <translation id="7724603315864178912">Izreži</translation> @@ -5205,7 +5172,6 @@ <translation id="9024331582947483881">cijeli zaslon</translation> <translation id="9025098623496448965">U redu, vrati me na zaslon za prijavu</translation> <translation id="9026731007018893674">preuzmi</translation> -<translation id="9027146684281895941">Nadzirite tu osobu kako biste upravljali web-lokacijama koje ta osoba posjeti i prikazali ih putem svojeg Google računa.</translation> <translation id="9027459031423301635">Otvori vezu u novoj &kartici</translation> <translation id="9027603907212475920">Postavi sinkronizaciju...</translation> <translation id="9030515284705930323">Vaša organizacija nije omogućila Trgovinu Google Play za vaš račun. Više informacija zatražite od administratora.</translation> @@ -5365,7 +5331,6 @@ <translation id="98515147261107953">Pejzaž</translation> <translation id="987897973846887088">Nema dostupnih slika</translation> <translation id="988978206646512040">Prazne šifre nisu dopuštene</translation> -<translation id="990310048453480215">Ukloni Linux aplikacije</translation> <translation id="992032470292211616">Proširenja, aplikacije i teme mogu nauditi vašem uređaju. Jeste li sigurni da želite nastaviti?</translation> <translation id="992592832486024913">Onemogući ChromeVox (govorne povratne informacije)</translation> <translation id="994289308992179865">&Petlja</translation>
diff --git a/chrome/app/resources/generated_resources_hu.xtb b/chrome/app/resources/generated_resources_hu.xtb index e7da620..6ba5e5f 100644 --- a/chrome/app/resources/generated_resources_hu.xtb +++ b/chrome/app/resources/generated_resources_hu.xtb
@@ -42,7 +42,6 @@ <translation id="1056898198331236512">Figyelmeztetés</translation> <translation id="1058262162121953039">PUK-kód</translation> <translation id="1062407476771304334">Csere</translation> -<translation id="1062866675591297858">A felügyelt felhasználókat a <ph name="BEGIN_LINK" />Felügyelt felhasználók irányítópulton<ph name="END_LINK" /> kezelheti.</translation> <translation id="1064835277883315402">Csatlakozás magánhálózathoz</translation> <translation id="1064912851688322329">Google-fiók leválasztása</translation> <translation id="1067048845568873861">Létrehozva</translation> @@ -65,7 +64,6 @@ <translation id="1091767800771861448">Nyomja le az ESC billentyűt a kihagyáshoz (csak nem hivatalos verzióknál).</translation> <translation id="1093457606523402488">Látható hálózatok:</translation> <translation id="1094607894174825014">Az olvasási vagy írási művelet érvénytelen eltolással lett kérve a következőn: „<ph name="DEVICE_NAME" />”.</translation> -<translation id="1097507499312291972"><ph name="BEGIN_SIGN_IN_LINK" />Jelentkezzen be<ph name="END_SIGN_IN_LINK" />, hogy vezérelhesse és megtekinthesse az e személy által felkeresett webhelyeket.</translation> <translation id="109758035718544977">Webhelyek némításának feloldása</translation> <translation id="1097658378307015415">Kérjük, bejelentkezés előtt a(z) <ph name="NETWORK_ID" /> hálózat aktiválásához lépjen be vendégként.</translation> <translation id="1103523840287552314"><ph name="LANGUAGE" /> - mindig legyen lefordítva</translation> @@ -244,7 +242,6 @@ <translation id="1361655923249334273">Nem használt</translation> <translation id="1363028406613469049">Szám</translation> <translation id="1367951781824006909">Válasszon egy fájlt</translation> -<translation id="136802136832547685">Nincs felügyelt felhasználó, akit hozzá lehetne adni ehhez az eszközhöz.</translation> <translation id="1368265273904755308">Probléma bejelentése</translation> <translation id="1370646789215800222">Eltávolítja a felhasználót?</translation> <translation id="1372681413396468867">{NUM_ITEMS,plural, =1{1 elem vár eltávolításra}other{# elem vár eltávolításra}}</translation> @@ -472,7 +469,6 @@ <translation id="1692799361700686467">A több webhelyről származó cookie-k engedélyezve.</translation> <translation id="169515659049020177">Shift</translation> <translation id="1698122934742150150">Csak a jelenlegi inkognitó munkamenet</translation> -<translation id="1700199471143028312">Rendszergazdája nem engedélyezi felügyelt felhasználók létrehozását.</translation> <translation id="1701062906490865540">Személy eltávolítása</translation> <translation id="1706586824377653884">A rendszergazda által hozzáadva</translation> <translation id="1706625117072057435">Nagyítási/kicsinyítési szintek</translation> @@ -1042,7 +1038,6 @@ <translation id="2604255671529671813">Hálózati kapcsolati hiba</translation> <translation id="2606246518223360146">Adatok összekapcsolása</translation> <translation id="2607101320794533334">Nyilvános kulcs adatai</translation> -<translation id="2607459012323956820">A kezelő a következő webhelyen továbbra is láthatja a felügyelt felhasználó beállításait és böngészési előzményeit: <ph name="BEGIN_LINK" /><ph name="DISPLAY_LINK" /><ph name="END_LINK" />.</translation> <translation id="2608770217409477136">Alapbeállítások használata</translation> <translation id="2609896558069604090">Parancsikonok létrehozása...</translation> <translation id="2610157865375787051">Alvó mód</translation> @@ -1285,7 +1280,6 @@ <translation id="2951247061394563839">Ablak középre</translation> <translation id="2956763290572484660"><ph name="COOKIES" /> cookie</translation> <translation id="2958721676848865875">Csomagbővítménnyel kapcsolatos figyelmeztetés</translation> -<translation id="2961043351165706615">Az Ön által telepített linuxos alkalmazások törlődni fognak erről a Chromebookról.</translation> <translation id="2961090598421146107"><ph name="CERTIFICATE_NAME" /> (bővítmény által kibocsátott)</translation> <translation id="2961695502793809356">Kattintson, ha tovább szeretne lépni; tartsa lenyomva, ha látni szeretné az előzményeket</translation> <translation id="2963151496262057773">Az alábbi beépülő modulok nem válaszolnak: <ph name="PLUGIN_NAME" />. Szeretné leállítani?</translation> @@ -1337,15 +1331,6 @@ <translation id="3022978424994383087">Nem értettem.</translation> <translation id="3024374909719388945">24 órás megjelenítés használata</translation> <translation id="302781076327338683">Újratöltés a gyorsítótár megkerülésével</translation> -<translation id="3030243755303701754">A felügyelt felhasználók az Ön felügyelete mellett fedezhetik fel az internetet. A felügyelt felhasználó kezelőjeként a Chrome-ban a következőkre nyílik lehetősége: - - • bizonyos webhelyek engedélyezése vagy tiltása, - • a felügyelt felhasználó által felkeresett webhelyek áttekintése, valamint - • egyéb beállítások kezelése. - -A felügyelt felhasználó létrehozása nem jelenti Google-fiók létrehozását is, és a felügyelt felhasználók könyvjelzői, böngészési előzményei és más beállításai nem lesznek szinkronizálva a többi eszközükön a Chrome-szinkronizálás funkció segítségével. Miután létrehozott egy új felügyelt felhasználót, bármikor, bármely eszközről kezelheti beállításait a következő címen: <ph name="BEGIN_MANAGE_LINK" /><ph name="DISPLAY_LINK" /><ph name="END_MANAGE_LINK" />. - -Ha további információt szeretne, látogasson el a <ph name="BEGIN_LINK" />Súgóba<ph name="END_LINK" />.</translation> <translation id="3031417829280473749">X ügynök</translation> <translation id="3031557471081358569">Válassza ki az importálandó elemeket:</translation> <translation id="3031601332414921114">A nyomtatás folytatása</translation> @@ -1386,7 +1371,6 @@ <translation id="3085412380278336437">A webhely használhatja a kameráját</translation> <translation id="3085752524577180175">SOCKS-szerver</translation> <translation id="3088325635286126843">Át&nevezés...</translation> -<translation id="3089231390674410424">Úgy tűnik, probléma van a hitelesítési adatokkal. Győződjön meg róla, hogy megfelelően bejelentkezett, majd próbálja újra.</translation> <translation id="3090193911106258841">Hozzáférés a hang- és videobementhez</translation> <translation id="3090819949319990166">A külső crx-fájl nem másolható a következő helyre: <ph name="TEMP_CRX_FILE" />.</translation> <translation id="3090871774332213558">„<ph name="DEVICE_NAME" />” párosítva</translation> @@ -1401,7 +1385,6 @@ <translation id="3121793941267913344">A(z) <ph name="IDS_SHORT_PRODUCT_NAME" /> eszköz visszaállítása</translation> <translation id="3122464029669770682">CPU</translation> <translation id="3122496702278727796">Nem sikerült létrehozni az adatkönyvtárat</translation> -<translation id="3123569374670379335">(Felügyelt)</translation> <translation id="3124111068741548686">FELHASZNÁLÓI azonosítók</translation> <translation id="3126026824346185272">Ctrl</translation> <translation id="3127156390846601284">Ez minden adatot töröl, amelyet a megjelenített webhelyek tároltak eszközén. Folytatja?</translation> @@ -1436,8 +1419,6 @@ <translation id="3160842278951476457"><ph name="ISSUED_BY" /> [<ph name="ISSUED_TO" />] (hardverrel támogatott)</translation> <translation id="316125635462764134">Az alkalmazás eltávolítása</translation> <translation id="3161522574479303604">Minden nyelv</translation> -<translation id="316307797510303346">Vezérelje és tekintse meg az e személy által felkeresett webhelyeket a(z) <ph name="CUSTODIAN_EMAIL" /> e-mail címről. - Fiókja bejelentkezési adatai elavultak.</translation> <translation id="3165390001037658081">Egyes szolgáltatók letilthatják ezt a funkciót.</translation> <translation id="316854673539778496">Ha az összes eszközén szeretné elérni bővítményeit, jelentkezzen be, és kapcsolja be a szinkronizálást.</translation> <translation id="3170072451822350649">Ki is hagyhatja a bejelentkezést, és <ph name="LINK_START" />böngészhet vendégként<ph name="LINK_END" />.</translation> @@ -1470,7 +1451,6 @@ <translation id="3229922550070982305">lejátszás / szüneteltetés</translation> <translation id="3232318083971127729">Érték:</translation> <translation id="3236289833370040187">A tulajdonjogot átruházza a következőre: <ph name="DESTINATION_DOMAIN" />.</translation> -<translation id="3237784613213365159"><ph name="NEW_PROFILE_NAME" /> mostantól felügyelt felhasználó</translation> <translation id="323803881985677942">Bővítmények lehetőségeinek megnyitása</translation> <translation id="3241680850019875542">Válassza ki a bővítmény gyökérkönyvtárát. A bővítmény frissítéséhez meg kell adni az ismét használandó privátkulcs-fájlt is.</translation> <translation id="3242765319725186192">Előre megosztott kulcs:</translation> @@ -1702,7 +1682,6 @@ <translation id="3584169441612580296">Fotók, zeneszámok és egyéb médiatartalmak olvasása és módosítása a számítógépről</translation> <translation id="3587482841069643663">Mind</translation> <translation id="358796204584394954">Írja be ezt a kódot a(z) „<ph name="DEVICE_NAME" />” eszközön a párosításhoz:</translation> -<translation id="3589532742556016615">Ez nincs hatással a többi eszközön lévő alkalmazásokra és tartalmakra.</translation> <translation id="3589766037099229847">Nem biztonságos tartalom letiltva</translation> <translation id="3590194807845837023">Profil feloldása és újraindítás</translation> <translation id="3592260987370335752">&További információ</translation> @@ -1836,7 +1815,6 @@ <translation id="3778152852029592020">Letöltés megszakítva.</translation> <translation id="3778740492972734840">Fejlesz&tői eszközök</translation> <translation id="3778868487658107119">Tegyen fel neki kérdéseket. Adjon neki utasításokat. Az Ön személyes Google-ja mindig segítségre kész.</translation> -<translation id="3780663724044634171">Válasszon fiókot a felügyelt felhasználó kezeléséhez.</translation> <translation id="378312418865624974">Egyedi azonosító olvasása ennél a számítógépnél</translation> <translation id="3783640748446814672">alt</translation> <translation id="3785308913036335955">Alkalmazások gyorsparancs megjelenítése</translation> @@ -2563,7 +2541,6 @@ <translation id="4964455510556214366">Elrendezés</translation> <translation id="4964673849688379040">Ellenőrzés…</translation> <translation id="4965808351167763748">Biztosan beállítja ezt az eszközt a Hangouts Meet futtatására?</translation> -<translation id="4967749818080339523">Fiók kiválasztása</translation> <translation id="496888482094675990">A Fájlok alkalmazás gyors hozzáférést kínál a Google Drive-on, külső tárolón vagy a Chrome OS-eszközön elmentett fájlokhoz.</translation> <translation id="4969785127455456148">Album</translation> <translation id="4971412780836297815">Megnyitás, amikor kész</translation> @@ -2750,7 +2727,6 @@ Nem számít, mi történik az eszközével, fájljai biztonságban vannak a Google Drive-on.<ph name="MARKUP_6" /> <ph name="MARKUP_7" />Megoszthat és létrehozhat fájlokat, amelyeken együtt dolgozhat<ph name="MARKUP_8" /> másokkal – mindezt egy helyen.<ph name="MARKUP_9" /></translation> -<translation id="5262401745672360397">A linuxos alkalmazásokkal megosztott fájlok is törlődhetnek.</translation> <translation id="5264148714798105376">Ez eltarthat egy-két percig.</translation> <translation id="5264252276333215551">Csatlakozzon az internethez az alkalmazás kioszk módban való indításához.</translation> <translation id="5265562206369321422">Több mint egy hete offline</translation> @@ -3404,7 +3380,6 @@ <translation id="6241530762627360640">A rendszerrel párosított Bluetooth-eszközökkel kapcsolatos információk elérése és a közeli Bluetooth-eszközök felderítése.</translation> <translation id="6243280677745499710">Jelenleg beállított</translation> <translation id="6243774244933267674">A szerver nem érhető el</translation> -<translation id="6246413617632217567">Nem sikerült importálni a felügyelt felhasználót. Kérjük, ellenőrizze a merevlemezen rendelkezésre álló helyet és az engedélyeket, majd próbálja újra.</translation> <translation id="6247708409970142803"><ph name="PERCENTAGE" />%</translation> <translation id="6247802389331535091">Rendszer: <ph name="ARC_PROCESS_NAME" /></translation> <translation id="624789221780392884">A frissítés készen áll</translation> @@ -3603,7 +3578,6 @@ <translation id="654039047105555694"><ph name="BEGIN_BOLD" />Megjegyzés:<ph name="END_BOLD" /> csak akkor engedélyezze, ha tisztában van a következményekkel, vagy megkérték rá, mivel az adatok gyűjtése csökkentheti a teljesítményt.</translation> <translation id="654233263479157500">Internetes szolgáltatás használata a navigációs hibák megoldására</translation> <translation id="6544215763872433504">A Google által Önnek készített böngésző</translation> -<translation id="6545325945815270297">Szinkronizált adatait és eszközeit a <ph name="BEGIN_LINK" />Chrome Irányítópulton<ph name="END_LINK" /> kezelheti.</translation> <translation id="6545665334409411530">Ismétlési sebesség</translation> <translation id="6545834809683560467">A várható kifejezés szolgáltatás használata a keresések és URL-címek kiegészítésére a címsávban, illetve az alkalmazásindító keresőmezőjében</translation> <translation id="6546686722964485737">Csatlakozás WiMAX-hálózathoz</translation> @@ -3618,7 +3592,6 @@ <translation id="6555810572223193255">Az eltávolítási funkció jelenleg nem áll rendelkezésre</translation> <translation id="6556866813142980365">Újra</translation> <translation id="6558280019477628686">Hiba történt. Előfordulhat, hogy egyes elemek nem törlődtek.</translation> -<translation id="6559580823502247193">(már az eszközön van)</translation> <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="656398493051028875">„<ph name="FILENAME" />” törlése...</translation> @@ -3815,7 +3788,6 @@ <translation id="6862635236584086457">Az ebbe a mappába mentett minden fájlról online biztonsági másolat készül</translation> <translation id="6865313869410766144">Automatikus kitöltési űrlapadatok</translation> <translation id="686664946474413495">Színhőmérséklet</translation> -<translation id="6867678160199975333">Váltás a következő felhasználóra: <ph name="NEW_PROFILE_NAME" /></translation> <translation id="6870888490422746447">Alkalmazás kiválasztása és megosztása itt:</translation> <translation id="6871644448911473373">OCSP válaszadó: <ph name="LOCATION" /></translation> <translation id="6872781471649843364">A szerver elutasította a megadott jelszót.</translation> @@ -3909,7 +3881,6 @@ <translation id="7018275672629230621">Böngészési előzmények olvasása és módosítása</translation> <translation id="7019805045859631636">Gyors</translation> <translation id="7022562585984256452">Beállítottuk kezdőoldalát.</translation> -<translation id="7025036625303002400">Úgy tűnik hogy már van ilyen nevű felügyelt felhasználó.</translation> <translation id="7025190659207909717">Mobil adatátviteli szolgáltatás kezelése</translation> <translation id="7025325401470358758">Következő ablaktábla</translation> <translation id="7027125358315426638">Adatbázis neve:</translation> @@ -3958,7 +3929,6 @@ <translation id="7092106376816104">Előugró ablakok kivételei</translation> <translation id="7093434536568905704">GTK+</translation> <translation id="7093866338626856921">Adatok cseréje a(z) <ph name="HOSTNAMES" /> nevű eszközökkel</translation> -<translation id="7096108453481049031">Nem sikerült a felügyelt felhasználó importálása. Ellenőrizze a hálózati kapcsolatot, és próbálja újra később.</translation> <translation id="7096406577040705016">Teljes képernyős nagyító váltása</translation> <translation id="7098447629416471489">A többi mentett keresőmotor itt jelennek meg</translation> <translation id="7099337801055912064">Nem használható túl nagy PPD. A maximális méret 250 kB.</translation> @@ -4006,7 +3976,6 @@ <translation id="7168109975831002660">Minimális betűméret</translation> <translation id="7170041865419449892">Tartományon kívül</translation> <translation id="7171559745792467651">Telepítse a többi eszközén lévő alkalmazásokat</translation> -<translation id="7173917244679555">Úgy tűnik, már kezel egy ilyen nevű felhasználót. Inkább <ph name="BEGIN_LINK" />importálni szeretné <ph name="PROFILE_NAME" /><ph name="END_LINK" /> felhasználót erre az eszközre?</translation> <translation id="7175037578838465313"><ph name="NAME" /> konfigurálása</translation> <translation id="7175353351958621980">Betöltve innen:</translation> <translation id="7180611975245234373">Frissítés</translation> @@ -4178,7 +4147,6 @@ <translation id="7444726222535375658">Tovább a Hangouts Meet szolgáltatásba</translation> <translation id="7444983668544353857"><ph name="NETWORKDEVICE" /> kikapcsolása</translation> <translation id="7445682342344043969">Előugró ablakok letiltva</translation> -<translation id="744859430125590922">Az e személy által felkeresett webhelyek vezérlése és megtekintése a következő fiókból: <ph name="CUSTODIAN_EMAIL" />.</translation> <translation id="7453008956351770337">A nyomtató kiválasztásával engedélyt ad annak elérésére a következő bővítmény számára:</translation> <translation id="7453467225369441013">A rendszer a legtöbb webhelyről kijelentkezteti Önt, de Google-fiókjából nem.</translation> <translation id="7456142309650173560">fejlesztői</translation> @@ -4352,7 +4320,6 @@ <translation id="7717845620320228976">Frissítések keresése</translation> <translation id="7719367874908701697">Oldal nagyítása/kicsinyítése</translation> <translation id="771953673318695590">QA</translation> -<translation id="7720375555307821262">A személy felügyeletéhez <ph name="BEGIN_LINK" />jelentkezzen be a Chrome-ba<ph name="END_LINK" />.</translation> <translation id="7721179060400456005">Engedélyezi az ablakok több kijelzőre való kiterjesztését</translation> <translation id="7722040605881499779">A frissítéshez szükséges tárhely: <ph name="NECESSARY_SPACE" /></translation> <translation id="7724603315864178912">Kivágás</translation> @@ -5207,7 +5174,6 @@ <translation id="9024331582947483881">teljes képernyő</translation> <translation id="9025098623496448965">Rendben. Visszatérek a bejelentkezési képernyőre</translation> <translation id="9026731007018893674">letöltés</translation> -<translation id="9027146684281895941">A személy felügyelete az általa megnyitott webhelyek szabályozásával és megtekintésével az Ön Google-fiókjából.</translation> <translation id="9027459031423301635">Link megnyitása új &lapon</translation> <translation id="9027603907212475920">Szinkronizálás beállítása...</translation> <translation id="9030515284705930323">Szervezete még nem engedélyezte a Google Play Áruház szolgáltatást a fiókjánál. További tájékoztatásért forduljon rendszergazdájához.</translation> @@ -5367,7 +5333,6 @@ <translation id="98515147261107953">Fekvő</translation> <translation id="987897973846887088">Nincs rendelkezésre álló kép</translation> <translation id="988978206646512040">Üres összetett jelszó nem engedélyezett</translation> -<translation id="990310048453480215">Linuxos alkalmazások eltávolítása</translation> <translation id="992032470292211616">A bővítmények, alkalmazások és témák károsíthatják eszközét. Biztosan folytatja?</translation> <translation id="992592832486024913">A ChromeVox (beszélt visszajelzés) letiltása</translation> <translation id="994289308992179865">&Ismétlés</translation>
diff --git a/chrome/app/resources/generated_resources_id.xtb b/chrome/app/resources/generated_resources_id.xtb index 0796b2dc..ffaf160 100644 --- a/chrome/app/resources/generated_resources_id.xtb +++ b/chrome/app/resources/generated_resources_id.xtb
@@ -42,7 +42,6 @@ <translation id="1056898198331236512">Peringatan</translation> <translation id="1058262162121953039">PUK</translation> <translation id="1062407476771304334">Ganti</translation> -<translation id="1062866675591297858">Mengelola pengguna yang dilindungi milik Anda menggunakan <ph name="BEGIN_LINK" />Dasbor Pengguna yang Dilindungi<ph name="END_LINK" />.</translation> <translation id="1064835277883315402">Bergabung dengan jaringan pribadi</translation> <translation id="1064912851688322329">Putuskan kaitan Akun Google Anda</translation> <translation id="1067048845568873861">Dibuat</translation> @@ -65,7 +64,6 @@ <translation id="1091767800771861448">Tekan ESCAPE untuk melewati (Khusus bentukan tidak resmi).</translation> <translation id="1093457606523402488">Jaringan yang Terlihat:</translation> <translation id="1094607894174825014">Operasi baca atau tulis diminta dengan offset yang tidak valid di: "<ph name="DEVICE_NAME" />".</translation> -<translation id="1097507499312291972"><ph name="BEGIN_SIGN_IN_LINK" />Masuk<ph name="END_SIGN_IN_LINK" /> untuk mengontrol dan melihat situs web yang dikunjungi orang ini.</translation> <translation id="109758035718544977">Nyalakan Notifikasi Situs</translation> <translation id="1097658378307015415">Sebelum masuk, masuklah sebagai Tamu untuk mengaktifkan jaringan <ph name="NETWORK_ID" /></translation> <translation id="1103523840287552314">Selalu terjemahkan <ph name="LANGUAGE" /></translation> @@ -244,7 +242,6 @@ <translation id="1361655923249334273">Tidak digunakan</translation> <translation id="1363028406613469049">Lacak</translation> <translation id="1367951781824006909">Pilih file</translation> -<translation id="136802136832547685">Tidak ada pengguna yang dilindungi untuk ditambahkan ke perangkat ini.</translation> <translation id="1368265273904755308">Laporkan masalah</translation> <translation id="1370646789215800222">Hapus orang?</translation> <translation id="1372681413396468867">{NUM_ITEMS,plural, =1{1 item yang akan dihapus}other{# item yang akan dihapus}}</translation> @@ -472,7 +469,6 @@ <translation id="1692799361700686467">Cookie dari berbagai situs diizinkan.</translation> <translation id="169515659049020177">Shift</translation> <translation id="1698122934742150150">Sesi penyamaran saat ini saja</translation> -<translation id="1700199471143028312">Administrator tidak mengizinkan Anda membuat pengguna yang dilindungi.</translation> <translation id="1701062906490865540">Hapus orang ini</translation> <translation id="1706586824377653884">Ditambahkan oleh administrator Anda</translation> <translation id="1706625117072057435">Tingkat perbesar/perkecil</translation> @@ -1041,7 +1037,6 @@ <translation id="2604255671529671813">Error koneksi jaringan</translation> <translation id="2606246518223360146">Tautkan Data</translation> <translation id="2607101320794533334">Info Kunci Publik Subjek</translation> -<translation id="2607459012323956820">Setelan dan histori penjelajahan untuk pengguna yang dilindungi ini tetap dapat dilihat oleh pengelola di <ph name="BEGIN_LINK" /><ph name="DISPLAY_LINK" /><ph name="END_LINK" />.</translation> <translation id="2608770217409477136">Gunakan setelan default</translation> <translation id="2609896558069604090">Buat Pintasan...</translation> <translation id="2610157865375787051">Tidur</translation> @@ -1284,7 +1279,6 @@ <translation id="2951247061394563839">Memusatkan jendela</translation> <translation id="2956763290572484660"><ph name="COOKIES" /> cookie</translation> <translation id="2958721676848865875">Peringatan ekstensi pack</translation> -<translation id="2961043351165706615">Aplikasi Linux yang telah Anda instal akan dihapus dari Chromebook ini.</translation> <translation id="2961090598421146107"><ph name="CERTIFICATE_NAME" /> (ekstensi tersedia)</translation> <translation id="2961695502793809356">Klik untuk maju, tahan untuk melihat histori</translation> <translation id="2963151496262057773">Plugin berikut tidak merespons: <ph name="PLUGIN_NAME" />Ingin menghentikannya?</translation> @@ -1336,15 +1330,6 @@ <translation id="3022978424994383087">Tidak mengerti.</translation> <translation id="3024374909719388945">Gunakan model waktu 24 jam</translation> <translation id="302781076327338683">Muat ulang cache yang terlewati</translation> -<translation id="3030243755303701754">Pengguna yang dilindungi dapat menjelajahi web dengan panduan Anda. Sebagai pengelola pengguna yang dilindungi di Chrome, Anda dapat: - - • mengizinkan atau melarang situs web tertentu, - • memeriksa situs web yang telah dikunjungi pengguna yang dilindungi, dan - • mengelola setelan lainnya. - -Membuat pengguna yang dilindungi tidak akan membuat Akun Google, dan bookmark, histori penjelajahan, serta preferensi lainnya tidak akan ditampilkan di perangkat lainnya dengan Sinkronisasi Chrome. Setelah membuat pengguna baru yang dilindungi, Anda dapat mengelola setelannya kapan saja, dari perangkat apa saja, di <ph name="BEGIN_MANAGE_LINK" /><ph name="DISPLAY_LINK" /><ph name="END_MANAGE_LINK" />. - -Untuk informasi selengkapnya, kunjungi <ph name="BEGIN_LINK" />Pusat Bantuan<ph name="END_LINK" />.</translation> <translation id="3031417829280473749">Agen X</translation> <translation id="3031557471081358569">Pilih item yang akan diimpor:</translation> <translation id="3031601332414921114">Lanjutkan pencetakan</translation> @@ -1385,7 +1370,6 @@ <translation id="3085412380278336437">Situs dapat menggunakan kamera Anda</translation> <translation id="3085752524577180175">Host SOCKS</translation> <translation id="3088325635286126843">&Ubah nama...</translation> -<translation id="3089231390674410424">Sepertinya ada masalah dengan kredensial Anda. Pastikan Anda masuk dengan benar lalu coba lagi.</translation> <translation id="3090193911106258841">Mengakses masukan audio dan video</translation> <translation id="3090819949319990166">Tidak dapat menyalin file crx eksternal ke <ph name="TEMP_CRX_FILE" />.</translation> <translation id="3090871774332213558">"<ph name="DEVICE_NAME" />" disandingkan</translation> @@ -1400,7 +1384,6 @@ <translation id="3121793941267913344">Setel ulang perangkat <ph name="IDS_SHORT_PRODUCT_NAME" /> ini</translation> <translation id="3122464029669770682">CPU</translation> <translation id="3122496702278727796">Gagal Membuat Direktori Data</translation> -<translation id="3123569374670379335">(Dilindungi)</translation> <translation id="3124111068741548686">Penanganan PENGGUNA</translation> <translation id="3126026824346185272">Ctrl</translation> <translation id="3127156390846601284">Tindakan ini akan menghapus semua data yang disimpan di perangkat untuk semua situs yang ditampilkan. Ingin melanjutkan?</translation> @@ -1435,8 +1418,6 @@ <translation id="3160842278951476457"><ph name="ISSUED_BY" /> [<ph name="ISSUED_TO" />] (dilindungi hardware)</translation> <translation id="316125635462764134">Buang aplikasi</translation> <translation id="3161522574479303604">Semua bahasa</translation> -<translation id="316307797510303346">Kontrol dan lihat situs web yang dikunjungi orang ini dari <ph name="CUSTODIAN_EMAIL" />. - Masa berlaku informasi masuk akun Anda telah berakhir.</translation> <translation id="3165390001037658081">Beberapa operator mungkin memblokir fitur ini.</translation> <translation id="316854673539778496">Untuk mendapatkan semua ekstensi di semua perangkat, login dan aktifkan sinkronisasi.</translation> <translation id="3170072451822350649">Anda juga dapat melewati proses masuk dan <ph name="LINK_START" />menjelajah sebagai tamu<ph name="LINK_END" />.</translation> @@ -1469,7 +1450,6 @@ <translation id="3229922550070982305">putar/jeda</translation> <translation id="3232318083971127729">Nilai:</translation> <translation id="3236289833370040187">Kepemilikan akan ditransfer ke <ph name="DESTINATION_DOMAIN" />.</translation> -<translation id="3237784613213365159"><ph name="NEW_PROFILE_NAME" /> sekarang adalah pengguna yang dilindungi</translation> <translation id="323803881985677942">Buka opsi ekstensi</translation> <translation id="3241680850019875542">Pilih direktori akar ekstensi untuk dipaket. Untuk memperbarui ekstensi, pilih juga file kunci pribadi untuk dipakai ulang.</translation> <translation id="3242765319725186192">Kunci yang dibagikan sebelumnya:</translation> @@ -1701,7 +1681,6 @@ <translation id="3584169441612580296">Membaca dan mengubah foto, musik, serta media lain dari komputer Anda</translation> <translation id="3587482841069643663">Semua</translation> <translation id="358796204584394954">Ketik kode ini di "<ph name="DEVICE_NAME" />" untuk menyandingkan:</translation> -<translation id="3589532742556016615">Tindakan ini tidak memengaruhi aplikasi atau konten di perangkat lain.</translation> <translation id="3589766037099229847">Konten tidak aman diblokir</translation> <translation id="3590194807845837023">Buka Kunci Profil dan Luncurkan Lagi</translation> <translation id="3592260987370335752">&Pelajari lebih lanjut</translation> @@ -1835,7 +1814,6 @@ <translation id="3778152852029592020">Download dibatalkan.</translation> <translation id="3778740492972734840">Alat &pengembang</translation> <translation id="3778868487658107119">Ajukan pertanyaan. Minta untuk melakukan berbagai hal. Ini adalah Google pribadi Anda yang selalu siap membantu.</translation> -<translation id="3780663724044634171">Pilih akun untuk mengelola pengguna yang dilindungi.</translation> <translation id="378312418865624974">Membaca pengenal unik untuk komputer ini</translation> <translation id="3783640748446814672">alt</translation> <translation id="3785308913036335955">Tampilkan Pintasan Aplikasi</translation> @@ -2563,7 +2541,6 @@ <translation id="4964455510556214366">Pengaturan</translation> <translation id="4964673849688379040">Memeriksa...</translation> <translation id="4965808351167763748">Yakin ingin menyiapkan perangkat ini untuk menjalankan Hangouts Meet?</translation> -<translation id="4967749818080339523">Pilih akun</translation> <translation id="496888482094675990">Aplikasi File memberikan akses cepat ke file yang telah Anda simpan di Google Drive, perangkat eksternal, atau perangkat Chrome OS.</translation> <translation id="4969785127455456148">Album</translation> <translation id="4971412780836297815">Buka setelah selesai</translation> @@ -2750,7 +2727,6 @@ Apa pun yang terjadi pada perangkat, file Anda tersimpan dengan aman di Google Drive.<ph name="MARKUP_6" /> <ph name="MARKUP_7" />Berbagi, membuat, dan berkolaborasi<ph name="MARKUP_8" /> dalam file bersama orang lain, semuanya di satu tempat.<ph name="MARKUP_9" /></translation> -<translation id="5262401745672360397">File yang dibagikan ke aplikasi Linux juga dapat dihapus.</translation> <translation id="5264148714798105376">Tindakan ini perlu waktu beberapa menit.</translation> <translation id="5264252276333215551">Sambungkan ke internet untuk meluncurkan aplikasi Anda dalam mode kios.</translation> <translation id="5265562206369321422">Offline selama lebih dari satu minggu</translation> @@ -3402,7 +3378,6 @@ <translation id="6241530762627360640">Mengakses informasi tentang perangkat Bluetooth yang disandingkan dengan sistem Anda dan menemukan perangkat Bluetooth di sekitarnya.</translation> <translation id="6243280677745499710">Yang disetel saat ini</translation> <translation id="6243774244933267674">Server tidak tersedia</translation> -<translation id="6246413617632217567">Pengguna yang dilindungi tersebut tidak dapat diimpor. Periksa izin dan ruang hard drive Anda, lalu coba lagi.</translation> <translation id="6247708409970142803"><ph name="PERCENTAGE" />%</translation> <translation id="6247802389331535091">Sistem: <ph name="ARC_PROCESS_NAME" /></translation> <translation id="624789221780392884">Pembaruan siap</translation> @@ -3601,7 +3576,6 @@ <translation id="654039047105555694"><ph name="BEGIN_BOLD" />Catatan:<ph name="END_BOLD" /> Hanya aktif jika Anda tahu sedang melakukan apa atau jika ditanyai untuk melakukan hal tersebut, karena koleksi data dapat mengurangi kinerja.</translation> <translation id="654233263479157500">Gunakan layanan web untuk membantu mengatasi kesalahan navigasi</translation> <translation id="6544215763872433504">Browser web dari Google, untuk Anda</translation> -<translation id="6545325945815270297">Kelola data dan perangkat yang disinkronkan di <ph name="BEGIN_LINK" />Dasbor Chrome<ph name="END_LINK" />.</translation> <translation id="6545665334409411530">Tingkat pengulangan</translation> <translation id="6545834809683560467">Gunakan layanan prediksi untuk membantu melengkapi penelusuran dan URL yang diketik di kolom URL atau kotak penelusuran peluncur aplikasi</translation> <translation id="6546686722964485737">Gabung dengan jaringan WiMAX</translation> @@ -3616,7 +3590,6 @@ <translation id="6555810572223193255">Pembersihan saat ini tidak tersedia</translation> <translation id="6556866813142980365">Urungkan</translation> <translation id="6558280019477628686">Terjadi error. Beberapa item mungkin belum dihapus.</translation> -<translation id="6559580823502247193">(sudah ada di perangkat ini)</translation> <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="656398493051028875">Menghapus "<ph name="FILENAME" />"...</translation> @@ -3813,7 +3786,6 @@ <translation id="6862635236584086457">Semua file yang disimpan dalam folder ini otomatis dicadangkan secara online</translation> <translation id="6865313869410766144">Data formulir isi-otomatis</translation> <translation id="686664946474413495">Suhu warna</translation> -<translation id="6867678160199975333">Beralih ke <ph name="NEW_PROFILE_NAME" /></translation> <translation id="6870888490422746447">Pilih aplikasi untuk membagikan:</translation> <translation id="6871644448911473373">Penanggap OCSP: <ph name="LOCATION" /></translation> <translation id="6872781471649843364">Sandi yang Anda masukkan ditolak oleh server.</translation> @@ -3907,7 +3879,6 @@ <translation id="7018275672629230621">Membaca dan mengubah histori penjelajahan Anda</translation> <translation id="7019805045859631636">Cepat</translation> <translation id="7022562585984256452">Beranda Anda telah disetel.</translation> -<translation id="7025036625303002400">Tampaknya Anda sudah memiliki pengguna yang dilindungi dengan nama ini.</translation> <translation id="7025190659207909717">Pengelolaan layanan data seluler</translation> <translation id="7025325401470358758">Panel berikutnya</translation> <translation id="7027125358315426638">Nama basis data:</translation> @@ -3956,7 +3927,6 @@ <translation id="7092106376816104">Pengecualian pop-up</translation> <translation id="7093434536568905704">GTK+</translation> <translation id="7093866338626856921">Menukar data dengan perangkat yang bernama: <ph name="HOSTNAMES" /></translation> -<translation id="7096108453481049031">Pengguna baru yang dilindungi tersebut tidak dapat diimpor. Periksa sambungan jaringan Anda dan coba lagi.</translation> <translation id="7096406577040705016">Aktifkan Kaca Pembesar Layar Penuh</translation> <translation id="7098447629416471489">Mesin telusur lain yang disimpan akan muncul di sini</translation> <translation id="7099337801055912064">Tidak dapat memuat PPD yang besar. Ukuran maksimumnya adalah 250 kB.</translation> @@ -4004,7 +3974,6 @@ <translation id="7168109975831002660">Ukuran font minimal</translation> <translation id="7170041865419449892">Di luar jangkauan</translation> <translation id="7171559745792467651">Instal aplikasi dari perangkat lainnya</translation> -<translation id="7173917244679555">Tampaknya Anda sudah mengelola pengguna dengan nama tersebut. Apakah Anda ingin <ph name="BEGIN_LINK" />mengimpor <ph name="PROFILE_NAME" /><ph name="END_LINK" /> ke perangkat ini?</translation> <translation id="7175037578838465313">Konfigurasi <ph name="NAME" /></translation> <translation id="7175353351958621980">Dimuat dari:</translation> <translation id="7180611975245234373">Segarkan</translation> @@ -4176,7 +4145,6 @@ <translation id="7444726222535375658">Lanjutkan ke Hangouts Meet</translation> <translation id="7444983668544353857">Nonaktifkan <ph name="NETWORKDEVICE" /></translation> <translation id="7445682342344043969">Pop-up diblokir</translation> -<translation id="744859430125590922">Mengontrol dan melihat situs web yang dikunjungi orang ini dari <ph name="CUSTODIAN_EMAIL" />.</translation> <translation id="7453008956351770337">Dengan memilih printer ini, Anda memberikan izin untuk mengakses printer Anda kepada ekstensi berikut:</translation> <translation id="7453467225369441013">Membuat Anda logout dari sebagian besar situs. Anda tidak akan logout dari Akun Google.</translation> <translation id="7456142309650173560">dev</translation> @@ -4350,7 +4318,6 @@ <translation id="7717845620320228976">Periksa pembaruan</translation> <translation id="7719367874908701697">Perkecil/perbesar halaman</translation> <translation id="771953673318695590">QA</translation> -<translation id="7720375555307821262">Untuk melindungi orang ini, <ph name="BEGIN_LINK" />masuk ke Chrome<ph name="END_LINK" />.</translation> <translation id="7721179060400456005">Izinkan jendela untuk meluaskan tampilan</translation> <translation id="7722040605881499779">Perlu mengupdate: <ph name="NECESSARY_SPACE" /></translation> <translation id="7724603315864178912">Potong</translation> @@ -5205,7 +5172,6 @@ <translation id="9024331582947483881">layar penuh</translation> <translation id="9025098623496448965">Oke, Bawa saya kembali ke layar proses masuk</translation> <translation id="9026731007018893674">download</translation> -<translation id="9027146684281895941">Lindungi orang ini untuk mengontrol dan melihat situs web yang dikunjunginya dari Akun Google Anda.</translation> <translation id="9027459031423301635">Buka Tautan di &Tab Baru</translation> <translation id="9027603907212475920">Siapkan sinkronisasi...</translation> <translation id="9030515284705930323">Organisasi belum mengaktifkan Google Play Store untuk akun Anda. Hubungi administrator untuk informasi selengkapnya.</translation> @@ -5365,7 +5331,6 @@ <translation id="98515147261107953">Lanskap</translation> <translation id="987897973846887088">Tidak ada gambar yang tersedia</translation> <translation id="988978206646512040">Frasa sandi tidak boleh kosong</translation> -<translation id="990310048453480215">Hapus Aplikasi Linux</translation> <translation id="992032470292211616">Ekstensi, aplikasi, dan tema dapat membahayakan perangkat Anda. Yakin ingin melanjutkan?</translation> <translation id="992592832486024913">Nonaktifkan ChromeVox (masukan lisan)</translation> <translation id="994289308992179865">&Putaran</translation>
diff --git a/chrome/app/resources/generated_resources_it.xtb b/chrome/app/resources/generated_resources_it.xtb index ccc274e9..4559856 100644 --- a/chrome/app/resources/generated_resources_it.xtb +++ b/chrome/app/resources/generated_resources_it.xtb
@@ -42,10 +42,11 @@ <translation id="1056898198331236512">Avviso</translation> <translation id="1058262162121953039">PUK</translation> <translation id="1062407476771304334">Sostituisci</translation> -<translation id="1062866675591297858">Gestisci i tuoi utenti supervisionati utilizzando la <ph name="BEGIN_LINK" />Dashboard degli utenti supervisionati<ph name="END_LINK" />.</translation> <translation id="1064835277883315402">Connetti a rete privata</translation> <translation id="1064912851688322329">Disconnetti il tuo account Google</translation> <translation id="1067048845568873861">Data creazione</translation> +<translation id="1067291318998134776">Linux (beta)</translation> +<translation id="1067922213147265141">Altri servizi Google</translation> <translation id="1070066693520972135">WEP</translation> <translation id="1070377999570795893">Un altro programma sul computer ha aggiunto un'estensione che potrebbe modificare il funzionamento di Chrome. @@ -63,7 +64,6 @@ <translation id="1091767800771861448">Premi ESC per saltare (solo build non ufficiali).</translation> <translation id="1093457606523402488">Reti visibili:</translation> <translation id="1094607894174825014">L'operazione di lettura o scrittura è stata richiesta con un offset non valido su: "<ph name="DEVICE_NAME" />".</translation> -<translation id="1097507499312291972"><ph name="BEGIN_SIGN_IN_LINK" />Accedi<ph name="END_SIGN_IN_LINK" /> per controllare e visualizzare i siti web visitati da questa persona.</translation> <translation id="109758035718544977">Riattiva l'audio dei siti</translation> <translation id="1097658378307015415">Prima di accedere, entra come Ospite per attivare la rete <ph name="NETWORK_ID" /></translation> <translation id="1103523840287552314">Traduci sempre <ph name="LANGUAGE" /></translation> @@ -184,6 +184,7 @@ <translation id="1260240842868558614">Mostra:</translation> <translation id="126710816202626562">Lingua della traduzione:</translation> <translation id="126768002343224824">16x</translation> +<translation id="1271317946095246719">Invia al tuo motore di ricerca predefinito le ricerche dalla barra degli indirizzi e dalla casella di ricerca, nonché alcuni cookie</translation> <translation id="1272079795634619415">Interrompi</translation> <translation id="1272978324304772054">Questo account utente non appartiene al dominio con cui è registrato il dispositivo. Se vuoi registrarti a un altro dominio devi prima effettuare il recupero del dispositivo.</translation> <translation id="1274977772557788323">Impostazioni di archiviazione Adobe Flash Player</translation> @@ -241,7 +242,6 @@ <translation id="1361655923249334273">Inutilizzato</translation> <translation id="1363028406613469049">Traccia</translation> <translation id="1367951781824006909">Scegli un file</translation> -<translation id="136802136832547685">Nessun utente supervisionato da aggiungere a questo dispositivo.</translation> <translation id="1368265273904755308">Consente di segnalare un problema</translation> <translation id="1370646789215800222">Rimuovere la persona?</translation> <translation id="1372681413396468867">{NUM_ITEMS,plural, =1{1 elemento da rimuovere}other{# elementi da rimuovere}}</translation> @@ -469,7 +469,6 @@ <translation id="1692799361700686467">Sono consentiti cookie provenienti da più siti.</translation> <translation id="169515659049020177">Maiusc</translation> <translation id="1698122934742150150">Solo per la sessione di navigazione in incognito corrente</translation> -<translation id="1700199471143028312">L'amministratore non consente di creare utenti supervisionati.</translation> <translation id="1701062906490865540">Rimuovi questa persona</translation> <translation id="1706586824377653884">Aggiunta dall'amministratore</translation> <translation id="1706625117072057435">Livelli di zoom</translation> @@ -804,6 +803,7 @@ <translation id="2230062665678605299">Impossibile creare la cartella "<ph name="FOLDER_NAME" />". <ph name="ERROR_MESSAGE" /></translation> <translation id="223106756035922488">Fai clic per visualizzare il doodle di oggi</translation> <translation id="2231238007119540260">Se elimini un certificato server, ripristini i normali controlli di protezione del server e richiedi l'utilizzo di un certificato valido per il server.</translation> +<translation id="2232379019872353004">Invia a Google alcune informazioni sul sistema e alcuni contenuti delle pagine</translation> <translation id="2232876851878324699">Il file conteneva un certificato, che non è stato importato:</translation> <translation id="2233502537820838181">Ulteriori infor&mazioni</translation> <translation id="2238379619048995541">Dati sullo stato di frequenza</translation> @@ -889,6 +889,7 @@ <translation id="2359808026110333948">Continua</translation> <translation id="236141728043665931">Impedisci sempre l'accesso al microfono</translation> <translation id="2365507699358342471">Questo sito può leggere testo e immagini copiati negli appunti</translation> +<translation id="2366463953911599217">ERRORE: disinstallazione dell'app <ph name="APP_NAME" /> non riuscita.</translation> <translation id="2367199180085172140">Aggiungi Condivisione file</translation> <translation id="2367972762794486313">Mostra app</translation> <translation id="2371076942591664043">Apri al &termine</translation> @@ -940,6 +941,7 @@ <translation id="2462724976360937186">ID della chiave dell'autorità di certificazione</translation> <translation id="2462752602710430187">È stata aggiunta la stampante <ph name="PRINTER_NAME" /></translation> <translation id="2464089476039395325">Proxy HTTP</translation> +<translation id="2468205691404969808">Utilizza i cookie per memorizzare le tue preferenze, anche se non visiti quelle pagine</translation> <translation id="2468902267404883140">Impossibile connettersi al telefono. Assicurati di usare un telefono Android compatibile che sia acceso e a portata di mano. <a>Ulteriori informazioni</a></translation> <translation id="2470702053775288986">Estensioni non supportate disattivate</translation> <translation id="2473195200299095979">Traduci questa pagina</translation> @@ -1034,7 +1036,6 @@ <translation id="2604255671529671813">Errore di connessione alla rete</translation> <translation id="2606246518223360146">Collega dati</translation> <translation id="2607101320794533334">Info sulla chiave pubblica del soggetto</translation> -<translation id="2607459012323956820">Le impostazioni e la cronologia di navigazione di questo utente supervisionato potrebbero essere ancora visibili al gestore all'indirizzo <ph name="BEGIN_LINK" /><ph name="DISPLAY_LINK" /><ph name="END_LINK" />.</translation> <translation id="2608770217409477136">Usa impostazioni predefinite</translation> <translation id="2609896558069604090">Crea scorciatoie...</translation> <translation id="2610157865375787051">Sospensione</translation> @@ -1103,6 +1104,7 @@ <translation id="2686759344028411998">Impossibile rilevare i moduli caricati.</translation> <translation id="2688196195245426394">Errore durante la registrazione del dispositivo con il server. <ph name="CLIENT_ERROR" />.</translation> <translation id="2690024944919328218">Mostra le opzioni per la lingua</translation> +<translation id="2690824726518456119">Avvio del servizio Concierge.</translation> <translation id="2691385045260836588">Modello</translation> <translation id="2693176596243495071">Spiacenti. Si è verificato un errore sconosciuto. Riprova più tardi o contatta il tuo amministratore se il problema persiste.</translation> <translation id="2694026874607847549">1 cookie</translation> @@ -1327,15 +1329,6 @@ <translation id="3022978424994383087">Non ho capito.</translation> <translation id="3024374909719388945">Usa orologio 24 ore</translation> <translation id="302781076327338683">Ricarica ignorando la cache</translation> -<translation id="3030243755303701754">Un utente supervisionato può navigare sul Web sotto la tua guida. In qualità di gestore di un utente supervisionato in Chrome, puoi: - - • consentire o vietare siti web specifici, - • controllare i siti web visitati dall'utente supervisionato - • gestire altre impostazioni. - -La creazione di un utente supervisionato non comporta la creazione di un account Google e i relativi preferiti, cronologia di navigazione e altre preferenze non saranno disponibili su altri dispositivi grazie alla Sincronizzazione Chrome. Dopo avere creato un nuovo utente supervisionato, puoi gestire le impostazioni in qualsiasi momento e da qualsiasi dispositivo all'indirizzo <ph name="BEGIN_MANAGE_LINK" /><ph name="DISPLAY_LINK" /><ph name="END_MANAGE_LINK" />. - -Per ulteriori informazioni, visita il nostro <ph name="BEGIN_LINK" />Centro assistenza<ph name="END_LINK" />.</translation> <translation id="3031417829280473749">Agente X</translation> <translation id="3031557471081358569">Seleziona elementi da importare:</translation> <translation id="3031601332414921114">Riprendi la stampa</translation> @@ -1376,7 +1369,6 @@ <translation id="3085412380278336437">Il sito può usare la videocamera</translation> <translation id="3085752524577180175">Host SOCKS</translation> <translation id="3088325635286126843">&Rinomina...</translation> -<translation id="3089231390674410424">Sembra che ci sia un problema con le tue credenziali. Assicurati di avere eseguito correttamente l'accesso e riprova.</translation> <translation id="3090193911106258841">Accesso all'input audio e video in corso</translation> <translation id="3090819949319990166">Impossibile copiare il file crx esterno su <ph name="TEMP_CRX_FILE" />.</translation> <translation id="3090871774332213558">"<ph name="DEVICE_NAME" />" accoppiato</translation> @@ -1391,7 +1383,6 @@ <translation id="3121793941267913344">Ripristina questo dispositivo <ph name="IDS_SHORT_PRODUCT_NAME" /></translation> <translation id="3122464029669770682">CPU</translation> <translation id="3122496702278727796">Creazione directory dati non riuscita</translation> -<translation id="3123569374670379335">(Supervisionato)</translation> <translation id="3124111068741548686">Handle UTENTE</translation> <translation id="3126026824346185272">Ctrl</translation> <translation id="3127156390846601284">Verranno eliminati tutti i dati memorizzati sul dispositivo relativi a tutti i siti mostrati. Vuoi continuare?</translation> @@ -1426,8 +1417,6 @@ <translation id="3160842278951476457"><ph name="ISSUED_BY" /> [<ph name="ISSUED_TO" />] (con supporto hardware)</translation> <translation id="316125635462764134">Rimuovi app</translation> <translation id="3161522574479303604">Tutte le lingue</translation> -<translation id="316307797510303346">Controlla e visualizza i siti web visitati da questa persona con <ph name="CUSTODIAN_EMAIL" />. -I dati di accesso del tuo account sono obsoleti.</translation> <translation id="3165390001037658081">La funzione potrebbe essere bloccata da alcuni operatori.</translation> <translation id="316854673539778496">Accedi e attiva la sincronizzazione per trovare tutte le tue estensioni su tutti i dispositivi.</translation> <translation id="3170072451822350649">Puoi anche saltare l'accesso e <ph name="LINK_START" />navigare come ospite<ph name="LINK_END" />.</translation> @@ -1441,6 +1430,7 @@ <translation id="3190558889382726167">Password salvata</translation> <translation id="3192947282887913208">File audio</translation> <translation id="3194737229810486521"><ph name="URL" /> vuole memorizzare in modo definitivo i dati sul dispositivo</translation> +<translation id="3197054279257119376">Caricamento componente Termina.</translation> <translation id="3199127022143353223">Server</translation> <translation id="3202131003361292969">Percorso</translation> <translation id="3202173864863109533">L'audio di questa scheda sta per essere disattivato.</translation> @@ -1459,7 +1449,6 @@ <translation id="3229922550070982305">play/pausa</translation> <translation id="3232318083971127729">Valore:</translation> <translation id="3236289833370040187">La proprietà verrà trasferita a <ph name="DESTINATION_DOMAIN" />.</translation> -<translation id="3237784613213365159"><ph name="NEW_PROFILE_NAME" /> ora è un utente supervisionato</translation> <translation id="323803881985677942">Apri opzioni estensione</translation> <translation id="3241680850019875542">Seleziona la directory principale dell'estensione di cui creare il pacchetto. Per aggiornare un'estensione, seleziona anche il file delle chiave privata da riutilizzare.</translation> <translation id="3242765319725186192">Chiave precondivisa:</translation> @@ -1563,6 +1552,7 @@ <translation id="3405664148539009465">Personalizza caratteri</translation> <translation id="3405763860805964263">...</translation> <translation id="3406605057700382950">&Mostra barra dei Preferiti</translation> +<translation id="3407837288045706722">Per altre impostazioni relative a privacy, sicurezza e raccolta dei dati, consulta la sezione <ph name="BEGIN_LINK" />Sincronizzazione e personalizzazione<ph name="END_LINK" /></translation> <translation id="3412265149091626468">Passa alla selezione</translation> <translation id="3413122095806433232">Autorità emittenti di CA: <ph name="LOCATION" /></translation> <translation id="3414856743105198592">La formattazione del supporto rimovibile comporterà la cancellazione di tutti i dati. Vuoi continuare?</translation> @@ -1640,6 +1630,7 @@ <translation id="3504135463003295723">Nome gruppo:</translation> <translation id="3505030558724226696">Revoca accesso ai dispositivi</translation> <translation id="3507421388498836150">Autorizzazioni attuali di "<ph name="EXTENSION_NAME" />"</translation> +<translation id="3507547268929739059">Rimuovi app Linux per Chromebook</translation> <translation id="3507888235492474624">Ripeti la ricerca di dispositivi Bluetooth</translation> <translation id="3508920295779105875">Scegli un'altra cartella...</translation> <translation id="3510797500218907545">WiMAX</translation> @@ -1820,7 +1811,6 @@ <translation id="3778152852029592020">Il download è stato annullato.</translation> <translation id="3778740492972734840">&Strumenti per sviluppatori</translation> <translation id="3778868487658107119">Chiedigli tutto quello che vuoi e fatti aiutare nelle tue attività. Google è personalizzato per te ed è sempre al tuo fianco.</translation> -<translation id="3780663724044634171">Seleziona un account per la gestione dell'utente supervisionato.</translation> <translation id="378312418865624974">Leggere un identificatore univoco di questo computer</translation> <translation id="3783640748446814672">alt</translation> <translation id="3785308913036335955">Mostra scorciatoia app</translation> @@ -1834,6 +1824,7 @@ <translation id="379422718204375917">Usa Smart Lock per accedere al tuo account</translation> <translation id="3796648294839530037">Reti preferite:</translation> <translation id="3797900183766075808">&Cerca "<ph name="SEARCH_TERMS" />" su <ph name="SEARCH_ENGINE" /></translation> +<translation id="3798133693323981089">Completamento automatico di ricerche e indirizzi web</translation> <translation id="3798449238516105146">Versione</translation> <translation id="3799201711591988491">{COUNT,plural, =0{&Apri tutti}=1{&Apri preferito}other{&Apri tutti (#)}}</translation> <translation id="3800806661949714323">Mostra tutto (opzione consigliata)</translation> @@ -2010,6 +2001,7 @@ <translation id="4065876735068446555">La rete in uso (<ph name="NETWORK_ID" />) potrebbe richiedere la visita della relativa pagina di accesso.</translation> <translation id="4068506536726151626">Questa pagina contiene elementi dai seguenti siti che stanno rilevando la tua posizione:</translation> <translation id="4068776064906523561">Impronte digitali salvate</translation> +<translation id="407173827865827707">Al clic</translation> <translation id="4071770069230198275"><ph name="PROFILE_NAME" />: errore di accesso</translation> <translation id="4074900173531346617">Certificato del firmatario email</translation> <translation id="407520071244661467">Scala</translation> @@ -2041,6 +2033,7 @@ <translation id="4109135793348361820">Sposta finestra su <ph name="USER_NAME" /> (<ph name="USER_EMAIL" />)</translation> <translation id="4110559665646603267">Attivazione della shelf</translation> <translation id="4110895898888439383">Naviga sul Web in modalità Contrasto elevato</translation> +<translation id="4112774766611964959">Determina la disinstallazione dell'app <ph name="APP_NAME" /> e la rimozione di tutti i dati e le applicazioni Linux dal dispositivo <ph name="DEVICE_TYPE" />. Confermi?</translation> <translation id="4114360727879906392">Finestra precedente</translation> <translation id="4115002065223188701">Rete fuori portata</translation> <translation id="4115080753528843955">Alcuni servizi di contenuti utilizzano identificatori univoci al fine di autorizzare l'accesso ai contenuti protetti</translation> @@ -2095,6 +2088,7 @@ <translation id="42137655013211669">L'accesso a questa risorsa è vietato dal server.</translation> <translation id="4215350869199060536">Spiacenti, simboli non validi nel nome.</translation> <translation id="4215448920900139318">Backup di <ph name="FILE_COUNT" /> in corso</translation> +<translation id="4225397296022057997">Su tutti i siti</translation> <translation id="4235200303672858594">Schermo intero</translation> <translation id="4235813040357936597">Aggiungi account per <ph name="PROFILE_NAME" /></translation> <translation id="4235965441080806197">Annulla accesso</translation> @@ -2162,6 +2156,7 @@ <translation id="4345703751611431217">Incompatibilità software: ulteriori informazioni</translation> <translation id="4348766275249686434">Raccogli errori</translation> <translation id="4350019051035968019">Questo dispositivo non può essere registrato sul dominio a cui appartiene il tuo account perché è contrassegnato per essere gestito da un altro dominio.</translation> +<translation id="4354266305752237763">Proteggi te stesso e il tuo dispositivo da siti pericolosi (Navigazione sicura)</translation> <translation id="4356334633973342967">In alternativa specifica il tuo driver:</translation> <translation id="4358353773267946514"><ph name="LANGUAGE_1" />, <ph name="LANGUAGE_2" /></translation> <translation id="4359408040881008151">Installata a causa di estensioni dipendenti.</translation> @@ -2170,6 +2165,7 @@ <translation id="4364567974334641491"><ph name="APP_NAME" /> condivide una finestra.</translation> <translation id="4364830672918311045">Mostra notifiche</translation> <translation id="4365673000813822030">Spiacenti, la sincronizzazione si è interrotta.</translation> +<translation id="4370373819607756384">Gestisci questa impostazione nella sezione <ph name="BEGIN_LINK" />Lingue<ph name="END_LINK" /></translation> <translation id="4370975561335139969">L'indirizzo email e la password non corrispondono</translation> <translation id="437184764829821926">Impostazioni avanzate carattere</translation> <translation id="4372884569765913867">1 x 1</translation> @@ -2224,6 +2220,7 @@ <translation id="4462159676511157176">Assegna nomi personalizzati a server</translation> <translation id="4467100756425880649">Chrome Web Store Gallery</translation> <translation id="4467101674048705704">Espandi <ph name="FOLDER_NAME" /></translation> +<translation id="447252321002412580">Contribuisci a migliorare le funzioni e le prestazioni di Chrome</translation> <translation id="4474155171896946103">Aggiungi tutte le schede ai Preferiti...</translation> <translation id="4475552974751346499">Cerca tra i file scaricati</translation> <translation id="4476590490540813026">Atleta</translation> @@ -2246,6 +2243,7 @@ <translation id="4514542542275172126">Configura un nuovo utente supervisionato</translation> <translation id="451515744433878153">Rimuovi</translation> <translation id="4518677423782794009">Se Chrome si arresta in modo anomalo, vengono mostrati annunci imprevisti, barre degli strumenti o pagine iniziali insolite che non riesci a eliminare oppure si verificano altre alterazioni dell'esperienza di navigazione, dovresti poter risolvere il problema avviando Chrome Software Cleaner.</translation> +<translation id="4518928191942891293">Avvio del container all'interno della VM Termina.</translation> <translation id="4520385623207007473">Cookie in uso</translation> <translation id="452039078290142656">dispositivi sconosciuti di <ph name="VENDOR_NAME" /></translation> <translation id="4522570452068850558">Dettagli</translation> @@ -2294,6 +2292,7 @@ <translation id="4589268276914962177">Nuovo terminale</translation> <translation id="4590324241397107707">Archiviazione database</translation> <translation id="4593021220803146968">Vai alla pa&gina <ph name="URL" /></translation> +<translation id="459505086032485258">Mostra le impostazioni dei servizi Google</translation> <translation id="4595560905247879544">Le app e le estensioni possono essere modificate solo dal gestore (<ph name="CUSTODIAN_NAME" />).</translation> <translation id="4596295440756783523">Hai dei certificati su file che identificano questi server</translation> <translation id="4598556348158889687">Gestione dello spazio di archiviazione</translation> @@ -2321,7 +2320,7 @@ <translation id="4632483769545853758">Riattiva audio scheda</translation> <translation id="4633003931260532286">L'estensione richiede "<ph name="IMPORT_NAME" />" con la versione minima "<ph name="IMPORT_VERSION" />", ma è installata soltanto la versione "<ph name="INSTALLED_VERSION" />"</translation> <translation id="4634771451598206121">Esegui di nuovo l'accesso...</translation> -<translation id="4635398712689569051">La pagina <ph name="PAGE_NAME" /> non è disponibile per gli utenti Ospiti.</translation> +<translation id="4635398712689569051">La pagina <ph name="PAGE_NAME" /> non è disponibile per gli utenti Ospite.</translation> <translation id="4640525840053037973">Accedi con il tuo account Google</translation> <translation id="4641539339823703554">Impossibile impostare l'ora di sistema in Chrome. Controlla l'ora indicata sotto e correggila se necessario.</translation> <translation id="4643612240819915418">&Apri video in un'altra scheda</translation> @@ -2367,7 +2366,7 @@ <translation id="4707934200082538898">Per ulteriori istruzioni, controlla le tue email all'indirizzo <ph name="BEGIN_BOLD" /><ph name="MANAGER_EMAIL" /><ph name="END_BOLD" />.</translation> <translation id="4708794300267213770">Mostra la schermata di blocco quando il dispositivo viene riattivato dopo la sospensione</translation> <translation id="4708849949179781599">Esci da <ph name="PRODUCT_NAME" /></translation> -<translation id="4710251968215868702">Contenuti degli utenti sui siti che visiti, interazioni e attività relative al browser.</translation> +<translation id="4710251968215868702">Utilizza i contenuti dei siti visitati e le attività e interazioni relative al browser.</translation> <translation id="4711638718396952945">Ripristina impostazioni</translation> <translation id="4713544552769165154">Questo file è supportato su computer con software Macintosh. Non è compatibile con i dispositivi con Chrome OS. Cerca sul <ph name="BEGIN_LINK" />Chrome Web Store<ph name="END_LINK" /> un'app sostitutiva adatta.<ph name="BEGIN_LINK_HELP" />Ulteriori informazioni<ph name="END_LINK_HELP" /></translation> <translation id="4714531393479055912">Ora <ph name="PRODUCT_NAME" /> può sincronizzare le tue password.</translation> @@ -2513,6 +2512,7 @@ <translation id="4917385247580444890">Forte</translation> <translation id="4918021164741308375"><ph name="ORIGIN" /> vuole comunicare con l'estensione "<ph name="EXTENSION_NAME" />"</translation> <translation id="4918086044614829423">Accetto</translation> +<translation id="4920350943031252905">Esegui strumenti, editor e IDEs di Linux sul tuo Chromebook.</translation> <translation id="4920887663447894854">Il monitoraggio della tua posizione da parte dei seguenti siti è stato bloccato su questa pagina:</translation> <translation id="492299503953721473">Rimuovi app Android</translation> <translation id="4923279099980110923">Sì, desidero dare il mio contributo</translation> @@ -2538,7 +2538,6 @@ <translation id="4964455510556214366">Disposizione</translation> <translation id="4964673849688379040">Controllo in corso...</translation> <translation id="4965808351167763748">Vuoi configurare questo dispositivo in modo da poter eseguire Hangouts Meet?</translation> -<translation id="4967749818080339523">Seleziona un account</translation> <translation id="496888482094675990">L'app File consente di accedere rapidamente ai file salvati in Google Drive, nella memoria esterna o sul tuo dispositivo Chrome OS.</translation> <translation id="4969785127455456148">Album</translation> <translation id="4971412780836297815">Apri al termine</translation> @@ -2678,6 +2677,7 @@ <translation id="5186650237607254032">Aggiorna il blocco schermo del telefono affinché si disattivi quando sei nelle vicinanze. Potrai sbloccare il telefono più velocemente e avere una migliore esperienza con la funzione Smart Lock sul tuo dispositivo <ph name="DEVICE_TYPE" />.</translation> <translation id="5187295959347858724">Hai eseguito l'accesso a <ph name="SHORT_PRODUCT_NAME" />. I tuoi Preferiti, la tua cronologia e le altre impostazioni sono in fase di sincronizzazione con il tuo account Google.</translation> <translation id="5187826826541650604"><ph name="KEY_NAME" /> (<ph name="DEVICE" />)</translation> +<translation id="5196721203029902230">Comunica con Google per migliorare Chrome e la navigazione</translation> <translation id="5204967432542742771">Inserisci la password</translation> <translation id="5206215183583316675">Eliminare "<ph name="CERTIFICATE_NAME" />"?</translation> <translation id="520621735928254154">Errore di importazione del certificato</translation> @@ -2715,6 +2715,7 @@ <translation id="5254368820972107711">Mostra i file da rimuovere</translation> <translation id="52550593576409946">Impossibile avviare l'applicazione kiosk.</translation> <translation id="5255315797444241226">La passphrase inserita non è corretta.</translation> +<translation id="5256861893479663409">Su tutti i siti</translation> <translation id="5260508466980570042">Spiacenti, impossibile verificare l'email o la password. Riprova.</translation> <translation id="5261683757250193089">Apri nel Web Store</translation> <translation id="5262311848634918433"><ph name="MARKUP_1" />Accedi ai file ovunque, anche offline.<ph name="MARKUP_2" /> @@ -2938,6 +2939,8 @@ <translation id="555746285996217175">Blocca/accendi</translation> <translation id="5557991081552967863">Lascia attivo il Wi-Fi durante la sospensione</translation> <translation id="5558129378926964177">&Ingrandisci</translation> +<translation id="5558446705802335921">Consente di controllare l'eventuale presenza di contenuti o comportamenti dannosi, ad esempio phishing o malware, nei siti che visiti e nei file che scarichi</translation> +<translation id="5559719557406102971">Avvio della VM Termina.</translation> <translation id="55601339223879446">Regola i bordi del desktop all'interno del display</translation> <translation id="5562781907504170924">Questa scheda è connessa a un dispositivo Bluetooth.</translation> <translation id="5565871407246142825">Carte di credito</translation> @@ -3142,6 +3145,7 @@ <translation id="5863445608433396414">Attiva funzioni di debug</translation> <translation id="5864471791310927901">Ricerca DHCP non riuscita</translation> <translation id="586567932979200359">Stai eseguendo <ph name="PRODUCT_NAME" /> dall'immagine disco. L'installazione sul computer permette di eseguirlo senza immagine disco e ne garantisce l'aggiornamento.</translation> +<translation id="5865733239029070421">Invia automaticamente a Google statistiche sull'utilizzo e rapporti sugli arresti anomali</translation> <translation id="5866557323934807206">Cancella le impostazioni per le visite future</translation> <translation id="5866840822086176774">Molto forte</translation> <translation id="5867841422488265304">Cerca o digita un indirizzo web</translation> @@ -3192,6 +3196,7 @@ <translation id="5957613098218939406">Altre opzioni</translation> <translation id="5958529069007801266">Utente supervisionato</translation> <translation id="5959471481388474538">Rete non disponibile</translation> +<translation id="595959584676692139">Ricarica la pagina per utilizzare questa estensione</translation> <translation id="5963026469094486319">Scegli un tema</translation> <translation id="5963453369025043595"><ph name="NUM_HANDLES" /> (picco di <ph name="NUM_KILOBYTES_LIVE" />)</translation> <translation id="5965661248935608907">Controlla anche la pagina visualizzata quando fai clic sul pulsante Pagina iniziale o quando esegui ricerche dalla Omnibox.</translation> @@ -3365,10 +3370,10 @@ <translation id="6237816943013845465">Consente di regolare la risoluzione dello schermo</translation> <translation id="6238923052227198598">Tieni le note più recenti sulla schermata di blocco</translation> <translation id="6239558157302047471">Ricarica &frame</translation> +<translation id="6240004034869232531">Disinstallazione…</translation> <translation id="6241530762627360640">Accedere a informazioni sui dispositivi Bluetooth accoppiati con il sistema e rilevare dispositivi Bluetooth nelle vicinanze.</translation> <translation id="6243280677745499710">Attualmente impostato</translation> <translation id="6243774244933267674">Server non disponibile</translation> -<translation id="6246413617632217567">Impossibile importare l'utente supervisionato. Controlla lo spazio disponibile sul disco rigido e le autorizzazioni, quindi riprova.</translation> <translation id="6247708409970142803"><ph name="PERCENTAGE" />%</translation> <translation id="6247802389331535091">Sistema: <ph name="ARC_PROCESS_NAME" /></translation> <translation id="624789221780392884">Aggiornamento pronto</translation> @@ -3567,7 +3572,6 @@ <translation id="654039047105555694"><ph name="BEGIN_BOLD" />Nota.<ph name="END_BOLD" /> Attiva questa opzione soltanto se sei sicuro di ciò che fai o se ti è stato chiesto di farlo perché la raccolta di dati potrebbe peggiorare il rendimento.</translation> <translation id="654233263479157500">Utilizza un servizio web per risolvere gli errori di navigazione</translation> <translation id="6544215763872433504">Il browser web di Google, per te</translation> -<translation id="6545325945815270297">Gestisci i dati sincronizzati e i dispositivi su <ph name="BEGIN_LINK" />Chrome Dashboard<ph name="END_LINK" />.</translation> <translation id="6545665334409411530">Frequenza ripetizione</translation> <translation id="6545834809683560467">Utilizza un servizio di previsione per il completamento delle ricerche e degli URL digitati nella barra degli indirizzi o nella casella di ricerca di Avvio applicazioni</translation> <translation id="6546686722964485737">Connetti a rete WiMAX</translation> @@ -3582,7 +3586,6 @@ <translation id="6555810572223193255">Pulizia al momento non disponibile</translation> <translation id="6556866813142980365">Ripeti</translation> <translation id="6558280019477628686">Si è verificato un errore. Alcuni elementi potrebbero non essere stati eliminati.</translation> -<translation id="6559580823502247193">(già presente su questo dispositivo)</translation> <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="656398493051028875">Eliminazione di "<ph name="FILENAME" />"...</translation> @@ -3604,6 +3607,7 @@ <translation id="6596745167571172521">Disattiva Bloc maiusc</translation> <translation id="6596816719288285829">Indirizzo IP</translation> <translation id="6597017209724497268">Esempi</translation> +<translation id="6597332018579308636">Consenti accesso</translation> <translation id="659934686219830168">La sincronizzazione inizierà dopo l'uscita da questa pagina</translation> <translation id="6602353599068390226">sposta la finestra in un altro schermo</translation> <translation id="6602956230557165253">Utilizza i tasti freccia sinistra e destra per spostarti.</translation> @@ -3670,6 +3674,7 @@ <translation id="6690751852586194791">Scegli un utente controllato da aggiungere a questo dispositivo.</translation> <translation id="6691331417640343772">Gestisci dati sincronizzati sulla Dashboard di Google</translation> <translation id="6691936601825168937">&Avanti</translation> +<translation id="6697492270171225480">Mostra suggerimenti per pagine simili quando una pagina non viene trovata</translation> <translation id="6698810901424468597">Leggere e modificare i tuoi dati su <ph name="WEBSITE_1" /> e <ph name="WEBSITE_2" /></translation> <translation id="6700480081846086223">Trasmetti <ph name="HOST_NAME" /></translation> <translation id="6701535245008341853">Impossibile caricare il profilo.</translation> @@ -3777,7 +3782,6 @@ <translation id="6862635236584086457">Per tutti i file salvati in questa cartella viene effettuato automaticamente il backup online</translation> <translation id="6865313869410766144">Dati della Compilazione automatica dei moduli</translation> <translation id="686664946474413495">Temperatura di colore</translation> -<translation id="6867678160199975333">Passa a <ph name="NEW_PROFILE_NAME" /></translation> <translation id="6870888490422746447">Scegli un'app per la condivisione:</translation> <translation id="6871644448911473373">Risponditore OCSP: <ph name="LOCATION" /></translation> <translation id="6872781471649843364">La password inserita è stata rifiutata dal server.</translation> @@ -3871,7 +3875,6 @@ <translation id="7018275672629230621">Lettura e modifica della cronologia di navigazione</translation> <translation id="7019805045859631636">Veloce</translation> <translation id="7022562585984256452">La tua pagina iniziale è stata impostata.</translation> -<translation id="7025036625303002400">Sembra che tu abbia già un utente supervisionato con questo nome.</translation> <translation id="7025190659207909717">Gestione del servizio dati mobile</translation> <translation id="7025325401470358758">Riquadro successivo</translation> <translation id="7027125358315426638">Nome database:</translation> @@ -3920,7 +3923,7 @@ <translation id="7092106376816104">Eccezioni popup</translation> <translation id="7093434536568905704">GTK+</translation> <translation id="7093866338626856921">Scambio di dati con i dispositivi: <ph name="HOSTNAMES" /></translation> -<translation id="7096108453481049031">Impossibile importare l'utente supervisionato. Controlla la connessione di rete e riprova più tardi.</translation> +<translation id="7096406577040705016">Attiva/disattiva la lente d'ingrandimento a schermo intero</translation> <translation id="7098447629416471489">Altri motori di ricerca salvati saranno visualizzati qui</translation> <translation id="7099337801055912064">Impossibile caricare il file PPD. Dimensioni massime: 250 kB.</translation> <translation id="7100897339030255923"><ph name="COUNT" /> elementi selezionati</translation> @@ -3966,8 +3969,7 @@ <translation id="716810439572026343">Download di <ph name="FILE_NAME" /> in corso</translation> <translation id="7168109975831002660">Dimensioni minime dei caratteri</translation> <translation id="7170041865419449892">Fuori dal raggio d'azione</translation> -<translation id="7171559745792467651">Installa app dai tuoi altri dispositivi</translation> -<translation id="7173917244679555">Sembra che tu gestisca già un utente con il nome indicato. Volevi <ph name="BEGIN_LINK" />importarlo <ph name="PROFILE_NAME" /><ph name="END_LINK" /> in questo dispositivo?</translation> +<translation id="7171559745792467651">Installa app dagli altri tuoi dispositivi</translation> <translation id="7175037578838465313">Configura <ph name="NAME" /></translation> <translation id="7175353351958621980">Caricamento da:</translation> <translation id="7180611975245234373">Aggiorna</translation> @@ -4066,7 +4068,7 @@ <translation id="7328867076235380839">Combinazione non valida</translation> <translation id="7329154610228416156">Accesso non riuscito perché è stato configurato l'utilizzo di un URL non protetto (<ph name="BLOCKED_URL" />). Contatta l'amministratore.</translation> <translation id="7334190995941642545">La funzione Smart Lock non è al momento disponibile. Riprova più tardi.</translation> -<translation id="7334274148831027933">Attiva lente d'ingrandimento ancorato</translation> +<translation id="7334274148831027933">Attiva lente d'ingrandimento ancorata</translation> <translation id="7339763383339757376">PKCS #7, singolo certificato</translation> <translation id="7339785458027436441">Controllo ortografico durante la digitazione</translation> <translation id="7339898014177206373">Nuova finestra</translation> @@ -4132,7 +4134,6 @@ <translation id="7444726222535375658">Continua su Hangouts Meet</translation> <translation id="7444983668544353857">Disabilita <ph name="NETWORKDEVICE" /></translation> <translation id="7445682342344043969">Popup bloccati</translation> -<translation id="744859430125590922">Controlla e visualizza i siti web visitati da questa persona con <ph name="CUSTODIAN_EMAIL" />.</translation> <translation id="7453008956351770337">Se selezioni questa stampante, autorizzi la seguente estensione ad accedere alla tua stampante:</translation> <translation id="7453467225369441013">Verrai scollegato dalla maggior parte dei siti, ma non dal tuo account Google.</translation> <translation id="7456142309650173560">dev</translation> @@ -4304,7 +4305,6 @@ <translation id="7717845620320228976">Verifica disponibilità di aggiornamenti</translation> <translation id="7719367874908701697">Zoom delle pagine</translation> <translation id="771953673318695590">QA</translation> -<translation id="7720375555307821262"><ph name="BEGIN_LINK" />Accedi a Chrome<ph name="END_LINK" /> per supervisionare questo utente.</translation> <translation id="7721179060400456005">Consenti alle finestre di estendersi su più schermi</translation> <translation id="7722040605881499779">Spazio necessario per l'aggiornamento: <ph name="NECESSARY_SPACE" /></translation> <translation id="7724603315864178912">Taglia</translation> @@ -4376,6 +4376,24 @@ <ph name="LINE_BREAK2" /> Prova a selezionare meno foto.</translation> <translation id="782590969421016895">Usa pagine correnti</translation> +<translation id="7826790948326204519"><ph name="BEGIN_H3" />Funzioni di debug<ph name="END_H3" /> + <ph name="BR" /> + Puoi attivare le funzioni di debug sul dispositivo Chrome OS al fine di installare e testare codice personalizzato sul dispositivo. Questa funzionalità consente di:<ph name="BR" /> + <ph name="BEGIN_LIST" /> + <ph name="LIST_ITEM" />Rimuovere la verifica rootfs per riuscire a modificare i file del sistema operativo + <ph name="LIST_ITEM" />Attivare l'accesso SSH al dispositivo tramite chiavi di test standard per riuscire a utilizzare strumenti come <ph name="BEGIN_CODE" />"cros flash"<ph name="END_CODE" /> per accedere al dispositivo + <ph name="LIST_ITEM" />Attivare l'avvio da USB in modo da poter installare un'immagine del sistema operativo da un'unità USB + <ph name="LIST_ITEM" />Impostare le password di accesso dev e root di sistema a un valore personalizzato per poter accedere manualmente al dispositivo tramite SSH + <ph name="END_LIST" /> + <ph name="BR" /> + Dopo che sono state abilitate, la maggior parte delle funzioni di debug rimarrà attiva anche dopo l'esecuzione di un powerwash o la cancellazione dei dati su un dispositivo gestito di livello enterprise. Per disattivare completamente tutte le funzioni di debug, completa la procedura di ripristino di Chrome OS (https://support.google.com/chromebook/answer/1080595). + <ph name="BR" /> + <ph name="BR" /> + Per ulteriori informazioni sulle funzioni di debug, consulta:<ph name="BR" /> + https://www.chromium.org/chromium-os/how-tos-and-troubleshooting/debugging-features + <ph name="BR" /> + <ph name="BR" /> + <ph name="BEGIN_BOLD" />Nota:<ph name="END_BOLD" /> il sistema viene riavviato durante la procedura.</translation> <translation id="7829298379596169484">Accesso all'input audio in corso</translation> <translation id="7831491651892296503">Errore durante la configurazione della rete</translation> <translation id="7831754656372780761"><ph name="TAB_TITLE" /> <ph name="EMOJI_MUTING" /></translation> @@ -4440,6 +4458,7 @@ <translation id="7912080627461681647">La password è stata modificata sul server. Esci e accedi nuovamente.</translation> <translation id="7912883689016444961">Configura la rete mobile</translation> <translation id="7915471803647590281">Comunicaci cosa sta accadendo prima di inviare il feedback.</translation> +<translation id="7916556741383518510">Al clic</translation> <translation id="792514962475806987">Livello di zoom ancorato:</translation> <translation id="7925247922861151263">Controllo AAA non riuscito</translation> <translation id="7925285046818567682">In attesa di risposta da <ph name="HOST_NAME" />...</translation> @@ -4480,6 +4499,7 @@ <translation id="7978412674231730200">Chiave privata</translation> <translation id="7979036127916589816">Errore di sincronizzazione</translation> <translation id="7980084013673500153">ID asset: <ph name="ASSET_ID" /></translation> +<translation id="7981313251711023384">Le pagine vengono precaricate per velocizzare la navigazione e la ricerca</translation> <translation id="7982083145464587921">Riavvia il dispositivo per correggere questo errore.</translation> <translation id="7982283708762922719">Altezza</translation> <translation id="7982789257301363584">Rete</translation> @@ -4885,6 +4905,7 @@ <translation id="8651585100578802546">Forza aggiornamento di questa pagina</translation> <translation id="8652400352452647993">Errore nel pacchetto estensione</translation> <translation id="8652487083013326477">pulsante di opzione dell'intervallo di pagine</translation> +<translation id="8653292045957015650">Attiva/disattiva la lente d'ingrandimento ancorata</translation> <translation id="8654151524613148204">Il file è troppo grande. Il computer non è in grado di gestirlo. Spiacenti.</translation> <translation id="8655295600908251630">Canale</translation> <translation id="8655319619291175901">Spiacenti, qualcosa è andato storto.</translation> @@ -4976,6 +4997,7 @@ <translation id="8757803915342932642">Dispositivo su Google Cloud Devices</translation> <translation id="8759408218731716181">Impossibile impostare l'accesso simultaneo</translation> <translation id="8759753423332885148">Ulteriori informazioni.</translation> +<translation id="8762207669047572135">Consenti accesso</translation> <translation id="8767621466733104912">Aggiorna automaticamente Chrome per tutti gli utenti</translation> <translation id="8770406935328356739">Directory principale dell'estensione</translation> <translation id="8770507190024617908">Gestisci utenti</translation> @@ -5105,7 +5127,9 @@ <translation id="8976520271376534479">Flash è stato bloccato in questa pagina.</translation> <translation id="8977811652087512276">Password errata o file danneggiato</translation> <translation id="8978154919215542464">On: sincronizza tutto</translation> +<translation id="897939795688207351">Su <ph name="ORIGIN" /></translation> <translation id="8980951173413349704"><ph name="WINDOW_TITLE" /> - Bloccata</translation> +<translation id="8983677657449185470">Contribuisci a migliorare Navigazione sicura</translation> <translation id="8986362086234534611">Elimina</translation> <translation id="8986494364107987395">Invia automaticamente a Google statistiche sull'utilizzo e rapporti sugli arresti anomali</translation> <translation id="8987927404178983737">Mese</translation> @@ -5114,6 +5138,7 @@ <translation id="8995603266996330174">Gestito da <ph name="DOMAIN" /></translation> <translation id="8996526648899750015">Aggiungi account...</translation> <translation id="8997135628821231"><ph name="ISSUED_BY" /> [<ph name="ISSUED_TO" />] (<ph name="DEVICE" />)</translation> +<translation id="8998788483361403036">Creazione dell'immagine del disco.</translation> <translation id="9003647077635673607">Consenti su tutti i siti web</translation> <translation id="9003677638446136377">Controlla</translation> <translation id="9003704114456258138">Frequenza</translation> @@ -5134,7 +5159,6 @@ <translation id="9024331582947483881">schermo intero</translation> <translation id="9025098623496448965">OK, riportami nella schermata di accesso</translation> <translation id="9026731007018893674">download</translation> -<translation id="9027146684281895941">Supervisiona questa persona per controllare e visualizzare dal tuo account Google i siti web visitati.</translation> <translation id="9027459031423301635">Apri link in un'altra &scheda</translation> <translation id="9027603907212475920">Imposta sincronizzazione...</translation> <translation id="9030515284705930323">La tua organizzazione non ha attivato Google Play Store per il tuo account. Contatta l'amministratore per avere ulteriori informazioni.</translation> @@ -5150,6 +5174,7 @@ <translation id="9042893549633094279">Privacy e sicurezza</translation> <translation id="904451693890288097">Inserisci la passkey di "<ph name="DEVICE_NAME" />":</translation> <translation id="9044646465488564462">Connessione alla rete non riuscita: <ph name="DETAILS" /></translation> +<translation id="9045430190527754450">Invia a Google l'indirizzo web della pagina a cui stai tentando di accedere</translation> <translation id="9046895021617826162">Connessione non riuscita</translation> <translation id="9050666287014529139">Passphrase</translation> <translation id="9052208328806230490">Hai registrato le stampanti con <ph name="CLOUD_PRINT_NAME" /> utilizzando l'account <ph name="EMAIL" /></translation>
diff --git a/chrome/app/resources/generated_resources_iw.xtb b/chrome/app/resources/generated_resources_iw.xtb index fcdea1a..b8d7d3e 100644 --- a/chrome/app/resources/generated_resources_iw.xtb +++ b/chrome/app/resources/generated_resources_iw.xtb
@@ -42,7 +42,6 @@ <translation id="1056898198331236512">אזהרה</translation> <translation id="1058262162121953039">PUK</translation> <translation id="1062407476771304334">החלף</translation> -<translation id="1062866675591297858">נהל את המשתמשים שבפיקוח באמצעות <ph name="BEGIN_LINK" />לוח הבקרה למשתמשים בפיקוח<ph name="END_LINK" />.</translation> <translation id="1064835277883315402">הצטרף לרשת פרטית</translation> <translation id="1064912851688322329">נתק את חשבון Google שלך</translation> <translation id="1067048845568873861">נוצר</translation> @@ -65,7 +64,6 @@ <translation id="1091767800771861448">הקש ESCAPE כדי לדלג (גרסאות לא רשמיות בלבד).</translation> <translation id="1093457606523402488">רשתות גלויות:</translation> <translation id="1094607894174825014">פעולת קריאה או כתיבה התבקשה עם היסט לא חוקי במכשיר: "<ph name="DEVICE_NAME" />".</translation> -<translation id="1097507499312291972"><ph name="BEGIN_SIGN_IN_LINK" />היכנס<ph name="END_SIGN_IN_LINK" /> כדי להציג את האתרים שבהם משתמש זה ביקר ולשלוט בהם.</translation> <translation id="109758035718544977">בטל השתקת אתרים</translation> <translation id="1097658378307015415">לפני הכניסה לחשבון, היכנס כאורח כדי להפעיל את הרשת <ph name="NETWORK_ID" /></translation> <translation id="1103523840287552314">תרגם <ph name="LANGUAGE" /> תמיד</translation> @@ -244,7 +242,6 @@ <translation id="1361655923249334273">לא בשימוש</translation> <translation id="1363028406613469049">רצועה</translation> <translation id="1367951781824006909">בחר קובץ</translation> -<translation id="136802136832547685">לא נמצאו משתמשים בפיקוח שניתן להוסיף למכשיר זה.</translation> <translation id="1368265273904755308">דיווח על בעיה</translation> <translation id="1370646789215800222">האם להסיר את המשתמש?</translation> <translation id="1372681413396468867">{NUM_ITEMS,plural, =1{פריט אחד להסרה}two{# פריטים להסרה}many{# פריטים להסרה}other{# פריטים להסרה}}</translation> @@ -469,7 +466,6 @@ <translation id="1692799361700686467">קובצי Cookie מאתרים מרובים מותרים.</translation> <translation id="169515659049020177">Shift</translation> <translation id="1698122934742150150">הפעלה נוכחית בלבד במצב גלישה בסתר</translation> -<translation id="1700199471143028312">אין לך הרשאה ממנהל המערכת שלך ליצור משתמשים בפיקוח.</translation> <translation id="1701062906490865540">הסר משתמש זה</translation> <translation id="1706586824377653884">נוסף על ידי מנהל המערכת שלך</translation> <translation id="1706625117072057435">רמות מרחק מתצוגה</translation> @@ -1038,7 +1034,6 @@ <translation id="2604255671529671813">שגיאת חיבור רשת</translation> <translation id="2606246518223360146">קישור נתונים</translation> <translation id="2607101320794533334">פרטי מפתח ציבורי של נושא</translation> -<translation id="2607459012323956820">המנהל עדיין יכול להציג את ההגדרות ואת היסטוריית הגלישה של משתמש מבוקר זה בכתובת <ph name="BEGIN_LINK" /><ph name="DISPLAY_LINK" /><ph name="END_LINK" />.</translation> <translation id="2608770217409477136">השתמש בהגדרות ברירת המחדל</translation> <translation id="2609896558069604090">יצירת קיצורי דרך...</translation> <translation id="2610157865375787051">שינה</translation> @@ -1281,7 +1276,6 @@ <translation id="2951247061394563839">מרכז את החלון</translation> <translation id="2956763290572484660"><ph name="COOKIES" /> קובצי Cookie</translation> <translation id="2958721676848865875">אזהרת 'ארוז תוסף'</translation> -<translation id="2961043351165706615">אפליקציות Linux שהתקנת יימחקו מה-Chromebook הזה.</translation> <translation id="2961090598421146107"><ph name="CERTIFICATE_NAME" /> (ניתנה הארכה)</translation> <translation id="2961695502793809356">לחץ כדי לעבור קדימה, לחץ והחזק כדי לראות את ההיסטוריה</translation> <translation id="2963151496262057773">הפלאגין הבא אינו מגיב: <ph name="PLUGIN_NAME" /> האם ברצונך לכבות אותו?</translation> @@ -1333,15 +1327,6 @@ <translation id="3022978424994383087">ההודעה שלך לא ברורה.</translation> <translation id="3024374909719388945">השתמש בשעון של 24 שעות</translation> <translation id="302781076327338683">טען מחדש מטמון עוקף</translation> -<translation id="3030243755303701754">משתמש בפיקוח יכול לגלוש באינטרנט בהשגחתך. כמנהל של משתמש בפיקוח ב-Chrome תוכל: - - • להתיר או לחסום אתרים - • להציג את האתרים שבהם ביקר המשתמש בפיקוח - • לנהל הגדרות נוספות - -יצירה של משתמש בפיקוח אינה יוצרת חשבון Google, והסימניות, היסטוריית הגלישה וההעדפות האחרות שלו לא יהיו זמינות לו במכשירים אחרים בעזרת סינכרון Chrome. לאחר שתיצור משתמש חדש בפיקוח, תוכל לנהל את ההגדרות שלו תמיד ומכל מכשיר בכתובת <ph name="BEGIN_MANAGE_LINK" /><ph name="DISPLAY_LINK" /><ph name="END_MANAGE_LINK" />. - -תוכל למצוא מידע נוסף <ph name="BEGIN_LINK" />במרכז העזרה<ph name="END_LINK" /> שלנו.</translation> <translation id="3031417829280473749">סוכנת X</translation> <translation id="3031557471081358569">בחר פריטים לייבוא:</translation> <translation id="3031601332414921114">המשך בהדפסה</translation> @@ -1382,7 +1367,6 @@ <translation id="3085412380278336437">האתר רשאי להשתמש במצלמה</translation> <translation id="3085752524577180175">מארח SOCKS</translation> <translation id="3088325635286126843">&שנה שם...</translation> -<translation id="3089231390674410424">נראה שישנה בעיה עם פרטי הכניסה שלך. ודא שאתה מחובר למערכת כהלכה ונסה שוב.</translation> <translation id="3090193911106258841">גישה לקלט אודיו ווידאו</translation> <translation id="3090819949319990166">לא ניתן להעתיק קובץ crx חיצוני ל-<ph name="TEMP_CRX_FILE" />.</translation> <translation id="3090871774332213558">"<ph name="DEVICE_NAME" />" מותאם</translation> @@ -1397,7 +1381,6 @@ <translation id="3121793941267913344">אפס את מכשיר <ph name="IDS_SHORT_PRODUCT_NAME" /> זה</translation> <translation id="3122464029669770682">CPU</translation> <translation id="3122496702278727796">יצירת ספריית נתונים נכשלה</translation> -<translation id="3123569374670379335">(בפיקוח)</translation> <translation id="3124111068741548686">מזהים ייחודיים של משתמש</translation> <translation id="3126026824346185272">Ctrl</translation> <translation id="3127156390846601284">פעולה זו תמחק את כל הנתונים שנשמרו במכשיר עבור כל האתרים המוצגים. האם אתה רוצה להמשיך?</translation> @@ -1432,7 +1415,6 @@ <translation id="3160842278951476457"><ph name="ISSUED_BY" /> [<ph name="ISSUED_TO" />] (בגיבוי חומרה)</translation> <translation id="316125635462764134">הסר יישום</translation> <translation id="3161522574479303604">כל השפות</translation> -<translation id="316307797510303346">הצג את האתרים שבהם משתמש זה מבקר מתוך <ph name="CUSTODIAN_EMAIL" /> ושלוט בהם. פרטי הכניסה שלך אינם עדכניים.</translation> <translation id="3165390001037658081">ייתכן שספקים מסוימים חוסמים את התכונה הזו.</translation> <translation id="316854673539778496">כדי שכל התוספים שלך יהיו זמינים בכל המכשירים שברשותך, צריך להיכנס ולהפעיל את הסינכרון.</translation> <translation id="3170072451822350649">ניתן גם לדלג על הכניסה ו<ph name="LINK_START" />לגלוש כאורח<ph name="LINK_END" />.</translation> @@ -1465,7 +1447,6 @@ <translation id="3229922550070982305">הפעל / השהה</translation> <translation id="3232318083971127729">ערך:</translation> <translation id="3236289833370040187">הבעלות תועבר אל <ph name="DESTINATION_DOMAIN" />.</translation> -<translation id="3237784613213365159"><ph name="NEW_PROFILE_NAME" /> הוא כעת משתמש בפיקוח</translation> <translation id="323803881985677942">פתח אפשרויות תוסף</translation> <translation id="3241680850019875542">בחר את ספריית הבסיס של התוסף שיש לארוז. כדי לעדכן תוסף, בחר גם את קובץ המפתח הפרטי שבו ניתן להשתמש שוב.</translation> <translation id="3242765319725186192">מפתח משותף מראש:</translation> @@ -1697,7 +1678,6 @@ <translation id="3584169441612580296">לקרוא ולשנות קובצי תמונות, מוזיקה ומדיה מסוגים נוספים מהמחשב שלך</translation> <translation id="3587482841069643663">הכל</translation> <translation id="358796204584394954">הקלד את הקוד הזה ב-"<ph name="DEVICE_NAME" />" כדי לבצע התאמה:</translation> -<translation id="3589532742556016615">פעולה זו לא משפיעה על אפליקציות או תוכן במכשירים אחרים.</translation> <translation id="3589766037099229847">תוכן לא מאובטח נחסם</translation> <translation id="3590194807845837023">בטל נעילת פרופיל והפעל מחדש</translation> <translation id="3592260987370335752">למידע נוסף</translation> @@ -1831,7 +1811,6 @@ <translation id="3778152852029592020">ההורדה בוטלה.</translation> <translation id="3778740492972734840">&כלים עבור מפתחים</translation> <translation id="3778868487658107119">אפשר לשאול אותו שאלות ולומר לו לבצע פעולות. העוזר הפרטי של Google מוכן תמיד לסייע לך.</translation> -<translation id="3780663724044634171">בחר חשבון לניהול המשתמש בפיקוח.</translation> <translation id="378312418865624974">קריאה של מזהה ייחודי עבור מחשב זה</translation> <translation id="3783640748446814672">alt</translation> <translation id="3785308913036335955">הצג קיצור דרך אל יישומים</translation> @@ -2559,7 +2538,6 @@ <translation id="4964455510556214366">סידור</translation> <translation id="4964673849688379040">בודק...</translation> <translation id="4965808351167763748">בחרת להגדיר שהמכשיר הזה יפעיל את Hangouts Meet. להמשיך?</translation> -<translation id="4967749818080339523">בחר חשבון</translation> <translation id="496888482094675990">היישום 'קבצים' מספק גישה מהירה לקבצים ששמרת ב-Google Drive, באחסון חיצוני או במכשיר שלך עם מערכת הפעלה של Chrome.</translation> <translation id="4969785127455456148">אלבום</translation> <translation id="4971412780836297815">פתח בסיום</translation> @@ -2747,7 +2725,6 @@ ב-Google Drive.<ph name="MARKUP_6" /> <ph name="MARKUP_7" />שתף, צור ועבוד במשותף<ph name="MARKUP_8" /> על קבצים עם אנשים נוספים - הכל במקום אחד.<ph name="MARKUP_9" /></translation> -<translation id="5262401745672360397">ייתכן שיימחקו גם קבצים ששותפו עם אפליציות Linux.</translation> <translation id="5264148714798105376">הפעולה יכולה להימשך כדקה.</translation> <translation id="5264252276333215551">התחבר לאינטרנט כדי להפעיל את היישום במצב קיוסק.</translation> <translation id="5265562206369321422">לא מקוונת במשך יותר משבוע</translation> @@ -3399,7 +3376,6 @@ <translation id="6241530762627360640">פרטי גישה של מכשירי Bluetooth המותאמים למערכת שלך ומגלים מכשירי Bluetooth קרובים.</translation> <translation id="6243280677745499710">מוגדר עכשיו</translation> <translation id="6243774244933267674">השרת אינו זמין</translation> -<translation id="6246413617632217567">לא ניתן לייבא את המשתמש בפיקוח. ודא שיש שטח אחסון פנוי בכונן הקשיח, בדוק את ההרשאות שלך ונסה שוב.</translation> <translation id="6247708409970142803">%<ph name="PERCENTAGE" /></translation> <translation id="6247802389331535091">מערכת: <ph name="ARC_PROCESS_NAME" /></translation> <translation id="624789221780392884">העדכון מוכן</translation> @@ -3598,7 +3574,6 @@ <translation id="654039047105555694"><ph name="BEGIN_BOLD" />הערה:<ph name="END_BOLD" /> הפעל אפשרות זו רק אם אתה בטוח בכך, או אם התבקשת לעשות זאת, משום שאיסוף נתונים עלול לפגוע בביצועים.</translation> <translation id="654233263479157500">השתמש בשירות אינטרנט כדי לפתור שגיאות ניווט</translation> <translation id="6544215763872433504">דפדפן האינטרנט של Google, במיוחד בשבילך</translation> -<translation id="6545325945815270297">נהל את הנתונים והמכשירים המסונכרנים ב<ph name="BEGIN_LINK" />מרכז השליטה של Chrome<ph name="END_LINK" />.</translation> <translation id="6545665334409411530">שיעור חזרה</translation> <translation id="6545834809683560467">השתמש בשירות חיזויים כדי להשלים חיפושים וכתובות אתרים שאתה מזין בסרגל הכתובות או בתיבת החיפוש של מפעיל היישומים</translation> <translation id="6546686722964485737">הצטרפות לרשת WiMAX</translation> @@ -3613,7 +3588,6 @@ <translation id="6555810572223193255">הניקוי לא זמין עכשיו</translation> <translation id="6556866813142980365">בצע מחדש</translation> <translation id="6558280019477628686">אירעה שגיאה. ייתכן שפריטים מסוימים לא נמחקו.</translation> -<translation id="6559580823502247193">(כבר מוגדר במכשיר זה)</translation> <translation id="6561726789132298588">Enter</translation> <translation id="656293578423618167">הנתיב או שם הקובץ ארוך מדי. שמור בשם קצר יותר או למיקום אחר.</translation> <translation id="656398493051028875">מוחק את "<ph name="FILENAME" />"...</translation> @@ -3810,7 +3784,6 @@ <translation id="6862635236584086457">כל הקבצים השמורים בתיקיה זו מגובים באופן אוטומטי באינטרנט</translation> <translation id="6865313869410766144">נתוני טפסים למילוי אוטומטי</translation> <translation id="686664946474413495">טמפרטורת צבע</translation> -<translation id="6867678160199975333">עבור אל <ph name="NEW_PROFILE_NAME" /></translation> <translation id="6870888490422746447">בחר אפליקציה לשיתוף:</translation> <translation id="6871644448911473373">מגיב OCSP: <ph name="LOCATION" /></translation> <translation id="6872781471649843364">השרת דחה את הסיסמה שהזנת.</translation> @@ -3904,7 +3877,6 @@ <translation id="7018275672629230621">לקרוא ולשנות את היסטוריית הגלישה שלך</translation> <translation id="7019805045859631636">מהיר</translation> <translation id="7022562585984256452">דף הבית שלך הוגדר.</translation> -<translation id="7025036625303002400">נראה שיש לך כבר משתמש בפיקוח בשם זה.</translation> <translation id="7025190659207909717">ניהול שירות של נתונים סלולריים</translation> <translation id="7025325401470358758">החלונית הבאה</translation> <translation id="7027125358315426638">שם מסד נתונים:</translation> @@ -3953,7 +3925,6 @@ <translation id="7092106376816104">חריגים של חלונות קופצים</translation> <translation id="7093434536568905704">GTK+</translation> <translation id="7093866338626856921">החלפת נתונים עם המכשירים ששמותיהם: <ph name="HOSTNAMES" /></translation> -<translation id="7096108453481049031">לא ניתן לייבא את המשתמש בפיקוח. בדוק את החיבור לרשת ונסה שוב מאוחר יותר.</translation> <translation id="7096406577040705016">החלפת המצב של הזכוכית המגדלת במסך מלא</translation> <translation id="7098447629416471489">כאן יופיעו מנועי חיפוש אחרים ששמרת</translation> <translation id="7099337801055912064">לא ניתן לטעון קובץ PPD גדול. הגודל המקסימלי הוא 250 kB.</translation> @@ -4001,7 +3972,6 @@ <translation id="7168109975831002660">גודל גופן מינימלי</translation> <translation id="7170041865419449892">מחוץ לטווח</translation> <translation id="7171559745792467651">התקנת אפליקציות ממכשירים אחרים שברשותך</translation> -<translation id="7173917244679555">נראה שאתה כבר מנהל משתמש עם השם הזה. האם רצית <ph name="BEGIN_LINK" />לייבא את <ph name="PROFILE_NAME" /> אל המכשיר הזה<ph name="END_LINK" />?</translation> <translation id="7175037578838465313">הגדרה של <ph name="NAME" /></translation> <translation id="7175353351958621980">נטען מתוך:</translation> <translation id="7180611975245234373">רענן</translation> @@ -4167,7 +4137,6 @@ <translation id="7444726222535375658">כניסה אל Hangouts Meet</translation> <translation id="7444983668544353857">השבת <ph name="NETWORKDEVICE" /></translation> <translation id="7445682342344043969">חלונות קופצים חסומים</translation> -<translation id="744859430125590922">הצג את האתרים שבהם משתמש זה מבקר מחשבון <ph name="CUSTODIAN_EMAIL" /> ושלוט בהם.</translation> <translation id="7453008956351770337">על ידי בחירת מדפסת זו, אתה מעניק לתוסף הבא את ההרשאה לגשת למדפסת:</translation> <translation id="7453467225369441013">תבוצע יציאה שלך מרוב האתרים. לא תבוצע יציאה מחשבון Google שלך.</translation> <translation id="7456142309650173560">מפתח</translation> @@ -4339,7 +4308,6 @@ <translation id="7717845620320228976">חפש עדכונים</translation> <translation id="7719367874908701697">מרחק מתצוגה בדף</translation> <translation id="771953673318695590">QA</translation> -<translation id="7720375555307821262">כדי לפקח על אדם זה, <ph name="BEGIN_LINK" />היכנס ל-Chrome<ph name="END_LINK" />.</translation> <translation id="7721179060400456005">חלונות יכולים לסובב את התצוגות</translation> <translation id="7722040605881499779">השטח שנדרש כדי לעדכן: <ph name="NECESSARY_SPACE" /></translation> <translation id="7724603315864178912">חתוך</translation> @@ -5193,7 +5161,6 @@ <translation id="9024331582947483881">מסך מלא</translation> <translation id="9025098623496448965">בסדר, החזר אותי למסך הכניסה</translation> <translation id="9026731007018893674">הורד</translation> -<translation id="9027146684281895941">השתמש בחשבון Google שלך לפיקוח על המשתמש הזה, שליטה באתרים שבהם הוא מבקר והצגתם.</translation> <translation id="9027459031423301635">פתח קישור בכרטיסייה &חדשה</translation> <translation id="9027603907212475920">הגדר סנכרון...</translation> <translation id="9030515284705930323">הארגון שלך לא הפעיל את חנות Google Play בחשבון שלך. למידע נוסף, פנה למנהל המערכת.</translation> @@ -5353,7 +5320,6 @@ <translation id="98515147261107953">לרוחב</translation> <translation id="987897973846887088">אין תמונות זמינות</translation> <translation id="988978206646512040">השדה של ביטוי הסיסמה לא יכול להישאר ריק</translation> -<translation id="990310048453480215">הסרת אפליקציות Linux</translation> <translation id="992032470292211616">תוספים, אפליקציות ועיצובים יכולים לפגוע במכשיר שלך. האם אתה בטוח שברצונך להמשיך?</translation> <translation id="992592832486024913">השבת את ChromeVox (משוב קולי)</translation> <translation id="994289308992179865">הפעל ב&רצף</translation>
diff --git a/chrome/app/resources/generated_resources_ja.xtb b/chrome/app/resources/generated_resources_ja.xtb index 8622f82f..677a598d 100644 --- a/chrome/app/resources/generated_resources_ja.xtb +++ b/chrome/app/resources/generated_resources_ja.xtb
@@ -42,7 +42,6 @@ <translation id="1056898198331236512">警告</translation> <translation id="1058262162121953039">PUK</translation> <translation id="1062407476771304334">置換</translation> -<translation id="1062866675591297858">監視対象ユーザーを管理するには<ph name="BEGIN_LINK" />監視対象ユーザーのダッシュボード<ph name="END_LINK" />を使用します。</translation> <translation id="1064835277883315402">プライベート ネットワークに参加</translation> <translation id="1064912851688322329">Google アカウントを切断</translation> <translation id="1067048845568873861">作成日</translation> @@ -65,7 +64,6 @@ <translation id="1091767800771861448">Esc キーを押すとスキップできます(非公式のビルドのみ)。</translation> <translation id="1093457606523402488">検出されたネットワーク:</translation> <translation id="1094607894174825014">「<ph name="DEVICE_NAME" />」で、無効なオフセットでの読み取りまたは書き込み操作がリクエストされました。</translation> -<translation id="1097507499312291972">このユーザーがアクセスするウェブサイトを管理、表示するには、<ph name="BEGIN_SIGN_IN_LINK" />ログイン<ph name="END_SIGN_IN_LINK" />します。</translation> <translation id="109758035718544977">複数のサイトのミュートを解除</translation> <translation id="1097658378307015415">ログインする前に、ゲスト セッションを開始して <ph name="NETWORK_ID" /> ネットワークを有効にしてください</translation> <translation id="1103523840287552314"><ph name="LANGUAGE" />を常に翻訳</translation> @@ -244,7 +242,6 @@ <translation id="1361655923249334273">使用されていない</translation> <translation id="1363028406613469049">トラック</translation> <translation id="1367951781824006909">ファイルを選択</translation> -<translation id="136802136832547685">この端末に追加する監視対象ユーザーは存在しません。</translation> <translation id="1368265273904755308">問題を報告</translation> <translation id="1370646789215800222">ユーザーを削除しますか?</translation> <translation id="1372681413396468867">{NUM_ITEMS,plural, =1{1 件の項目を削除}other{# 件の項目を削除}}</translation> @@ -473,7 +470,6 @@ <translation id="1692799361700686467">複数サイトからの Cookie が許可されました。</translation> <translation id="169515659049020177">Shift</translation> <translation id="1698122934742150150">現在のシークレット モード セッションのみ</translation> -<translation id="1700199471143028312">管理者が監視対象ユーザーの作成を許可していません。</translation> <translation id="1701062906490865540">このユーザーを削除</translation> <translation id="1706586824377653884">管理者により追加</translation> <translation id="1706625117072057435">ズームレベル</translation> @@ -1042,7 +1038,6 @@ <translation id="2604255671529671813">ネットワーク接続エラー</translation> <translation id="2606246518223360146">データをリンク</translation> <translation id="2607101320794533334">サブジェクトの公開鍵情報</translation> -<translation id="2607459012323956820">管理者は引き続き <ph name="BEGIN_LINK" /><ph name="DISPLAY_LINK" /><ph name="END_LINK" /> でこの監視対象ユーザーの設定や閲覧履を確認できる可能性があります。</translation> <translation id="2608770217409477136">デフォルト設定を使用する</translation> <translation id="2609896558069604090">ショートカットの作成...</translation> <translation id="2610157865375787051">スリープモードにする</translation> @@ -1285,7 +1280,6 @@ <translation id="2951247061394563839">ウィンドウを中央に配置</translation> <translation id="2956763290572484660">Cookie: <ph name="COOKIES" /></translation> <translation id="2958721676848865875">拡張機能のパッケージ化に関する警告</translation> -<translation id="2961043351165706615">インストールした Linux アプリは、この Chromebook から削除されます。</translation> <translation id="2961090598421146107"><ph name="CERTIFICATE_NAME" />(期限延長済み)</translation> <translation id="2961695502793809356">クリックすると次に進みます。押したまま待つと履歴が表示されます。</translation> <translation id="2963151496262057773">プラグイン(<ph name="PLUGIN_NAME" />)は応答していません。強制終了しますか?</translation> @@ -1337,15 +1331,6 @@ <translation id="3022978424994383087">聞き取れませんでした。</translation> <translation id="3024374909719388945">24 時間形式を使用する</translation> <translation id="302781076327338683">キャッシュを回避して再読み込み</translation> -<translation id="3030243755303701754">監視対象ユーザーは管理者の監視のもとでウェブを利用できます。Chrome の監視対象ユーザーの管理者ができることは次のとおりです。 - - • 特定のウェブサイトへのアクセスを許可または禁止する - • 監視対象ユーザーがアクセスしたウェブサイトを確認する - • その他の設定を管理する - -監視対象ユーザーを作成しても Google アカウントが作成されるわけではありません。監視対象ユーザーのブックマーク、閲覧履歴などの設定は、Chrome 同期機能によって他の端末にコピーされることはありません。新しい監視対象ユーザーを作成した後は、いつでも任意の端末から <ph name="BEGIN_MANAGE_LINK" /><ph name="DISPLAY_LINK" /><ph name="END_MANAGE_LINK" /> にアクセスして監視対象ユーザーの設定を管理できます。 - -詳しくは、<ph name="BEGIN_LINK" />ヘルプセンター<ph name="END_LINK" />をご覧ください。</translation> <translation id="3031417829280473749">エージェント X</translation> <translation id="3031557471081358569">インポートするデータを選択:</translation> <translation id="3031601332414921114">印刷を再開</translation> @@ -1386,7 +1371,6 @@ <translation id="3085412380278336437">サイトにカメラの使用が許可されています</translation> <translation id="3085752524577180175">SOCKS ホスト</translation> <translation id="3088325635286126843">名前を変更(&R)...</translation> -<translation id="3089231390674410424">認証情報に問題があるようです。正しくログインしていることを確認し、もう一度お試しください。</translation> <translation id="3090193911106258841">音声 / ビデオ入力にアクセスしています</translation> <translation id="3090819949319990166">外部の crx ファイルは <ph name="TEMP_CRX_FILE" /> にコピーできません。</translation> <translation id="3090871774332213558">「<ph name="DEVICE_NAME" />」がペア設定されました</translation> @@ -1401,7 +1385,6 @@ <translation id="3121793941267913344">この <ph name="IDS_SHORT_PRODUCT_NAME" /> 搭載デバイスをリセットします</translation> <translation id="3122464029669770682">CPU</translation> <translation id="3122496702278727796">データ ディレクトリの作成に失敗しました</translation> -<translation id="3123569374670379335">(監視対象)</translation> <translation id="3124111068741548686">USER ハンドル</translation> <translation id="3126026824346185272">Ctrl</translation> <translation id="3127156390846601284">表示されているすべてのサイトについて、端末に保存されているデータを削除します。続行しますか?</translation> @@ -1436,8 +1419,6 @@ <translation id="3160842278951476457"><ph name="ISSUED_BY" /> [<ph name="ISSUED_TO" />](ハードウェアにより保護を強化)</translation> <translation id="316125635462764134">アプリを削除</translation> <translation id="3161522574479303604">すべての言語</translation> -<translation id="316307797510303346">このユーザーが <ph name="CUSTODIAN_EMAIL" /> からアクセスするウェブサイトを制御、閲覧する。 - アカウントのログイン情報が古くなっています。</translation> <translation id="3165390001037658081">携帯通信会社によってはこの機能を利用できない場合があります。</translation> <translation id="316854673539778496">お使いのどの端末でも同じ拡張機能を使用するには、ログインして同期を有効にします。</translation> <translation id="3170072451822350649">ログインせずに<ph name="LINK_START" />ゲストとしてブラウジング<ph name="LINK_END" />することもできます。</translation> @@ -1470,7 +1451,6 @@ <translation id="3229922550070982305">再生 / 一時停止</translation> <translation id="3232318083971127729">値:</translation> <translation id="3236289833370040187">所有権が <ph name="DESTINATION_DOMAIN" /> に移ります。</translation> -<translation id="3237784613213365159"><ph name="NEW_PROFILE_NAME" /> が監視対象ユーザーとなりました</translation> <translation id="323803881985677942">拡張機能のオプションを開きます</translation> <translation id="3241680850019875542">パッケージ化する拡張機能のルート ディレクトリを選択します。拡張機能を更新するには、再使用する秘密鍵ファイルも選択してください。</translation> <translation id="3242765319725186192">事前共有キー:</translation> @@ -1702,7 +1682,6 @@ <translation id="3584169441612580296">パソコンからの写真、音楽、その他のメディアの読み取りと変更</translation> <translation id="3587482841069643663">すべて</translation> <translation id="358796204584394954">ペア設定するには「<ph name="DEVICE_NAME" />」で次のコードを入力してください:</translation> -<translation id="3589532742556016615">この操作は他の端末のアプリやコンテンツには影響しません。</translation> <translation id="3589766037099229847">安全でないコンテンツがブロックされました</translation> <translation id="3590194807845837023">プロフィールのロックを解除して再起動</translation> <translation id="3592260987370335752">詳細(&L)</translation> @@ -1836,7 +1815,6 @@ <translation id="3778152852029592020">ダウンロードがキャンセルされました。</translation> <translation id="3778740492972734840">デベロッパー ツール(&D)</translation> <translation id="3778868487658107119">あなただけの Google が、知りたいこと、やりたいことをサポートします。なんでも話してみてください。</translation> -<translation id="3780663724044634171">監視対象ユーザーを管理するアカウントを選択してください。</translation> <translation id="378312418865624974">このパソコンの一意の識別子の読み取り</translation> <translation id="3783640748446814672">alt</translation> <translation id="3785308913036335955">アプリのショートカットを表示</translation> @@ -2564,7 +2542,6 @@ <translation id="4964455510556214366">配置</translation> <translation id="4964673849688379040">確認しています...</translation> <translation id="4965808351167763748">このデバイスでハングアウト Meet を実行するように設定してもよろしいですか?</translation> -<translation id="4967749818080339523">アカウントを選択してください</translation> <translation id="496888482094675990">ファイル アプリを使えば、Google ドライブ、外部ストレージ、Chrome OS デバイスに保存したファイルにすぐにアクセスできます。</translation> <translation id="4969785127455456148">アルバム</translation> <translation id="4971412780836297815">完了後に開く</translation> @@ -2751,7 +2728,6 @@ 端末に問題が生じても、ファイルは Google ドライブで安全に保存されます。<ph name="MARKUP_6" /> <ph name="MARKUP_7" />ファイルの作成、共有、共同作業<ph name="MARKUP_8" /> 他のユーザーとの作業をすべて 1 か所で行うことができます。<ph name="MARKUP_9" /></translation> -<translation id="5262401745672360397">Linux アプリとの共有ファイルも削除される可能性があります。</translation> <translation id="5264148714798105376">これには 1 分ほどかかる場合があります。</translation> <translation id="5264252276333215551">キオスク モードでアプリを起動するにはインターネットに接続してください。</translation> <translation id="5265562206369321422">1 週間以上オフライン</translation> @@ -3403,7 +3379,6 @@ <translation id="6241530762627360640">システムでペア設定されている Bluetooth デバイスの情報へのアクセスと、近くにある Bluetooth デバイスの検出。</translation> <translation id="6243280677745499710">現在設定されている壁紙</translation> <translation id="6243774244933267674">サーバーを使用できません</translation> -<translation id="6246413617632217567">監視対象ユーザーをインポートできませんでした。ハードドライブの空き容量と権限を確認し、もう一度お試しください。</translation> <translation id="6247708409970142803"><ph name="PERCENTAGE" />%</translation> <translation id="6247802389331535091">システム: <ph name="ARC_PROCESS_NAME" /></translation> <translation id="624789221780392884">アップデート準備完了</translation> @@ -3602,7 +3577,6 @@ <translation id="654039047105555694"><ph name="BEGIN_BOLD" />注:<ph name="END_BOLD" /> データの収集によりパフォーマンスが低下する場合があるため、意図的に行う場合、または指示された場合のみ有効にしてください。</translation> <translation id="654233263479157500">ウェブ サービスを使用してナビゲーション エラーの解決を支援する</translation> <translation id="6544215763872433504">Google によるあなたのウェブブラウザ</translation> -<translation id="6545325945815270297">同期するデータと端末は <ph name="BEGIN_LINK" />Chrome ダッシュボード<ph name="END_LINK" />で管理できます。</translation> <translation id="6545665334409411530">リピート回数 / 秒</translation> <translation id="6545834809683560467">予測サービスを使用して、アドレスバーまたはアプリ ランチャーの検索ボックスに入力した検索キーワードや URL を補完する</translation> <translation id="6546686722964485737">WiMAX ネットワークへの接続</translation> @@ -3617,7 +3591,6 @@ <translation id="6555810572223193255">現在、クリーンアップ ツールをご利用いただけません</translation> <translation id="6556866813142980365">やり直す</translation> <translation id="6558280019477628686">エラーが発生しました。一部の項目が削除されていない可能性があります。</translation> -<translation id="6559580823502247193">(このデバイスの既存ユーザー)</translation> <translation id="6561726789132298588">Enter</translation> <translation id="656293578423618167">ファイルのパスまたは名前が長すぎます。名前を短くするか、別の場所に保存してください。</translation> <translation id="656398493051028875">「<ph name="FILENAME" />」を削除しています...</translation> @@ -3814,7 +3787,6 @@ <translation id="6862635236584086457">このフォルダに保存されているすべてのファイルが自動的にオンラインにバックアップされます。</translation> <translation id="6865313869410766144">自動入力フォームのデータ</translation> <translation id="686664946474413495">色温度</translation> -<translation id="6867678160199975333"><ph name="NEW_PROFILE_NAME" /> に切り替える</translation> <translation id="6870888490422746447">共有するアプリを選択してください:</translation> <translation id="6871644448911473373">OCSP レスポンダ: <ph name="LOCATION" /></translation> <translation id="6872781471649843364">入力したパスワードはサーバーによって拒否されました。</translation> @@ -3908,7 +3880,6 @@ <translation id="7018275672629230621">閲覧履歴の読み取りと変更</translation> <translation id="7019805045859631636">速い</translation> <translation id="7022562585984256452">ホームページが設定されました。</translation> -<translation id="7025036625303002400">この名前の監視対象ユーザーは既に存在するようです。</translation> <translation id="7025190659207909717">モバイル データ サービスの管理</translation> <translation id="7025325401470358758">次のウィンドウ</translation> <translation id="7027125358315426638">データベース名:</translation> @@ -3957,7 +3928,6 @@ <translation id="7092106376816104">ポップアップの例外</translation> <translation id="7093434536568905704">GTK+</translation> <translation id="7093866338626856921">デバイス <ph name="HOSTNAMES" /> とのデータ交換</translation> -<translation id="7096108453481049031">監視対象ユーザーをインポートできませんでした。ネットワーク接続を確認し、しばらくしてからもう一度お試しください。</translation> <translation id="7096406577040705016">拡大鏡(全画面)を切り替え</translation> <translation id="7098447629416471489">保存したその他の検索エンジンがここに表示されます</translation> <translation id="7099337801055912064">サイズの大きい PPD は読み込めません。最大サイズは 250 KB です。</translation> @@ -4005,7 +3975,6 @@ <translation id="7168109975831002660">最小フォント サイズ</translation> <translation id="7170041865419449892">圏外</translation> <translation id="7171559745792467651">他の端末でインストールしたアプリ</translation> -<translation id="7173917244679555">この名前のユーザーを既に管理しているようです。この端末に <ph name="BEGIN_LINK" /><ph name="PROFILE_NAME" /> をインポート<ph name="END_LINK" />しますか?</translation> <translation id="7175037578838465313"><ph name="NAME" /> の設定</translation> <translation id="7175353351958621980">ロード元:</translation> <translation id="7180611975245234373">更新</translation> @@ -4179,7 +4148,6 @@ <translation id="7444726222535375658">ハングアウト Meet に進む</translation> <translation id="7444983668544353857"><ph name="NETWORKDEVICE" /> を無効にする</translation> <translation id="7445682342344043969">ポップアップがブロックされました</translation> -<translation id="744859430125590922">このユーザーが <ph name="CUSTODIAN_EMAIL" /> からアクセスするウェブサイトを管理、表示する。</translation> <translation id="7453008956351770337">このプリンタを選択すると、次の拡張機能にプリンタへのアクセスを許可することになります。</translation> <translation id="7453467225369441013">ほとんどのサイトからログアウトします。Google アカウントへのログイン状態は維持されます。</translation> <translation id="7456142309650173560">Dev</translation> @@ -4353,7 +4321,6 @@ <translation id="7717845620320228976">アップデートを確認</translation> <translation id="7719367874908701697">ページのズーム</translation> <translation id="771953673318695590">QA</translation> -<translation id="7720375555307821262">このユーザーを監視するには、<ph name="BEGIN_LINK" />Chrome にログイン<ph name="END_LINK" />します。</translation> <translation id="7721179060400456005">ウィンドウを複数のディスプレイで表示できるようにする</translation> <translation id="7722040605881499779">更新に必要な空き容量: <ph name="NECESSARY_SPACE" /></translation> <translation id="7724603315864178912">切り取り</translation> @@ -5208,7 +5175,6 @@ <translation id="9024331582947483881">全画面表示</translation> <translation id="9025098623496448965">ログイン画面に戻る</translation> <translation id="9026731007018893674">ダウンロード</translation> -<translation id="9027146684281895941">このユーザーを監視し、ユーザーがアクセスするウェブサイトを自分の Google アカウントから管理、表示できるようにする。</translation> <translation id="9027459031423301635">新しいタブで開く(&T)</translation> <translation id="9027603907212475920">同期の設定...</translation> <translation id="9030515284705930323">組織の設定により、アカウントで Google Play ストアをご利用いただくことができません。詳しくは管理者にお尋ねください。</translation> @@ -5368,7 +5334,6 @@ <translation id="98515147261107953">横</translation> <translation id="987897973846887088">使用できる画像がありません</translation> <translation id="988978206646512040">パスフレーズは必ず指定してください</translation> -<translation id="990310048453480215">Linux アプリを削除</translation> <translation id="992032470292211616">拡張機能、アプリ、テーマはお使いの端末に悪影響を与える可能性があります。続行してもよろしいですか?</translation> <translation id="992592832486024913">ChromeVox(音声フィードバック)を無効にする</translation> <translation id="994289308992179865">ループ(&L)</translation>
diff --git a/chrome/app/resources/generated_resources_kn.xtb b/chrome/app/resources/generated_resources_kn.xtb index a3fd7b7d..2a7c94c 100644 --- a/chrome/app/resources/generated_resources_kn.xtb +++ b/chrome/app/resources/generated_resources_kn.xtb
@@ -42,7 +42,6 @@ <translation id="1056898198331236512">ಎಚ್ಚರಿಕೆ</translation> <translation id="1058262162121953039">PUK</translation> <translation id="1062407476771304334">ಸ್ಥಾನಾಂತರಿಸು</translation> -<translation id="1062866675591297858"><ph name="BEGIN_LINK" />ಮೇಲ್ವಿಚಾರಣೆಯ ಬಳಕೆದಾರರ ಡ್ಯಾಶ್ಬೋರ್ಡ್<ph name="END_LINK" /> ಮೂಲಕ ನಿಮ್ಮ ಮೇಲ್ವಿಚಾರಣೆಯ ಬಳಕೆದಾರರನ್ನು ನಿರ್ವಹಿಸಿ.</translation> <translation id="1064835277883315402">ಖಾಸಗಿ ನೆಟ್ವರ್ಕ್ಗೆ ಸೇರ್ಪಡೆಗೊಳ್ಳಿ</translation> <translation id="1064912851688322329">ನಿಮ್ಮ Google ಖಾತೆಯನ್ನು ಸಂಪರ್ಕ ಕಡಿತಗೊಳಿಸಿ</translation> <translation id="1067048845568873861">ರಚಿಸಲಾಗಿದೆ</translation> @@ -63,7 +62,6 @@ <translation id="1091767800771861448">ಸ್ಕಿಪ್ ಮಾಡಲು ESCAPE ಅನ್ನು ಒತ್ತಿರಿ (ಅಧಿಕೃತವಲ್ಲದ ಬಿಲ್ಡ್ಗಳಿಗೆ ಮಾತ್ರ).</translation> <translation id="1093457606523402488">ಗೋಚರಿಸುವ ನೆಟ್ವರ್ಕ್ಗಳು:</translation> <translation id="1094607894174825014">ಇದರಲ್ಲಿ ಅಮಾನ್ಯವಾದ ಆಫ್ಸೆಟ್ ಜೊತೆಗೆ ಓದುವ ಅಥವಾ ಬರೆಯುವ ಕಾರ್ಯಾಚರಣೆಯನ್ನು ವಿನಂತಿಸಲಾಗಿದೆ: "<ph name="DEVICE_NAME" />".</translation> -<translation id="1097507499312291972">ಈ ವ್ಯಕ್ತಿಯ ಭೇಟಿಗಳ ವೆಬ್ಸೈಟ್ಗಳನ್ನು ನಿಯಂತ್ರಿಸಲು ಮತ್ತು ವೀಕ್ಷಿಸಲು <ph name="BEGIN_SIGN_IN_LINK" />ಸೈನ್ ಇನ್<ph name="END_SIGN_IN_LINK" /> ಮಾಡಿ.</translation> <translation id="109758035718544977">ಸೈಟ್ಗಳನ್ನು ಅನ್ಮ್ಯೂಟ್ ಮಾಡಿ</translation> <translation id="1097658378307015415">ಸೈನ್ ಇನ್ ಮಾಡುವ ಮುನ್ನ, <ph name="NETWORK_ID" /> ನೆಟ್ವರ್ಕ್ ಅನ್ನು ಸಕ್ರಿಯಗೊಳಿಸಲು ಅತಿಥಿಯಾಗಿ ಪ್ರವೇಶಿಸಿ</translation> <translation id="1103523840287552314">ಯಾವಾಗಲೂ ಅನುವಾದಿಸಿ <ph name="LANGUAGE" /></translation> @@ -237,7 +235,6 @@ <translation id="1361655923249334273">ಬಳಸದ</translation> <translation id="1363028406613469049">ಟ್ರ್ಯಾಕ್</translation> <translation id="1367951781824006909">ಫೈಲ್ವೊಂದನ್ನು ಆರಿಸಿ</translation> -<translation id="136802136832547685">ಈ ಸಾಧನಕ್ಕೆ ಸೇರಿಸಲು ಯಾವುದೇ ಮೇಲ್ವಿಚಾರಣೆ ಬಳಕೆದಾರರು ಇಲ್ಲ.</translation> <translation id="1368265273904755308">ಸಮಸ್ಯೆ ವರದಿ ಮಾಡಿ</translation> <translation id="1370646789215800222">ವ್ಯಕ್ತಿಯನ್ನು ತೆಗೆದುಹಾಕುವುದೇ?</translation> <translation id="1372681413396468867">{NUM_ITEMS,plural, =1{1 ಐಟಂ ಅನ್ನು ತೆಗೆದುಹಾಕಲಾಗುವುದು}one{# ಐಟಂಗಳನ್ನು ತೆಗೆದುಹಾಕಲಾಗುವುದು}other{# ಐಟಂಗಳನ್ನು ತೆಗೆದುಹಾಕಲಾಗುವುದು}}</translation> @@ -465,7 +462,6 @@ <translation id="1692799361700686467">ಬಹು ಸೈಟ್ಗಳಿಂದ ಕುಕ್ಕೀಸ್ ಅನ್ನು ಅನುಮತಿಸಲಾಗಿದೆ.</translation> <translation id="169515659049020177">Shift</translation> <translation id="1698122934742150150">ಪ್ರಸ್ತುತ ಅದೃಶ್ಯ ಸೆಶನ್ ಮಾತ್ರ</translation> -<translation id="1700199471143028312">ನಿಮ್ಮ ನಿರ್ವಾಹಕರು ಮೇಲ್ವಿಚಾರಣೆಯ ಬಳಕೆದಾರರನ್ನು ರಚಿಸಲು ನಿಮಗೆ ಅನುಮತಿಸುವುದಿಲ್ಲ.</translation> <translation id="1701062906490865540">ಈ ವ್ಯಕ್ತಿಯನ್ನು ತೆಗೆದುಹಾಕು</translation> <translation id="1706586824377653884">ನಿಮ್ಮ ನಿರ್ವಾಹಕರ ಮೂಲಕ ಸೇರಿಸಲಾಗಿದೆ</translation> <translation id="1706625117072057435">ಝೂಮ್ ಹಂತಗಳು</translation> @@ -1028,7 +1024,6 @@ <translation id="2604255671529671813">ನೆಟ್ವರ್ಕ್ ಸಂಪರ್ಕ ದೋಷ</translation> <translation id="2606246518223360146">ಡೇಟಾ ಲಿಂಕ್ ಮಾಡಿ</translation> <translation id="2607101320794533334">ವಿಷಯ ಸಾರ್ವಜನಿಕ ಕೀಲಿ ಮಾಹಿತಿ</translation> -<translation id="2607459012323956820">ಈ ಮೇಲ್ವಿಚಾರಣೆ ಬಳಕೆದಾರರ ಸೆಟ್ಟಿಂಗ್ಗಳು ಮತ್ತು ಬ್ರೌಸಿಂಗ್ ಇತಿಹಾಸವು <ph name="BEGIN_LINK" /><ph name="DISPLAY_LINK" /><ph name="END_LINK" /> ನಲ್ಲಿ ಈಗಲೂ ನಿರ್ವಾಹಕರಿಗೆ ಗೋಚರಿಸಬಹುದು.</translation> <translation id="2608770217409477136">ಡಿಫಾಲ್ಟ್ ಸೆಟ್ಟಿಂಗ್ಗಳನ್ನು ಬಳಸಿ</translation> <translation id="2609896558069604090">ಶಾರ್ಟ್ಕಟ್ಗಳನ್ನು ರಚಿಸಿ...</translation> <translation id="2610157865375787051">ನಿದ್ರಾವಸ್ಥೆ</translation> @@ -1319,15 +1314,6 @@ <translation id="3022978424994383087">ಅದು ಅರ್ಥವಾಗಲಿಲ್ಲ.</translation> <translation id="3024374909719388945">24-ಗಂಟೆಯ ಕ್ಲಾಕ್ ಬಳಸಿ</translation> <translation id="302781076327338683">ಸಂಗ್ರಹವನ್ನು ಬೈಪಾಸ್ ಮಾಡಿ ಪುನಃ ಲೋಡ್ ಮಾಡಿ</translation> -<translation id="3030243755303701754">ಮೇಲ್ವಿಚಾರಣೆಯ ಬಳಕೆದಾರರು ನಿಮ್ಮ ಮಾರ್ಗದರ್ಶನದ ಜೊತೆಗೆ ವೆಬ್ ಅನ್ವೇಷಿಸಬಹುದು. Chrome ನಲ್ಲಿ ಮೇಲ್ವಿಚಾರಣೆಯ ಬಳಕೆದಾರರ ಮ್ಯಾನೇಜರ್ ಆಗಿ, ನೀವು ಇವುಗಳನ್ನು ಮಾಡಬಹುದು: - - • ಕೆಲವು ವೆಬ್ಸೈಟ್ಗಳನ್ನು ಅನುಮತಿಸುವುದು ಅಥವಾ ನಿಷೇಧಿಸುವುದು, - • ಮೇಲ್ವಿಚಾರಣೆಯ ಬಳಕೆದಾರರು ಭೇಟಿ ನೀಡಿದ ವೆಬ್ಸೈಟ್ಗಳ ಪರಿಶೀಲಿಸುವಿಕೆ ಮತ್ತು - • ಇತರ ಸೆಟ್ಟಿಂಗ್ಗಳ ನಿರ್ವಹಣೆ. - -ಮೇಲ್ವಿಚಾರಣೆಯ ಬಳಕೆದಾರರನ್ನು ರಚಿಸುವುದರಿಂದ Google ಖಾತೆಯು ರಚಿಸಲ್ಪಡುವುದಿಲ್ಲ ಮತ್ತು ಅವರ ಬುಕ್ಮಾರ್ಕ್ಗಳು, ಬ್ರೌಸಿಂಗ್ ಇತಿಹಾಸ ಮತ್ತು ಇತರ ಆದ್ಯತೆಗಳು Chrome ಸಿಂಕ್ ಜೊತೆಗೆ ಇತರ ಸಾಧನಗಳಿಗೆ ಅವರನ್ನು ಅನುಸರಿಸುವುದಿಲ್ಲ. ನೀವು ಹೊಸ ಮೇಲ್ವಿಚಾರಣೆಯ ಬಳಕೆದಾರರನ್ನು ರಚಿಸಿದ ನಂತರ, ಅವರ ಸೆಟ್ಟಿಂಗ್ಗಳನ್ನು ಯಾವುದೇ ಸಮಯದಲ್ಲಿ, ಯಾವುದೇ ಸಾಧನದಿಂದ ನೀವು <ph name="BEGIN_MANAGE_LINK" /><ph name="DISPLAY_LINK" /><ph name="END_MANAGE_LINK" /> ನಲ್ಲಿ ನಿರ್ವಹಿಸಬಹುದು. - -ಹೆಚ್ಚಿನ ಮಾಹಿತಿಗೆ, ನಮ್ಮ <ph name="BEGIN_LINK" />ಸಹಾಯ ಕೇಂದ್ರ<ph name="END_LINK" />ಕ್ಕೆ ಭೇಟಿ ನೀಡಿ.</translation> <translation id="3031417829280473749">ಏಜೆಂಟ್ X</translation> <translation id="3031557471081358569">ಆಮದು ಮಾಡಲು ಐಟಂಗಳನ್ನು ಆಯ್ಕೆ ಮಾಡಿ:</translation> <translation id="3031601332414921114">ಮುದ್ರಿಸುವಿಕೆಯನ್ನು ಪುನರಾರಂಭಿಸಿ</translation> @@ -1368,7 +1354,6 @@ <translation id="3085412380278336437">ನಿಮ್ಮ ಕ್ಯಾಮರಾವನ್ನು ಸೈಟ್ ಬಳಸಬಹುದು</translation> <translation id="3085752524577180175">SOCKS ಹೋಸ್ಟ್</translation> <translation id="3088325635286126843">&ಮರುಹೆಸರಿಸು...</translation> -<translation id="3089231390674410424">ನಿಮ್ಮ ರುಜುವಾತುಗಳೊಂದಿಗೆ ಸಮಸ್ಯೆ ಇದೆಯೆಂದು ತೋರುತ್ತಿದೆ. ನೀವು ಸರಿಯಾಗಿ ಸೈನ್ ಇನ್ ಮಾಡಿರುವಿರಾ ಎಂಬುದನ್ನು ಖಚಿತಪಡಿಸಿಕೊಳ್ಳಿ ಹಾಗೂ ಮತ್ತೆ ಪ್ರಯತ್ನಿಸಿ.</translation> <translation id="3090193911106258841">ಆಡಿಯೊ ಮತ್ತು ವೀಡಿಯೊ ಇನ್ಪುಟ್ ಪ್ರವೇಶಿಸಲಾಗುತ್ತಿದೆ</translation> <translation id="3090819949319990166">ಬಾಹ್ಯ crx ಫೈಲ್ ಅನ್ನು <ph name="TEMP_CRX_FILE" /> ಗೆ ನಕಲಿಸಲು ಸಾಧ್ಯವಿಲ್ಲ.</translation> <translation id="3090871774332213558">"<ph name="DEVICE_NAME" />" ಜೋಡಿಸಲಾಗಿದೆ</translation> @@ -1383,7 +1368,6 @@ <translation id="3121793941267913344">ಈ <ph name="IDS_SHORT_PRODUCT_NAME" /> ಸಾಧನವನ್ನು ಮರುಹೊಂದಿಸಿ</translation> <translation id="3122464029669770682">CPU</translation> <translation id="3122496702278727796">ಡೇಟಾ ಡೈರೆಕ್ಟರಿ ರಚಿಸಲು ವಿಫಲವಾಗಿದೆ</translation> -<translation id="3123569374670379335">(ಮೇಲ್ವಿಚಾರಣೆ ಮಾಡಲಾಗಿದೆ)</translation> <translation id="3124111068741548686">ಬಳಕೆದಾರರ ನಿರ್ವಹಣೆಗಳು</translation> <translation id="3126026824346185272">Ctrl</translation> <translation id="3127156390846601284">ಎಲ್ಲಾ ಸೈಟ್ಗಳಲ್ಲಿ ತೋರಿಸಲು ನಿಮ್ಮ ಸಾಧನದಲ್ಲಿ ಸಂಗ್ರಹಿಸಲಾದ ಯಾವುದೇ ಡೇಟಾವನ್ನು ಇದು ಅಳಿಸುತ್ತದೆ. ನೀವು ಮುಂದುವರಿಸಲು ಬಯಸುತ್ತೀರಾ?</translation> @@ -1418,8 +1402,6 @@ <translation id="3160842278951476457"><ph name="ISSUED_BY" /> [<ph name="ISSUED_TO" />] (ಹಾರ್ಡ್ವೇರ್-ಹಿಂದಕ್ಕೆ ಪಡೆದ)</translation> <translation id="316125635462764134">ಅಪ್ಲಿಕೇಶನ್ ತೆಗೆದುಹಾಕು</translation> <translation id="3161522574479303604">ಎಲ್ಲಾ ಭಾಷೆಗಳು</translation> -<translation id="316307797510303346"><ph name="CUSTODIAN_EMAIL" /> ದಿಂದ ಈ ವ್ಯಕ್ತಿಯ ಭೇಟಿಗಳ ಸೈಟ್ಗಳನ್ನು ನಿಯಂತ್ರಿಸಿ ಮತ್ತು ವೀಕ್ಷಿಸಿ. - ನಿಮ್ಮ ಖಾತೆಯ ಸೈನ್ ಇನ್ ವಿವರಗಳ ಅವಧಿ ಮುಕ್ತಾಯಗೊಂಡಿದೆ.</translation> <translation id="3165390001037658081">ಕೆಲವು ವಾಹಕಗಳು ಈ ವೈಶಿಷ್ಟ್ಯವನ್ನು ನಿರ್ಬಂಧಿಸಬಹುದು.</translation> <translation id="316854673539778496">ನಿಮ್ಮ ಎಲ್ಲಾ ಸಾಧನಗಳಲ್ಲಿ ನಿಮ್ಮ ಎಲ್ಲಾ ವಿಸ್ತರಣೆಗಳನ್ನು ಪಡೆಯಲು, ಸೈನ್ ಇನ್ ಮಾಡಿ ಮತ್ತು ಸಿಂಕ್ ಆನ್ ಮಾಡಿ.</translation> <translation id="3170072451822350649">ನೀವು ಸೈನ್ ಇನ್ ಮಾಡುವುದನ್ನು ಸ್ಕಿಪ್ ಮಾಡಬಹುದು ಹಾಗೂ <ph name="LINK_START" />ಅತಿಥಿಯಾಗಿ ಬ್ರೌಸ್ ಮಾಡಬಹುದು<ph name="LINK_END" />.</translation> @@ -1451,7 +1433,6 @@ <translation id="3229922550070982305">ಪ್ಲೇ/ವಿರಾಮ</translation> <translation id="3232318083971127729">ಮೌಲ್ಯ:</translation> <translation id="3236289833370040187"><ph name="DESTINATION_DOMAIN" /> ಗೆ ಮಾಲೀಕತ್ವವನ್ನು ವರ್ಗಾಯಿಸಲಾಗವುದು.</translation> -<translation id="3237784613213365159"><ph name="NEW_PROFILE_NAME" /> ಈಗ ಮೇಲ್ವಿಚಾರಣೆಯಲ್ಲಿರುವ ಬಳಕೆದಾರರು</translation> <translation id="323803881985677942">ವಿಸ್ತರಣೆ ಆಯ್ಕೆಗಳನ್ನು ತೆರೆಯಿರಿ</translation> <translation id="3241680850019875542">ಪ್ಯಾಕ್ ಮಾಡಲು ವಿಸ್ತರಣೆಯ ಮೂಲ ಡೈರೆಕ್ಟರಿಯನ್ನು ಆಯ್ಕೆಮಾಡಿ. ವಿಸ್ತರಣೆಯನ್ನು ನವೀಕರಿಸಲು, ಮರುಬಳಸಲು ಖಾಸಗಿ ಕೀ ಫೈಲ್ ಅನ್ನು ಕೂಡ ಆಯ್ಕೆಮಾಡಿ.</translation> <translation id="3242765319725186192">ಪೂರ್ವ-ಹಂಚಿಕೆಯ ಕೀಲಿ:</translation> @@ -1813,7 +1794,6 @@ <translation id="3778152852029592020">ಡೌನ್ಲೋಡ್ ರದ್ದುಗೊಳಿಸಲಾಗಿದೆ.</translation> <translation id="3778740492972734840">&ಡೆವೆಲಪರ್ ಟೂಲ್ಗಳು</translation> <translation id="3778868487658107119">ಇದಕ್ಕೆ ಪ್ರಶ್ನೆಗಳನ್ನು ಕೇಳಿ. ಕೆಲಸಗಳನ್ನು ಮಾಡಲು ತಿಳಿಸಿ. ಇದು ನಿಮ್ಮ ಸ್ವಂತ Google, ಸಹಾಯಕ್ಕೆ ಯಾವಾಗಲೂ ಸಿದ್ಧವಾಗಿರುತ್ತದೆ.</translation> -<translation id="3780663724044634171">ಮೇಲ್ವಿಚಾರಣೆಯ ಬಳಕೆದಾರರನ್ನು ನಿರ್ವಹಿಸಲು ಖಾತೆಯೊಂದನ್ನು ಆಯ್ಕೆಮಾಡಿ.</translation> <translation id="378312418865624974">ಈ ಕಂಪ್ಯೂಟರ್ಗಾಗಿ ಅನನ್ಯ ಗುರುತಿಸುವಿಕೆಯನ್ನು ಓದಿ</translation> <translation id="3783640748446814672">alt</translation> <translation id="3785308913036335955">ಅಪ್ಲಿಕೇಶನ್ಗಳ ಶಾರ್ಟ್ಕಟ್ ತೋರಿಸು</translation> @@ -2526,7 +2506,6 @@ <translation id="4964455510556214366">ಹೊಂದಾಣಿಕೆ</translation> <translation id="4964673849688379040">ಪರಿಶೀಲಿಸಲಾಗುತ್ತಿದೆ...</translation> <translation id="4965808351167763748">Hangouts ಸಭೆಯನ್ನು ಚಾಲನೆ ಮಾಡಲು ಈ ಸಾಧನವನ್ನು ಸೆಟಪ್ ಮಾಡಲು ನೀವು ಖಚಿತವಾಗಿ ಬಯಸುವಿರಾ?</translation> -<translation id="4967749818080339523">ಖಾತೆಯನ್ನು ಆಯ್ಕೆಮಾಡಿ</translation> <translation id="496888482094675990">Google ಡ್ರೈವ್, ಬಾಹ್ಯ ಸಂಗ್ರಹಣೆ, ಅಥವಾ ನಿಮ್ಮ Chrome OS ಸಾಧನದಲ್ಲಿ ನೀವು ಉಳಿಸಲಾದ ಫೈಲ್ಗಳಿಗೆ ಫೈಲ್ಗಳ ಅಪ್ಲಿಕೇಶನ್ ತ್ವರಿತ ಪ್ರವೇಶವನ್ನು ಒದಗಿಸುತ್ತದೆ.</translation> <translation id="4969785127455456148">ಆಲ್ಬಮ್</translation> <translation id="4971412780836297815">ಮುಗಿಸಿದಾಗ ತೆರೆಯಿರಿ</translation> @@ -3355,7 +3334,6 @@ <translation id="6241530762627360640">ನಿಮ್ಮ ಸಿಸ್ಟಂ ಜೊತೆಗೆ ಜೋಡಿಯಾಗಿರುವ ಬ್ಲೂಟೂತ್ ಸಾಧನಗಳ ಕುರಿತ ಮಾಹಿತಿಯನ್ನು ಪ್ರವೇಶಿಸಿ ಮತ್ತು ಹತ್ತಿರದ ಬ್ಲೂಟೂತ್ ಸಾಧನಗಳನ್ನು ಪತ್ತೆಹಚ್ಚಿ.</translation> <translation id="6243280677745499710">ಪ್ರಸ್ತುತವಾಗಿ ಹೊಂದಿಸಿರುವುದು</translation> <translation id="6243774244933267674">ಸರ್ವರ್ ಲಭ್ಯವಿಲ್ಲ</translation> -<translation id="6246413617632217567">ಮೇಲ್ವಿಚಾರಣೆಯ ಬಳಕೆದಾರರನ್ನು ಆಮದು ಮಾಡಿಕೊಳ್ಳಲಾಗಲಿಲ್ಲ. ನಿಮ್ಮ ಹಾರ್ಡ್ ಡ್ರೈವ್ ಸ್ಥಳಾವಕಾಶ ಮತ್ತು ಅನುಮತಿಗಳನ್ನು ಪರಿಶೀಲಿಸಿ ಹಾಗೂ ಮತ್ತೆ ಪ್ರಯತ್ನಿಸಿ.</translation> <translation id="6247708409970142803"><ph name="PERCENTAGE" />%</translation> <translation id="6247802389331535091">ಸಿಸ್ಟಂ: <ph name="ARC_PROCESS_NAME" /></translation> <translation id="624789221780392884">ಅಪ್ಡೇಟ್ ಸಿದ್ಧವಾಗಿದೆ</translation> @@ -3551,7 +3529,6 @@ <translation id="654039047105555694"><ph name="BEGIN_BOLD" />ಗಮನಿಸಿ:<ph name="END_BOLD" /> ನೀವು ಏನು ಮಾಡುತ್ತಿರುವಿರಿ ಎಂಬುದು ನಿಮಗೆ ಗೊತ್ತಿದ್ದಲ್ಲಿ ಅಥವಾ ಹೀಗೆ ಮಾಡಬೇಕೆಂದು ನಿಮಗೆ ಹೇಳಿದ್ದಲ್ಲಿ ಮಾತ್ರ ಸಕ್ರಿಯಗೊಳಿಸಿ, ಏಕೆಂದರೆ ಡೇಟಾ ಸಂಗ್ರಹವು ಕಾರ್ಯಕ್ಷಮತೆಯನ್ನು ಕಡಿಮೆ ಮಾಡಬಹುದು.</translation> <translation id="654233263479157500">ನ್ಯಾವಿಗೇಷನ್ ಸಮಸ್ಯೆಗಳ ಪರಿಹಾರಕ್ಕೆ ವೆಬ್ ಸೇವೆಯನ್ನು ಬಳಸು</translation> <translation id="6544215763872433504">ನಿಮಗಾಗಿ Google ನಿಂದ ವೆಬ್ ಬ್ರೌಸರ್</translation> -<translation id="6545325945815270297"><ph name="BEGIN_LINK" />Chrome ಡ್ಯಾಶ್ಬೋರ್ಡ್<ph name="END_LINK" />ನಲ್ಲಿ ನಿಮ್ಮ ಸಿಂಕ್ ಮಾಡಲಾದ ಡೇಟಾ ಮತ್ತು ಸೇವೆಗಳನ್ನು ನಿರ್ವಹಿಸಿ.</translation> <translation id="6545665334409411530">ಪುನರಾವರ್ತನೆ ಪ್ರಮಾಣ</translation> <translation id="6545834809683560467">ಹುಡುಕಾಟಗಳನ್ನು ಮತ್ತು ಅಡ್ರೆಸ್ ಬಾರ್ ಅಥವಾ ಅಪ್ಲಿಕೇಶನ್ ಲಾಂಚರ್ನಲ್ಲಿನ ಹುಡುಕಾಟ ಪೆಟ್ಟಿಗೆಯಲ್ಲಿ ಟೈಪ್ ಮಾಡಲಾದ URLಗಳನ್ನು ಪೂರ್ಣಗೊಳಿಸಲು ಸಲಹೆ ಸೇವೆಯನ್ನು ಬಳಸು</translation> <translation id="6546686722964485737">Wimax ನೆಟ್ವರ್ಕ್ ಅನ್ನು ಸೇರಿಸಿ</translation> @@ -3566,7 +3543,6 @@ <translation id="6555810572223193255">ಕ್ಲೀನಪ್ ಪ್ರಸ್ತುತ ಲಭ್ಯವಿಲ್ಲ</translation> <translation id="6556866813142980365">ಮತ್ತೆಮಾಡು</translation> <translation id="6558280019477628686">ದೋಷ ಸಂಭವಿಸಿದೆ. ಕೆಲವು ಐಟಂಗಳನ್ನು ಅಳಿಸಲು ಸಾಧ್ಯವಾಗದಿರಬಹುದು.</translation> -<translation id="6559580823502247193">(ಈಗಾಗಲೇ ಈ ಸಾಧನದಲ್ಲಿದ್ದಾರೆ)</translation> <translation id="6561726789132298588">ನಮೂದಿಸಿ</translation> <translation id="656293578423618167">ಫೈಲ್ ಹಾದಿ ಅಥವಾ ಹೆಸರು ತುಂಬಾ ಉದ್ದವಾಗಿದೆ. ದಯವಿಟ್ಟು ಕಿರಿದಾದ ಹೆಸರಿನೊಂದಿಗೆ ಅಥವಾ ಮತ್ತೊಂದು ಸ್ಥಾನದಲ್ಲಿ ಉಳಿಸಿ. </translation> <translation id="656398493051028875">"<ph name="FILENAME" />" ಅಳಿಸಲಾಗುತ್ತಿದೆ...</translation> @@ -3760,7 +3736,6 @@ <translation id="6862635236584086457">ಈ ಫೋಲ್ಡರ್ನಲ್ಲಿ ಉಳಿಸಲಾದ ಎಲ್ಲಾ ಫೈಲ್ಗಳನ್ನು ಆನ್ಲೈನ್ನಲ್ಲಿ ಸ್ವಯಂಚಾಲಿತವಾಗಿ ಬ್ಯಾಕಪ್ ಮಾಡಲಾಗಿದೆ</translation> <translation id="6865313869410766144">ಸ್ವಯಂತುಂಬುವಿಕೆ ಫಾರ್ಮ್ ಡೇಟಾ</translation> <translation id="686664946474413495">ಬಣ್ಣ ತಾಪಮಾನ</translation> -<translation id="6867678160199975333"><ph name="NEW_PROFILE_NAME" /> ಗೆ ಬದಲಿಸಿ</translation> <translation id="6870888490422746447">ಇದಕ್ಕೆ ಹಂಚಲು ಅಪ್ಲಿಕೇಶನ್ ಅನ್ನು ಆಯ್ಕೆಮಾಡಿ:</translation> <translation id="6871644448911473373">OCSP ಪ್ರತಿಕ್ರಿಯೆ ನೀಡುಗ: <ph name="LOCATION" /></translation> <translation id="6872781471649843364">ನೀವು ನಮೂದಿಸಿದ ಪಾಸ್ವರ್ಡ್ ಅನ್ನು ಸರ್ವರ್ ನಿಂದ ತಿರಸ್ಕರಿಸಲಾಗಿದೆ.</translation> @@ -3852,7 +3827,6 @@ <translation id="7018275672629230621">ನಿಮ್ಮ ಬ್ರೌಸಿಂಗ್ ಇತಿಹಾಸವನ್ನು ಓದಿ ಮತ್ತು ಬದಲಾಯಿಸಿ</translation> <translation id="7019805045859631636">ವೇಗ</translation> <translation id="7022562585984256452">ನಿಮ್ಮ ಮುಖಪಟವನ್ನು ಹೊಂದಿಸಲಾಗಿದೆ.</translation> -<translation id="7025036625303002400">ಈ ಹೆಸರಿನ ಜೊತೆಯಲ್ಲಿ ನೀವು ಈಗಾಗಲೇ ಮೇಲ್ವಿಚಾರಣೆಯ ಬಳಕೆದಾರರನ್ನು ಹೊಂದಿರುವಂತೆ ಕಂಡುಬರುತ್ತಿದೆ.</translation> <translation id="7025190659207909717">ಮೊಬೈಲ್ ಡೇಟಾ ಸೇವೆಯ ನಿರ್ವಹಣೆ </translation> <translation id="7025325401470358758">ಮುಂದಿನ ಫಲಕ</translation> @@ -3902,7 +3876,6 @@ <translation id="7092106376816104">ಪಾಪ್-ಅಪ್ ವಿನಾಯಿತಿಗಳು</translation> <translation id="7093434536568905704">GTK+</translation> <translation id="7093866338626856921">ಈ ಹೆಸರಿನ ಸಾಧನಗಳೊಂದಿಗೆ ಡೇಟಾ ವಿನಿಮಯ ಮಾಡಿ: <ph name="HOSTNAMES" /></translation> -<translation id="7096108453481049031">ಮೇಲ್ವಿಚಾರಣೆಯ ಬಳಕೆದಾರರನ್ನು ಆಮದು ಮಾಡಲಾಗಲಿಲ್ಲ. ನಿಮ್ಮ ನೆಟ್ವರ್ಕ್ ಸಂಪರ್ಕವನ್ನು ಪರಿಶೀಲಿಸಿ ಹಾಗೂ ನಂತರ ಮತ್ತೆ ಪ್ರಯತ್ನಿಸಿ.</translation> <translation id="7098447629416471489">ಇತರೆ ಉಳಿಸಿದ ಹುಡುಕಾಟ ಎಂಜಿನ್ಗಳು ಇಲ್ಲಿ ಗೋಚರಿಸುತ್ತವೆ</translation> <translation id="7099337801055912064">ದೊಡ್ಡ ಗಾತ್ರದ PPD ಅನ್ನು ಲೋಡ್ ಮಾಡಲು ಸಾಧ್ಯವಿಲ್ಲ. ಗರಿಷ್ಠ ಗಾತ್ರ 250 kB ಆಗಿದೆ.</translation> <translation id="7100897339030255923"><ph name="COUNT" /> ಐಟಂಗಳನ್ನು ಆಯ್ಕೆಮಾಡಲಾಗಿದೆ</translation> @@ -3948,7 +3921,6 @@ <translation id="716810439572026343"><ph name="FILE_NAME" /> ಡೌನ್ಲೋಡ್ ಮಾಡಲಾಗುತ್ತಿದೆ</translation> <translation id="7168109975831002660">ಕನಿಷ್ಠ ಫಾಂಟ್ ಗಾತ್ರ</translation> <translation id="7170041865419449892">ವ್ಯಾಪ್ತಿಯ ಹೊರಗೆ</translation> -<translation id="7173917244679555">ಆ ಹೆಸರಿನ ಮೂಲಕ ನೀವು ಈಗಾಗಲೇ ಬಳಕೆದಾರರನ್ನು ನಿರ್ವಹಿಸುತ್ತಿರುವಂತೆ ತೋರುತ್ತಿದೆ. ಈ ಸಾಧನಕ್ಕೆ <ph name="BEGIN_LINK" />ಆಮದು ಮಾಡಲು <ph name="PROFILE_NAME" /><ph name="END_LINK" /> ನೀವು ಬಯಸಿರುವಿರಾ?</translation> <translation id="7175037578838465313"><ph name="NAME" /> ಅನ್ನು ಕಾನ್ಫಿಗರ್ ಮಾಡಿ</translation> <translation id="7175353351958621980">ಇದರಿಂದ ಲೋಡ್ ಮಾಡಲಾಗಿದೆ:</translation> <translation id="7180611975245234373">ರಿಫ್ರೆಶ್ ಮಾಡಿ</translation> @@ -4119,7 +4091,6 @@ <translation id="7444726222535375658">Hangouts ಮೀಟ್ಗಾಗಿ ಮುಂದುವರಿಯಿರಿ</translation> <translation id="7444983668544353857"><ph name="NETWORKDEVICE" /> ನಿಷ್ಕ್ರಿಯಗೊಳಿಸಿ</translation> <translation id="7445682342344043969">ಪಾಪ್-ಅಪ್ಗಳನ್ನು ನಿರ್ಬಂಧಿಸಲಾಗಿದೆ</translation> -<translation id="744859430125590922"><ph name="CUSTODIAN_EMAIL" /> ದಿಂದ ಭೇಟಿ ಮಾಡುವ ಈ ವ್ಯಕ್ತಿಯ ವೆಬ್ಸೈಟ್ಗಳನ್ನು ನಿಯಂತ್ರಿಸಿ ಮತ್ತು ವೀಕ್ಷಿಸಿ.</translation> <translation id="7453008956351770337">ಈ ಪ್ರಿಂಟರ್ ಆಯ್ಕೆ ಮಾಡುವ ಮೂಲಕ ನಿಮ್ಮ ಪ್ರಿಂಟರ್ ಪ್ರವೇಶಕ್ಕೆ ನೀವು ಈ ಮುಂದಿನ ವಿಸ್ತರಣೆ ಅನುಮತಿಯನ್ನು ನೀಡುತ್ತಿರುವಿರಿ:</translation> <translation id="7453467225369441013">ನಿಮ್ಮನ್ನು ಬಹುತೇಕ ಸೈಟ್ಗಳಿಂದ ಸೈನ್ ಔಟ್ ಮಾಡಲಾಗುತ್ತದೆ. ಆದರೆ ನಿಮ್ಮನ್ನು ನಿಮ್ಮ Google ಖಾತೆಯಿಂದ ಸೈನ್ ಔಟ್ ಮಾಡುವುದಿಲ್ಲ.</translation> <translation id="7456142309650173560">dev</translation> @@ -4291,7 +4262,6 @@ <translation id="7717845620320228976">ಅಪ್ಡೇಟ್ಗಳನ್ನು ಪರಿಶೀಲಿಸು</translation> <translation id="7719367874908701697">ಪುಟ ಝೂಮ್</translation> <translation id="771953673318695590">QA</translation> -<translation id="7720375555307821262">ಈ ವ್ಯಕ್ತಿಯನ್ನು ಮೇಲ್ವಿಚಾರಿಸಲು, <ph name="BEGIN_LINK" />Chromeಗೆ ಸೈನ್ ಇನ್ ಮಾಡಿ<ph name="END_LINK" />.</translation> <translation id="7721179060400456005">ಪ್ರದರ್ಶನಗಳಾದ್ಯಂತ ವ್ಯಾಪಿಸಲು ವಿಂಡೋಗಳಿಗೆ ಅನುಮತಿ ನೀಡಿ</translation> <translation id="7722040605881499779">ಅಪ್ಡೇಟ್ ಮಾಡಲು ಇಷ್ಟು ಅಗತ್ಯವಿದೆ: <ph name="NECESSARY_SPACE" /></translation> <translation id="7724603315864178912">ಕತ್ತರಿಸು</translation> @@ -5112,7 +5082,6 @@ <translation id="9024331582947483881">ಪೂರ್ಣ ಪರದೆ</translation> <translation id="9025098623496448965">ಸರಿ, ಸೈನ್-ಇನ್ ಪರದೆಗೆ ನನ್ನನ್ನು ಮರಳಿ ಕರೆದೊಯ್ಯಿರಿ</translation> <translation id="9026731007018893674">ಡೌನ್ಲೋಡ್ ಮಾಡಿ</translation> -<translation id="9027146684281895941">ನಿಮ್ಮ Google ಖಾತೆಯಿಂದ ಅವರು ಭೇಟಿ ನೀಡುವ ವೆಬ್ಸೈಟ್ಗಳನ್ನು ನಿಯಂತ್ರಿಸಲು ಮತ್ತು ವೀಕ್ಷಿಸಲು ಈ ವ್ಯಕ್ತಿಯನ್ನು ಮೇಲ್ವಿಚಾರಣೆ ಮಾಡಿ.</translation> <translation id="9027459031423301635">ಹೊಸ &ಟ್ಯಾಬ್ನಲ್ಲಿ ಲಿಂಕ್ ತೆರೆಯಿರಿ</translation> <translation id="9027603907212475920">ಸಿಂಕ್ ಹೊಂದಿಸು...</translation> <translation id="9030515284705930323">ನಿಮ್ಮ ಸಂಸ್ಥೆ ನಿಮ್ಮ ಖಾತೆಗೆ Google Play ಸ್ಟೋರ್ ಸಕ್ರಿಯಗೊಳಿಸಿಲ್ಲ. ಹೆಚ್ಚಿನ ಮಾಹಿತಿಗಾಗಿ ನಿಮ್ಮ ನಿರ್ವಾಹಕರನ್ನು ಸಂಪರ್ಕಿಸಿ.</translation>
diff --git a/chrome/app/resources/generated_resources_ko.xtb b/chrome/app/resources/generated_resources_ko.xtb index 8a83c5e..cf02884 100644 --- a/chrome/app/resources/generated_resources_ko.xtb +++ b/chrome/app/resources/generated_resources_ko.xtb
@@ -42,10 +42,11 @@ <translation id="1056898198331236512">경고</translation> <translation id="1058262162121953039">PUK</translation> <translation id="1062407476771304334">바꾸기</translation> -<translation id="1062866675591297858"><ph name="BEGIN_LINK" />관리 대상 사용자 대시보드<ph name="END_LINK" />를 통해 관리 대상 사용자를 관리합니다.</translation> <translation id="1064835277883315402">사설 네트워크에 연결</translation> <translation id="1064912851688322329">Google 계정 연결 해제</translation> <translation id="1067048845568873861">생성됨</translation> +<translation id="1067291318998134776">Linux(베타)</translation> +<translation id="1067922213147265141">다른 Google 서비스</translation> <translation id="1070066693520972135">WEP</translation> <translation id="1070377999570795893">컴퓨터의 다른 프로그램에서 Chrome 작동에 영향을 줄 수 있는 확장 프로그램을 추가했습니다. @@ -63,7 +64,6 @@ <translation id="1091767800771861448">건너뛰려면 Esc 키를 누르세요(비공식 빌드만 해당).</translation> <translation id="1093457606523402488">표시된 네트워크:</translation> <translation id="1094607894174825014">기기(<ph name="DEVICE_NAME" />)에서 잘못된 오프셋으로 읽기 또는 쓰기 작업을 요청했습니다.</translation> -<translation id="1097507499312291972">이 사용자가 방문하는 웹사이트를 제어하고 조회하려면 <ph name="BEGIN_SIGN_IN_LINK" />로그인<ph name="END_SIGN_IN_LINK" />합니다.</translation> <translation id="109758035718544977">사이트 음소거 해제</translation> <translation id="1097658378307015415">로그인하기 전에 손님으로 로그인하여 <ph name="NETWORK_ID" /> 네트워크를 활성화하세요.</translation> <translation id="1103523840287552314"><ph name="LANGUAGE" /> 항상 번역</translation> @@ -184,6 +184,7 @@ <translation id="1260240842868558614">보기:</translation> <translation id="126710816202626562">번역 언어:</translation> <translation id="126768002343224824">16배</translation> +<translation id="1271317946095246719">검색주소창 및 검색창의 검색어 및 일부 쿠키를 기본 검색엔진에 전송</translation> <translation id="1272079795634619415">중지</translation> <translation id="1272978324304772054">이 사용자 계정은 기기가 등록된 도메인에 속해 있지 않습니다. 다른 도메인에 등록하려면 먼저 기기 복구 절차를 거쳐야 합니다.</translation> <translation id="1274977772557788323">Adobe Flash Player 저장용량 설정</translation> @@ -241,7 +242,6 @@ <translation id="1361655923249334273">사용되지 않음</translation> <translation id="1363028406613469049">트랙</translation> <translation id="1367951781824006909">파일 선택</translation> -<translation id="136802136832547685">이 기기에 추가할 관리 대상 사용자가 없습니다.</translation> <translation id="1368265273904755308">문제 신고</translation> <translation id="1370646789215800222">이 사용자를 삭제하시겠습니까?</translation> <translation id="1372681413396468867">{NUM_ITEMS,plural, =1{삭제할 항목 1개}other{삭제할 항목 #개}}</translation> @@ -470,7 +470,6 @@ <translation id="1692799361700686467">여러 사이트의 쿠키를 허용했습니다.</translation> <translation id="169515659049020177">Shift</translation> <translation id="1698122934742150150">현재 시크릿 세션에만</translation> -<translation id="1700199471143028312">관리자가 관리 대상 사용자를 생성하는 것을 허용하지 않습니다.</translation> <translation id="1701062906490865540">이 사용자 삭제</translation> <translation id="1706586824377653884">관리자가 추가함</translation> <translation id="1706625117072057435">확대/축소 수준</translation> @@ -805,6 +804,7 @@ <translation id="2230062665678605299">'<ph name="FOLDER_NAME" />' 폴더를 생성할 수 없습니다. <ph name="ERROR_MESSAGE" /></translation> <translation id="223106756035922488">클릭하여 오늘의 기념일 로고 보기</translation> <translation id="2231238007119540260">서버 인증서를 삭제하려면 해당 서버에 대해 일반적인 보안 확인을 복원하고 유효한 인증서를 사용해야 합니다.</translation> +<translation id="2232379019872353004">일부 시스템 정보와 페이지 콘텐츠를 Google로 전송</translation> <translation id="2232876851878324699">파일에 하나의 인증서가 있지만 이 인증서를 가져올 수 없습니다.</translation> <translation id="2233502537820838181">추가 정보</translation> <translation id="2238379619048995541">주파수 상태 데이터</translation> @@ -890,6 +890,7 @@ <translation id="2359808026110333948">계속</translation> <translation id="236141728043665931">마이크 액세스 항상 차단</translation> <translation id="2365507699358342471">이 사이트는 클립보드에 복사된 텍스트와 이미지에 액세스할 수 있습니다.</translation> +<translation id="2366463953911599217">오류: <ph name="APP_NAME" />을(를) 설치하지 못했습니다.</translation> <translation id="2367199180085172140">파일 공유 추가</translation> <translation id="2367972762794486313">앱 표시</translation> <translation id="2371076942591664043">완료되면 열기(&D)</translation> @@ -941,6 +942,7 @@ <translation id="2462724976360937186">인증 기관 키 ID</translation> <translation id="2462752602710430187"><ph name="PRINTER_NAME" /> 추가됨</translation> <translation id="2464089476039395325">HTTP 프록시</translation> +<translation id="2468205691404969808">페이지를 방문하지 않더라도 쿠키를 통해 환경설정 저장</translation> <translation id="2468902267404883140">휴대전화에 연결할 수 없습니다. 호환 가능한 Android 휴대전화를 사용 중인지, 휴대전화의 전원이 켜져 있는지, 손에 닿는 거리에 있는지 확인하세요. <a>자세히 알아보기</a></translation> <translation id="2470702053775288986">지원되지 않는 확장 프로그램이 사용 중지됨</translation> <translation id="2473195200299095979">이 페이지 번역하기</translation> @@ -1036,7 +1038,6 @@ <translation id="2604255671529671813">네트워크 연결 오류</translation> <translation id="2606246518223360146">데이터 연결</translation> <translation id="2607101320794533334">대상 공개 키 정보</translation> -<translation id="2607459012323956820">관리자가 이 관리 대상 사용자의 설정 및 인터넷 사용 기록을 <ph name="BEGIN_LINK" /><ph name="DISPLAY_LINK" /><ph name="END_LINK" />에서 계속 볼 수 있습니다.</translation> <translation id="2608770217409477136">기본 설정 사용</translation> <translation id="2609896558069604090">바로가기 만들기...</translation> <translation id="2610157865375787051">절전 모드</translation> @@ -1105,6 +1106,7 @@ <translation id="2686759344028411998">로드된 모듈을 감지할 수 없습니다.</translation> <translation id="2688196195245426394">기기를 서버에 등록하는 중에 오류 발생: <ph name="CLIENT_ERROR" />.</translation> <translation id="2690024944919328218">언어 옵션 표시</translation> +<translation id="2690824726518456119">Concierge 서비스를 시작합니다.</translation> <translation id="2691385045260836588">모델</translation> <translation id="2693176596243495071">죄송합니다. 알 수 없는 오류가 발생했습니다. 나중에 다시 시도하거나 문제가 계속되는 경우 관리자에게 문의하세요.</translation> <translation id="2694026874607847549">쿠키 1개</translation> @@ -1329,15 +1331,6 @@ <translation id="3022978424994383087">인식하지 못했습니다.</translation> <translation id="3024374909719388945">24시간 단위 사용</translation> <translation id="302781076327338683">캐시 무시하고 새로고침</translation> -<translation id="3030243755303701754">관리 대상 사용자는 내가 정한 범위 내에서 웹을 탐색할 수 있습니다. 관리 대상 사용자의 관리자는 Chrome에서 다음을 수행할 수 있습니다. - - • 특정 웹사이트 허용 또는 금지 - • 관리 대상 사용자가 방문한 웹사이트 검토 - • 기타 설정 관리 - -관리 대상 사용자를 생성해도 Google 계정이 생성되지 않으며, 사용자의 북마크, 탐색 기록 및 기타 환경설정은 Chrome 동기화를 통해 다른 기기에 동기화되지 않습니다. 새로운 관리 대상 사용자를 만든 후에는 언제 어떤 기기를 사용하든 <ph name="BEGIN_MANAGE_LINK" /><ph name="DISPLAY_LINK" /><ph name="END_MANAGE_LINK" /> 페이지에서 설정을 관리할 수 있습니다. - -자세한 내용은 <ph name="BEGIN_LINK" />고객센터<ph name="END_LINK" />를 참조하세요.</translation> <translation id="3031417829280473749">X 요원</translation> <translation id="3031557471081358569">가져올 항목 선택:</translation> <translation id="3031601332414921114">인쇄 계속하기</translation> @@ -1378,7 +1371,6 @@ <translation id="3085412380278336437">사이트에서 카메라를 사용할 수 있습니다.</translation> <translation id="3085752524577180175">SOCKS 호스트</translation> <translation id="3088325635286126843">이름 바꾸기(&R)...</translation> -<translation id="3089231390674410424">사용자 인증 정보에 문제가 있는 것 같습니다. 제대로 로그인했는지 확인한 후 다시 시도해 주세요.</translation> <translation id="3090193911106258841">오디오 및 비디오 입력 장치에 액세스</translation> <translation id="3090819949319990166">외부 crx 파일을 <ph name="TEMP_CRX_FILE" />에 복사할 수 없습니다.</translation> <translation id="3090871774332213558">'<ph name="DEVICE_NAME" />' 페어링됨</translation> @@ -1393,7 +1385,6 @@ <translation id="3121793941267913344"><ph name="IDS_SHORT_PRODUCT_NAME" /> 기기 재설정</translation> <translation id="3122464029669770682">CPU</translation> <translation id="3122496702278727796">데이터 디렉토리 만들기 실패</translation> -<translation id="3123569374670379335">(관리 대상)</translation> <translation id="3124111068741548686">사용자 핸들</translation> <translation id="3126026824346185272">Ctrl</translation> <translation id="3127156390846601284">기기에 저장된 데이터 중 표시된 모든 사이트의 데이터가 삭제됩니다. 계속하시겠습니까?</translation> @@ -1428,8 +1419,6 @@ <translation id="3160842278951476457"><ph name="ISSUED_BY" /> [<ph name="ISSUED_TO" />](하드웨어에 백업됨)</translation> <translation id="316125635462764134">앱 제거</translation> <translation id="3161522574479303604">모든 언어</translation> -<translation id="316307797510303346">이 사용자가 방문하는 웹사이트를 <ph name="CUSTODIAN_EMAIL" />에서 제어하고 조회합니다. - 계정 로그인 세부정보가 오래되었습니다.</translation> <translation id="3165390001037658081">일부 이동통신사는 이 기능을 차단할 수도 있습니다.</translation> <translation id="316854673539778496">어느 기기에서나 내 확장 프로그램을 모두 사용하려면 로그인하여 동기화를 사용 설정하세요.</translation> <translation id="3170072451822350649">로그인을 건너뛰고 <ph name="LINK_START" />손님으로 로그인<ph name="LINK_END" />할 수도 있습니다.</translation> @@ -1443,6 +1432,7 @@ <translation id="3190558889382726167">비밀번호 저장됨</translation> <translation id="3192947282887913208">오디오 파일</translation> <translation id="3194737229810486521"><ph name="URL" />에서 내 기기에 데이터를 영구 저장하려고 합니다</translation> +<translation id="3197054279257119376">Termina 구성요소를 로드 중입니다.</translation> <translation id="3199127022143353223">서버</translation> <translation id="3202131003361292969">경로</translation> <translation id="3202173864863109533">이 탭의 오디오가 음소거됩니다.</translation> @@ -1461,7 +1451,6 @@ <translation id="3229922550070982305">재생/일시중지</translation> <translation id="3232318083971127729">값:</translation> <translation id="3236289833370040187">소유권이 <ph name="DESTINATION_DOMAIN" />(으)로 이전됩니다.</translation> -<translation id="3237784613213365159"><ph name="NEW_PROFILE_NAME" />님이 관리 대상 사용자가 되었습니다.</translation> <translation id="323803881985677942">확장 프로그램 옵션 열기</translation> <translation id="3241680850019875542">압축할 확장 프로그램의 루트 디렉토리를 선택합니다. 확장 프로그램을 업데이트하려면 다시 사용할 비공개 키 파일도 선택합니다.</translation> <translation id="3242765319725186192">사전 공유 키:</translation> @@ -1567,6 +1556,7 @@ <translation id="3405664148539009465">글꼴 맞춤설정</translation> <translation id="3405763860805964263">...</translation> <translation id="3406605057700382950">북마크바 표시(&S)</translation> +<translation id="3407837288045706722">개인정보 보호, 보안, 데이터 수집에 관한 설정을 더 보려면 <ph name="BEGIN_LINK" />동기화 및 맞춤설정<ph name="END_LINK" />을 참조하세요.</translation> <translation id="3412265149091626468">선택 부분으로 이동</translation> <translation id="3413122095806433232">CA 발행기관: <ph name="LOCATION" /></translation> <translation id="3414856743105198592">이동식 미디어를 포맷하면 데이터가 모두 삭제됩니다. 계속하시겠습니까?</translation> @@ -1644,6 +1634,7 @@ <translation id="3504135463003295723">그룹 이름:</translation> <translation id="3505030558724226696">기기 액세스 취소</translation> <translation id="3507421388498836150">'<ph name="EXTENSION_NAME" />'의 현재 권한</translation> +<translation id="3507547268929739059">Chromebook용 Linux 앱 삭제</translation> <translation id="3507888235492474624">블루투스 기기 다시 검색</translation> <translation id="3508920295779105875">다른 폴더 선택...</translation> <translation id="3510797500218907545">WiMAX</translation> @@ -1824,7 +1815,6 @@ <translation id="3778152852029592020">다운로드가 취소되었습니다.</translation> <translation id="3778740492972734840">개발자 도구(&D)</translation> <translation id="3778868487658107119">질문을 하고 작업을 지시하세요. 나만의 Google이 언제든지 도와드립니다.</translation> -<translation id="3780663724044634171">관리 대상 사용자를 관리할 계정을 선택합니다.</translation> <translation id="378312418865624974">이 컴퓨터의 고유 식별자 조회</translation> <translation id="3783640748446814672">alt</translation> <translation id="3785308913036335955">앱 단축키 표시</translation> @@ -1838,6 +1828,7 @@ <translation id="379422718204375917">Smart Lock을 사용하여 계정에 로그인</translation> <translation id="3796648294839530037">자주 이용하는 네트워크:</translation> <translation id="3797900183766075808"><ph name="SEARCH_ENGINE" />에서 '<ph name="SEARCH_TERMS" />' 검색(&S)</translation> +<translation id="3798133693323981089">검색어 및 웹 주소 자동 완성</translation> <translation id="3798449238516105146">버전</translation> <translation id="3799201711591988491">{COUNT,plural, =0{모두 열기(O)}=1{북마크 열기(O)}other{#개 모두 열기(O)}}</translation> <translation id="3800806661949714323">모두 표시(권장)</translation> @@ -2015,6 +2006,7 @@ <translation id="4065876735068446555">사용 중인 네트워크(<ph name="NETWORK_ID" />)에서 로그인 페이지 방문을 요청할 수 있습니다.</translation> <translation id="4068506536726151626">이 페이지에는 사용자 위치를 추적하는 다음 사이트의 요소가 포함되어 있습니다.</translation> <translation id="4068776064906523561">저장된 지문</translation> +<translation id="407173827865827707">클릭 시</translation> <translation id="4071770069230198275"><ph name="PROFILE_NAME" />: 로그인 오류</translation> <translation id="4074900173531346617">이메일 서명자 인증서</translation> <translation id="407520071244661467">배율</translation> @@ -2044,6 +2036,7 @@ <translation id="4109135793348361820">창을 <ph name="USER_NAME" />(<ph name="USER_EMAIL" />)님에게로 이동</translation> <translation id="4110559665646603267">서가에 초점</translation> <translation id="4110895898888439383">고대비 모드로 웹 탐색</translation> +<translation id="4112774766611964959">이렇게 하면 <ph name="APP_NAME" />이(가) 제거되고 <ph name="DEVICE_TYPE" />에서 모든 Linux 데이터 및 애플리케이션이 삭제됩니다. 계속하시겠습니까?</translation> <translation id="4114360727879906392">이전 창</translation> <translation id="4115002065223188701">네트워크 범위를 벗어남</translation> <translation id="4115080753528843955">일부 콘텐츠 서비스는 보호된 콘텐츠에 액세스 권한을 부여할 수 있도록 고유 식별자를 사용합니다.</translation> @@ -2098,6 +2091,7 @@ <translation id="42137655013211669">서버에서 이 리소스에 대한 액세스를 금지했습니다.</translation> <translation id="4215350869199060536">이름에 사용할 수 없는 기호가 포함되어 있습니다.</translation> <translation id="4215448920900139318">파일 <ph name="FILE_COUNT" />개 백업 중</translation> +<translation id="4225397296022057997">모든 사이트에서</translation> <translation id="4235200303672858594">전체 화면</translation> <translation id="4235813040357936597"><ph name="PROFILE_NAME" />에 계정 추가</translation> <translation id="4235965441080806197">로그인 취소</translation> @@ -2165,6 +2159,7 @@ <translation id="4345703751611431217">소프트웨어 비호환성: 자세히 알아보기</translation> <translation id="4348766275249686434">오류 수집</translation> <translation id="4350019051035968019">이 기기는 다른 도메인에서 관리하는 것으로 표시되어 있기 때문에 사용자의 계정이 속한 도메인에 등록할 수 없습니다.</translation> +<translation id="4354266305752237763">위험한 사이트로부터 사용자와 기기 보호(세이프 브라우징)</translation> <translation id="4356334633973342967">또는 드라이버 지정:</translation> <translation id="4358353773267946514"><ph name="LANGUAGE_1" />, <ph name="LANGUAGE_2" /></translation> <translation id="4359408040881008151">함께 설치된 확장 프로그램입니다.</translation> @@ -2173,6 +2168,7 @@ <translation id="4364567974334641491"><ph name="APP_NAME" />이(가) 창을 공유합니다.</translation> <translation id="4364830672918311045">알림 표시</translation> <translation id="4365673000813822030">동기화 작업이 중지되었습니다.</translation> +<translation id="4370373819607756384"><ph name="BEGIN_LINK" />언어<ph name="END_LINK" />에서 이 설정 제어</translation> <translation id="4370975561335139969">입력한 이메일과 비밀번호가 일치하지 않습니다.</translation> <translation id="437184764829821926">고급 글꼴 설정</translation> <translation id="4372884569765913867">1x1</translation> @@ -2227,6 +2223,7 @@ <translation id="4462159676511157176">맞춤 이름 서버</translation> <translation id="4467100756425880649">Chrome 웹 스토어 갤러리</translation> <translation id="4467101674048705704"><ph name="FOLDER_NAME" /> 펼치기</translation> +<translation id="447252321002412580">Chrome의 기능 및 성능 개선에 참여</translation> <translation id="4474155171896946103">모든 탭 북마크...</translation> <translation id="4475552974751346499">다운로드 검색</translation> <translation id="4476590490540813026">운동선수</translation> @@ -2249,6 +2246,7 @@ <translation id="4514542542275172126">새로운 관리 대상 사용자 설정</translation> <translation id="451515744433878153">제거</translation> <translation id="4518677423782794009">Chrome 작동이 중단되거나 낯선 시작 페이지나 툴바가 표시되거나 예기치 않은 광고가 삭제되지 않거나 기타 인터넷 사용 환경이 변경되는 경우, Chrome 정리도구를 실행하여 문제를 해결할 수 있습니다.</translation> +<translation id="4518928191942891293">Termina VM 내의 컨테이너를 시작합니다.</translation> <translation id="4520385623207007473">사용 중인 쿠키</translation> <translation id="452039078290142656"><ph name="VENDOR_NAME" />의 알 수 없는 기기</translation> <translation id="4522570452068850558">세부정보</translation> @@ -2297,6 +2295,7 @@ <translation id="4589268276914962177">새 터미널</translation> <translation id="4590324241397107707">데이터베이스 저장소</translation> <translation id="4593021220803146968"><ph name="URL" />(으)로 이동(&G)</translation> +<translation id="459505086032485258">Google 서비스 설정 표시</translation> <translation id="4595560905247879544">앱 및 확장 프로그램은 관리자(<ph name="CUSTODIAN_NAME" />)만 수정할 수 있습니다.</translation> <translation id="4596295440756783523">다음 서버를 식별하는 인증서가 등록되어 있습니다.</translation> <translation id="4598556348158889687">저장용량 관리</translation> @@ -2516,6 +2515,7 @@ <translation id="4917385247580444890">강력</translation> <translation id="4918021164741308375"><ph name="ORIGIN" />에서 '<ph name="EXTENSION_NAME" />' 확장 프로그램과 통신하려고 합니다.</translation> <translation id="4918086044614829423">수락</translation> +<translation id="4920350943031252905">Chromebook에서 Linux 도구, 편집기, IDE를 실행합니다.</translation> <translation id="4920887663447894854">이 페이지에서 사용자 위치 추적이 차단된 사이트는 다음과 같습니다.</translation> <translation id="492299503953721473">Android 앱 삭제</translation> <translation id="4923279099980110923">네, 돕고 싶습니다.</translation> @@ -2541,7 +2541,6 @@ <translation id="4964455510556214366">배열</translation> <translation id="4964673849688379040">확인 중...</translation> <translation id="4965808351167763748">이 기기를 설정하여 행아웃 Meet를 실행하시겠습니까?</translation> -<translation id="4967749818080339523">계정 선택</translation> <translation id="496888482094675990">파일 앱을 사용하면 Google 드라이브, 외부 저장소, Chrome OS 기기에 저장한 파일에 신속하게 액세스할 수 있습니다.</translation> <translation id="4969785127455456148">앨범</translation> <translation id="4971412780836297815">완료되면 열기</translation> @@ -2681,6 +2680,7 @@ <translation id="5186650237607254032">내가 근처에 있으면 휴대전화 화면 잠금이 해제되도록 휴대전화 화면 잠금을 업데이트하세요. 휴대전화를 더 빠르게 잠금 해제하고, <ph name="DEVICE_TYPE" />에서 개선된 Smart Lock 환경을 이용할 수 있습니다.</translation> <translation id="5187295959347858724">이제 <ph name="SHORT_PRODUCT_NAME" />에 로그인되었으며 북마크와 방문기록, 기타 설정이 내 Google 계정과 동기화됩니다.</translation> <translation id="5187826826541650604"><ph name="KEY_NAME" />(<ph name="DEVICE" />)</translation> +<translation id="5196721203029902230">Google과 소통하여 인터넷 사용 및 Chrome 개선</translation> <translation id="5204967432542742771">비밀번호 입력</translation> <translation id="5206215183583316675">'<ph name="CERTIFICATE_NAME" />'을(를) 삭제하시겠습니까?</translation> <translation id="520621735928254154">인증서 가져오기 오류</translation> @@ -2718,6 +2718,7 @@ <translation id="5254368820972107711">삭제할 파일 표시</translation> <translation id="52550593576409946">키오스크 애플리케이션을 실행할 수 없습니다.</translation> <translation id="5255315797444241226">입력한 암호가 잘못되었습니다.</translation> +<translation id="5256861893479663409">모든 사이트에서</translation> <translation id="5260508466980570042">이메일 또는 비밀번호를 확인할 수 없습니다. 다시 시도해 주세요.</translation> <translation id="5261683757250193089">웹 스토어에서 열기</translation> <translation id="5262311848634918433"><ph name="MARKUP_1" />오프라인을 비롯하여 어디에서나 파일에 액세스하세요.<ph name="MARKUP_2" /> @@ -2942,6 +2943,8 @@ <translation id="555746285996217175">잠금/전원</translation> <translation id="5557991081552967863">절전 모드 중에 Wi-Fi 계속 사용</translation> <translation id="5558129378926964177">확대(&I)</translation> +<translation id="5558446705802335921">방문한 사이트와 다운로드한 파일에서 피싱 또는 멀웨어와 같은 위험한 동작이나 콘텐츠 확인</translation> +<translation id="5559719557406102971">Termina VM을 시작합니다.</translation> <translation id="55601339223879446">디스플레이에서 바탕화면 경계를 조정합니다.</translation> <translation id="5562781907504170924">이 탭이 블루투스 기기에 연결되었습니다.</translation> <translation id="5565871407246142825">신용카드</translation> @@ -3146,6 +3149,7 @@ <translation id="5863445608433396414">디버깅 기능 사용</translation> <translation id="5864471791310927901">DHCP 조회 실패</translation> <translation id="586567932979200359">디스크 이미지에서 <ph name="PRODUCT_NAME" />을(를) 실행 중입니다. 컴퓨터에 설치하면 디스크 이미지가 없어도 실행이 가능하며 최신 상태로 유지됩니다.</translation> +<translation id="5865733239029070421">사용 통계 및 비정상 종료 보고서를 Google로 자동 전송</translation> <translation id="5866557323934807206">다음 방문 시 재설정</translation> <translation id="5866840822086176774">매우 강함</translation> <translation id="5867841422488265304">웹 주소 검색 또는 입력</translation> @@ -3196,6 +3200,7 @@ <translation id="5957613098218939406">옵션 더보기</translation> <translation id="5958529069007801266">관리 대상 사용자</translation> <translation id="5959471481388474538">네트워크에 연결할 수 없음</translation> +<translation id="595959584676692139">페이지를 새로고침하여 이 확장 프로그램 사용</translation> <translation id="5963026469094486319">테마 추가</translation> <translation id="5963453369025043595"><ph name="NUM_HANDLES" />(최대 <ph name="NUM_KILOBYTES_LIVE" />)</translation> <translation id="5965661248935608907">또한 홈 버튼을 클릭하거나 검색주소창에서 검색할 때 표시되는 페이지를 설정합니다.</translation> @@ -3369,10 +3374,10 @@ <translation id="6237816943013845465">화면 해상도를 조정할 수 있습니다.</translation> <translation id="6238923052227198598">잠금 화면에 최근 메모 보관</translation> <translation id="6239558157302047471">프레임 새로고침(&F)</translation> +<translation id="6240004034869232531">제거 중...</translation> <translation id="6241530762627360640">시스템과 페어링된 블루투스 기기 관련 정보에 액세스하고 근처의 블루투스 기기를 검색합니다.</translation> <translation id="6243280677745499710">현재 설정</translation> <translation id="6243774244933267674">서버를 사용할 수 없음</translation> -<translation id="6246413617632217567">관리 대상 사용자를 가져오지 못했습니다. 하드 드라이브 공간 및 권한을 확인한 후 다시 시도해 주세요.</translation> <translation id="6247708409970142803"><ph name="PERCENTAGE" />%</translation> <translation id="6247802389331535091">시스템: <ph name="ARC_PROCESS_NAME" /></translation> <translation id="624789221780392884">업데이트 준비 완료</translation> @@ -3571,7 +3576,6 @@ <translation id="654039047105555694"><ph name="BEGIN_BOLD" />참고:<ph name="END_BOLD" /> 데이터 수집으로 인해 성능이 감소할 수 있으므로 확신이 있는 경우 또는 요청을 받은 경우에만 사용하도록 설정합니다.</translation> <translation id="654233263479157500">웹 서비스를 이용하여 탐색 오류 문제 해결</translation> <translation id="6544215763872433504">나를 위해 Google이 만든 웹브라우저</translation> -<translation id="6545325945815270297"><ph name="BEGIN_LINK" />Chrome 대시보드<ph name="END_LINK" />에서 동기화된 데이터 및 기기를 관리합니다.</translation> <translation id="6545665334409411530">반복 속도</translation> <translation id="6545834809683560467">예상 검색어 서비스를 사용하여 검색주소창 또는 앱 런처 검색창에 입력되는 검색어 및 URL을 더 빠르게 완성</translation> <translation id="6546686722964485737">Wimax 네트워크에 참여</translation> @@ -3586,7 +3590,6 @@ <translation id="6555810572223193255">현재 정리 기능을 사용할 수 없음</translation> <translation id="6556866813142980365">다시실행</translation> <translation id="6558280019477628686">오류가 발생했습니다. 일부 항목이 삭제되지 않았을 수 있습니다.</translation> -<translation id="6559580823502247193">(기기에 이미 있음)</translation> <translation id="6561726789132298588">입력</translation> <translation id="656293578423618167">파일 경로 또는 이름이 너무 깁니다. 짧은 이름으로 변경하거나 다른 위치에 저장하세요.</translation> <translation id="656398493051028875">'<ph name="FILENAME" />' 삭제 중...</translation> @@ -3608,6 +3611,7 @@ <translation id="6596745167571172521">Caps Lock 사용 안함</translation> <translation id="6596816719288285829">IP 주소</translation> <translation id="6597017209724497268">샘플</translation> +<translation id="6597332018579308636">액세스 허용</translation> <translation id="659934686219830168">이 페이지에서 나가면 동기화가 시작됩니다.</translation> <translation id="6602353599068390226">창을 다른 디스플레이로 이동</translation> <translation id="6602956230557165253">오른쪽/왼쪽 화살표 키를 사용하여 탐색합니다.</translation> @@ -3674,6 +3678,7 @@ <translation id="6690751852586194791">이 기기에 추가할 관리 대상 사용자를 선택하세요.</translation> <translation id="6691331417640343772">Google 대시보드에서 동기화된 데이터 관리</translation> <translation id="6691936601825168937">앞으로(F)</translation> +<translation id="6697492270171225480">페이지를 찾을 수 없을 때 비슷한 페이지 제안 표시</translation> <translation id="6698810901424468597"><ph name="WEBSITE_1" /> 및 <ph name="WEBSITE_2" />의 데이터를 읽고 변경</translation> <translation id="6700480081846086223"><ph name="HOST_NAME" /> 전송</translation> <translation id="6701535245008341853">프로필을 가져올 수 없습니다.</translation> @@ -3781,7 +3786,6 @@ <translation id="6862635236584086457">이 폴더에 저장된 모든 파일은 온라인으로 자동 백업됨</translation> <translation id="6865313869410766144">양식 데이터 자동 완성</translation> <translation id="686664946474413495">색상 온도</translation> -<translation id="6867678160199975333"><ph name="NEW_PROFILE_NAME" />(으)로 전환</translation> <translation id="6870888490422746447">공유할 앱 선택:</translation> <translation id="6871644448911473373">OCSP 응답자: <ph name="LOCATION" /></translation> <translation id="6872781471649843364">입력한 비밀번호가 서버에 의해 거부되었습니다.</translation> @@ -3875,7 +3879,6 @@ <translation id="7018275672629230621">인터넷 사용기록 조회 및 변경</translation> <translation id="7019805045859631636">빠르게</translation> <translation id="7022562585984256452">홈페이지가 설정되었습니다.</translation> -<translation id="7025036625303002400">이미 등록된 관리 대상 사용자입니다.</translation> <translation id="7025190659207909717">모바일 데이터 서비스 관리</translation> <translation id="7025325401470358758">다음 창</translation> <translation id="7027125358315426638">데이터베이스 이름:</translation> @@ -3924,7 +3927,7 @@ <translation id="7092106376816104">팝업 예외</translation> <translation id="7093434536568905704">GTK+</translation> <translation id="7093866338626856921">이름이 <ph name="HOSTNAMES" />인 기기와 데이터 교환</translation> -<translation id="7096108453481049031">관리 대상 사용자를 가져오지 못했습니다. 네트워크 연결을 확인한 후 나중에 다시 시도해 주세요.</translation> +<translation id="7096406577040705016">전체화면 돋보기 전환</translation> <translation id="7098447629416471489">저장한 다른 검색 엔진이 여기에 표시됨</translation> <translation id="7099337801055912064">큰 PPD를 로드할 수 없습니다. 최대 크기는 250KB입니다.</translation> <translation id="7100897339030255923"><ph name="COUNT" />개의 항목이 선택됨</translation> @@ -3971,7 +3974,6 @@ <translation id="7168109975831002660">최소 글꼴 크기</translation> <translation id="7170041865419449892">범위를 벗어났습니다.</translation> <translation id="7171559745792467651">다른 기기의 앱 설치</translation> -<translation id="7173917244679555">이미 해당 이름으로 된 관리 사용자가 있는 것 같습니다. <ph name="BEGIN_LINK" /><ph name="PROFILE_NAME" />을(를) 이 기기로 가져오시겠습니까<ph name="END_LINK" />?</translation> <translation id="7175037578838465313"><ph name="NAME" /> 설정</translation> <translation id="7175353351958621980">로드 위치:</translation> <translation id="7180611975245234373">새로고침</translation> @@ -4143,7 +4145,6 @@ <translation id="7444726222535375658">행아웃 Meet으로 이동</translation> <translation id="7444983668544353857"><ph name="NETWORKDEVICE" /> 사용 중지</translation> <translation id="7445682342344043969">팝업 차단됨</translation> -<translation id="744859430125590922">이 사용자가 방문하는 웹사이트를 <ph name="CUSTODIAN_EMAIL" />에서 제어하고 조회합니다.</translation> <translation id="7453008956351770337">이 프린터를 선택하면 다음 확장 프로그램에 내 프린터에 액세스할 수 있는 권한을 부여하게 됩니다.</translation> <translation id="7453467225369441013">대부분의 사이트에서 로그아웃됩니다. Google 계정에서는 로그아웃되지 않습니다.</translation> <translation id="7456142309650173560">개발자</translation> @@ -4317,7 +4318,6 @@ <translation id="7717845620320228976">업데이트 확인</translation> <translation id="7719367874908701697">페이지 확대/축소</translation> <translation id="771953673318695590">QA</translation> -<translation id="7720375555307821262">이 사용자를 관리하려면 <ph name="BEGIN_LINK" />Chrome에 로그인<ph name="END_LINK" />하세요.</translation> <translation id="7721179060400456005">창으로 디스플레이 채우기 허용</translation> <translation id="7722040605881499779">업데이트에 필요한 저장용량: <ph name="NECESSARY_SPACE" /></translation> <translation id="7724603315864178912">잘라내기</translation> @@ -4389,6 +4389,24 @@ <ph name="LINE_BREAK2" /> 사진을 더 적게 선택해 보세요.</translation> <translation id="782590969421016895">현재 페이지 사용</translation> +<translation id="7826790948326204519"><ph name="BEGIN_H3" />디버깅 기능<ph name="END_H3" /> + <ph name="BR" /> + Chromebook에서 디버깅 기능을 사용 설정하여 기기에 맞춤 코드를 설치하고 테스트할 수 있습니다. 이렇게 하면 다음 작업을 할 수 있습니다.<ph name="BR" /> + <ph name="BEGIN_LIST" /> + <ph name="LIST_ITEM" />rootfs 인증을 삭제하여 OS 파일 수정 + <ph name="LIST_ITEM" /><ph name="BEGIN_CODE" />'Cros Flash'<ph name="END_CODE" />와 같은 도구를 통해 기기에 액세스할 수 있도록 표준 테스트 키를 이용한 SSH의 기기 액세스 사용 + <ph name="LIST_ITEM" />USB 드라이브의 OS 이미지를 설치할 수 있도록 USB에서의 부팅 사용 + <ph name="LIST_ITEM" />기기에서 직접 SSH를 진행할 수 있도록 개발자 및 시스템 루트 로그인 비밀번호를 맞춤 값으로 설정 + <ph name="END_LIST" /> + <ph name="BR" /> + 일단 사용 설정되면 기업 관리 기기에서 Powerwash를 진행하거나 데이터를 삭제한 후에도 대부분의 디버그 기능이 사용 설정 상태로 유지됩니다. 모든 디버그 기능을 완전히 사용 중지하려면 Chrome OS 복구 절차를 완료하세요(https://support.google.com/chromebook/answer/1080595). + <ph name="BR" /> + <ph name="BR" /> + 디버깅 기능에 관한 자세한 내용은 다음 페이지를 참조하세요.<ph name="BR" /> + https://www.chromium.org/chromium-os/how-tos-and-troubleshooting/debugging-features + <ph name="BR" /> + <ph name="BR" /> + <ph name="BEGIN_BOLD" />참고:<ph name="END_BOLD" /> 시스템이 절차 진행 중에 재부팅됩니다.</translation> <translation id="7829298379596169484">오디오 입력 장치에 액세스 중</translation> <translation id="7831491651892296503">네트워크를 설정하는 중에 오류가 발생했습니다</translation> <translation id="7831754656372780761"><ph name="TAB_TITLE" /> <ph name="EMOJI_MUTING" /></translation> @@ -4453,6 +4471,7 @@ <translation id="7912080627461681647">서버에서 비밀번호가 변경되었습니다. 로그아웃한 다음 다시 로그인해 주세요.</translation> <translation id="7912883689016444961">모바일 네트워크 설정</translation> <translation id="7915471803647590281">의견을 보내기 전에 현재 상황을 입력해 주세요.</translation> +<translation id="7916556741383518510">클릭 시</translation> <translation id="792514962475806987">고정 돋보기 확대/축소 수준:</translation> <translation id="7925247922861151263">AAA 확인 실패</translation> <translation id="7925285046818567682"><ph name="HOST_NAME" />의 응답을 기다리는 중...</translation> @@ -4493,6 +4512,7 @@ <translation id="7978412674231730200">비공개 키</translation> <translation id="7979036127916589816">동기화 오류</translation> <translation id="7980084013673500153">애셋 ID: <ph name="ASSET_ID" /></translation> +<translation id="7981313251711023384">더 빠른 인터넷 사용과 검색을 위해 페이지 새로고침</translation> <translation id="7982083145464587921">오류를 해결하려면 기기를 다시 시작하세요.</translation> <translation id="7982283708762922719">높이</translation> <translation id="7982789257301363584">네트워크</translation> @@ -4898,6 +4918,7 @@ <translation id="8651585100578802546">캐시를 무시하고 페이지 새로고침</translation> <translation id="8652400352452647993">확장 프로그램 패키지 오류</translation> <translation id="8652487083013326477">페이지 범위 라디오 버튼</translation> +<translation id="8653292045957015650">고정 돋보기 전환</translation> <translation id="8654151524613148204">파일이 너무 커서 컴퓨터에서 처리할 수 없습니다.</translation> <translation id="8655295600908251630">채널</translation> <translation id="8655319619291175901">문제가 발생했습니다.</translation> @@ -4989,6 +5010,7 @@ <translation id="8757803915342932642">Google 클라우드 기기에서 사용하는 기기</translation> <translation id="8759408218731716181">멀티 로그인을 설정할 수 없음</translation> <translation id="8759753423332885148">자세히 알아보기</translation> +<translation id="8762207669047572135">액세스 허용</translation> <translation id="8767621466733104912">모든 사용자의 Chrome 자동 업데이트</translation> <translation id="8770406935328356739">확장 프로그램 루트 디렉토리</translation> <translation id="8770507190024617908">사용자 관리</translation> @@ -5118,7 +5140,9 @@ <translation id="8976520271376534479">이 페이지에서 플래시가 차단되었습니다.</translation> <translation id="8977811652087512276">잘못된 비밀번호이거나 손상된 파일입니다.</translation> <translation id="8978154919215542464">사용 - 모든 항목 동기화</translation> +<translation id="897939795688207351"><ph name="ORIGIN" />에서</translation> <translation id="8980951173413349704"><ph name="WINDOW_TITLE" /> - 비정상 종료됨</translation> +<translation id="8983677657449185470">세이프 브라우징 개선에 참여</translation> <translation id="8986362086234534611">저장 안함</translation> <translation id="8986494364107987395">사용 통계 및 비정상 종료 보고서를 Google에 자동으로 보내기</translation> <translation id="8987927404178983737">월</translation> @@ -5127,6 +5151,7 @@ <translation id="8995603266996330174">관리자: <ph name="DOMAIN" /></translation> <translation id="8996526648899750015">계정 추가...</translation> <translation id="8997135628821231"><ph name="ISSUED_BY" />[<ph name="ISSUED_TO" />](<ph name="DEVICE" />)</translation> +<translation id="8998788483361403036">디스크 이미지를 만드는 중입니다.</translation> <translation id="9003647077635673607">모든 웹사이트에서 허용</translation> <translation id="9003677638446136377">다시 확인</translation> <translation id="9003704114456258138">주파수</translation> @@ -5147,7 +5172,6 @@ <translation id="9024331582947483881">전체화면</translation> <translation id="9025098623496448965">예, 로그인 화면으로 돌아갑니다.</translation> <translation id="9026731007018893674">다운로드</translation> -<translation id="9027146684281895941">이 사용자를 관리 대상 사용자로 설정하여 이 사용자가 방문하는 웹사이트를 내 Google 계정에서 제어하고 볼 수 있도록 합니다.</translation> <translation id="9027459031423301635">새 탭에서 링크 열기(&T)</translation> <translation id="9027603907212475920">동기화 설정...</translation> <translation id="9030515284705930323">조직에서 내 계정이 Google Play 스토어를 사용하도록 설정하지 않았습니다. 자세한 정보는 관리자에게 문의하세요.</translation> @@ -5163,6 +5187,7 @@ <translation id="9042893549633094279">개인정보 및 보안</translation> <translation id="904451693890288097">'<ph name="DEVICE_NAME" />'의 암호를 입력하세요:</translation> <translation id="9044646465488564462">네트워크 연결 실패: <ph name="DETAILS" /></translation> +<translation id="9045430190527754450">사용자가 접속하려는 페이지의 웹 주소를 Google에 전송</translation> <translation id="9046895021617826162">연결 실패</translation> <translation id="9050666287014529139">암호</translation> <translation id="9052208328806230490"><ph name="EMAIL" /> 계정을 사용하여 프린터를 <ph name="CLOUD_PRINT_NAME" />에 등록했습니다.</translation>
diff --git a/chrome/app/resources/generated_resources_lt.xtb b/chrome/app/resources/generated_resources_lt.xtb index d5ade41..8500a6f 100644 --- a/chrome/app/resources/generated_resources_lt.xtb +++ b/chrome/app/resources/generated_resources_lt.xtb
@@ -42,7 +42,6 @@ <translation id="1056898198331236512">Įspėjimas</translation> <translation id="1058262162121953039">PUK</translation> <translation id="1062407476771304334">Pakeisti</translation> -<translation id="1062866675591297858">Tvarkykite prižiūrimus naudotojus naudodami <ph name="BEGIN_LINK" />prižiūrimų naudotojų informacijos suvestinę<ph name="END_LINK" />.</translation> <translation id="1064835277883315402">Prisijunkite prie privataus tinklo</translation> <translation id="1064912851688322329">Atjunkite „Google“ paskyrą</translation> <translation id="1067048845568873861">Sukurtas</translation> @@ -65,7 +64,6 @@ <translation id="1091767800771861448">Jei norite praleisti, paspauskite ESCAPE (galioja tik neoficialioms versijoms).</translation> <translation id="1093457606523402488">Matomi tinklai:</translation> <translation id="1094607894174825014">Buvo pateikta skaitymo arba rašymo operacijos užklausa su netinkamu poslinkiu įrenginyje „<ph name="DEVICE_NAME" />“.</translation> -<translation id="1097507499312291972">Jei norite valdyti ir peržiūrėti svetaines, kuriose lankosi šis asmuo, <ph name="BEGIN_SIGN_IN_LINK" />prisijunkite<ph name="END_SIGN_IN_LINK" />.</translation> <translation id="109758035718544977">Įjungti svetainių garsą</translation> <translation id="1097658378307015415">Prieš prisijungdami įeikite kaip svečias, kad suaktyvintumėte tinklą <ph name="NETWORK_ID" /></translation> <translation id="1103523840287552314">Visada versti <ph name="LANGUAGE" /></translation> @@ -244,7 +242,6 @@ <translation id="1361655923249334273">Nenaudota</translation> <translation id="1363028406613469049">Takelis</translation> <translation id="1367951781824006909">Pasirinkti failą</translation> -<translation id="136802136832547685">Nėra prižiūrimų naudotojų, kuriuos galima pridėti prie šio įrenginio.</translation> <translation id="1368265273904755308">Pranešti apie problemą</translation> <translation id="1370646789215800222">Pašalinti asmenį?</translation> <translation id="1372681413396468867">{NUM_ITEMS,plural, =1{1 norimas pašalinti elementas}one{# norimas pašalinti elementas}few{# norimi pašalinti elementai}many{# norimo pašalinti elemento}other{# norimų pašalinti elementų}}</translation> @@ -472,7 +469,6 @@ <translation id="1692799361700686467">Leidžiami slapukai iš kelių svetainių.</translation> <translation id="169515659049020177">Antrojo lygio klavišas</translation> <translation id="1698122934742150150">Tik dabartinė inkognito režimo sesija</translation> -<translation id="1700199471143028312">Jūsų administratorius neleidžia jums kurti prižiūrimų naudotojų.</translation> <translation id="1701062906490865540">Pašalinti šį asmenį</translation> <translation id="1706586824377653884">Pridėjo jūsų administratorius</translation> <translation id="1706625117072057435">Mastelio keitimo lygiai</translation> @@ -1041,7 +1037,6 @@ <translation id="2604255671529671813">Tinklo ryšio klaida</translation> <translation id="2606246518223360146">Susieti duomenis</translation> <translation id="2607101320794533334">Subjekto privačiojo rakto informacija</translation> -<translation id="2607459012323956820">Šio prižiūrimo naudotojo nustatymus ir naršymo istoriją valdytojas gali peržiūrėti adresu <ph name="BEGIN_LINK" /><ph name="DISPLAY_LINK" /><ph name="END_LINK" />.</translation> <translation id="2608770217409477136">Naudoti numatytuosius nustatymus</translation> <translation id="2609896558069604090">Kurti sparčiuosius klavišus...</translation> <translation id="2610157865375787051">Miego būsena</translation> @@ -1284,7 +1279,6 @@ <translation id="2951247061394563839">Pateikti langą per vidurį</translation> <translation id="2956763290572484660"><ph name="COOKIES" /> slapukai (-ų)</translation> <translation id="2958721676848865875">Įspėjimas dėl paketo plėtinio</translation> -<translation id="2961043351165706615">Jūsų įdiegtos „Linux“ programos bus ištrintos iš šio „Chromebook“.</translation> <translation id="2961090598421146107">„<ph name="CERTIFICATE_NAME" />“ (pateiktas plėtinys)</translation> <translation id="2961695502793809356">Spustelėkite, kad eitumėte į priekį, palaukite, kad pamatytumėte istoriją</translation> <translation id="2963151496262057773">Šis papildinys neatsako: „<ph name="PLUGIN_NAME" />“ Ar norite jį sustabdyti?</translation> @@ -1336,15 +1330,6 @@ <translation id="3022978424994383087">Nepavyko suprasti.</translation> <translation id="3024374909719388945">Naudoti 24 val. laikrodį</translation> <translation id="302781076327338683">Iš naujo įkelti talpyklos apėjimą</translation> -<translation id="3030243755303701754">Prižiūrimas naudotojas gali naršyti žiniatinklį su jūsų priežiūra. Jei esate prižiūrimo naudotojo valdytojas „Chrome“, galite: - - • leisti arba drausti lankytis tam tikrose svetainėse; - • peržiūrėti svetaines, kuriose lankėsi prižiūrimas naudotojas; - • tvarkyti kitus nustatymus. - -Sukūrus prižiūrimą naudotoją „Google“ paskyra nesukuriama. Visos prižiūrimo naudotojos žymės, naršymo istorija ir kitos nuostatos nebus perkeltos į kitus įrenginius naudojant „Chrome“ sinchronizavimo funkciją. Sukūrę prižiūrimą naudotoją, galėsite bet kada bet kokiame įrenginyje tvarkyti jo nustatymus apsilankę adresu <ph name="BEGIN_MANAGE_LINK" /><ph name="DISPLAY_LINK" /><ph name="END_MANAGE_LINK" />. - -Jei reikia daugiau informacijos, apsilankykite <ph name="BEGIN_LINK" />pagalbos centre<ph name="END_LINK" />.</translation> <translation id="3031417829280473749">Slaptasis agentas</translation> <translation id="3031557471081358569">Pasirinkite elementus importuoti:</translation> <translation id="3031601332414921114">Tęsti spausdinimą</translation> @@ -1385,7 +1370,6 @@ <translation id="3085412380278336437">Svetainė gali naudoti jūsų fotoaparatą</translation> <translation id="3085752524577180175">SOCKS priegloba</translation> <translation id="3088325635286126843">&Pervardyti...</translation> -<translation id="3089231390674410424">Atrodo, kad kilo problemų dėl jūsų prisijungimo duomenų. Įsitikinkite, kad tinkamai prisijungėte, ir bandykite dar kartą.</translation> <translation id="3090193911106258841">Pasiekiama garso ir vaizdo įrašų įvestis</translation> <translation id="3090819949319990166">Nepavyko nukopijuoti išorinio CRX failo į „<ph name="TEMP_CRX_FILE" />“.</translation> <translation id="3090871774332213558">Įrenginys „<ph name="DEVICE_NAME" />“ susietas</translation> @@ -1400,7 +1384,6 @@ <translation id="3121793941267913344">Nustatyti iš naujo šį „<ph name="IDS_SHORT_PRODUCT_NAME" />“ įrenginį</translation> <translation id="3122464029669770682">Centrinis procesorius</translation> <translation id="3122496702278727796">Nepavyko sukurti duomenų aplanko</translation> -<translation id="3123569374670379335">(Prižiūrima)</translation> <translation id="3124111068741548686">NAUDOTOJO tvarkomi elementai</translation> <translation id="3126026824346185272">Ctrl</translation> <translation id="3127156390846601284">Bus ištrinti visi duomenys, kuriuos jūsų įrenginyje išsaugojo visos rodomos svetainės. Ar norite tęsti?</translation> @@ -1435,8 +1418,6 @@ <translation id="3160842278951476457"><ph name="ISSUED_BY" /> [<ph name="ISSUED_TO" />] (atsarginė kopija sukurta aparatinėje įrangoje)</translation> <translation id="316125635462764134">Pašalinti programą</translation> <translation id="3161522574479303604">Visos kalbos</translation> -<translation id="316307797510303346">Valdykite ir peržiūrėkite svetaines, kuriose šis asmuo lankosi iš <ph name="CUSTODIAN_EMAIL" />. - Išsami paskyros prisijungimo informacija pasenusi.</translation> <translation id="3165390001037658081">Kai kurie operatoriai gali blokuoti šią funkciją.</translation> <translation id="316854673539778496">Jei norite gauti visus plėtinius visuose įrenginiuose, prisijunkite ir įjunkite sinchronizavimą.</translation> <translation id="3170072451822350649">Be to, galite praleisti prisijungimo veiksmą ir <ph name="LINK_START" />naršyti kaip svečias<ph name="LINK_END" />.</translation> @@ -1469,7 +1450,6 @@ <translation id="3229922550070982305">leisti / pristabdyti</translation> <translation id="3232318083971127729">Vertė:</translation> <translation id="3236289833370040187">Nuosavybės teisė bus perkelta <ph name="DESTINATION_DOMAIN" />.</translation> -<translation id="3237784613213365159"><ph name="NEW_PROFILE_NAME" /> dabar yra prižiūrimas naudotojas</translation> <translation id="323803881985677942">Atidaryti plėtinių parinktis</translation> <translation id="3241680850019875542">Pasirinkite norimo pakuoti plėtinio šakninį katalogą. Norėdami atnaujinti plėtinį, pasirinkite ir asmeninio rakto failą, kuris bus naudojamas iš naujo.</translation> <translation id="3242765319725186192">Paruoštas bendrinti raktas:</translation> @@ -1701,7 +1681,6 @@ <translation id="3584169441612580296">Skaityti ir keisti nuotraukas, muziką ir kitą mediją iš kompiuterio</translation> <translation id="3587482841069643663">Visi</translation> <translation id="358796204584394954">Įveskite šį kodą įrenginyje „<ph name="DEVICE_NAME" />“, kad jį susietumėte:</translation> -<translation id="3589532742556016615">Tai nepaveikia programų ar turinio kituose įrenginiuose.</translation> <translation id="3589766037099229847">Nesaugus turinys užblokuotas</translation> <translation id="3590194807845837023">Atrakinti profilį ir paleisti iš naujo</translation> <translation id="3592260987370335752">&Sužinokite daugiau</translation> @@ -1835,7 +1814,6 @@ <translation id="3778152852029592020">Atsisiuntimas atšauktas.</translation> <translation id="3778740492972734840">&Kūrėjo įrankiai</translation> <translation id="3778868487658107119">Užduokite klausimų. Nurodykite atlikti užduotis. Tai jūsų asmeninė „Google“, kuri visada pasiruošusi padėti.</translation> -<translation id="3780663724044634171">Pasirinkite paskyrą, kad tvarkytumėte prižiūrimą naudotoją.</translation> <translation id="378312418865624974">Skaityti unikalų šio kompiuterio identifikatorių</translation> <translation id="3783640748446814672">alt</translation> <translation id="3785308913036335955">Rodyti spartųjį programų klavišą</translation> @@ -2563,7 +2541,6 @@ <translation id="4964455510556214366">Išdėstymas</translation> <translation id="4964673849688379040">Tikrinama...</translation> <translation id="4965808351167763748">Ar tikrai norite nustatyti šį įrenginį, kad būtų galima paleisti „Hangout Meet“?</translation> -<translation id="4967749818080339523">Pasirinkite paskyrą</translation> <translation id="496888482094675990">Naudodami programą „Failai“ greitai pasieksite „Google“ diske, išorinėje atmintinėje ar „Chrome“ OS įrenginyje išsaugotus failus.</translation> <translation id="4969785127455456148">Albumas</translation> <translation id="4971412780836297815">Baigus atidaryti</translation> @@ -2750,7 +2727,6 @@ Kad ir kas nutiktų jūsų įrenginiui, failai patikimai saugomi „Google“ diske.<ph name="MARKUP_6" /> <ph name="MARKUP_7" />Bendrinkite, kurkite ir naudokite<ph name="MARKUP_8" /> failus su kitais vienoje vietoje.<ph name="MARKUP_9" /></translation> -<translation id="5262401745672360397">Su „Linux“ programomis bendrinami failai taip pat gali būti ištrinti.</translation> <translation id="5264148714798105376">Tai gali šiek tiek užtrukti.</translation> <translation id="5264252276333215551">Prisijunkite prie interneto, kad paleistumėte savo programą viešojo terminalo režimu.</translation> <translation id="5265562206369321422">Neprijungta daugiau nei savaitę</translation> @@ -3403,7 +3379,6 @@ <translation id="6241530762627360640">Pasiekti informaciją apie „Bluetooth“ įrenginius, susietus su sistema, ir aptikti netoliese esančius „Bluetooth“ įrenginius.</translation> <translation id="6243280677745499710">Šiuo metu nustatytas</translation> <translation id="6243774244933267674">Serveris negalimas</translation> -<translation id="6246413617632217567">Nepavyko importuoti prižiūrimo naudotojo. Patikrinkite, ar standžiajame diske yra vietos, bei leidimus ir bandykite dar kartą.</translation> <translation id="6247708409970142803"><ph name="PERCENTAGE" /> %</translation> <translation id="6247802389331535091">Sistema: <ph name="ARC_PROCESS_NAME" /></translation> <translation id="624789221780392884">Naujinys paruoštas</translation> @@ -3602,7 +3577,6 @@ <translation id="654039047105555694"><ph name="BEGIN_BOLD" />Pastaba:<ph name="END_BOLD" /> įgalinkite, tik jei žinote, ką darote, arba jei jūsų paprašė tai atlikti, nes renkant duomenis gali sumažėti našumas.</translation> <translation id="654233263479157500">Naudoti žiniatinklio paslaugą, kad būtų lengviau panaikinti naršymo klaidas</translation> <translation id="6544215763872433504">Jums skirta žiniatinklio naršyklė, sukurta „Google“</translation> -<translation id="6545325945815270297">Tvarkykite sinchronizuojamus duomenis ir įrenginius <ph name="BEGIN_LINK" />„Google“ informacijos suvestinėje<ph name="END_LINK" />.</translation> <translation id="6545665334409411530">Kartojimo dažnis</translation> <translation id="6545834809683560467">Naudoti numatymo paslaugą, padėsiančią užbaigti adreso juostoje arba programų paleidimo priemonės paieškos laukelyje įvedamus paieškos terminus ir URL adresus</translation> <translation id="6546686722964485737">Prisijungimas prie „Wimax“ tinklo</translation> @@ -3617,7 +3591,6 @@ <translation id="6555810572223193255">Valymo funkcija šiuo metu nepasiekiama</translation> <translation id="6556866813142980365">Grąžinti</translation> <translation id="6558280019477628686">Įvyko klaida. Kai kurie elementai galėjo nebūti ištrinti.</translation> -<translation id="6559580823502247193">(jau yra šiame įrenginyje)</translation> <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="656398493051028875">Ištrinamas failas „<ph name="FILENAME" />“...</translation> @@ -3814,7 +3787,6 @@ <translation id="6862635236584086457">Visų šiame aplanke saugomų failų kopija automatiškai kuriama internete</translation> <translation id="6865313869410766144">Automatinio pildymo formos duomenys</translation> <translation id="686664946474413495">Spalvų temperatūra</translation> -<translation id="6867678160199975333">Perjungti į <ph name="NEW_PROFILE_NAME" /></translation> <translation id="6870888490422746447">Pasirinkti programą bendrinti su:</translation> <translation id="6871644448911473373">OCSP atsakiklis: <ph name="LOCATION" /></translation> <translation id="6872781471649843364">Serveris atmetė įvestą slaptažodį.</translation> @@ -3908,7 +3880,6 @@ <translation id="7018275672629230621">Skaityti ir keisti naršymo istoriją</translation> <translation id="7019805045859631636">Greitas</translation> <translation id="7022562585984256452">Pagrindinis puslapis nustatytas.</translation> -<translation id="7025036625303002400">Panašu, kad jau yra prižiūrimas naudotojas tokiu vardu.</translation> <translation id="7025190659207909717">Duomenų mobiliesiems paslaugos valdymas</translation> <translation id="7025325401470358758">Kitas polangis</translation> <translation id="7027125358315426638">Duomenų pavadinimas:</translation> @@ -3957,7 +3928,6 @@ <translation id="7092106376816104">Iššokančiųjų langų išimtys</translation> <translation id="7093434536568905704">GTK+</translation> <translation id="7093866338626856921">Keistis duomenimis su įrenginiais, kurių pavadinimai: <ph name="HOSTNAMES" /></translation> -<translation id="7096108453481049031">Nepavyko importuoti prižiūrimo naudotojo. Patikrinkite tinklo ryšį ir vėliau bandykite dar kartą.</translation> <translation id="7096406577040705016">Perjungti viso ekrano didintuvą</translation> <translation id="7098447629416471489">Kiti išsaugoti paieškos varikliai bus rodomi čia</translation> <translation id="7099337801055912064">Nepavyko įkelti didelio PPD. Didžiausias galimas dydis yra 250 KB.</translation> @@ -4005,7 +3975,6 @@ <translation id="7168109975831002660">Mažiausias šrifto dydis</translation> <translation id="7170041865419449892">Nepasiekiama</translation> <translation id="7171559745792467651">Įdiekite programas iš kitų įrenginių</translation> -<translation id="7173917244679555">Panašu, kad jau tvarkote naudotoją tokiu vardu. Ar norite <ph name="BEGIN_LINK" />importuoti <ph name="PROFILE_NAME" /> į šį įrenginį<ph name="END_LINK" />?</translation> <translation id="7175037578838465313">„<ph name="NAME" />“ konfigūravimas</translation> <translation id="7175353351958621980">Įkelta iš:</translation> <translation id="7180611975245234373">Atnaujinti</translation> @@ -4177,7 +4146,6 @@ <translation id="7444726222535375658">Eiti į „Hangout Meet“</translation> <translation id="7444983668544353857">Neleisti <ph name="NETWORKDEVICE" /></translation> <translation id="7445682342344043969">Iššokantieji langai užblokuoti</translation> -<translation id="744859430125590922">Valdyti ir peržiūrėti svetaines, kuriose šis asmuo apsilanko iš <ph name="CUSTODIAN_EMAIL" />.</translation> <translation id="7453008956351770337">Pasirinkdami šį spausdintuvą suteikiate nurodytam plėtiniui leidimą pasiekti savo spausdintuvą:</translation> <translation id="7453467225369441013">Būsite atjungti nuo daugelio svetainių. Nebūsite atjungti nuo „Google“ paskyros.</translation> <translation id="7456142309650173560">įreng.</translation> @@ -4351,7 +4319,6 @@ <translation id="7717845620320228976">Patikrinkite, ar nėra naujinių</translation> <translation id="7719367874908701697">Puslapio mastelis</translation> <translation id="771953673318695590">KU</translation> -<translation id="7720375555307821262">Jei norite prižiūrėti šį asmenį, <ph name="BEGIN_LINK" />prisijunkite prie „Chrome“<ph name="END_LINK" />.</translation> <translation id="7721179060400456005">Leisti langams perdengti vaizdus</translation> <translation id="7722040605881499779">Kad būtų galima atnaujinti, reikia laisvos vietos: <ph name="NECESSARY_SPACE" /></translation> <translation id="7724603315864178912">Iškirpti</translation> @@ -5206,7 +5173,6 @@ <translation id="9024331582947483881">visas ekranas</translation> <translation id="9025098623496448965">Gerai, noriu sugrįžti į prisijungimo ekraną</translation> <translation id="9026731007018893674">atsisiųsti</translation> -<translation id="9027146684281895941">Naudojant „Google“ paskyrą prižiūrėti šį asmenį ir kontroliuoti bei peržiūrėti svetaines, kuriose jis lankosi.</translation> <translation id="9027459031423301635">Atidaryti nuorodą naujame &skirtuke</translation> <translation id="9027603907212475920">Nustatyti sinchronizavimą...</translation> <translation id="9030515284705930323">Organizacija jūsų paskyroje neįgalino „Google Play“ parduotuvės. Jei reikia daugiau informacijos, susisiekite su administratoriumi.</translation> @@ -5366,7 +5332,6 @@ <translation id="98515147261107953">Gulsčias</translation> <translation id="987897973846887088">Nėra pasiekiamų vaizdų</translation> <translation id="988978206646512040">Neleidžiama naudoti tuščio slaptafrazės lauko</translation> -<translation id="990310048453480215">Pašalinti „Linux“ programas</translation> <translation id="992032470292211616">Plėtiniai, programos ir temos gali pakenkti įrenginiui. Tikrai norite tęsti?</translation> <translation id="992592832486024913">Išjungti „ChromeVox“ (ekrano skaitymą balsu)</translation> <translation id="994289308992179865">&Ciklas</translation>
diff --git a/chrome/app/resources/generated_resources_lv.xtb b/chrome/app/resources/generated_resources_lv.xtb index 51313e6..e3ac6fc 100644 --- a/chrome/app/resources/generated_resources_lv.xtb +++ b/chrome/app/resources/generated_resources_lv.xtb
@@ -42,7 +42,6 @@ <translation id="1056898198331236512">Brīdinājums</translation> <translation id="1058262162121953039">PUK</translation> <translation id="1062407476771304334">Aizstāt</translation> -<translation id="1062866675591297858">Pārvaldiet savus uzraudzītos lietotājus, izmantojot <ph name="BEGIN_LINK" />uzraudzīto lietotāju informācijas paneli<ph name="END_LINK" />.</translation> <translation id="1064835277883315402">Pievienoties privātam tīklam</translation> <translation id="1064912851688322329">Atvienot savu Google kontu</translation> <translation id="1067048845568873861">Izveidots</translation> @@ -65,7 +64,6 @@ <translation id="1091767800771861448">Nospiediet ESCAPE, lai izlaistu (tikai neoficiāli būvējumi).</translation> <translation id="1093457606523402488">Redzamie tīkli:</translation> <translation id="1094607894174825014">Tālāk minētajā ierīcē tika pieprasīta lasīšanas vai rakstīšanas darbība ar nederīgu nobīdi: “<ph name="DEVICE_NAME" />”.</translation> -<translation id="1097507499312291972"><ph name="BEGIN_SIGN_IN_LINK" />Pierakstieties<ph name="END_SIGN_IN_LINK" />, lai pārvaldītu un skatītu vietnes, ko apmeklē šis lietotājs.</translation> <translation id="109758035718544977">Rādīt vietnes</translation> <translation id="1097658378307015415">Pirms pierakstāties, uzsāciet viesa sesiju, lai aktivizētu tīklu <ph name="NETWORK_ID" />.</translation> <translation id="1103523840287552314">Vienmēr tulkot <ph name="LANGUAGE" /> valodas saturu</translation> @@ -244,7 +242,6 @@ <translation id="1361655923249334273">Neizmantots</translation> <translation id="1363028406613469049">Izsekošana</translation> <translation id="1367951781824006909">Izvēlēties failu</translation> -<translation id="136802136832547685">Nav neviena uzraudzīta lietotāja, ko pievienot šai ierīcei.</translation> <translation id="1368265273904755308">Ziņot par problēmu</translation> <translation id="1370646789215800222">Vai noņemt lietotāju?</translation> <translation id="1372681413396468867">{NUM_ITEMS,plural, =1{Tiks noņemts 1 vienums}zero{Tiks noņemti # vienumi}one{Tiks noņemts # vienums}other{Tiks noņemti # vienumi}}</translation> @@ -472,7 +469,6 @@ <translation id="1692799361700686467">Ir atļauti vairāku vietņu sīkfaili.</translation> <translation id="169515659049020177">Shift</translation> <translation id="1698122934742150150">Tikai pašreizējā inkognito sesijā</translation> -<translation id="1700199471143028312">Administrators neļauj jums izveidot uzraudzītus lietotājus.</translation> <translation id="1701062906490865540">Noņemt šo lietotāju</translation> <translation id="1706586824377653884">Pievienoja administrators</translation> <translation id="1706625117072057435">Tālummaiņas līmeņi</translation> @@ -1041,7 +1037,6 @@ <translation id="2604255671529671813">Tīkla savienojuma kļūda</translation> <translation id="2606246518223360146">Saistīt datus</translation> <translation id="2607101320794533334">Subjekta publiskās atslēgas dati</translation> -<translation id="2607459012323956820">Šī uzraudzītā lietotāja iestatījumi un pārlūkošanas vēsture joprojām var būt redzama pārvaldniekam vietnē <ph name="BEGIN_LINK" /><ph name="DISPLAY_LINK" /><ph name="END_LINK" />.</translation> <translation id="2608770217409477136">Izmantot noklusējuma iestatījumus</translation> <translation id="2609896558069604090">Izveidot saīsnes...</translation> <translation id="2610157865375787051">Miega režīms</translation> @@ -1284,7 +1279,6 @@ <translation id="2951247061394563839">Centrēt logu</translation> <translation id="2956763290572484660"><ph name="COOKIES" /> sīkfaili</translation> <translation id="2958721676848865875">Paplašinājuma pakošanas brīdinājums</translation> -<translation id="2961043351165706615">Instalētās Linux lietotnes tiks dzēstas no šī Chromebook datora.</translation> <translation id="2961090598421146107"><ph name="CERTIFICATE_NAME" /> (norādīts paplašinājumā)</translation> <translation id="2961695502793809356">Nospiediet, lai dotos uz priekšu, paturiet, lai redzētu vēsturi</translation> <translation id="2963151496262057773">Šis spraudnis neatbild: <ph name="PLUGIN_NAME" />. Vai vēlaties to apturēt?</translation> @@ -1336,15 +1330,6 @@ <translation id="3022978424994383087">Nesapratu.</translation> <translation id="3024374909719388945">Lietot 24 stundu pulksteni</translation> <translation id="302781076327338683">Atkārtoti ielādēt, ignorējot kešatmiņu</translation> -<translation id="3030243755303701754">Uzraudzīts lietotājs var pārlūkot tīmekli jūsu vadībā. Kā uzraudzīta lietotāja pārzinis pārlūkā Chrome jūs varat: - - • atļaut vai aizliegt noteiktas vietnes;, - • pārskatīt vietnes, kuras apmeklējis uzraudzītais lietotājs; - • pārvaldīt citus iestatījumus. - -Izveidojot uzraudzīta lietotāja profilu, netiek izveidots Google konts, un uzraudzīta lietotāja grāmatzīmes, pārlūkošanas vēsture un citas preferences nebūs pieejamas citās ierīcēs, kurās tiek izmantota Chrome sinhronizācija. Kad esat izveidojis uzraudzītu lietotāju, varat pārvaldīt tā iestatījumus jebkurā brīdī un jebkurā ierīcē, apmeklējot vietni <ph name="BEGIN_MANAGE_LINK" /><ph name="DISPLAY_LINK" /><ph name="END_MANAGE_LINK" />. - -Plašāku informāciju skatiet mūsu <ph name="BEGIN_LINK" />palīdzības centrā<ph name="END_LINK" />.</translation> <translation id="3031417829280473749">Aģente X</translation> <translation id="3031557471081358569">Izvēlieties importējamos vienumus:</translation> <translation id="3031601332414921114">Atsākt drukāšanu</translation> @@ -1385,7 +1370,6 @@ <translation id="3085412380278336437">Vietne var izmantot jūsu kameru.</translation> <translation id="3085752524577180175">SOCKS saimniekdators</translation> <translation id="3088325635286126843">&Pārdēvēt...</translation> -<translation id="3089231390674410424">Šķiet, ka ir radusies problēma ar jūsu akreditācijas datiem. Lūdzu, pārliecinieties, vai esat pareizi pierakstījies, un mēģiniet vēlreiz.</translation> <translation id="3090193911106258841">Notiek piekļūšana audio un video ievadei</translation> <translation id="3090819949319990166">Ārējo .crx failu nevar kopēt uz failu <ph name="TEMP_CRX_FILE" />.</translation> <translation id="3090871774332213558">Izveidots savienojums pārī ar ierīci “<ph name="DEVICE_NAME" />”.</translation> @@ -1400,7 +1384,6 @@ <translation id="3121793941267913344">Atiestatiet šo <ph name="IDS_SHORT_PRODUCT_NAME" /> ierīci.</translation> <translation id="3122464029669770682">Maksa par daļas vienību</translation> <translation id="3122496702278727796">Neizdevās radīt datu direktoriju</translation> -<translation id="3123569374670379335">(Uzraudzīts)</translation> <translation id="3124111068741548686">USER apstrādātāji</translation> <translation id="3126026824346185272">Ctrl</translation> <translation id="3127156390846601284">Veicot šo darbību, tiks dzēsti ierīcē saglabātie dati no visām parādītajām vietnēm. Vai vēlaties turpināt?</translation> @@ -1435,8 +1418,6 @@ <translation id="3160842278951476457"><ph name="ISSUED_BY" /> [<ph name="ISSUED_TO" />] (ar krātuvi aparatūrā)</translation> <translation id="316125635462764134">Noņemt lietotni</translation> <translation id="3161522574479303604">Visas valodas</translation> -<translation id="316307797510303346">Pārvaldiet un skatiet vietnes, ko šis lietotājs apmeklē, izmantojot kontu <ph name="CUSTODIAN_EMAIL" />. - Jūsu pierakstīšanās informācija ir novecojusi.</translation> <translation id="3165390001037658081">Daļa mobilo sakaru operatoru var bloķēt šo funkciju.</translation> <translation id="316854673539778496">Lai paplašinājumi būtu pieejami visās jūsu ierīcēs, pierakstieties un ieslēdziet sinhronizāciju.</translation> <translation id="3170072451822350649">Varat arī izlaist pierakstīšanos un <ph name="LINK_START" />veikt pārlūkošanu kā viesis<ph name="LINK_END" />.</translation> @@ -1469,7 +1450,6 @@ <translation id="3229922550070982305">atskaņot/pauzēt</translation> <translation id="3232318083971127729">Vērtība:</translation> <translation id="3236289833370040187">Īpašumtiesības tiks nodotas domēnam <ph name="DESTINATION_DOMAIN" />.</translation> -<translation id="3237784613213365159">Tagad <ph name="NEW_PROFILE_NAME" /> ir uzraudzīts lietotājs</translation> <translation id="323803881985677942">Atvērt paplašinājumu opcijas</translation> <translation id="3241680850019875542">Atlasiet pakojamā paplašinājuma saknes direktoriju. Lai atjauninātu paplašinājumu, atlasiet arī privātās atslēgas failu atkārtotai izmantošanai.</translation> <translation id="3242765319725186192">Iepriekš koplietots kods:</translation> @@ -1701,7 +1681,6 @@ <translation id="3584169441612580296">Lasīt fotoattēus, mūziku un citu datorā esošu multivides saturu un mainīt to</translation> <translation id="3587482841069643663">Visi</translation> <translation id="358796204584394954">Lai izveidotu savienojumu pārī, ierīcē “<ph name="DEVICE_NAME" />” ievadiet šo kodu:</translation> -<translation id="3589532742556016615">Tas neietekmē lietotnes vai saturu citās ierīcēs.</translation> <translation id="3589766037099229847">Nedrošais saturs bloķēts</translation> <translation id="3590194807845837023">Atbloķēt profilu un restartēt</translation> <translation id="3592260987370335752">&Uzziniet vairāk</translation> @@ -1835,7 +1814,6 @@ <translation id="3778152852029592020">Lejupielāde tika atcelta.</translation> <translation id="3778740492972734840">Izstrā&dātāja rīki</translation> <translation id="3778868487658107119">Uzdodiet tam jautājumus. Lieciet tam veikt darbības. Pakalpojums Google darbojas jūsu labā — vienmēr gatavs palīdzēt.</translation> -<translation id="3780663724044634171">Pierakstieties kontā, kurš tiks izmantots uzraudzītā lietotāja profila pārvaldībai.</translation> <translation id="378312418865624974">Lasīt unikālu šī datora identifikatoru</translation> <translation id="3783640748446814672">alt</translation> <translation id="3785308913036335955">Rādīt lietotņu saīsnes</translation> @@ -2563,7 +2541,6 @@ <translation id="4964455510556214366">Izkārtojums</translation> <translation id="4964673849688379040">Notiek pārbaude...</translation> <translation id="4965808351167763748">Vai tiešām vēlaties iestatīt šo ierīci darbam ar Hangouts Meet?</translation> -<translation id="4967749818080339523">Atlasiet kontu</translation> <translation id="496888482094675990">Izmantojot lietotni Faili, varat ērti piekļūt failiem, kas saglabāti Google diskā, ārējā krātuvē vai Chrome OS ierīcē.</translation> <translation id="4969785127455456148">Albums</translation> <translation id="4971412780836297815">Atvērt, kad pabeigta</translation> @@ -2750,7 +2727,6 @@ Neatkarīgi no tā, kas notiek ar jūsu ierīci, jūsu faili tiek droši glabāti Google diskā.<ph name="MARKUP_6" /> <ph name="MARKUP_7" />Koplietojiet un veidojiet failus vienuviet, kā arī sadarbojieties,<ph name="MARKUP_8" /> izmantojot failus kopā ar citiem lietotājiem.<ph name="MARKUP_9" /></translation> -<translation id="5262401745672360397">Var tikt dzēsti arī faili, kas tika kopīgoti Linux lietotnēs.</translation> <translation id="5264148714798105376">Tas var ilgt aptuveni minūti.</translation> <translation id="5264252276333215551">Lūdzu, izveidojiet savienojumu ar internetu, lai lietotni palaistu kioska režīmā.</translation> <translation id="5265562206369321422">Bezsaistē ilgāk par nedēļu</translation> @@ -3402,7 +3378,6 @@ <translation id="6241530762627360640">Piekļūt informācijai par Bluetooth ierīcēm, kuras savienotas pārī ar jūsu sistēmu, un atrast tuvumā esošas Bluetooth ierīces.</translation> <translation id="6243280677745499710">Šobrīd iestatīta</translation> <translation id="6243774244933267674">Serveris nav pieejams.</translation> -<translation id="6246413617632217567">Nevarēja importēt uzraudzīto lietotāju. Lūdzu, pārbaudiet vietu cietajā diskā un atļaujas un mēģiniet vēlreiz.</translation> <translation id="6247708409970142803"><ph name="PERCENTAGE" />%</translation> <translation id="6247802389331535091">Sistēma: <ph name="ARC_PROCESS_NAME" /></translation> <translation id="624789221780392884">Var veikt atjaunināšanu</translation> @@ -3601,7 +3576,6 @@ <translation id="654039047105555694"><ph name="BEGIN_BOLD" />Piezīme<ph name="END_BOLD" />. Iespējojiet tikai tad, ja esat pārliecināts par savu rīcību vai kāds jums lūdzis šādi rīkoties, jo datu apkopošana var mazināt veiktspēju.</translation> <translation id="654233263479157500">Izmantot tīmekļa pakalpojumu, lai palīdzētu atrisināt navigācijas kļūdas</translation> <translation id="6544215763872433504">Google izstrādātā tīmekļa pārlūkprogramma tieši jums</translation> -<translation id="6545325945815270297">Pārvaldiet sinhronizētos datus un ierīces <ph name="BEGIN_LINK" />Chrome informācijas panelī<ph name="END_LINK" />.</translation> <translation id="6545665334409411530">Atkārtošanas ātrums</translation> <translation id="6545834809683560467">Izmantot ieteikumus, lai ātrāk ievadītu meklēšanas frāzes un vietrāžus URL adreses joslā vai lietotņu palaidēja meklēšanas lodziņā.</translation> <translation id="6546686722964485737">Savienojuma izveide ar WiMAX tīklu</translation> @@ -3616,7 +3590,6 @@ <translation id="6555810572223193255">Tīrīšana pašlaik nav pieejama</translation> <translation id="6556866813142980365">Atcelt atsaukšanu</translation> <translation id="6558280019477628686">Radās kļūda. Iespējams, netika izdzēsti daži vienumi.</translation> -<translation id="6559580823502247193">(jau pastāv šajā ierīcē)</translation> <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="656398493051028875">Notiek faila “<ph name="FILENAME" />” dzēšana...</translation> @@ -3813,7 +3786,6 @@ <translation id="6862635236584086457">Visi faili, kas saglabāti šajā mapē, tiek automātiski dublēti tiešsaistē.</translation> <translation id="6865313869410766144">Automātiskās aizpildes veidlapas dati</translation> <translation id="686664946474413495">Krāsu temperatūra</translation> -<translation id="6867678160199975333">Pārslēgt uz: <ph name="NEW_PROFILE_NAME" /></translation> <translation id="6870888490422746447">Izvēlieties koplietojamo lietotni:</translation> <translation id="6871644448911473373">OCSP atbildētājs: <ph name="LOCATION" /></translation> <translation id="6872781471649843364">Ievadīto paroli noraidīja serveris.</translation> @@ -3907,7 +3879,6 @@ <translation id="7018275672629230621">Lasīt un mainīt jūsu pārlūkošanas vēsturi</translation> <translation id="7019805045859631636">Ātrs</translation> <translation id="7022562585984256452">Jūsu sākumlapa ir iestatīta.</translation> -<translation id="7025036625303002400">Šķiet, ka jums jau ir uzraudzīts lietotājs ar šādu vārdu.</translation> <translation id="7025190659207909717">Mobilo datu pakalpojumu pārvaldība</translation> <translation id="7025325401470358758">Nākamā rūts</translation> <translation id="7027125358315426638">Datu bāzes nosaukums:</translation> @@ -3956,7 +3927,6 @@ <translation id="7092106376816104">Uznirstošo logu izņēmumi</translation> <translation id="7093434536568905704">GTK+</translation> <translation id="7093866338626856921">apmainīties datiem ar šādām ierīcēm: <ph name="HOSTNAMES" /></translation> -<translation id="7096108453481049031">Uzraudzīto lietotāju nevarēja importēt. Lūdzu, pārbaudiet tīkla savienojumu un vēlāk mēģiniet vēlreiz.</translation> <translation id="7096406577040705016">Pārslēdz pilnekrāna lupu</translation> <translation id="7098447629416471489">Šeit tiks parādītas citas saglabātās meklētājprogrammas.</translation> <translation id="7099337801055912064">Nevar ielādēt lielu PPD failu. Maksimālais lielums ir 250 kB.</translation> @@ -4004,7 +3974,6 @@ <translation id="7168109975831002660">Minimālais fonta lielums</translation> <translation id="7170041865419449892">Ārpus diapazona</translation> <translation id="7171559745792467651">Lietotņu instalēšana no citām ierīcēm</translation> -<translation id="7173917244679555">Šķiet, ka jau pārvaldāt lietotāju ar šādu vārdu. Vai vēlaties <ph name="BEGIN_LINK" />importēt profilu <ph name="PROFILE_NAME" /><ph name="END_LINK" /> šajā ierīcē?</translation> <translation id="7175037578838465313">Tīkla “<ph name="NAME" />” konfigurēšana</translation> <translation id="7175353351958621980">Ielādēts no:</translation> <translation id="7180611975245234373">Atsvaidzināt</translation> @@ -4176,7 +4145,6 @@ <translation id="7444726222535375658">Turpināt darbu pakalpojumā Hangouts Meet</translation> <translation id="7444983668544353857">Atspējot <ph name="NETWORKDEVICE" /></translation> <translation id="7445682342344043969">Uznirstošie logi bloķēti</translation> -<translation id="744859430125590922">Pārvaldīt un skatīt vietnes, ko šis lietotājs apmeklē, izmantojot kontu <ph name="CUSTODIAN_EMAIL" />.</translation> <translation id="7453008956351770337">Atlasot šo printeri, jūs piešķirat tālāk norādītajam paplašinājumam atļauju piekļūt jūsu printerim.</translation> <translation id="7453467225369441013">Jūs tiksiet izrakstīts no lielākās daļas vietņu. Jūs netiksiet izrakstīts no Google konta.</translation> <translation id="7456142309650173560">izstr.</translation> @@ -4350,7 +4318,6 @@ <translation id="7717845620320228976">Atjauninājumu pieejamības pārbaude</translation> <translation id="7719367874908701697">Lapas tālummaiņa</translation> <translation id="771953673318695590">Kvalitātes nodrošināšana</translation> -<translation id="7720375555307821262">Lai uzraudzītu šo personu, <ph name="BEGIN_LINK" />pierakstieties pārlūkā Chrome<ph name="END_LINK" />.</translation> <translation id="7721179060400456005">Atļaut izvērst logus pa vairākiem displejiem</translation> <translation id="7722040605881499779">Atjauninājumam nepieciešamā vieta: <ph name="NECESSARY_SPACE" /></translation> <translation id="7724603315864178912">Izgriezt</translation> @@ -5205,7 +5172,6 @@ <translation id="9024331582947483881">pilnekrāna režīms</translation> <translation id="9025098623496448965">Labi, atgriezties pierakstīšanās ekrānā</translation> <translation id="9026731007018893674">lejupielāde</translation> -<translation id="9027146684281895941">Uzraugiet šo personu, lai kontrolētu un skatītu vietnes, ko šis lietotājs apmeklē, izmantojot jūsu Google kontu.</translation> <translation id="9027459031423301635">Atvēr&t saiti jaunā cilnē</translation> <translation id="9027603907212475920">Iestatīt sinhronizāciju...</translation> <translation id="9030515284705930323">Jūsu organizācija nav iespējojusi Google Play veikalu jūsu kontam. Sazinieties ar administratoru, lai saņemtu plašāku informāciju.</translation> @@ -5365,7 +5331,6 @@ <translation id="98515147261107953">Ainava</translation> <translation id="987897973846887088">Nav pieejams neviens attēls</translation> <translation id="988978206646512040">Nav atļauta tukša ieejas frāze.</translation> -<translation id="990310048453480215">Noņemt Linux lietotnes</translation> <translation id="992032470292211616">Paplašinājumi, lietotnes un motīvi var kaitēt jūsu ierīcei. Vai tiešām vēlaties turpināt?</translation> <translation id="992592832486024913">Atspējot ChromeVox (balss komentārus)</translation> <translation id="994289308992179865">A&utomātiski atkārtot</translation>
diff --git a/chrome/app/resources/generated_resources_ml.xtb b/chrome/app/resources/generated_resources_ml.xtb index 8c07646..46513f848 100644 --- a/chrome/app/resources/generated_resources_ml.xtb +++ b/chrome/app/resources/generated_resources_ml.xtb
@@ -42,7 +42,6 @@ <translation id="1056898198331236512">മുന്നറിയിപ്പ്</translation> <translation id="1058262162121953039">PUK</translation> <translation id="1062407476771304334">മാറ്റിസ്ഥാപിക്കുക</translation> -<translation id="1062866675591297858"><ph name="BEGIN_LINK" />സൂപ്പർവൈസുചെയ്ത ഉപയോക്താക്കളുടെ ഡാഷ്ബോർഡ്<ph name="END_LINK" /> വഴി സൂപ്പർവൈസുചെയ്ത ഉപയോക്താക്കളെ നിയന്ത്രിക്കുക.</translation> <translation id="1064835277883315402">സ്വകാര്യ നെറ്റ്വർക്കിൽ ചേരുക</translation> <translation id="1064912851688322329">നിങ്ങളുടെ Google അക്കൗണ്ട് വിച്ഛേദിക്കുക</translation> <translation id="1067048845568873861">സൃഷ്ടിച്ചു</translation> @@ -63,7 +62,6 @@ <translation id="1091767800771861448">ഒഴിവാക്കുന്നതിനായി ESCAPE അമർത്തുക (അനൗദ്യോഗിക നിർമ്മിതകൾക്ക് മാത്രം).</translation> <translation id="1093457606523402488">ദൃശ്യമാകുന്ന നെറ്റ്വർക്കുകൾ:</translation> <translation id="1094607894174825014">ഇനിപറയുന്നതിൽ അസാധുവായ ഒരു ഓഫ്സെറ്റ് ഉപയോഗിച്ച് എഴുതുക അല്ലെങ്കിൽ വായിക്കുക പ്രവർത്തനം അഭ്യർത്ഥിച്ചു: "<ph name="DEVICE_NAME" />".</translation> -<translation id="1097507499312291972">ഈ വ്യക്തി സന്ദർശിക്കുന്ന വെബ്സൈറ്റുകൾ നിയന്ത്രിക്കാനും കാണാനും <ph name="BEGIN_SIGN_IN_LINK" />സൈൻ ഇൻ ചെയ്യുക<ph name="END_SIGN_IN_LINK" />.</translation> <translation id="109758035718544977">സൈറ്റുകൾ അൺമ്യൂട്ട് ചെയ്യുക</translation> <translation id="1097658378307015415">സൈൻ ഇൻ ചെയ്യുന്നതിന് മുമ്പ്, <ph name="NETWORK_ID" /> സജീവമാക്കാൻ അതിഥിയായി പ്രവേശിക്കുക</translation> <translation id="1103523840287552314"><ph name="LANGUAGE" /> എല്ലായ്പ്പോഴും വിവര്ത്തനം ചെയ്യുക </translation> @@ -241,7 +239,6 @@ <translation id="1361655923249334273">ഉപയോഗിക്കാത്ത</translation> <translation id="1363028406613469049">ട്രാക്കുചെയ്യുക</translation> <translation id="1367951781824006909">ഒരു ഫയല് തിരഞ്ഞെടുക്കുക</translation> -<translation id="136802136832547685">ഈ ഉപകരണത്തിൽ ചേർക്കാൻ സൂപ്പർവൈസുചെയ്ത ഉപയോക്താക്കൾ ആരുമില്ല.</translation> <translation id="1368265273904755308">പ്രശ്നം റിപ്പോര്ട്ടുചെയ്യുക</translation> <translation id="1370646789215800222">ഉപയോക്താവിനെ നീക്കംചെയ്യണോ?</translation> <translation id="1372681413396468867">{NUM_ITEMS,plural, =1{1 ഇനം നീക്കം ചെയ്യാനുണ്ട്}other{# ഇനങ്ങൾ നീക്കം ചെയ്യാനുണ്ട്}}</translation> @@ -467,7 +464,6 @@ <translation id="1692799361700686467">ഒന്നിലധികം സൈറ്റുകളില് നിന്നുള്ള കുക്കികള് അനുവദനീയമാണ്.</translation> <translation id="169515659049020177">Shift</translation> <translation id="1698122934742150150">നിലവിലെ അദൃശ്യ സെഷന് മാത്രം</translation> -<translation id="1700199471143028312">സൂപ്പർവൈസുചെയ്ത ഉപയോക്താക്കളെ സൃഷ്ടിക്കാൻ അഡ്മിനിസ്ട്രേറ്റർ നിങ്ങളെ അനുവദിക്കുന്നില്ല.</translation> <translation id="1701062906490865540">ഈ ഉപയോക്താവിനെ നീക്കംചെയ്യുക</translation> <translation id="1706586824377653884">നിങ്ങളുടെ അഡ്മിനിസ്ട്രേറ്റർ ചേർത്തത്</translation> <translation id="1706625117072057435">സൂം നിലകൾ</translation> @@ -1033,7 +1029,6 @@ <translation id="2604255671529671813">നെറ്റ്വർക്ക് കണക്ഷൻ പിശക്</translation> <translation id="2606246518223360146">ഡാറ്റ ലിങ്ക് ചെയ്യുക</translation> <translation id="2607101320794533334">സബ്ജക്റ്റ് പൊതു കീ വിവരം</translation> -<translation id="2607459012323956820">സൂപ്പർവൈസുചെയ്ത ഈ ഉപയോക്താവിനായുള്ള ക്രമീകരണങ്ങളും ബ്രൗസിംഗ് ചരിത്രവും മാനേജർക്ക് <ph name="BEGIN_LINK" /><ph name="DISPLAY_LINK" /><ph name="END_LINK" /> എന്നതിൽ തുടർന്നും കാണാനായേക്കും.</translation> <translation id="2608770217409477136">സ്ഥിരസ്ഥിതി ക്രമീകരണങ്ങള് ഉപയോഗിക്കുക</translation> <translation id="2609896558069604090">കുറുക്കുവഴികൾ സൃഷ്ടിക്കുക...</translation> <translation id="2610157865375787051">സ്ലീപ്പിലാക്കുക</translation> @@ -1228,7 +1223,7 @@ <translation id="2882943222317434580"><ph name="IDS_SHORT_PRODUCT_NAME" />, തൽക്ഷണം പുനരാരംഭിച്ച് പുനഃസജ്ജമാക്കും</translation> <translation id="2885378588091291677">ടാസ്ക് മാനേജര്</translation> <translation id="2886771036282400576">• <ph name="PERMISSION" /></translation> -<translation id="2886800363598651778">നിങ്ങളുടെ ഉപകരണങ്ങളിലുടനീളം, Chrome സമന്വയിപ്പിച്ച് വ്യക്തിഗതമാക്കുക</translation> +<translation id="2886800363598651778">നിങ്ങളുടെ ഉപകരണങ്ങളിലുടനീളം, Chrome സമന്വയിപ്പിച്ച് വ്യക്തിപരമാക്കുക</translation> <translation id="2887525882758501333">PDF പ്രമാണം</translation> <translation id="2888807692577297075">ഇനങ്ങളൊന്നും <b>"<ph name="SEARCH_STRING" />"</b> എന്നതുമായി പൊരുത്തപ്പെടുന്നില്ല്ല</translation> <translation id="2889064240420137087">ഇതുമായി ലിങ്ക് തുറക്കുക...</translation> @@ -1326,15 +1321,6 @@ <translation id="3022978424994383087">അത് മനസ്സിലായില്ല.</translation> <translation id="3024374909719388945">24 മണിക്കൂര് ക്ലോക്ക് ഉപയോഗിക്കുക</translation> <translation id="302781076327338683">കാഷെ ബൈപാസുചെയ്യുന്നത് റീലോഡുചെയ്യുക</translation> -<translation id="3030243755303701754">ഒരു സൂപ്പർവൈസുചെയ്ത ഉപയോക്താവിന് നിങ്ങളുടെ മാർഗ്ഗനിർദ്ദേശത്തോടെ വെബിനെ അടുത്തറിയാനാകും. Chrome-ലെ സൂപ്പർവൈസുചെയ്ത ഉപയോക്താവിന്റെ മാനേജർ എന്ന നിലയിൽ, നിങ്ങൾക്ക് ഇനിപ്പറയുന്നവ ചെയ്യാനാകും: - - • ചില വെബ്സൈറ്റുകളെ അനുവദിക്കുകയോ നിരോധിക്കുകയോ ചെയ്യാം, - • സൂപ്പർവൈസുചെയ്ത ഉപയോക്താവ് സന്ദർശിച്ചിട്ടുള്ള വെബ്സൈറ്റുകൾ അവലോകനം ചെയ്യാനും ഒപ്പം - • മറ്റ് ക്രമീകരണം മാനേജുചെയ്യാനുമാകും. - -സൂപ്പർവൈസുചെയ്ത ഉപയോക്താവിനെ സൃഷ്ടിക്കുന്നതിലൂടെ ഒരു Google അക്കൗണ്ട് സൃഷ്ടിക്കപ്പെടില്ല, ഒപ്പം Chrome സമന്വയത്തിനൊപ്പം അവരുടെ ബുക്ക്മാർക്കുകൾ, ബ്രൗസിംഗ് ചരിത്രം, മറ്റ് മുൻഗണനകൾ എന്നിവ മറ്റ് ഉപകരണങ്ങളിൽ ലഭിക്കുകയുമില്ല. സൂപ്പർവൈസുചെയ്ത ഒരു പുതിയ ഉപയോക്താവിനെ സൃഷ്ടിച്ചതിന് ശേഷം, <ph name="BEGIN_MANAGE_LINK" /><ph name="DISPLAY_LINK" /><ph name="END_MANAGE_LINK" /> എന്നതിൽ ഏത് ഉപകരണത്തിൽ നിന്നും എപ്പോൾ വേണമെങ്കിലും നിങ്ങൾക്ക് അവരുടെ ക്രമീകരണം മാനേജുചെയ്യാനാകും. - -കൂടുതൽ വിവരങ്ങൾക്ക്, ഞങ്ങളുടെ <ph name="BEGIN_LINK" />സഹായ കേന്ദ്രം<ph name="END_LINK" /> സന്ദർശിക്കുക.</translation> <translation id="3031417829280473749">ഏജന്റ് X</translation> <translation id="3031557471081358569">ഇറക്കുമതി ചെയ്യുന്നതിനായി ഇനങ്ങള് തിരഞ്ഞെടുക്കുക:</translation> <translation id="3031601332414921114">പ്രിന്റിംഗ് ആരംഭിക്കുക</translation> @@ -1375,7 +1361,6 @@ <translation id="3085412380278336437">സൈറ്റിന് നിങ്ങളുടെ ക്യാമറ ഉപയോഗിക്കാനാകും</translation> <translation id="3085752524577180175">SOCKS ഹോസ്റ്റ്</translation> <translation id="3088325635286126843">&പേരുമാറ്റുക...</translation> -<translation id="3089231390674410424">ക്രെഡൻഷ്യലുകളിൽ പ്രശ്നമുണ്ടെന്ന് തോന്നുന്നു. നിങ്ങൾ ശരിയായ രീതിയിലാണ് സൈൻ ഇൻ ചെയ്തിരിക്കുന്നതെന്ന് ഉറപ്പാക്കി, വീണ്ടും ശ്രമിക്കുക.</translation> <translation id="3090193911106258841">ഓഡിയോ, വീഡിയോ ഇൻപുട്ട് ആക്സസ്സുചെയ്യുന്നു</translation> <translation id="3090819949319990166"><ph name="TEMP_CRX_FILE" /> എന്നതിലേക്ക് ബാഹ്യ crx ഫയൽ പകർത്താനാവില്ല.</translation> <translation id="3090871774332213558">"<ph name="DEVICE_NAME" />" ജോടിയാക്കി</translation> @@ -1390,7 +1375,6 @@ <translation id="3121793941267913344">ഈ <ph name="IDS_SHORT_PRODUCT_NAME" /> ഉപകരണം പുനഃസജ്ജീകരിക്കുക</translation> <translation id="3122464029669770682">CPU</translation> <translation id="3122496702278727796">ഡാറ്റാ ഡയറക്ടറി സൃഷ്ടിക്കുന്നതില് പരാജയപ്പെട്ടു</translation> -<translation id="3123569374670379335">(സൂപ്പർവൈസുചെയ്തത്)</translation> <translation id="3124111068741548686">ഉപയോക്താവ് കൈകാര്യംചെയ്യുന്നവ</translation> <translation id="3126026824346185272">Ctrl</translation> <translation id="3127156390846601284">കാണിച്ചിരിക്കുന്ന എല്ലാ സൈറ്റുകളുടെയും, നിങ്ങളുടെ ഉപകരണത്തിൽ സൂക്ഷിച്ചിരിക്കുന്ന വിവരങ്ങളെല്ലാം ഇത് ഇല്ലാതാക്കും. തുടരണോ?</translation> @@ -1425,8 +1409,6 @@ <translation id="3160842278951476457"><ph name="ISSUED_BY" /> [<ph name="ISSUED_TO" />] (ഹാർഡ്വെയർ പിന്തുണയുള്ളത്)</translation> <translation id="316125635462764134">അപ്ലിക്കേഷൻ നിക്കം ചെയ്യുക</translation> <translation id="3161522574479303604">എല്ലാ ഭാഷകളും</translation> -<translation id="316307797510303346"><ph name="CUSTODIAN_EMAIL" /> എന്നതിൽ നിന്നും ഈ വ്യക്തി സന്ദർശിക്കുന്ന വെബ്സൈറ്റുകൾ നിയന്ത്രിക്കുക, കാണുക. - നിങ്ങളുടെ അക്കൗണ്ട് സൈൻ ഇൻ വിശദാംശങ്ങൾ കാലഹരണപ്പെട്ടു.</translation> <translation id="3165390001037658081">ചില സേവനദായകർ ഈ ഫീച്ചർ ബ്ലോക്കുചെയ്തേക്കും.</translation> <translation id="316854673539778496">നിങ്ങളുടെ വിപുലീകരണങ്ങൾ എല്ലാ ഉപകരണങ്ങളിലും ലഭിക്കാൻ, സൈൻ ഇൻ ചെയ്ത്, 'സമന്വയിപ്പിക്കൽ' ഓണാക്കുക.</translation> <translation id="3170072451822350649">നിങ്ങൾക്ക് സൈൻ ഇൻ ചെയ്യുന്നത് ഒഴിവാക്കി <ph name="LINK_START" />അതിഥിയായി ബ്രൗസുചെയ്യാനുമാകും<ph name="LINK_END" />.</translation> @@ -1458,7 +1440,6 @@ <translation id="3229922550070982305">പ്ലേചെയ്യുക / താൽക്കാലികമായി നിർത്തുക</translation> <translation id="3232318083971127729">മൂല്യം:</translation> <translation id="3236289833370040187">ഉടമസ്ഥാവകാശം <ph name="DESTINATION_DOMAIN" /> എന്നതിലേക്ക് കൈമാറ്റം ചെയ്യുന്നതാണ്.</translation> -<translation id="3237784613213365159"><ph name="NEW_PROFILE_NAME" /> ഇപ്പോൾ സൂപ്പർവൈസുചെയ്ത ഉപയോക്താവാണ്</translation> <translation id="323803881985677942">വിപുലീകരണ ഓപ്ഷനുകൾ തുറക്കുക</translation> <translation id="3241680850019875542">പാക്ക് ചെയ്യുന്നതിന് വിപുലീകരണത്തിന്റെ റൂട്ട് ഡയറക്ടറി തിരഞ്ഞെടുക്കുക. ഒരു വിപുലീകരണം അപ്ഡേറ്റ് ചെയ്യുന്നതിന്, വീണ്ടും ഉപയോഗിക്കുന്നതിന് സ്വകാര്യ കീ ഫയലും തിരഞ്ഞെടുക്കുക.</translation> <translation id="3242765319725186192">മുമ്പേ പങ്കുവച്ച കീ:</translation> @@ -1751,7 +1732,7 @@ <translation id="3670229581627177274">Bluetooth ഓണാക്കുക</translation> <translation id="3672681487849735243">ഒരു ഫാക്ടറി പിശക് കണ്ടെത്തി</translation> <translation id="367645871420407123">സ്ഥിരം പരീക്ഷണ ചിത്ര മൂല്യത്തിലേക്ക് റൂട്ട് പാസ്വേഡ് സജ്ജീകരിക്കണമെങ്കിൽ ശൂന്യമായിടുക</translation> -<translation id="3677657024345889897">ഏറ്റവും കുറഞ്ഞ ശബ്ദതീവ്രത</translation> +<translation id="3677657024345889897">തീരെ ശബ്ജം കുറഞ്ഞ</translation> <translation id="3678156199662914018">വിപുലീകരണം: <ph name="EXTENSION_NAME" /></translation> <translation id="3681311097828166361">നിങ്ങളുടെ ഫീഡ്ബാക്കിന് നന്ദി. നിങ്ങളിപ്പോൾ ഓഫ്ലൈനായതിനാൽ, റിപ്പോർട്ട് പിന്നീട് അയയ്ക്കുന്നതാണ്.</translation> <translation id="3683023058278427253">നിങ്ങളുടെ ഡൊമെയ്നിനായി ഞങ്ങൾ ഒന്നിലധികം ലൈസൻസ് തരങ്ങൾ കണ്ടെത്തി. തുടരാൻ ഒന്ന് തിരഞ്ഞെടുക്കുക.</translation> @@ -1821,7 +1802,6 @@ <translation id="3778152852029592020">ഡൗൺലോഡ് റദ്ദാക്കി.</translation> <translation id="3778740492972734840">&ഡെവലപ്പര് ഉപകരണങ്ങള്</translation> <translation id="3778868487658107119">അതിനോട് ചോദ്യങ്ങൾ ചോദിക്കുക. ആവശ്യമുള്ള കാര്യങ്ങൾ ചെയ്യാൻ പറയുക. ഇത് എപ്പോഴും സഹായിക്കാൻ സന്നദ്ധമായ, നിങ്ങളുടെ വ്യക്തിഗത Google ആണ്.</translation> -<translation id="3780663724044634171">സൂപ്പർവൈസുചെയ്ത ഉപയോക്താവിനെ മാനേജുചെയ്യാൻ ഒരു അക്കൗണ്ട് തിരഞ്ഞെടുക്കുക.</translation> <translation id="378312418865624974">ഈ കമ്പ്യൂട്ടറിന് ഒരു അദ്വതീയ ഐഡന്റിഫയർ റീഡുചെയ്യുക</translation> <translation id="3783640748446814672">alt</translation> <translation id="3785308913036335955">അപ്ലിക്കേഷനുകളുടെ കുറുക്കുവഴി കാണിക്കുക</translation> @@ -2538,7 +2518,6 @@ <translation id="4964455510556214366">ക്രമീകരണം</translation> <translation id="4964673849688379040">പരിശോധിക്കുന്നു...</translation> <translation id="4965808351167763748">Hangouts Meet റൺ ചെയ്യാനായി ഈ ഉപകരണം സജ്ജമാക്കണോ?</translation> -<translation id="4967749818080339523">ഒരു അക്കൗണ്ട് തിരഞ്ഞെടുക്കുക</translation> <translation id="496888482094675990">ഫയലുകളുടെ അപ്ലിക്കേഷൻ, നിങ്ങൾ Google ഡ്രൈവിലോ ബാഹ്യ സംഭരണത്തിലോ Chrome OS ഉപകരണത്തിലോ സംരക്ഷിച്ചിരിക്കുന്ന ഫയലുകളിലേക്ക് പെട്ടന്നുള്ള ആക്സസ്സ് നൽകുന്നു.</translation> <translation id="4969785127455456148">ആല്ബം</translation> <translation id="4971412780836297815">പൂര്ത്തിയാക്കുമ്പോള് തുറക്കുക</translation> @@ -3369,7 +3348,6 @@ <translation id="6241530762627360640">നിങ്ങളുടെ സിസ്റ്റവുമായി ജോടിയാക്കിയ Bluetooth ഉപകരണങ്ങളെക്കുറിച്ചുള്ള വിവരങ്ങൾ ആക്സസ്സുചെയ്ത് സമീപമുള്ള Bluetooth ഉപകരണങ്ങൾ കണ്ടെത്തുക.</translation> <translation id="6243280677745499710">നിലവിൽ സജ്ജീകരിച്ചിരിക്കുന്നത്</translation> <translation id="6243774244933267674">സെർവർ ലഭ്യമല്ല</translation> -<translation id="6246413617632217567">സൂപ്പർവൈസുചെയ്ത ഉപയോക്താവിനെ ഇമ്പോർട്ടുചെയ്യാനായില്ല. നിങ്ങളുടെ ഹാർഡ് ഡ്രൈവിലെ ഇടവും അനുമതികളും പരിശോധിച്ച് വീണ്ടും ശ്രമിക്കുക.</translation> <translation id="6247708409970142803"><ph name="PERCENTAGE" />%</translation> <translation id="6247802389331535091">സിസ്റ്റം: <ph name="ARC_PROCESS_NAME" /></translation> <translation id="624789221780392884">അപ്ഡേറ്റ് തയ്യാറാണ്</translation> @@ -3569,7 +3547,6 @@ <translation id="654039047105555694"><ph name="BEGIN_BOLD" />ശ്രദ്ധിക്കുക:<ph name="END_BOLD" /> ഡാറ്റയുടെ ശേഖരം പ്രകടനത്തെ കുറയ്ക്കുമെന്നതിനാൽ, ചെയ്യുന്നതെന്താണെന്ന് നിങ്ങൾക്ക് അറിയാമെങ്കിലോ അങ്ങനെ ചെയ്യാൻ നിങ്ങൾ ആവശ്യപ്പെട്ടാലോ മാത്രമേ പ്രവർത്തനക്ഷമമാക്കൂ.</translation> <translation id="654233263479157500">നാവിഗേഷന് പിശകുകള് പരിഹരിക്കുന്നതിന് ഒരു വെബ് സേവനം ഉപയോഗിക്കുക</translation> <translation id="6544215763872433504">Google-ൽ നിന്ന് നിങ്ങൾക്കുള്ള വെബ് ബ്രൗസർ</translation> -<translation id="6545325945815270297"><ph name="BEGIN_LINK" />Chrome ഡാഷ്ബോർഡിൽ<ph name="END_LINK" /> നിങ്ങളുടെ സമന്വയിപ്പിച്ച വിവരങ്ങളും ഉപകരണങ്ങളും മാനേജുചെയ്യുക.</translation> <translation id="6545665334409411530">ആവർത്തന നിരക്ക്</translation> <translation id="6545834809683560467">തിരയലുകളും ഒരു വിലാസ ബാറിലോ അപ്ലിക്കേഷൻ ലോഞ്ചർ തിരയൽ ബോക്സിലോ ടൈപ്പുചെയ്തിരിക്കുന്ന URL കളും പൂര്ത്തിയാക്കാൻ ഒരു പ്രവചന സേവനം ഉപയോഗിക്കുക</translation> <translation id="6546686722964485737">Wimax നെറ്റ്വർക്കിൽ ചേരുക</translation> @@ -3584,7 +3561,6 @@ <translation id="6555810572223193255">ക്ലീനർ ഇപ്പോൾ ലഭ്യമല്ല</translation> <translation id="6556866813142980365">വീണ്ടുംചെയ്യുക</translation> <translation id="6558280019477628686">ഒരു പിശക് സംഭവിച്ചു. ചില ഇനങ്ങൾ ഇല്ലാതാക്കാൻ ഇടയില്ല.</translation> -<translation id="6559580823502247193">(ഇതിനകം ഈ ഉപകരണത്തിലുണ്ട്)</translation> <translation id="6561726789132298588">എന്റർ</translation> <translation id="656293578423618167">ഫയലിന്റെ പാതയോ പേരോ ദൈർഘ്യമേറിയതാണ്. ഹ്രസ്വമായ പേര് ഉപയോഗിച്ചോ മറ്റൊരു ലൊക്കേഷനിലേക്കോ സംരക്ഷിക്കുക.</translation> <translation id="656398493051028875">"<ph name="FILENAME" />" ഇല്ലാതാക്കുന്നു...</translation> @@ -3654,7 +3630,7 @@ <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="6670647982128220776">സമന്വയിപ്പിക്കലും വ്യക്തിഗതമാക്കലുമായി ബന്ധപ്പെട്ട ഫീച്ചറുകൾ ഇപ്പോൾ ഒറ്റ നിയന്ത്രണത്തിന് കീഴിലാണ്. ഇത് ഓണാക്കിയാൽ നിങ്ങളുടെ നിലവിലെ ക്രമീകരണത്തിൽ മാറ്റം വന്നേക്കാം.</translation> +<translation id="6670647982128220776">സമന്വയിപ്പിക്കലും വ്യക്തിപരമാക്കലുമായി ബന്ധപ്പെട്ട ഫീച്ചറുകൾ ഇപ്പോൾ ഒറ്റ നിയന്ത്രണത്തിന് കീഴിലാണ്. ഇത് ഓണാക്കിയാൽ നിങ്ങളുടെ നിലവിലെ ക്രമീകരണത്തിൽ മാറ്റം വന്നേക്കാം.</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> @@ -3779,7 +3755,6 @@ <translation id="6862635236584086457">ഈ ഫോൾഡറിൽ സംരക്ഷിച്ചിരിക്കുന്ന എല്ലാ ഫയലുകളും ഓൺലൈനിൽ സ്വയമേവ ബാക്കപ്പ് ചെയ്യപ്പെടുന്നതാണ്</translation> <translation id="6865313869410766144">ഓട്ടോഫിൽ ഫോം ഡാറ്റ</translation> <translation id="686664946474413495">വർണ്ണ ടെമ്പറേച്ചർ</translation> -<translation id="6867678160199975333"><ph name="NEW_PROFILE_NAME" /> എന്നതിലേക്ക് മാറുക</translation> <translation id="6870888490422746447">ഇതിലേക്ക് പങ്കിടാൻ ഒരു ആപ്പ് തിരഞ്ഞെടുക്കുക:</translation> <translation id="6871644448911473373">OCSP റെസ്പ്പോണ്ടര്: <ph name="LOCATION" /></translation> <translation id="6872781471649843364">നിങ്ങൾ നൽകിയ പാസ്വേഡ് സെർവർ നിരസിച്ചു.</translation> @@ -3873,7 +3848,6 @@ <translation id="7018275672629230621">നിങ്ങളുടെ ബ്രൗസിംഗ് ചരിത്രം റീഡുചെയ്യുക, മാറ്റുക</translation> <translation id="7019805045859631636">വേഗത</translation> <translation id="7022562585984256452">നിങ്ങളുടെ ഹോം പേജ് സജ്ജമാക്കി.</translation> -<translation id="7025036625303002400">ഈ പേരിൽ ഇതിനകം സൂപ്പർവൈസുചെയ്ത ഉപയോക്താവുണ്ടെന്ന് തോന്നുന്നു.</translation> <translation id="7025190659207909717">മൊബൈല് ഡാറ്റ സേവന മാനേജുമെന്റ്</translation> <translation id="7025325401470358758">അടുത്ത പാൻ</translation> <translation id="7027125358315426638">ഡാറ്റാബേസിന്റെ പേര്:</translation> @@ -3922,7 +3896,6 @@ <translation id="7092106376816104">പോപ്പ്-അപ്പ് ഒഴിവാക്കലുകള്</translation> <translation id="7093434536568905704">GTK+</translation> <translation id="7093866338626856921"><ph name="HOSTNAMES" /> പേരിലുള്ള ഉപകരണങ്ങൾ ഉപയോഗിച്ച് ഡാറ്റ എക്സ്ചേഞ്ചുചെയ്യുക</translation> -<translation id="7096108453481049031">സൂപ്പർവൈസുചെയ്ത ഉപയോക്താവിനെ ഇമ്പോർട്ടുചെയ്യാനായില്ല. നിങ്ങളുടെ നെറ്റ്വർക്ക് കണക്ഷൻ പരിശോധിച്ച്, പിന്നീട് വീണ്ടും ശ്രമിക്കുക.</translation> <translation id="7098447629416471489">സംരക്ഷിച്ച മറ്റ് തിരയൽ എഞ്ചിനുകൾ ഇവിടെ ദൃശ്യമാകും</translation> <translation id="7099337801055912064">വലിയ PPD ലോഡ് ചെയ്യാനാകില്ല. പരമാവധി വലുപ്പം 250 kB ആണ്.</translation> <translation id="7100897339030255923"><ph name="COUNT" /> ഇനങ്ങൾ തിരഞ്ഞെടുത്തു</translation> @@ -3969,7 +3942,6 @@ <translation id="7168109975831002660">കുറഞ്ഞ ഫോണ്ട് വലിപ്പം</translation> <translation id="7170041865419449892">പരിധിയ്ക്ക് പുറത്താണ്</translation> <translation id="7171559745792467651">നിങ്ങളുടെ മറ്റ് ഉപകരണങ്ങളിൽ നിന്ന് ആപ്പുകൾ ഇൻസ്റ്റാൾ ചെയ്യുക</translation> -<translation id="7173917244679555">നിങ്ങൾ ഇതിനകം തന്നെ ആ പേരിൽ ഒരു ഉപയോക്താവിനെ മാനേജുചെയ്യുന്നത് പോലെ തോന്നുന്നു. ഈ ഉപകരണത്തിലേക്ക് <ph name="BEGIN_LINK" /><ph name="PROFILE_NAME" /> എന്നയാളെ ഇമ്പോർട്ട്<ph name="END_LINK" /> ചെയ്യണോ?</translation> <translation id="7175037578838465313"><ph name="NAME" /> കോൺഫിഗർ ചെയ്യുക</translation> <translation id="7175353351958621980">ഇതില്നിന്ന് ലോഡ് ചെയ്തത്:</translation> <translation id="7180611975245234373">പുതുക്കുക</translation> @@ -4141,7 +4113,6 @@ <translation id="7444726222535375658">Hangouts Meet-ൽ തുടരുക</translation> <translation id="7444983668544353857"><ph name="NETWORKDEVICE" /> അപ്രാപ്തമാക്കുക</translation> <translation id="7445682342344043969">പോപ് അപ്പുകൾ തടഞ്ഞു</translation> -<translation id="744859430125590922"><ph name="CUSTODIAN_EMAIL" /> എന്നതിൽ നിന്നും ഈ വ്യക്തി സന്ദർശിക്കുന്ന വെബ്സൈറ്റുകൾ നിയന്ത്രിക്കുക, കാണുക.</translation> <translation id="7453008956351770337">ഈ പ്രിന്റർ തിരഞ്ഞെടുക്കുന്നതിലൂടെ, നിങ്ങളുടെ പ്രിന്റർ ആക്സസ്സ് ചെയ്യാൻ ഇനിപ്പറയുന്ന വിപുലീകരണത്തിന് അനുമതി നൽകുന്നു:</translation> <translation id="7453467225369441013">നിങ്ങൾ മിക്ക സൈറ്റുകളിൽ നിന്നും സൈൻ ഔട്ടാകും. നിങ്ങൾ Google അക്കൗണ്ടിൽ നിന്ന് സൈൻ ഔട്ട് ചെയ്യപ്പെടില്ല.</translation> <translation id="7456142309650173560">ഡെവലപ്പർ</translation> @@ -4315,7 +4286,6 @@ <translation id="7717845620320228976">അപ്ഡേറ്റുകൾ പരിശോധിക്കുക</translation> <translation id="7719367874908701697">പേജ് സൂം ചെയ്യുക</translation> <translation id="771953673318695590">QA</translation> -<translation id="7720375555307821262">ഈ വ്യക്തിയെ സൂപ്പർവൈസുചെയ്യാൻ, <ph name="BEGIN_LINK" />Chrome-ലേക്ക് സൈൻ ഇൻ ചെയ്യുക<ph name="END_LINK" />.</translation> <translation id="7721179060400456005">ഡിസ്പ്ലേകൾ സ്പാൻ ചെയ്യാൻ വിൻഡോകളെ അനുവദിക്കുക</translation> <translation id="7722040605881499779">അപ്ഡേറ്റിന് ആവശ്യമായ ഇടം: <ph name="NECESSARY_SPACE" /></translation> <translation id="7724603315864178912">മുറിക്കുക</translation> @@ -4751,7 +4721,7 @@ <translation id="8400146488506985033">ആളുകളെ മാനേജുചെയ്യുക</translation> <translation id="8410073653152358832">ഈ ഫോൺ ഉപയോഗിക്കുക</translation> <translation id="8410775397654368139">Google Play</translation> -<translation id="8411022984399993066">ഉവ്വ്, സമന്വയിപ്പിക്കലും വ്യക്തിഗതമാക്കലും ഓണാക്കുക</translation> +<translation id="8411022984399993066">ഉവ്വ്, സമന്വയിപ്പിക്കലും വ്യക്തിപരമാക്കലും ഓണാക്കുക</translation> <translation id="8413385045638830869">ആദ്യം ചോദിക്കുക (ശുപാർശ ചെയ്തത്)</translation> <translation id="8418445294933751433">&ടാബ് പോലെ കാണിക്കുക</translation> <translation id="8419098111404128271">'<ph name="SEARCH_TEXT" />' എന്നതിനുള്ള തിരയൽ ഫലം</translation> @@ -5144,7 +5114,6 @@ <translation id="9024331582947483881">പൂര്ണ്ണ സ്ക്രീന്</translation> <translation id="9025098623496448965">ശരി, എന്നെ സൈൻ ഇൻ സ്ക്രീനിലേക്ക് തിരിച്ചുകൊണ്ടുപോകുക</translation> <translation id="9026731007018893674">ഡൌണ്ലോഡുചെയ്യുക</translation> -<translation id="9027146684281895941">നിങ്ങളുടെ Google അക്കൗണ്ടിൽ നിന്ന് ഈ വ്യക്തി സന്ദർശിക്കുന്ന വെബ്സൈറ്റുകൾ നിയന്ത്രിക്കാനും കാണാനും ഇയാളെ നിരീക്ഷിക്കുക.</translation> <translation id="9027459031423301635">ലിങ്ക് പുതിയ &ടാബില് തുറക്കുക</translation> <translation id="9027603907212475920">സമന്വയം സജ്ജമാക്കുക...</translation> <translation id="9030515284705930323">നിങ്ങളുടെ അക്കൗണ്ടിന് വേണ്ടി ഓർഗനൈസേഷൻ, Google Play സ്റ്റോർ പ്രവർത്തനക്ഷമമാക്കിയിട്ടില്ല. കൂടുതൽ വിവരങ്ങൾക്ക്, അഡ്മിനിസ്ട്രേറ്ററെ ബന്ധപ്പെടുക.</translation>
diff --git a/chrome/app/resources/generated_resources_mr.xtb b/chrome/app/resources/generated_resources_mr.xtb index 9b975474..d392a99 100644 --- a/chrome/app/resources/generated_resources_mr.xtb +++ b/chrome/app/resources/generated_resources_mr.xtb
@@ -42,7 +42,6 @@ <translation id="1056898198331236512">चेतावणी</translation> <translation id="1058262162121953039">PUK</translation> <translation id="1062407476771304334">पुनर्स्थित करा</translation> -<translation id="1062866675591297858">आपले पर्यवेक्षित वापरकर्ते <ph name="BEGIN_LINK" />पर्यवेक्षित वापरकर्ते डॅशबोर्ड<ph name="END_LINK" /> द्वारे व्यवस्थापित करा.</translation> <translation id="1064835277883315402">खाजगी नेटवर्कवर रुजू व्हा</translation> <translation id="1064912851688322329">आपले Google खाते डिसकनेक्ट करा</translation> <translation id="1067048845568873861">तयार केले</translation> @@ -63,7 +62,6 @@ <translation id="1091767800771861448">वगळण्यासाठी ESCAPE दाबा (केवळ अनाधिकृत बिल्डसाठी).</translation> <translation id="1093457606523402488">दृश्यमान नेटवर्क:</translation> <translation id="1094607894174825014">अवैध ऑफसेटसह वाचा किंवा लिहा ऑपरेशनची यावर विनंती केली: "<ph name="DEVICE_NAME" />".</translation> -<translation id="1097507499312291972">ही व्यक्ती भेट देते त्या वेबसाइट नियंत्रित करण्यासाठी आणि पाहण्यासाठी <ph name="BEGIN_SIGN_IN_LINK" />साइन इन करा<ph name="END_SIGN_IN_LINK" />.</translation> <translation id="109758035718544977">साइट सशब्द करा</translation> <translation id="1097658378307015415">साइन इन करण्यापूर्वी, <ph name="NETWORK_ID" /> नेटवर्क सक्रिय करण्यासाठी कृपया अतिथी म्हणून प्रवेश करा.</translation> <translation id="1103523840287552314">नेहमी भाषांतर करा <ph name="LANGUAGE" /></translation> @@ -241,7 +239,6 @@ <translation id="1361655923249334273">न वापरलेले</translation> <translation id="1363028406613469049">ट्रॅक</translation> <translation id="1367951781824006909">फाइल निवडा</translation> -<translation id="136802136832547685">या डिव्हाइसमध्ये जोडण्यासाठी कोणतेही पर्यवेक्षी वापरकर्ते नाहीत.</translation> <translation id="1368265273904755308">समस्येचा अहवाल द्या</translation> <translation id="1370646789215800222">व्यक्तीस काढायचे?</translation> <translation id="1372681413396468867">{NUM_ITEMS,plural, =1{काढण्यासाठी 1 आयटम}one{काढण्यासाठी # आयटम}other{काढण्यासाठी # आयटम}}</translation> @@ -468,7 +465,6 @@ <translation id="1692799361700686467">एकाधिक साइटवरील कुकीजला परवानगी मिळाली. </translation> <translation id="169515659049020177">Shift</translation> <translation id="1698122934742150150">केवळ वर्तमान गुप्त सत्र</translation> -<translation id="1700199471143028312">आपला प्रशासक आपल्याला पर्यवेक्षी वापरकर्ते तयार करण्याची अनुमती देत नाही.</translation> <translation id="1701062906490865540">या व्यक्तीस काढा</translation> <translation id="1706586824377653884">आपल्या प्रशासकाने जोडले</translation> <translation id="1706625117072057435">झूम स्तर</translation> @@ -1034,7 +1030,6 @@ <translation id="2604255671529671813">नेटवर्क कनेक्शन एरर</translation> <translation id="2606246518223360146">डेटा लिंक करा</translation> <translation id="2607101320794533334">विषय सार्वजनिक की माहिती</translation> -<translation id="2607459012323956820">या पर्यवेक्षी वापरकर्त्यासाठी असलेला सेटिंग्ज आणि ब्राउझिंग इतिहास अद्याप व्यवस्थापकास <ph name="BEGIN_LINK" /><ph name="DISPLAY_LINK" /><ph name="END_LINK" /> वर दृश्यमान असू शकतो.</translation> <translation id="2608770217409477136">डीफॉल्ट सेटिंग्ज वापरा</translation> <translation id="2609896558069604090">शॉर्टकट तयार करा...</translation> <translation id="2610157865375787051">स्लीप</translation> @@ -1327,11 +1322,6 @@ <translation id="3022978424994383087">ते समजू शकले नाही.</translation> <translation id="3024374909719388945">24-तासांचे घड्याळ वापरा</translation> <translation id="302781076327338683">कॅश बायपास करणे रीलोड करा</translation> -<translation id="3030243755303701754">एक पर्यवेक्षी वापरकर्ता आपल्या मार्गदर्शनाने वेब एक्सप्लोर करू शकतो. Chrome मधील पर्यवेक्षी वापरकर्त्याचा व्यवस्थापक म्हणून, आपण हे करू शकता: -• विशिष्ट वेबसाइटना अनुमती देणे किंवा प्रतिबंधित करणे -• पर्यवेक्षी वापरकर्त्याने भेट दिलेल्या वेबसाइटचे पुनरावलोकन करणे आणि -• अन्य सेटिंग्ज व्यवस्थापित करणे. -पर्यवेक्षी वापरकर्ता तयार केल्यामुळे Google खाते तयार होत नाही आणि त्यांचे बुकमार्क, ब्राउझिंग इतिहास आणि अन्य प्राधान्ये Chrome संकालन असलेल्या इतर डिव्हाइसेसवर त्यांचे फॉलो करणार नाही. आपण एक नवीन पर्यवेक्षी वापरकर्ता तयार केल्यानंतर, आपण त्यांच्या सेटिंग्ज कधीही, कोणत्याही डिव्हाइस वरून, <ph name="BEGIN_MANAGE_LINK" /><ph name="DISPLAY_LINK" /><ph name="END_MANAGE_LINK" /> येथे व्यवस्थापित करू शकता. अधिक माहितीसाठी, आमच्या <ph name="BEGIN_LINK" /> मदत केंद्रास<ph name="END_LINK" /> भेट द्या.</translation> <translation id="3031417829280473749">एजंट X</translation> <translation id="3031557471081358569">आयात करण्यासाठी आयटम निवडा:</translation> <translation id="3031601332414921114">प्रिंट पुन्हा सुरू करा</translation> @@ -1372,7 +1362,6 @@ <translation id="3085412380278336437">साइट तुमचा कॅमेरा वापरू शकते</translation> <translation id="3085752524577180175">SOCKS होस्ट</translation> <translation id="3088325635286126843">&पुनर्नामित करा...</translation> -<translation id="3089231390674410424">आपल्या क्रेडेन्शियलसह समस्या असल्यासारखे दिसते आहे. कृपया आपण योग्यरितीने साइन इन केले असल्याची खात्री करा आणि पुन्हा प्रयत्न करा.</translation> <translation id="3090193911106258841">ऑडिओ आणि व्हिडिओ इनपुटमध्ये प्रवेश करत आहे</translation> <translation id="3090819949319990166">बाह्य crx फाईल <ph name="TEMP_CRX_FILE" /> वर कॉपी करू शकत नाही.</translation> <translation id="3090871774332213558">"<ph name="DEVICE_NAME" />" जोडले</translation> @@ -1387,7 +1376,6 @@ <translation id="3121793941267913344">हा <ph name="IDS_SHORT_PRODUCT_NAME" /> डिव्हाइस रीसेट करा</translation> <translation id="3122464029669770682">CPU</translation> <translation id="3122496702278727796">डेटा निर्देशिका तयार करण्यात अयशस्वी</translation> -<translation id="3123569374670379335">(पर्यवेक्षित)</translation> <translation id="3124111068741548686">वापरकर्ता हँडल</translation> <translation id="3126026824346185272">Ctrl</translation> <translation id="3127156390846601284">दर्शविलेल्या सर्व साइटसाठी आपल्या डिव्हाइसवर संचयित केलेल्या कोणत्याही डेटास हे हटवेल. आपण सुरु ठेवू इच्छिता?</translation> @@ -1422,8 +1410,6 @@ <translation id="3160842278951476457"><ph name="ISSUED_BY" /> [<ph name="ISSUED_TO" />] (हार्डवेअर-बॅक्ड)</translation> <translation id="316125635462764134">अॅप काढा</translation> <translation id="3161522574479303604">सर्व भाषा</translation> -<translation id="316307797510303346">ही व्यक्ती <ph name="CUSTODIAN_EMAIL" /> वरून भेट देते त्या वेबसाइट नियंत्रित करा आणि पहा - आपले खाते साइन इन तपशील कालबाह्य आहेत.</translation> <translation id="3165390001037658081">काही वाहक हे वैशिष्ट्य अवरोधित शकतात.</translation> <translation id="316854673539778496">तुमच्या सर्व डिव्हाइसवर तुमचे सर्व एक्स्टेंशन मिळवण्यासाठी, साइन इन करा आणि सिंंक करणे चालू करा.</translation> <translation id="3170072451822350649">आपण साइन इन वगळुन <ph name="LINK_START" />अतिथी म्हणून ब्राउझ<ph name="LINK_END" /> देखील करू शकता.</translation> @@ -1455,7 +1441,6 @@ <translation id="3229922550070982305">प्ले करा/थांबवा</translation> <translation id="3232318083971127729">मूल्य:</translation> <translation id="3236289833370040187">मालकी <ph name="DESTINATION_DOMAIN" /> कडे हस्तांतरित केली जाईल.</translation> -<translation id="3237784613213365159"><ph name="NEW_PROFILE_NAME" /> आता पर्यवेक्षी वापरकर्ता आहे</translation> <translation id="323803881985677942">विस्तार पर्याय उघडा</translation> <translation id="3241680850019875542">पॅक करण्यासाठी विस्ताराची मूळ निर्देशिका निवडा. एक विस्तार अपडेट करण्याकरिता, पुनर्वापरासाठी खाजगी की फाइल देखील निवडा.</translation> <translation id="3242765319725186192">पूर्व-सामायिक की:</translation> @@ -1819,7 +1804,6 @@ <translation id="3778152852029592020">डाउनलोड रद्द झाले.</translation> <translation id="3778740492972734840">&विकसक साधने</translation> <translation id="3778868487658107119">त्याला प्रश्न विचारा. त्याला गोष्टी करण्यास सांगा. ते खास तुमचे Google आहे, मदतीसाठी सदैव तत्पर.</translation> -<translation id="3780663724044634171">पर्यवेक्षी वापरकर्ता व्यवस्थापित करण्यासाठी एक खाते निवडा.</translation> <translation id="378312418865624974">या संगणकासाठी एक अद्वितीय अभिज्ञापक वाचा</translation> <translation id="3783640748446814672">alt</translation> <translation id="3785308913036335955">अॅप्स शॉर्टकट दर्शवा</translation> @@ -2536,7 +2520,6 @@ <translation id="4964455510556214366">व्यवस्था</translation> <translation id="4964673849688379040">तपासत आहे...</translation> <translation id="4965808351167763748">तुम्हाला हे डिव्हाइस Hangouts Meet वापरण्यासाठी खरोखर सेट अप करायचे आहे का?</translation> -<translation id="4967749818080339523">एक खाते निवडा</translation> <translation id="496888482094675990">फायली अॅप आपण Google ड्राइव्हवर, बाह्य संचयनावर किंवा आपल्या Chrome OS डिव्हाइसेसवर जतन केलेल्या फायलींना द्रुत प्रवेश प्रदान करतो.</translation> <translation id="4969785127455456148">अल्बम</translation> <translation id="4971412780836297815">पूर्ण झाल्यानंतर उघडा</translation> @@ -3368,7 +3351,6 @@ <translation id="6241530762627360640">आपल्या सिस्टीमशी जोडलेल्या Bluetooth डिव्हाइसविषयीच्या माहितीवर प्रवेश करा आणि जवळपासचे Bluetooth डिव्हाइसेस शोधा.</translation> <translation id="6243280677745499710">सध्या सेट केला आहे</translation> <translation id="6243774244933267674">सर्व्हर अनुपलब्ध</translation> -<translation id="6246413617632217567">पर्यवेक्षी वापरकर्ता आयात केला जाऊ शकला नाही. कृपया आपली हार्ड ड्राइव्ह जागा आणि परवानग्या तपासा आणि पुन्हा प्रयत्न करा.</translation> <translation id="6247708409970142803"><ph name="PERCENTAGE" />%</translation> <translation id="6247802389331535091">सिस्टम: <ph name="ARC_PROCESS_NAME" /></translation> <translation id="624789221780392884">अपडेट तयार</translation> @@ -3568,7 +3550,6 @@ <translation id="654039047105555694"><ph name="BEGIN_BOLD" />टीप:<ph name="END_BOLD" /> डेटाचे संकलन कार्यप्रदर्शन कमी करू शकत असल्यामुळे, आपण काय करत आहात हे केवळ आपल्याला माहिती असल्यास किंवा असे करण्यास आपल्याला सांगितले गेले असल्यास सक्षम करा.</translation> <translation id="654233263479157500">नेव्हिगेशन त्रुटींच्या निराकरणात मदतीसाठी वेब सेवा वापरा</translation> <translation id="6544215763872433504">तुमच्यासाठी, Google द्वारे वेब ब्राउझर</translation> -<translation id="6545325945815270297"><ph name="BEGIN_LINK" />Chrome डॅशबोर्ड<ph name="END_LINK" /> वर आपला संकालित डेटा आणि डिव्हाइस व्यवस्थाापित करा.</translation> <translation id="6545665334409411530">पुनरावृत्ती दर</translation> <translation id="6545834809683560467">अॅड्रेस बारमध्ये किंवा अॅप लाँचरमध्ये टाइप केलेले शोध आणि URL पूर्ण करण्यात मदतीसाठी पूर्वानुमान सेवा वापरा</translation> <translation id="6546686722964485737">WiMAX नेटवर्कमध्ये सामील व्हा</translation> @@ -3583,7 +3564,6 @@ <translation id="6555810572223193255">क्लीनअप सध्या अनुपलब्ध आहे</translation> <translation id="6556866813142980365">पुन्हा करा</translation> <translation id="6558280019477628686">एक एरर आली. काही आयटम हटवता आले नाहीत.</translation> -<translation id="6559580823502247193">(आधीपासून या डिव्हाइसवर)</translation> <translation id="6561726789132298588">प्रविष्ट करा</translation> <translation id="656293578423618167">फाइल पथ किंवा नाव खूप मोठे आहे. कृपया एका छोट्या नावाने किंवा दुसर्या स्थानावर सेव्ह करा. </translation> <translation id="656398493051028875">"<ph name="FILENAME" />" हटवत आहे...</translation> @@ -3778,7 +3758,6 @@ <translation id="6862635236584086457">या फोल्डरमध्ये जतन केलेल्या सर्व फायलींचा स्वयंचलितपणे ऑनलाइन बॅक अप घेतला जातो</translation> <translation id="6865313869410766144">स्वयं-भरण फॉर्म डेटा</translation> <translation id="686664946474413495">रंगाचे तापमान</translation> -<translation id="6867678160199975333"><ph name="NEW_PROFILE_NAME" /> वर स्विच करा</translation> <translation id="6870888490422746447">यासह सामायिक करण्यासाठी एक अॅप निवडा:</translation> <translation id="6871644448911473373">OCSP प्रतिसादकर्ता: <ph name="LOCATION" /></translation> <translation id="6872781471649843364">तुम्ही टाकलेला पासवर्ड सर्व्हरने नाकारला होता.</translation> @@ -3872,7 +3851,6 @@ <translation id="7018275672629230621">आपला ब्राउझिंग इतिहास वाचा आणि बदला</translation> <translation id="7019805045859631636">जलद</translation> <translation id="7022562585984256452">आपले मुख्यपृष्ठ सेट केले गेले आहे.</translation> -<translation id="7025036625303002400">आपल्याकडे आधीपासून या नावाचा पर्यवेक्षी वापरकर्ता आहे.</translation> <translation id="7025190659207909717">मोबाइल डेटा सेवा व्यवस्थापन</translation> <translation id="7025325401470358758">पुढील उपखंड</translation> <translation id="7027125358315426638">डेटाबेस नाव:</translation> @@ -3921,7 +3899,6 @@ <translation id="7092106376816104">पॉप-अप अपवाद</translation> <translation id="7093434536568905704">GTK+</translation> <translation id="7093866338626856921">या नावाच्या डिव्हाइसेससह डेटा अदलाबदल करा: <ph name="HOSTNAMES" /></translation> -<translation id="7096108453481049031">पर्यवेक्षी वापरकर्ता आयात केला जाऊ शकला नाही. कृपया आपले नेटवर्क कनेक्शन तपासा आणि नंतर पुन्हा प्रयत्न करा.</translation> <translation id="7098447629416471489">इतर जतन शोध इंजिन येथे दिसून येतील</translation> <translation id="7099337801055912064">मोठ्या PPD लोड करू शकत नाही. कमाल आकार 250kB आहे.</translation> <translation id="7100897339030255923"><ph name="COUNT" /> आयटम निवडले</translation> @@ -3968,7 +3945,6 @@ <translation id="7168109975831002660">किमान फॉन्ट आकार</translation> <translation id="7170041865419449892">परिक्षेत्राबाहेर</translation> <translation id="7171559745792467651">तुमच्या इतर डिव्हाइसवरून अॅप्स इंस्टॉल करा</translation> -<translation id="7173917244679555">आपण त्या नावाने आधीपासून एका वापरकर्त्यास व्यवस्थापित करत असल्याचे दिसते. आपल्याला या डिव्हाइसवर <ph name="BEGIN_LINK" />आयात <ph name="PROFILE_NAME" /><ph name="END_LINK" /> करावयाचे होते?</translation> <translation id="7175037578838465313"><ph name="NAME" /> कॉन्फिगर करा</translation> <translation id="7175353351958621980">येथून लोड केले:</translation> <translation id="7180611975245234373">रिफ्रेश करा</translation> @@ -4140,7 +4116,6 @@ <translation id="7444726222535375658">Hangouts Meet सुरू ठेवा</translation> <translation id="7444983668544353857"><ph name="NETWORKDEVICE" /> अक्षम करा</translation> <translation id="7445682342344043969">पॉप-अप ब्लॉक केले</translation> -<translation id="744859430125590922">ही व्यक्ती <ph name="CUSTODIAN_EMAIL" /> वरून भेट देते त्या वेबसाइट नियंत्रित करा आणि पहा.</translation> <translation id="7453008956351770337">हा प्रिंटर निवडून, आपण खालील विस्तारास आपल्या प्रिंटरमध्ये प्रवेश करण्याची परवानगी देत आहात:</translation> <translation id="7453467225369441013">तुम्हाला बहुतांश साइटमधून साइन आउट करते. तुम्हाला तुमच्या Google खात्यामधून साइन आउट केले जाणार नाही.</translation> <translation id="7456142309650173560">dev</translation> @@ -4313,7 +4288,6 @@ <translation id="7717845620320228976">अपडेट तपासा</translation> <translation id="7719367874908701697">पृष्ठ झूम करा</translation> <translation id="771953673318695590">QA</translation> -<translation id="7720375555307821262">या व्यक्तीचे पर्यवेक्षण करण्यासाठी, <ph name="BEGIN_LINK" />Chrome मध्ये साइन इन करा<ph name="END_LINK" />.</translation> <translation id="7721179060400456005">विंडोला दृश्ये स्पॅन करण्याची अनुमती द्या</translation> <translation id="7722040605881499779">अपडेटसाठी आवश्यक: <ph name="NECESSARY_SPACE" /></translation> <translation id="7724603315864178912">कट करा</translation> @@ -5142,7 +5116,6 @@ <translation id="9024331582947483881">पूर्ण स्क्रीन</translation> <translation id="9025098623496448965">ठीक, मला परत साइन इन स्क्रीनवर न्या</translation> <translation id="9026731007018893674">डाउनलोड करा</translation> -<translation id="9027146684281895941">आपल्या Google खात्यामधून ते ज्या वेबसाइटना भेट देतात त्या नियंत्रित करण्यासाठी आणि पाहण्यासाठी या व्यक्तीचे पर्यवेक्षण करा.</translation> <translation id="9027459031423301635">नवीन &टॅबमध्ये दुवा उघडा</translation> <translation id="9027603907212475920">sync सेट अप करा...</translation> <translation id="9030515284705930323">आपल्या संस्थेने आपल्या खात्यासाठी Google Play स्टोअर सक्षम केले नाही. अधिक माहितीसाठी आपल्या प्रशासकाशी संपर्क साधा.</translation>
diff --git a/chrome/app/resources/generated_resources_ms.xtb b/chrome/app/resources/generated_resources_ms.xtb index cd4ba69..212dd264 100644 --- a/chrome/app/resources/generated_resources_ms.xtb +++ b/chrome/app/resources/generated_resources_ms.xtb
@@ -42,7 +42,6 @@ <translation id="1056898198331236512">Amaran</translation> <translation id="1058262162121953039">PUK</translation> <translation id="1062407476771304334">Gantikan</translation> -<translation id="1062866675591297858">Urus pengguna di bawah seliaan anda melalui <ph name="BEGIN_LINK" />Papan Pemuka Pengguna Di Bawah Seliaan<ph name="END_LINK" />.</translation> <translation id="1064835277883315402">Sertai rangkaian persendirian</translation> <translation id="1064912851688322329">Putuskan sambungan Akaun Google anda</translation> <translation id="1067048845568873861">Dibuat</translation> @@ -65,7 +64,6 @@ <translation id="1091767800771861448">Tekan ESCAPE untuk melangkau (Binaan tidak rasmi sahaja).</translation> <translation id="1093457606523402488">Rangkaian Kelihatan:</translation> <translation id="1094607894174825014">Pengendalian baca atau tulis diminta dengan ofset tidak sah pada: "<ph name="DEVICE_NAME" />".</translation> -<translation id="1097507499312291972"><ph name="BEGIN_SIGN_IN_LINK" />Log masuk<ph name="END_SIGN_IN_LINK" /> untuk mengawal dan melihat laman web yang dilawati oleh orang ini.</translation> <translation id="109758035718544977">Nyahredam Tapak</translation> <translation id="1097658378307015415">Sebelum log masuk, sila masuk sebagai Tetamu untuk mengaktifkan rangkaian <ph name="NETWORK_ID" /></translation> <translation id="1103523840287552314">Sentiasa terjemahkan <ph name="LANGUAGE" /></translation> @@ -244,7 +242,6 @@ <translation id="1361655923249334273">Tidak digunakan</translation> <translation id="1363028406613469049">Penjejakan</translation> <translation id="1367951781824006909">Pilih fail</translation> -<translation id="136802136832547685">Tiada pengguna di bawah seliaan untuk ditambahkan pada peranti ini.</translation> <translation id="1368265273904755308">Laporkan isu</translation> <translation id="1370646789215800222">Alih keluar orang?</translation> <translation id="1372681413396468867">{NUM_ITEMS,plural, =1{1 item untuk dialih keluar}other{# item untuk dialih keluar}}</translation> @@ -472,7 +469,6 @@ <translation id="1692799361700686467">Kuki daripada berbilang tapak dibenarkan.</translation> <translation id="169515659049020177">Shift</translation> <translation id="1698122934742150150">Sesi inkognito semasa sahaja</translation> -<translation id="1700199471143028312">Pentadbir anda tidak membenarkan anda membuat pengguna di bawah seliaan.</translation> <translation id="1701062906490865540">Alih keluar orang ini</translation> <translation id="1706586824377653884">Ditambahkan oleh pentadbir anda</translation> <translation id="1706625117072057435">Tahap zum</translation> @@ -1042,7 +1038,6 @@ <translation id="2604255671529671813">Ralat sambungan rangkaian</translation> <translation id="2606246518223360146">Pautkan Data</translation> <translation id="2607101320794533334">Maklumat Penting Subjek Awam</translation> -<translation id="2607459012323956820">Tetapan dan sejarah penyemakan imbas untuk pengguna di bawah seliaan ini masih boleh dilihat oleh pengurus di <ph name="BEGIN_LINK" /><ph name="DISPLAY_LINK" /><ph name="END_LINK" />.</translation> <translation id="2608770217409477136">Gunakan tetapan lalai</translation> <translation id="2609896558069604090">Buat Pintasan...</translation> <translation id="2610157865375787051">Tidur</translation> @@ -1285,7 +1280,6 @@ <translation id="2951247061394563839">Tetingkap tengah</translation> <translation id="2956763290572484660"><ph name="COOKIES" /> kuki</translation> <translation id="2958721676848865875">Amaran sambungan pek</translation> -<translation id="2961043351165706615">Apl Linux yang telah anda pasang akan dipadamkan daripada Chromebook ini.</translation> <translation id="2961090598421146107"><ph name="CERTIFICATE_NAME" /> (sambungan disediakan)</translation> <translation id="2961695502793809356">Klik untuk ke hadapan, tahan untuk melihat sejarah</translation> <translation id="2963151496262057773">Pemalam berikut tidak responsif: <ph name="PLUGIN_NAME" />Adakah anda ingin menghentikannya?</translation> @@ -1337,15 +1331,6 @@ <translation id="3022978424994383087">Tidak faham.</translation> <translation id="3024374909719388945">Gunakan jam 24 jam</translation> <translation id="302781076327338683">Muat semula cache yang memintas</translation> -<translation id="3030243755303701754">Pengguna di bawah seliaan boleh meneroka web dengan bimbingan anda. Sebagai pengurus pengguna di bawah seliaan dalam Chrome, anda boleh: - - • membenarkan atau melarang tapak web tertentu, - • menyemak tapak web yang telah dilawati oleh pengguna di bawah seliaan dan - • mengurus tetapan lain. - -Apabila anda membuat pengguna di bawah seliaan, anda tidak membuat Akaun Google dan penanda halaman, sejarah penyemakan imbas serta pilihan mereka yang lain tidak akan dibawa bersama mereka ke peranti lain dengan Penyegerakan Chrome. Selepas anda membuat pengguna di bawah seliaan baharu, anda boleh mengurus tetapan mereka pada bila-bila masa, daripada mana-mana peranti di <ph name="BEGIN_MANAGE_LINK" /><ph name="DISPLAY_LINK" /><ph name="END_MANAGE_LINK" />. - -Untuk mendapatkan maklumat lanjut, lawati <ph name="BEGIN_LINK" />Pusat Bantuan<ph name="END_LINK" /> kami.</translation> <translation id="3031417829280473749">Ejen X</translation> <translation id="3031557471081358569">Pilih item untuk mengimport:</translation> <translation id="3031601332414921114">Sambung semula pencetakan</translation> @@ -1386,7 +1371,6 @@ <translation id="3085412380278336437">Tapak boleh menggunakan kamera anda</translation> <translation id="3085752524577180175">Hos SOCKS</translation> <translation id="3088325635286126843">&Namakan semula...</translation> -<translation id="3089231390674410424">Nampaknya ada masalah dengan bukti kelayakan anda. Sila pastikan anda telah dilog masuk dengan betul dan cuba lagi.</translation> <translation id="3090193911106258841">Mengakses input audio dan video</translation> <translation id="3090819949319990166">Tidak dapat menyalin fail crx luar ke <ph name="TEMP_CRX_FILE" />.</translation> <translation id="3090871774332213558">"<ph name="DEVICE_NAME" />" digandingkan</translation> @@ -1401,7 +1385,6 @@ <translation id="3121793941267913344">Tetapkan semula peranti <ph name="IDS_SHORT_PRODUCT_NAME" /> ini</translation> <translation id="3122464029669770682">CPU</translation> <translation id="3122496702278727796">Gagal Untuk Mencipta Direktori Data</translation> -<translation id="3123569374670379335">(Diselia)</translation> <translation id="3124111068741548686">Pemegang USER</translation> <translation id="3126026824346185272">Ctrl</translation> <translation id="3127156390846601284">Tindakan ini akan memadamkan mana-mana data yang disimpan pada peranti anda untuk semua tapak yang ditunjukkan. Anda ingin teruskan?</translation> @@ -1436,8 +1419,6 @@ <translation id="3160842278951476457"><ph name="ISSUED_BY" /> [<ph name="ISSUED_TO" />] (disokong perkakasan)</translation> <translation id="316125635462764134">Alih keluar apl</translation> <translation id="3161522574479303604">Semua bahasa</translation> -<translation id="316307797510303346">Kawal dan lihat tapak web yang dilawati oleh orang ini dari <ph name="CUSTODIAN_EMAIL" />. - Butiran log masuk akaun anda sudah lapuk.</translation> <translation id="3165390001037658081">Sesetengah pembawa mungkin menyekat ciri ini.</translation> <translation id="316854673539778496">Log masuk dan hidupkan penyegerakan untuk mendapatkan semua sambungan pada semua peranti anda.</translation> <translation id="3170072451822350649">Anda juga boleh melangkau log masuk dan <ph name="LINK_START" />menyemak imbas sebagai tetamu<ph name="LINK_END" />.</translation> @@ -1470,7 +1451,6 @@ <translation id="3229922550070982305">main / jeda</translation> <translation id="3232318083971127729">Nilai:</translation> <translation id="3236289833370040187">Pemilikan akan dipindahkan ke <ph name="DESTINATION_DOMAIN" />.</translation> -<translation id="3237784613213365159"><ph name="NEW_PROFILE_NAME" /> kini menjadi pengguna di bawah seliaan</translation> <translation id="323803881985677942">Buka pilihan sambungan</translation> <translation id="3241680850019875542">Pilih direktori akar bagi sambungan untuk pek. Untuk mengemas kini sambungan, pilih kunci persendirian untuk gunakan semula juga.</translation> <translation id="3242765319725186192">Kekunci prakongsi:</translation> @@ -1702,7 +1682,6 @@ <translation id="3584169441612580296">Baca dan ubah foto, muzik dan media lain daripada komputer anda</translation> <translation id="3587482841069643663">Semua</translation> <translation id="358796204584394954">Taip kod ini pada "<ph name="DEVICE_NAME" />" untuk digandingkan:</translation> -<translation id="3589532742556016615">Tindakan ini tidak menjejaskan apl atau kandungan pada peranti lain.</translation> <translation id="3589766037099229847">Kandungan tidak selamat disekat</translation> <translation id="3590194807845837023">Buka Profil dan Lancarkan Semula</translation> <translation id="3592260987370335752">&Ketahui lebih lanjut</translation> @@ -1836,7 +1815,6 @@ <translation id="3778152852029592020">Muat turun telah dibatalkan.</translation> <translation id="3778740492972734840">&Alat pembangun</translation> <translation id="3778868487658107119">Tanya soalan dan berikannya tugas. Peranti ini ialah Google peribadi anda yang sentiasa bersedia untuk membantu.</translation> -<translation id="3780663724044634171">Pilih akaun untuk mengurus pengguna di bawah seliaan.</translation> <translation id="378312418865624974">Baca pengecam unik untuk komputer ini</translation> <translation id="3783640748446814672">alt</translation> <translation id="3785308913036335955">Paparkan Pintasan Apl</translation> @@ -2564,7 +2542,6 @@ <translation id="4964455510556214366">Susunan</translation> <translation id="4964673849688379040">Menyemak...</translation> <translation id="4965808351167763748">Adakah anda pasti ingin menyediakan peranti ini untuk menjalankan Hangout Meet?</translation> -<translation id="4967749818080339523">Pilih akaun</translation> <translation id="496888482094675990">Apl Fail memberikan akses pantas kepada fail yang telah anda simpan di Google Drive, storan luaran atau peranti OS Chrome anda.</translation> <translation id="4969785127455456148">Album</translation> <translation id="4971412780836297815">Buka apabila selesai</translation> @@ -2751,7 +2728,6 @@ Tidak kira apa yang berlaku kepada peranti anda, fail anda disimpan dengan selamat dalam Google Drive.<ph name="MARKUP_6" /> <ph name="MARKUP_7" />Kongsi, buat dan bekerjasama<ph name="MARKUP_8" /> pada fail dengan orang lain, semuanya pada satu tempat.<ph name="MARKUP_9" /></translation> -<translation id="5262401745672360397">Fail yang dikongsi dengan apl Linux mungkin turut dipadamkan.</translation> <translation id="5264148714798105376">Proses ini mungkin mengambil masa seminit atau lebih.</translation> <translation id="5264252276333215551">Sila sambung ke Internet untuk melancarkan apl anda dalam mod kios.</translation> <translation id="5265562206369321422">Di luar talian selama lebih seminggu</translation> @@ -3403,7 +3379,6 @@ <translation id="6241530762627360640">Akses maklumat mengenai peranti Bluetooth yang dipasangkan dengan sistem anda dan temui peranti Bluetooth berhampiran.</translation> <translation id="6243280677745499710">Ditetapkan pada masa ini</translation> <translation id="6243774244933267674">Pelayan tidak tersedia</translation> -<translation id="6246413617632217567">Pengguna di bawah seliaan tidak dapat diimport. Sila semak ruang pemacu keras dan kebenaran anda, kemudian cuba lagi.</translation> <translation id="6247708409970142803"><ph name="PERCENTAGE" />%</translation> <translation id="6247802389331535091">Sistem: <ph name="ARC_PROCESS_NAME" /></translation> <translation id="624789221780392884">Kemaskini bersedia</translation> @@ -3602,7 +3577,6 @@ <translation id="654039047105555694"><ph name="BEGIN_BOLD" />Perhatian:<ph name="END_BOLD" /> Dayakan hanya jika anda pasti akan perkara yang anda lakukan atau jika anda telah diminta melakukan sedemikian, kerana pengumpulan data boleh mengurangkan prestasi.</translation> <translation id="654233263479157500">Gunakan perkhidmatan web untuk membantu menyelesaikan ralat navigasi</translation> <translation id="6544215763872433504">Penyemak imbas web oleh Google, untuk anda</translation> -<translation id="6545325945815270297">Urus peranti dan data anda yang disegerakkan pada <ph name="BEGIN_LINK" />Papan Pemuka Chrome<ph name="END_LINK" />.</translation> <translation id="6545665334409411530">Kadar pengulangan</translation> <translation id="6545834809683560467">Gunakan perkhidmatan ramalan untuk membantu menyelesaikan carian dan URL yang ditaip dalam bar alamat atau kotak carian pelancar apl</translation> <translation id="6546686722964485737">Sertai rangkaian WIMAX</translation> @@ -3617,7 +3591,6 @@ <translation id="6555810572223193255">Pembersihan tidak tersedia pada masa ini</translation> <translation id="6556866813142980365">Buat semula</translation> <translation id="6558280019477628686">Ralat berlaku. Sesetengah item mungkin tidak dipadamkan.</translation> -<translation id="6559580823502247193">(sudah ada pada peranti ini)</translation> <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="656398493051028875">Memadamkan "<ph name="FILENAME" />"...</translation> @@ -3814,7 +3787,6 @@ <translation id="6862635236584086457">Semua fail yang disimpan di dalam folder ini disokong dalam talian secara automatik</translation> <translation id="6865313869410766144">Autolengkap data borang</translation> <translation id="686664946474413495">Suhu warna</translation> -<translation id="6867678160199975333">Beralih kepada <ph name="NEW_PROFILE_NAME" /></translation> <translation id="6870888490422746447">Pilih apl untuk berkongsi ke:</translation> <translation id="6871644448911473373">Pengulas OCSP: <ph name="LOCATION" /></translation> <translation id="6872781471649843364">Kata laluan yang anda masukkan telah ditolak oleh pelayan.</translation> @@ -3908,7 +3880,6 @@ <translation id="7018275672629230621">Baca dan ubah sejarah penyemakan imbas anda</translation> <translation id="7019805045859631636">Cepat</translation> <translation id="7022562585984256452">Halaman utama anda telah ditetapkan.</translation> -<translation id="7025036625303002400">Nampaknya anda sudah mempunyai pengguna di bawah seliaan dengan nama ini.</translation> <translation id="7025190659207909717">Pengurusan perkhidmatan data mudah alih</translation> <translation id="7025325401470358758">Anak tetingkap seterusnya</translation> <translation id="7027125358315426638">Nama pangkalan data:</translation> @@ -3957,7 +3928,6 @@ <translation id="7092106376816104">Pengecualian pop timbul</translation> <translation id="7093434536568905704">GTK+</translation> <translation id="7093866338626856921">Bertukar data dengan peranti yang bernama: <ph name="HOSTNAMES" /></translation> -<translation id="7096108453481049031">Pengguna di bawah seliaan tidak dapat diimport. Sila semak sambungan rangkaian anda dan cuba sebentar lagi.</translation> <translation id="7096406577040705016">Togo Penggadang Skrin Penuh</translation> <translation id="7098447629416471489">Enjin carian lain yang disimpan akan kelihatan di sini</translation> <translation id="7099337801055912064">Tidak dapat memuatkan PPD bersaiz besar. Saiz maksimum ialah 250 KB.</translation> @@ -4005,7 +3975,6 @@ <translation id="7168109975831002660">Saiz fon minimum</translation> <translation id="7170041865419449892">Di luar lingkungan</translation> <translation id="7171559745792467651">Pasang apl daripada peranti anda yang lain</translation> -<translation id="7173917244679555">Nampaknya anda sudah pun mengurus pengguna yang menggunakan nama itu. Adakah anda ingin <ph name="BEGIN_LINK" />mengimport <ph name="PROFILE_NAME" /><ph name="END_LINK" /> ke peranti ini?</translation> <translation id="7175037578838465313">Konfigurasikan <ph name="NAME" /></translation> <translation id="7175353351958621980">Dimuatkan daripada:</translation> <translation id="7180611975245234373">Muat semula</translation> @@ -4176,7 +4145,6 @@ <translation id="7444726222535375658">Teruskan ke Hangout Meet</translation> <translation id="7444983668544353857">Lumpuhkan <ph name="NETWORKDEVICE" /></translation> <translation id="7445682342344043969">Tetingkap timbul disekat</translation> -<translation id="744859430125590922">Kawal dan lihat laman web yang dilawati oleh orang ini dari <ph name="CUSTODIAN_EMAIL" /> .</translation> <translation id="7453008956351770337">Dengan memilih pencetak ini, anda memberi sambungan berikut kebenaran untuk mengakses pencetak anda:</translation> <translation id="7453467225369441013">Mengelog anda keluar daripada kebanyakan tapak. Anda tidak akan dilog keluar daripada Akaun Google anda.</translation> <translation id="7456142309650173560">Pembangunan</translation> @@ -4350,7 +4318,6 @@ <translation id="7717845620320228976">Semak kemas kini</translation> <translation id="7719367874908701697">Zum halaman</translation> <translation id="771953673318695590">S&J</translation> -<translation id="7720375555307821262">Untuk menyelia orang ini, <ph name="BEGIN_LINK" />log masuk ke Chrome<ph name="END_LINK" />.</translation> <translation id="7721179060400456005">Benarkan tetingkap mengembangkan paparan</translation> <translation id="7722040605881499779">Diperlukan untuk mengemas kini: <ph name="NECESSARY_SPACE" /></translation> <translation id="7724603315864178912">Potong</translation> @@ -5206,7 +5173,6 @@ <translation id="9024331582947483881">skrin penuh</translation> <translation id="9025098623496448965">OK, Bawa saya kembali ke skrin log masuk</translation> <translation id="9026731007018893674">muat turun</translation> -<translation id="9027146684281895941">Selia orang ini untuk mengawal dan melihat tapak web yang mereka lawati daripada Akaun Google anda.</translation> <translation id="9027459031423301635">Buka Pautan dalam Tab &Baharu</translation> <translation id="9027603907212475920">Sediakan segerak...</translation> <translation id="9030515284705930323">Organisasi anda belum mendayakan Gedung Google Play untuk akaun anda. Hubungi pentadbir anda untuk mendapatkan maklumat lanjut.</translation> @@ -5366,7 +5332,6 @@ <translation id="98515147261107953">Lanskap</translation> <translation id="987897973846887088">Tiada imej tersedia</translation> <translation id="988978206646512040">Ungkapan laluan yang dikosongkan tidak dibenarkan</translation> -<translation id="990310048453480215">Alih keluar Apl Linux</translation> <translation id="992032470292211616">Sambungan, apl dan tema boleh mengancam peranti anda. Adakah anda pasti mahu meneruskan?</translation> <translation id="992592832486024913">Lumpuhkan ChromeVox (maklum balas dituturkan)</translation> <translation id="994289308992179865">&Gelung</translation>
diff --git a/chrome/app/resources/generated_resources_nl.xtb b/chrome/app/resources/generated_resources_nl.xtb index 0783157..a6a80dcf 100644 --- a/chrome/app/resources/generated_resources_nl.xtb +++ b/chrome/app/resources/generated_resources_nl.xtb
@@ -42,7 +42,6 @@ <translation id="1056898198331236512">Waarschuwing</translation> <translation id="1058262162121953039">Pukcode</translation> <translation id="1062407476771304334">Vervangen</translation> -<translation id="1062866675591297858">Beheer je bewaakte gebruikers via het <ph name="BEGIN_LINK" />Dashboard voor bewaakte gebruikers<ph name="END_LINK" />.</translation> <translation id="1064835277883315402">Aanmelden bij privénetwerk</translation> <translation id="1064912851688322329">Je Google-account ontkoppelen</translation> <translation id="1067048845568873861">Gemaakt</translation> @@ -65,7 +64,6 @@ <translation id="1091767800771861448">Druk op ESCAPE om over te slaan (alleen voor niet-officiële builds).</translation> <translation id="1093457606523402488">Zichtbare netwerken:</translation> <translation id="1094607894174825014">Lees- of schrijfbewerking is aangevraagd met een ongeldige verschuiving op: <ph name="DEVICE_NAME" />.</translation> -<translation id="1097507499312291972"><ph name="BEGIN_SIGN_IN_LINK" />Log in<ph name="END_SIGN_IN_LINK" /> om de websites die deze persoon bezoekt te beheren en te bekijken.</translation> <translation id="109758035718544977">Geluid van sites dempen opheffen</translation> <translation id="1097658378307015415">Voordat je inlogt, log je eerst in als gast om het netwerk <ph name="NETWORK_ID" /> te activeren.</translation> <translation id="1103523840287552314"><ph name="LANGUAGE" /> altijd vertalen</translation> @@ -244,7 +242,6 @@ <translation id="1361655923249334273">Ongebruikt</translation> <translation id="1363028406613469049">Track</translation> <translation id="1367951781824006909">Een bestand selecteren</translation> -<translation id="136802136832547685">Er zijn geen gebruikers met beperkte rechten om toe te voegen aan dit apparaat.</translation> <translation id="1368265273904755308">Probleem melden</translation> <translation id="1370646789215800222">Persoon verwijderen?</translation> <translation id="1372681413396468867">{NUM_ITEMS,plural, =1{1 item dat wordt verwijderd}other{# items die worden verwijderd}}</translation> @@ -472,7 +469,6 @@ <translation id="1692799361700686467">Cookies van meerdere sites toegestaan.</translation> <translation id="169515659049020177">Shift</translation> <translation id="1698122934742150150">Alleen huidige incognitosessie</translation> -<translation id="1700199471143028312">Je beheerder staat niet toe dat je gebruikers met beperkte rechten maakt.</translation> <translation id="1701062906490865540">Deze persoon verwijderen</translation> <translation id="1706586824377653884">Toegevoegd door je beheerder</translation> <translation id="1706625117072057435">Zoomniveaus</translation> @@ -1041,7 +1037,6 @@ <translation id="2604255671529671813">Fout bij netwerkverbinding</translation> <translation id="2606246518223360146">Gegevens linken</translation> <translation id="2607101320794533334">Informatie van openbare sleutel van entiteit</translation> -<translation id="2607459012323956820">De instellingen en browsegeschiedenis voor deze gebruiker met beperkte rechten kunnen nog steeds zichtbaar zijn voor de beheerder op <ph name="BEGIN_LINK" /><ph name="DISPLAY_LINK" /><ph name="END_LINK" />.</translation> <translation id="2608770217409477136">Standaardinstellingen gebruiken</translation> <translation id="2609896558069604090">Snelle links maken...</translation> <translation id="2610157865375787051">Slaapstand</translation> @@ -1284,7 +1279,6 @@ <translation id="2951247061394563839">Venster centreren</translation> <translation id="2956763290572484660"><ph name="COOKIES" /> cookies</translation> <translation id="2958721676848865875">Waarschuwing over pakketextensie</translation> -<translation id="2961043351165706615">Linux-apps die je hebt geïnstalleerd, worden verwijderd van deze Chromebook.</translation> <translation id="2961090598421146107"><ph name="CERTIFICATE_NAME" /> (door extensie geleverd)</translation> <translation id="2961695502793809356">Klik om verder te gaan, houd ingedrukt om de geschiedenis weer te geven</translation> <translation id="2963151496262057773">De volgende plug-in reageert niet meer: <ph name="PLUGIN_NAME" />Wil je deze beëindigen?</translation> @@ -1336,15 +1330,6 @@ <translation id="3022978424994383087">Dat heb ik niet verstaan.</translation> <translation id="3024374909719388945">24-uurs klok gebruiken</translation> <translation id="302781076327338683">Opnieuw laden en cachegeheugen omzeilen</translation> -<translation id="3030243755303701754">Een gebruiker met beperkte rechten kan onder jouw toezicht browsen op internet. Als beheerder van een gebruiker met beperkte rechten in Chrome kun je: - - • de toegang tot bepaalde websites toestaan of blokkeren, - • website controleren die de gebruiker met beperkte rechten heeft bezocht, en - • andere instellingen beheren. - -Als je een gebruiker met beperkte rechten toevoegt, wordt er geen Google-account gemaakt, en worden de bladwijzers, browsegeschiedenis en andere voorkeuren van de gebruiker met beperkte rechten niet via Chrome-synchronisatie overgezet naar andere apparaten. Nadat je een nieuwe gebruiker met beperkte rechten hebt toegevoegd, kun je de instellingen van deze gebruiker op elk gewenst moment en vanaf elk apparaat beheren op <ph name="BEGIN_MANAGE_LINK" /><ph name="DISPLAY_LINK" /><ph name="END_MANAGE_LINK" />. - -Ga naar ons <ph name="BEGIN_LINK" />Helpcentrum<ph name="END_LINK" /> voor meer informatie.</translation> <translation id="3031417829280473749">Agente X</translation> <translation id="3031557471081358569">Selecteer items die je wilt importeren:</translation> <translation id="3031601332414921114">Afdrukken hervatten</translation> @@ -1385,7 +1370,6 @@ <translation id="3085412380278336437">Site kan je camera gebruiken</translation> <translation id="3085752524577180175">SOCKS-host</translation> <translation id="3088325635286126843">&Naam wijzigen...</translation> -<translation id="3089231390674410424">Er lijkt een probleem te zijn met je inloggegevens. Zorg ervoor dat je correct bent ingelogd en probeer het opnieuw.</translation> <translation id="3090193911106258841">Audio- en video-invoer openen</translation> <translation id="3090819949319990166">Kan extern crx-bestand niet kopiëren naar <ph name="TEMP_CRX_FILE" />.</translation> <translation id="3090871774332213558">'<ph name="DEVICE_NAME" />' gekoppeld</translation> @@ -1400,7 +1384,6 @@ <translation id="3121793941267913344">Dit <ph name="IDS_SHORT_PRODUCT_NAME" />-apparaat herstellen</translation> <translation id="3122464029669770682">CPU</translation> <translation id="3122496702278727796">Kan gegevensdirectory niet maken</translation> -<translation id="3123569374670379335">(beperkte rechten)</translation> <translation id="3124111068741548686">USER-handles</translation> <translation id="3126026824346185272">Ctrl</translation> <translation id="3127156390846601284">Hiermee worden gegevens die zijn opgeslagen op je apparaat, verwijderd voor alle weergegeven sites. Wil je doorgaan?</translation> @@ -1435,8 +1418,6 @@ <translation id="3160842278951476457"><ph name="ISSUED_BY" /> [<ph name="ISSUED_TO" />] (met hardwareondersteuning)</translation> <translation id="316125635462764134">App verwijderen</translation> <translation id="3161522574479303604">Alle talen</translation> -<translation id="316307797510303346">Beheer en bekijk de websites die deze persoon bezoekt via <ph name="CUSTODIAN_EMAIL" />. - De inloggegevens van je account zijn verouderd.</translation> <translation id="3165390001037658081">Sommige providers kunnen deze functie blokkeren.</translation> <translation id="316854673539778496">Log in en schakel synchronisatie in om al je extensies op al je apparaten beschikbaar te maken.</translation> <translation id="3170072451822350649">Je kunt het inloggen ook overslaan en <ph name="LINK_START" />browsen als gast<ph name="LINK_END" />.</translation> @@ -1469,7 +1450,6 @@ <translation id="3229922550070982305">afspelen/onderbreken</translation> <translation id="3232318083971127729">Waarde:</translation> <translation id="3236289833370040187">Eigendom wordt overgedragen aan <ph name="DESTINATION_DOMAIN" />.</translation> -<translation id="3237784613213365159"><ph name="NEW_PROFILE_NAME" /> is nu een gebruiker met beperkte rechten</translation> <translation id="323803881985677942">Extensie-opties openen</translation> <translation id="3241680850019875542">Selecteer de hoofddirectory van de extensie die je wilt inpakken. Als je een extensie wilt updaten, selecteer je ook het privésleutelbestand om dit opnieuw te gebruiken.</translation> <translation id="3242765319725186192">Eerder gedeelde sleutel:</translation> @@ -1701,7 +1681,6 @@ <translation id="3584169441612580296">Foto's, muziek en andere media van je computer lezen en wijzigen</translation> <translation id="3587482841069643663">Alles</translation> <translation id="358796204584394954">Typ deze code op '<ph name="DEVICE_NAME" />' om te koppelen:</translation> -<translation id="3589532742556016615">Dit is niet van invloed op apps of content op andere apparaten.</translation> <translation id="3589766037099229847">Onveilige content geblokkeerd</translation> <translation id="3590194807845837023">Profiel ontgrendelen en opnieuw starten</translation> <translation id="3592260987370335752">&Meer informatie</translation> @@ -1835,7 +1814,6 @@ <translation id="3778152852029592020">Downloaden is geannuleerd.</translation> <translation id="3778740492972734840">&Hulpprogramma's voor ontwikkelaars</translation> <translation id="3778868487658107119">Je kunt de Assistent vragen stellen en opdrachten geven. De Assistent is je eigen persoonlijke Google dat altijd klaarstaat om je te helpen.</translation> -<translation id="3780663724044634171">Selecteer een account om de gebruiker met beperkte rechten te beheren.</translation> <translation id="378312418865624974">Een unieke ID voor deze computer lezen</translation> <translation id="3783640748446814672">alt</translation> <translation id="3785308913036335955">Snelle link voor apps weergeven</translation> @@ -2563,7 +2541,6 @@ <translation id="4964455510556214366">Indeling</translation> <translation id="4964673849688379040">Controleren…</translation> <translation id="4965808351167763748">Weet je zeker dat je dit apparaat wilt instellen voor Hangouts Meet?</translation> -<translation id="4967749818080339523">Een account selecteren</translation> <translation id="496888482094675990">De app Bestanden biedt snelle toegang tot bestanden die je op Google Drive, externe opslag of je Chrome OS-apparaat hebt opgeslagen.</translation> <translation id="4969785127455456148">Album</translation> <translation id="4971412780836297815">Openen wanneer gereed</translation> @@ -2751,7 +2728,6 @@ Wat er ook gebeurt met je apparaat, je bestanden worden veilig opgeslagen in Google Drive.<ph name="MARKUP_6" /> <ph name="MARKUP_7" />Bestanden delen, maken en eraan samenwerken<ph name="MARKUP_8" /> met anderen allemaal op één locatie.<ph name="MARKUP_9" /></translation> -<translation id="5262401745672360397">Bestanden die zijn gedeeld Linux-apps, worden mogelijk ook verwijderd.</translation> <translation id="5264148714798105376">Dit kan een minuut duren.</translation> <translation id="5264252276333215551">Maak verbinding met internet om je app te openen in de kiosmodus.</translation> <translation id="5265562206369321422">Langer dan een week offline</translation> @@ -3403,7 +3379,6 @@ <translation id="6241530762627360640">Toegang krijgen tot informatie over Bluetooth-apparaten die zijn gekoppeld met je systeem en Bluetooth-apparaten in de buurt detecteren.</translation> <translation id="6243280677745499710">Momenteel ingesteld</translation> <translation id="6243774244933267674">Server is niet beschikbaar</translation> -<translation id="6246413617632217567">De gebruiker met beperkte rechten kan niet worden geïmporteerd. Controleer de ruimte op je harde schijf en je rechten, en probeer het opnieuw.</translation> <translation id="6247708409970142803"><ph name="PERCENTAGE" />%</translation> <translation id="6247802389331535091">Systeem: <ph name="ARC_PROCESS_NAME" /></translation> <translation id="624789221780392884">Update gereed</translation> @@ -3602,7 +3577,6 @@ <translation id="654039047105555694"><ph name="BEGIN_BOLD" />Opmerking:<ph name="END_BOLD" /> schakel dit alleen in als je weet wat je doet of als je bent gevraagd dit te doen, omdat het verzamelen van gegevens kan leiden tot verminderde prestaties.</translation> <translation id="654233263479157500">Een webservice gebruiken voor het oplossen van navigatiefouten</translation> <translation id="6544215763872433504">De webbrowser van Google, voor jou</translation> -<translation id="6545325945815270297">Beheer je gesynchroniseerde gegevens en apparaten op het <ph name="BEGIN_LINK" />Chrome Dashboard<ph name="END_LINK" />.</translation> <translation id="6545665334409411530">Herhalingssnelheid</translation> <translation id="6545834809683560467">Een voorspellingsservice gebruiken om zoekopdrachten en URL's aan te vullen die in de adresbalk of het zoekvak van de App Launcher worden getypt</translation> <translation id="6546686722964485737">Verbinden met WiMAX-netwerk</translation> @@ -3617,7 +3591,6 @@ <translation id="6555810572223193255">Opschonen is momenteel niet beschikbaar</translation> <translation id="6556866813142980365">Opnieuw</translation> <translation id="6558280019477628686">Er is een fout opgetreden. Sommige items zijn mogelijk niet verwijderd.</translation> -<translation id="6559580823502247193">(al ingesteld op dit apparaat)</translation> <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="656398493051028875"><ph name="FILENAME" /> verwijderen...</translation> @@ -3814,7 +3787,6 @@ <translation id="6862635236584086457">Er wordt automatisch online een back-up gemaakt van alle bestanden die in deze map zijn opgeslagen</translation> <translation id="6865313869410766144">Formuliergegevens voor Automatisch aanvullen</translation> <translation id="686664946474413495">Kleurtemperatuur</translation> -<translation id="6867678160199975333">Schakelen naar <ph name="NEW_PROFILE_NAME" /></translation> <translation id="6870888490422746447">Kies een app waarmee je wilt delen:</translation> <translation id="6871644448911473373">OCSP-beantwoorder: <ph name="LOCATION" /></translation> <translation id="6872781471649843364">Het wachtwoord dat je hebt opgegeven, is afgewezen door de server.</translation> @@ -3908,7 +3880,6 @@ <translation id="7018275672629230621">Je browsegeschiedenis lezen en wijzigen</translation> <translation id="7019805045859631636">Snel</translation> <translation id="7022562585984256452">Je homepage is ingesteld.</translation> -<translation id="7025036625303002400">Het lijkt erop dat je al een gebruiker met beperkte rechten hebt met deze naam.</translation> <translation id="7025190659207909717">Beheer van mobiele netwerken</translation> <translation id="7025325401470358758">Volgend deelvenster</translation> <translation id="7027125358315426638">Naam database:</translation> @@ -3957,7 +3928,6 @@ <translation id="7092106376816104">Uitzonderingen voor pop-ups</translation> <translation id="7093434536568905704">GTK+</translation> <translation id="7093866338626856921">Gegevens uitwisselen met de apparaten met de naam: <ph name="HOSTNAMES" /></translation> -<translation id="7096108453481049031">De gebruiker met beperkte rechten kan niet worden geïmporteerd. Controleer je netwerkverbinding en probeer het later opnieuw.</translation> <translation id="7096406577040705016">"Volledig scherm vergroten' in-/uitschakelen</translation> <translation id="7098447629416471489">Andere opgeslagen zoekmachines worden hier weergegeven</translation> <translation id="7099337801055912064">Grote PPD kan niet worden geladen. Maximum grootte is 250 KB.</translation> @@ -4005,7 +3975,6 @@ <translation id="7168109975831002660">Minimum lettergrootte</translation> <translation id="7170041865419449892">Geen bereik</translation> <translation id="7171559745792467651">Apps van je andere apparaten installeren</translation> -<translation id="7173917244679555">Het lijkt erop dat je al een gebruiker met die naam beheert. Wil je <ph name="BEGIN_LINK" /><ph name="PROFILE_NAME" /> importeren<ph name="END_LINK" /> naar dit apparaat?</translation> <translation id="7175037578838465313"><ph name="NAME" /> configureren</translation> <translation id="7175353351958621980">Geladen via:</translation> <translation id="7180611975245234373">Vernieuwen</translation> @@ -4177,7 +4146,6 @@ <translation id="7444726222535375658">Doorgaan naar Hangouts Meet</translation> <translation id="7444983668544353857"><ph name="NETWORKDEVICE" /> uitschakelen</translation> <translation id="7445682342344043969">Pop-ups geblokkeerd</translation> -<translation id="744859430125590922">Beheer en bekijk de websites die deze persoon bezoekt via <ph name="CUSTODIAN_EMAIL" />.</translation> <translation id="7453008956351770337">Door het selecteren van deze printer geef je de volgende extensie toegang tot je printer:</translation> <translation id="7453467225369441013">Hiermee word je uitgelogd van de meeste sites. Je wordt niet uitgelogd van je Google-account.</translation> <translation id="7456142309650173560">dev</translation> @@ -4351,7 +4319,6 @@ <translation id="7717845620320228976">Controleren op updates</translation> <translation id="7719367874908701697">Zoomen op pagina</translation> <translation id="771953673318695590">QA</translation> -<translation id="7720375555307821262"><ph name="BEGIN_LINK" />Log in bij Chrome<ph name="END_LINK" /> om toezicht te houden op deze persoon.</translation> <translation id="7721179060400456005">Toestaan dat vensters meerdere beeldschermen bedekken</translation> <translation id="7722040605881499779">Nodig voor update: <ph name="NECESSARY_SPACE" /></translation> <translation id="7724603315864178912">Knip</translation> @@ -5206,7 +5173,6 @@ <translation id="9024331582947483881">volledig scherm</translation> <translation id="9025098623496448965">OK, terugkeren naar het inlogscherm</translation> <translation id="9026731007018893674">download</translation> -<translation id="9027146684281895941">Toezicht houden op deze persoon om de websites die hij of zij bezoekt, te beheren en te bekijken via je Google-account.</translation> <translation id="9027459031423301635">Link openen op nieuw &tabblad</translation> <translation id="9027603907212475920">Synchronisatie instellen...</translation> <translation id="9030515284705930323">Je organisatie heeft de Google Play Store niet ingeschakeld voor jouw account. Neem contact op met je beheerder voor meer informatie.</translation> @@ -5366,7 +5332,6 @@ <translation id="98515147261107953">Liggend</translation> <translation id="987897973846887088">Geen afbeeldingen beschikbaar</translation> <translation id="988978206646512040">Een lege wachtwoordzin is niet toegestaan</translation> -<translation id="990310048453480215">Linux-apps verwijderen</translation> <translation id="992032470292211616">Extensies, apps en thema's kunnen schade toebrengen aan je apparaat. Weet je zeker dat je wilt doorgaan?</translation> <translation id="992592832486024913">ChromeVox (gesproken feedback) uitschakelen</translation> <translation id="994289308992179865">&Herhalen</translation>
diff --git a/chrome/app/resources/generated_resources_no.xtb b/chrome/app/resources/generated_resources_no.xtb index d246fca..87b0091 100644 --- a/chrome/app/resources/generated_resources_no.xtb +++ b/chrome/app/resources/generated_resources_no.xtb
@@ -42,7 +42,6 @@ <translation id="1056898198331236512">Advarsel</translation> <translation id="1058262162121953039">PUK</translation> <translation id="1062407476771304334">Erstatt</translation> -<translation id="1062866675591297858">Administrer de administrerte brukerne dine via <ph name="BEGIN_LINK" />oversikten for administrerte brukere<ph name="END_LINK" />.</translation> <translation id="1064835277883315402">Tilkobling til privat nettverk</translation> <translation id="1064912851688322329">Frakobling av Google-kontoen din</translation> <translation id="1067048845568873861">Opprettet</translation> @@ -65,7 +64,6 @@ <translation id="1091767800771861448">Trykk på ESC for å hoppe over denne (bare uoffisielle delversjoner).</translation> <translation id="1093457606523402488">Synlige nettverk:</translation> <translation id="1094607894174825014">Det ble bedt om en lese- eller skriveoperasjon med en ugyldig forskyvning på: «<ph name="DEVICE_NAME" />».</translation> -<translation id="1097507499312291972"><ph name="BEGIN_SIGN_IN_LINK" />Logg på<ph name="END_SIGN_IN_LINK" /> for å kontrollere og se nettstedene denne personen besøker.</translation> <translation id="109758035718544977">Slå på lyden for nettsteder</translation> <translation id="1097658378307015415">Gå inn som gjest for å aktivere nettverket <ph name="NETWORK_ID" /> før du logger deg på.</translation> <translation id="1103523840287552314">Oversett alltid <ph name="LANGUAGE" /></translation> @@ -244,7 +242,6 @@ <translation id="1361655923249334273">Ubrukt</translation> <translation id="1363028406613469049">Spor</translation> <translation id="1367951781824006909">Velg en fil</translation> -<translation id="136802136832547685">Det finnes ingen administrerte brukere som kan legges til på denne enheten.</translation> <translation id="1368265273904755308">Rapportér problem</translation> <translation id="1370646789215800222">Vil du fjerne personen?</translation> <translation id="1372681413396468867">{NUM_ITEMS,plural, =1{1 element som skal fjernes}other{# elementer som skal fjernes}}</translation> @@ -469,7 +466,6 @@ <translation id="1692799361700686467">Informasjonskapsler fra flere nettsteder tillates.</translation> <translation id="169515659049020177">Shift</translation> <translation id="1698122934742150150">Bare denne inkognitoøkten</translation> -<translation id="1700199471143028312">Administratoren tillater deg ikke å opprette administrerte brukere.</translation> <translation id="1701062906490865540">Fjern denne personen</translation> <translation id="1706586824377653884">Lagt til av administratoren din</translation> <translation id="1706625117072057435">Zoomnivåer</translation> @@ -1008,7 +1004,7 @@ <translation id="2562685439590298522">Google Dokumenter</translation> <translation id="2562743677925229011">Ikke logget på <ph name="SHORT_PRODUCT_NAME" /></translation> <translation id="2563856802393254086">Gratulerer! <ph name="NAME" />-datatjenesten din er aktivert og klar til bruk.</translation> -<translation id="2564520396658920462">Kjøring av JavaScript gjennom AppleScript er slått av. For å slå det på, i menylinjen, går du til Visning > Utvikler > Tillat JavaScript fra Apple Events. For mer informasjon, se: https://support.google.com/chrome/?p=applescript</translation> +<translation id="2564520396658920462">Kjøring av JavaScript gjennom AppleScript er slått av. For å slå det på, gå til menylinjen og velg Vis > Utvikler > Tillat JavaScript fra Apple Events. For mer informasjon, se: https://support.google.com/chrome/?p=applescript</translation> <translation id="2566124945717127842">Kjør Powerwash for å tilbakestille <ph name="IDS_SHORT_PRODUCT_NAME" />-enheten så den blir som ny.</translation> <translation id="2567257616420533738">Passordet er lagret. Se og administrer lagrede passord på <ph name="SAVED_PASSWORDS_LINK" /></translation> <translation id="2568774940984945469">Beholder for inforad</translation> @@ -1037,7 +1033,6 @@ <translation id="2604255671529671813">Feil i nettverkstilkobling</translation> <translation id="2606246518223360146">Knytt sammen dataene</translation> <translation id="2607101320794533334">Informasjon om enhetens offentlige nøkkel</translation> -<translation id="2607459012323956820">Det kan hende at innstillingene og nettleserloggen til denne administrerte brukeren fortsatt kan ses av administratoren, på <ph name="BEGIN_LINK" /><ph name="DISPLAY_LINK" /><ph name="END_LINK" />.</translation> <translation id="2608770217409477136">Bruk standardinnstillinger</translation> <translation id="2609896558069604090">Opprett snarveier</translation> <translation id="2610157865375787051">Hvilemodus</translation> @@ -1280,7 +1275,6 @@ <translation id="2951247061394563839">Sentrér vinduet</translation> <translation id="2956763290572484660"><ph name="COOKIES" /> informasjonskapsler</translation> <translation id="2958721676848865875">Advarsel om pakkeutvidelse</translation> -<translation id="2961043351165706615">Linux-apper du har installert, slettes fra Chromebook.</translation> <translation id="2961090598421146107"><ph name="CERTIFICATE_NAME" /> (fra utvidelse)</translation> <translation id="2961695502793809356">Klikk for å gå fremover – hold for å se logg</translation> <translation id="2963151496262057773">Følgende programtillegg svarer ikke: <ph name="PLUGIN_NAME" />Vil du stoppe det?</translation> @@ -1332,15 +1326,6 @@ <translation id="3022978424994383087">Det skjønte jeg ikke.</translation> <translation id="3024374909719388945">Bruk 24-timersklokke</translation> <translation id="302781076327338683">Last inn omgåelsesbufferen på nytt</translation> -<translation id="3030243755303701754">Administrerte brukere kan surfe på nettet med veiledning fra deg. Som administrator for administrerte brukere i Chrome kan du: - - • tillate eller forby spesifikke nettsteder, - • gå gjennom nettstedene de administrerte brukerne har besøkt, og - • administrere andre innstillinger. - -Det opprettes ikke noen Google-kontoer når du oppretter administrerte brukere, og bokmerkene, nettlesingsloggen og de andre preferansene til disse brukerne blir ikke overført til andre enheter med Chrome-synkroniseringen. Når du har opprettet en ny administrert bruker, kan du når som helst administrere vedkommendes innstillinger – fra alle slags enheter – ved å gå til <ph name="BEGIN_MANAGE_LINK" /><ph name="DISPLAY_LINK" /><ph name="END_MANAGE_LINK" />. - -Du finner mer informasjon i <ph name="BEGIN_LINK" />brukerstøtten<ph name="END_LINK" />.</translation> <translation id="3031417829280473749">Agent X</translation> <translation id="3031557471081358569">Velg elementer som skal importeres:</translation> <translation id="3031601332414921114">Gjenoppta utskriftsjobben</translation> @@ -1381,7 +1366,6 @@ <translation id="3085412380278336437">Nettstedet kan bruke kameraet ditt</translation> <translation id="3085752524577180175">SOCKS-vert</translation> <translation id="3088325635286126843">&Gi nytt navn</translation> -<translation id="3089231390674410424">Det ser ut til å være et problem med legitimasjonen din. Sjekk at du er logget på riktig, og prøv på nytt.</translation> <translation id="3090193911106258841">Åpner lyd- og videoinngang</translation> <translation id="3090819949319990166">Kunne ikke kopiere den eksterne crx-filen til <ph name="TEMP_CRX_FILE" />.</translation> <translation id="3090871774332213558">«<ph name="DEVICE_NAME" />» er tilkoblet</translation> @@ -1396,7 +1380,6 @@ <translation id="3121793941267913344">Tilbakestill denne <ph name="IDS_SHORT_PRODUCT_NAME" />-enheten</translation> <translation id="3122464029669770682">Prosessor</translation> <translation id="3122496702278727796">Kan ikke opprette datakatalog</translation> -<translation id="3123569374670379335">(administrert)</translation> <translation id="3124111068741548686">BRUKEREN håndterer</translation> <translation id="3126026824346185272">Ctrl</translation> <translation id="3127156390846601284">Dette fører til at alle data de viste nettstedene har lagret på enheten din, blir slettet. Vil du fortsette?</translation> @@ -1431,8 +1414,6 @@ <translation id="3160842278951476457"><ph name="ISSUED_BY" /> [<ph name="ISSUED_TO" />] (maskinvarestøttet)</translation> <translation id="316125635462764134">Fjern appen</translation> <translation id="3161522574479303604">Alle språk</translation> -<translation id="316307797510303346">Kontrollér og se nettstedene denne personen besøker fra <ph name="CUSTODIAN_EMAIL" />. - Påloggingsinformasjonen for kontoen din er utdatert.</translation> <translation id="3165390001037658081">Det kan hende at enkelte operatører blokkerer denne funksjonen.</translation> <translation id="316854673539778496">For å få alle utvidelsene dine på alle enhetene du bruker, logg på og slå på synkronisering.</translation> <translation id="3170072451822350649">Du kan også hoppe over påloggingen og <ph name="LINK_START" />surfe som gjest<ph name="LINK_END" />.</translation> @@ -1465,7 +1446,6 @@ <translation id="3229922550070982305">spill av / pause</translation> <translation id="3232318083971127729">Verdi:</translation> <translation id="3236289833370040187">Eierskapet overføres til <ph name="DESTINATION_DOMAIN" />.</translation> -<translation id="3237784613213365159"><ph name="NEW_PROFILE_NAME" /> er nå en administrert bruker</translation> <translation id="323803881985677942">Åpne utvidelsesalternativer</translation> <translation id="3241680850019875542">Velg rotkatalogen til utvidelsen som skal pakkes. Hvis du vil oppdatere en utvidelse, velger du også den private nøkkelfilen.</translation> <translation id="3242765319725186192">Forhåndsdelt nøkkel:</translation> @@ -1696,7 +1676,6 @@ <translation id="3584169441612580296">lese og endre bilder, musikk og andre medier fra datamaskinen din</translation> <translation id="3587482841069643663">Alle</translation> <translation id="358796204584394954">Skriv inn denne koden på «<ph name="DEVICE_NAME" />» for å koble til:</translation> -<translation id="3589532742556016615">Dette påvirker ikke apper eller innhold på andre enheter.</translation> <translation id="3589766037099229847">Usikkert innhold er blokkert</translation> <translation id="3590194807845837023">Lås opp profilen og start på nytt</translation> <translation id="3592260987370335752">&Les mer</translation> @@ -1830,7 +1809,6 @@ <translation id="3778152852029592020">Nedlastingen ble avbrutt.</translation> <translation id="3778740492972734840">&Utviklerverktøy</translation> <translation id="3778868487658107119">Still den spørsmål. Be den gjøre ting. Den er din personlige Google – alltid klar til å hjelpe.</translation> -<translation id="3780663724044634171">Velg en konto du vil bruke for å administrere den administrerte brukeren.</translation> <translation id="378312418865624974">lese en unik identifikator for denne datamaskinen</translation> <translation id="3783640748446814672">alt</translation> <translation id="3785308913036335955">Vis appsnarveien</translation> @@ -2556,7 +2534,6 @@ <translation id="4964455510556214366">Oppsett</translation> <translation id="4964673849688379040">Kontrollerer …</translation> <translation id="4965808351167763748">Er du sikker på at du vil konfigurere Hangouts Meet på denne enheten?</translation> -<translation id="4967749818080339523">Velg en konto</translation> <translation id="496888482094675990">Med Filer-appen får du rask tilgang til filer du har lagret på Google Disk, eksterne langringsenheter eller Chrome OS-enheten din.</translation> <translation id="4969785127455456148">Album</translation> <translation id="4971412780836297815">Åpne når ferdig</translation> @@ -2742,7 +2719,6 @@ Uansett hva som skjer med enheten din, er filene dine trygt lagret i Google Disk.<ph name="MARKUP_6" /> <ph name="MARKUP_7" />Del, skap og samarbeid<ph name="MARKUP_8" /> med andre om filer – alt på ett sted.<ph name="MARKUP_9" /></translation> -<translation id="5262401745672360397">Filer som er delt med Linux-apper kan også bli slettet.</translation> <translation id="5264148714798105376">Dette kan ta omtrent ett minutt.</translation> <translation id="5264252276333215551">Koble til Internett for å starte appen din i kioskmodus.</translation> <translation id="5265562206369321422">Frakoblet i mer enn én uke</translation> @@ -3394,7 +3370,6 @@ <translation id="6241530762627360640">bruke informasjon om Bluetooth-enheter tilkoblet systemet ditt og oppdage Bluetooth-enheter i nærheten.</translation> <translation id="6243280677745499710">Nåværende bakgrunn</translation> <translation id="6243774244933267674">Tjeneren er ikke tilgjengelig</translation> -<translation id="6246413617632217567">Den administrerte brukeren kunne ikke importeres. Sjekk hvor mye plass du har på harddisken, og hvilke tillatelser som er aktive, og prøv på nytt.</translation> <translation id="6247708409970142803"><ph name="PERCENTAGE" /> %</translation> <translation id="6247802389331535091">System: <ph name="ARC_PROCESS_NAME" /></translation> <translation id="624789221780392884">Oppdateringen er klar</translation> @@ -3592,7 +3567,6 @@ <translation id="654039047105555694"><ph name="BEGIN_BOLD" />Merk:<ph name="END_BOLD" /> Ettersom innsamling av data kan redusere ytelsen bør du bare aktivere dette hvis du vet hva du gjør eller har blitt bedt om å gjøre dette.</translation> <translation id="654233263479157500">Bruk en nettjeneste til å løse problemer med navigeringsfeil</translation> <translation id="6544215763872433504">Nettleseren fra Google – til deg</translation> -<translation id="6545325945815270297">Administrer de synkroniserte dataene og enhetene dine i <ph name="BEGIN_LINK" />Chrome-oversikten<ph name="END_LINK" />.</translation> <translation id="6545665334409411530">Gjentakelsesfrekvens</translation> <translation id="6545834809683560467">Bruk en forslagstjeneste for å fullføre søk og nettadresser som skrives inn i adressefeltet eller søkefeltet i appvelgeren</translation> <translation id="6546686722964485737">Bli med i et WiMAX-nettverk</translation> @@ -3607,7 +3581,6 @@ <translation id="6555810572223193255">Opprydning er utilgjengelig for øyeblikket</translation> <translation id="6556866813142980365">Gjør om</translation> <translation id="6558280019477628686">Det oppsto en feil. Enkelte elementer ble muligens ikke slettet.</translation> -<translation id="6559580823502247193">(er allerede på denne enheten)</translation> <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="656398493051028875">Sletter «<ph name="FILENAME" />» ...</translation> @@ -3804,7 +3777,6 @@ <translation id="6862635236584086457">Alle filene som lagres i denne mappen, blir automatisk sikkerhetskopiert på nettet</translation> <translation id="6865313869410766144">Skjemadata lagret med autofyll</translation> <translation id="686664946474413495">Fargetemperatur</translation> -<translation id="6867678160199975333">Bytt til <ph name="NEW_PROFILE_NAME" /></translation> <translation id="6870888490422746447">Velg en app du vil dele med:</translation> <translation id="6871644448911473373">OCSP-svarer: <ph name="LOCATION" /></translation> <translation id="6872781471649843364">Passordet du skrev inn, ble avvist av tjeneren.</translation> @@ -3898,7 +3870,6 @@ <translation id="7018275672629230621">lese og endre leserloggen din</translation> <translation id="7019805045859631636">Høy</translation> <translation id="7022562585984256452">Startsiden din er angitt.</translation> -<translation id="7025036625303002400">Det ser ut som du allerede har en administrert bruker med dette navnet.</translation> <translation id="7025190659207909717">Administrering av tjenester for mobildata</translation> <translation id="7025325401470358758">Neste rute</translation> <translation id="7027125358315426638">Databasenavn:</translation> @@ -3947,7 +3918,6 @@ <translation id="7092106376816104">Unntak for forgrunnsvinduer</translation> <translation id="7093434536568905704">GTK+</translation> <translation id="7093866338626856921">Utveksle data med enhetene <ph name="HOSTNAMES" /></translation> -<translation id="7096108453481049031">Den administrerte brukeren kunne ikke importeres. Kontrollér nettverkstilkoblingen din, og prøv igjen senere.</translation> <translation id="7096406577040705016">Slå av/på lupe for hele skjermen</translation> <translation id="7098447629416471489">Andre lagrede søkemotorer vises her</translation> <translation id="7099337801055912064">Kan ikke laste inn stor PPD. Maksimal størrelse er 250 kB.</translation> @@ -3995,7 +3965,6 @@ <translation id="7168109975831002660">Minste skriftstørrelse</translation> <translation id="7170041865419449892">Utenfor rekkevidde</translation> <translation id="7171559745792467651">Installer apper fra de andre enhetene du bruker</translation> -<translation id="7173917244679555">Det ser ut som om du allerede administrerer en bruker med det navnet. Ville du <ph name="BEGIN_LINK" />importere <ph name="PROFILE_NAME" /> til denne enheten<ph name="END_LINK" />?</translation> <translation id="7175037578838465313">Konfigurer <ph name="NAME" /></translation> <translation id="7175353351958621980">Lastet fra:</translation> <translation id="7180611975245234373">Last inn på nytt</translation> @@ -4161,7 +4130,6 @@ <translation id="7444726222535375658">Fortsett til Hangouts Meet</translation> <translation id="7444983668544353857">Slå av <ph name="NETWORKDEVICE" /></translation> <translation id="7445682342344043969">Forgrunnsvinduer er blokkert</translation> -<translation id="744859430125590922">Kontrollér og se nettstedene denne personen besøker fra <ph name="CUSTODIAN_EMAIL" />.</translation> <translation id="7453008956351770337">Ved å velge denne skriveren gir du følgende utvidelse tillatelse til å bruke skriveren din:</translation> <translation id="7453467225369441013">Logger deg av de fleste nettsteder. Du blir ikke logget av Google-kontoen din.</translation> <translation id="7456142309650173560">dev</translation> @@ -4333,7 +4301,6 @@ <translation id="7717845620320228976">Se etter oppdateringer</translation> <translation id="7719367874908701697">Sidezoom</translation> <translation id="771953673318695590">Kvalitetssikring</translation> -<translation id="7720375555307821262">For å administrere denne personen, <ph name="BEGIN_LINK" />logg på Chrome<ph name="END_LINK" />.</translation> <translation id="7721179060400456005">Tillat at vinduer vises over flere skjermer</translation> <translation id="7722040605881499779">Trengs for å oppdatere: <ph name="NECESSARY_SPACE" /></translation> <translation id="7724603315864178912">Klipp ut</translation> @@ -5188,7 +5155,6 @@ <translation id="9024331582947483881">full skjerm</translation> <translation id="9025098623496448965">OK, ta meg tilbake til påloggingsskjermen</translation> <translation id="9026731007018893674">last ned</translation> -<translation id="9027146684281895941">Administrer denne personen for å kontrollere og se hvilke nettsteder vedkommende besøker fra Google-kontoen din.</translation> <translation id="9027459031423301635">Åpne link i ny &fane</translation> <translation id="9027603907212475920">Konfigurer synkronisering</translation> <translation id="9030515284705930323">Organisasjonen din har ikke slått på Google Play-butikken for kontoen din. Kontakt administratoren din for å få mer informasjon.</translation> @@ -5348,7 +5314,6 @@ <translation id="98515147261107953">Liggende</translation> <translation id="987897973846887088">Ingen bilder er tilgjengelige</translation> <translation id="988978206646512040">Tomme passordfraser er ikke tillatt</translation> -<translation id="990310048453480215">Fjern Linux-apper</translation> <translation id="992032470292211616">Utvidelser, apper og temaer kan skade enheten din. Er du sikker på at du vil fortsette?</translation> <translation id="992592832486024913">Slå av ChromeVox (taletilbakemelding)</translation> <translation id="994289308992179865">&Gjenta</translation>
diff --git a/chrome/app/resources/generated_resources_pl.xtb b/chrome/app/resources/generated_resources_pl.xtb index 9d8042eb..fc6c3900 100644 --- a/chrome/app/resources/generated_resources_pl.xtb +++ b/chrome/app/resources/generated_resources_pl.xtb
@@ -42,7 +42,6 @@ <translation id="1056898198331236512">Ostrzeżenie</translation> <translation id="1058262162121953039">PUK</translation> <translation id="1062407476771304334">Zastąp</translation> -<translation id="1062866675591297858">Zarządzaj użytkownikami nadzorowanymi, używając <ph name="BEGIN_LINK" />Panelu użytkowników nadzorowanych<ph name="END_LINK" />.</translation> <translation id="1064835277883315402">Połącz z siecią prywatną</translation> <translation id="1064912851688322329">Odłącz swoje konto Google</translation> <translation id="1067048845568873861">Utworzono</translation> @@ -65,7 +64,6 @@ <translation id="1091767800771861448">Naciśnij ESCAPE, aby pominąć aktualizację (tylko nieoficjalne kompilacje).</translation> <translation id="1093457606523402488">Widoczne sieci:</translation> <translation id="1094607894174825014">Zażądano operacji odczytu lub zapisu z nieprawidłowym offsetem w: „<ph name="DEVICE_NAME" />”.</translation> -<translation id="1097507499312291972"><ph name="BEGIN_SIGN_IN_LINK" />Zaloguj się<ph name="END_SIGN_IN_LINK" />, by kontrolować i wyświetlać strony, na które wchodzi ta osoba.</translation> <translation id="109758035718544977">Zakończ wyciszanie stron</translation> <translation id="1097658378307015415">Zanim się zalogujesz, wybierz tryb gościa, aby aktywować sieć <ph name="NETWORK_ID" />.</translation> <translation id="1103523840287552314">Zawsze tłumacz z języka: <ph name="LANGUAGE" /></translation> @@ -244,7 +242,6 @@ <translation id="1361655923249334273">Nieużywany</translation> <translation id="1363028406613469049">Utwór</translation> <translation id="1367951781824006909">Wybierz plik</translation> -<translation id="136802136832547685">Brak nadzorowanych użytkowników, których można by dodać do tego urządzenia.</translation> <translation id="1368265273904755308">Zgłoś problem</translation> <translation id="1370646789215800222">Usunąć osobę?</translation> <translation id="1372681413396468867">{NUM_ITEMS,plural, =1{1 element do usunięcia}few{# elementy do usunięcia}many{# elementów do usunięcia}other{# elementu do usunięcia}}</translation> @@ -472,7 +469,6 @@ <translation id="1692799361700686467">Pliki cookie z wielu witryn są dozwolone.</translation> <translation id="169515659049020177">Shift</translation> <translation id="1698122934742150150">Tylko w bieżącej sesji incognito</translation> -<translation id="1700199471143028312">Twój administrator nie zezwala na tworzenie nadzorowanych użytkowników.</translation> <translation id="1701062906490865540">Usuń tę osobę</translation> <translation id="1706586824377653884">Dodane przez administratora</translation> <translation id="1706625117072057435">Poziomy powiększenia</translation> @@ -1041,7 +1037,6 @@ <translation id="2604255671529671813">Błąd połączenia z siecią</translation> <translation id="2606246518223360146">Połącz dane</translation> <translation id="2607101320794533334">Informacje o kluczu publicznym podmiotu</translation> -<translation id="2607459012323956820">Ustawienia konta tego użytkownika nadzorowanego oraz jego historia przeglądania mogą być wciąż widoczne dla menedżera na <ph name="BEGIN_LINK" /><ph name="DISPLAY_LINK" /><ph name="END_LINK" />.</translation> <translation id="2608770217409477136">Użyj ustawień domyślnych</translation> <translation id="2609896558069604090">Utwórz skróty...</translation> <translation id="2610157865375787051">Uśpienie</translation> @@ -1284,7 +1279,6 @@ <translation id="2951247061394563839">Wyśrodkuj okno</translation> <translation id="2956763290572484660">Pliki cookie (<ph name="COOKIES" />)</translation> <translation id="2958721676848865875">Ostrzeżenie o rozszerzeniu pakietu</translation> -<translation id="2961043351165706615">Zainstalowane aplikacje na Linuksa zostaną usunięte z tego Chromebooka.</translation> <translation id="2961090598421146107"><ph name="CERTIFICATE_NAME" /> (okazany przez rozszerzenie)</translation> <translation id="2961695502793809356">Kliknij, aby przejść dalej. Przytrzymaj, aby wyświetlić historię</translation> <translation id="2963151496262057773">Ta wtyczka nie odpowiada: <ph name="PLUGIN_NAME" />Chcesz ją zatrzymać?</translation> @@ -1336,15 +1330,6 @@ <translation id="3022978424994383087">Nie rozumiem.</translation> <translation id="3024374909719388945">Zegar 24-godzinny</translation> <translation id="302781076327338683">Załaduj ponownie, pomijając pamięć podręczną</translation> -<translation id="3030243755303701754">Nadzorowany użytkownik może przeglądać strony internetowe pod Twoją kontrolą. Jako jego menedżer w Chrome możesz: - - • zezwalać na dostęp do określonych witryn lub blokować go; - • sprawdzać, jakie strony odwiedzał nadzorowany użytkownik; - • zarządzać innymi ustawieniami. - -Utworzenie nadzorowanego użytkownika nie powoduje utworzenia konta Google, a zakładki, historia przeglądania i inne ustawienia tego użytkownika nie będą dostępne na innych urządzeniach za pośrednictwem Synchronizacji Chrome. Po utworzeniu nadzorowanego użytkownika dostęp do jego ustawień będziesz mieć zawsze z dowolnego urządzenia na <ph name="BEGIN_MANAGE_LINK" /><ph name="DISPLAY_LINK" /><ph name="END_MANAGE_LINK" />. - -Więcej informacji znajduje się w naszym <ph name="BEGIN_LINK" />Centrum pomocy<ph name="END_LINK" />.</translation> <translation id="3031417829280473749">Agentka X</translation> <translation id="3031557471081358569">Wybierz elementy do zaimportowania:</translation> <translation id="3031601332414921114">Wznów drukowanie</translation> @@ -1385,7 +1370,6 @@ <translation id="3085412380278336437">Strona może używać kamery</translation> <translation id="3085752524577180175">Host SOCKS</translation> <translation id="3088325635286126843">&Zmień nazwę</translation> -<translation id="3089231390674410424">Wygląda na to, że z Twoimi danymi logowania jest coś nie tak. Sprawdź, czy zalogowałeś się prawidłowo, i spróbuj ponownie.</translation> <translation id="3090193911106258841">Otwieram wejście audio i wideo</translation> <translation id="3090819949319990166">Nie można skopiować zewnętrznego pliku CRX jako <ph name="TEMP_CRX_FILE" />.</translation> <translation id="3090871774332213558">Sparowano „<ph name="DEVICE_NAME" />”</translation> @@ -1400,7 +1384,6 @@ <translation id="3121793941267913344">Zresetuj to urządzenie z <ph name="IDS_SHORT_PRODUCT_NAME" /></translation> <translation id="3122464029669770682">Procesor</translation> <translation id="3122496702278727796">Nie można utworzyć katalogu danych</translation> -<translation id="3123569374670379335">(nadzorowany)</translation> <translation id="3124111068741548686">Uchwyty USER</translation> <translation id="3126026824346185272">Ctrl</translation> <translation id="3127156390846601284">Spowoduje to usunięcie wszystkich zapisanych na urządzeniu danych dotyczących wszystkich wyświetlonych witryn. Czy chcesz kontynuować?</translation> @@ -1435,8 +1418,6 @@ <translation id="3160842278951476457"><ph name="ISSUED_BY" /> [<ph name="ISSUED_TO" />] (obsługiwany sprzętowo)</translation> <translation id="316125635462764134">Usuń aplikację</translation> <translation id="3161522574479303604">Wszystkie języki</translation> -<translation id="316307797510303346">Używaj adresu <ph name="CUSTODIAN_EMAIL" /> do kontrolowania i wyświetlania stron, na które wchodzi ta osoba. - Twoje dane logowania na konto są nieaktualne.</translation> <translation id="3165390001037658081">Niektórzy operatorzy mogą blokować tę funkcję.</translation> <translation id="316854673539778496">Aby korzystać ze wszystkich swoich rozszerzeń na innych urządzeniach, zaloguj się i włącz synchronizację.</translation> <translation id="3170072451822350649">Możesz też pominąć logowanie i <ph name="LINK_START" />przeglądać internet jako gość<ph name="LINK_END" />.</translation> @@ -1469,7 +1450,6 @@ <translation id="3229922550070982305">odtwórz/wstrzymaj</translation> <translation id="3232318083971127729">Wartość:</translation> <translation id="3236289833370040187">Własność zostanie przeniesiona do domeny <ph name="DESTINATION_DOMAIN" />.</translation> -<translation id="3237784613213365159"><ph name="NEW_PROFILE_NAME" /> jest teraz użytkownikiem nadzorowanym</translation> <translation id="323803881985677942">Otwórz opcje rozszerzenia</translation> <translation id="3241680850019875542">Wybierz główny katalog rozszerzenia, które chcesz umieścić w pakiecie. Aby zaktualizować rozszerzenie, wybierz również plik kluczy prywatnych do ponownego użycia.</translation> <translation id="3242765319725186192">Klucz wstępny:</translation> @@ -1701,7 +1681,6 @@ <translation id="3584169441612580296">Odczyt i zmiana zdjęć, muzyki oraz innych multimediów na komputerze</translation> <translation id="3587482841069643663">Wszystkie</translation> <translation id="358796204584394954">Aby sparować, wpisz ten kod na urządzeniu „<ph name="DEVICE_NAME" />”:</translation> -<translation id="3589532742556016615">Nie będzie to mieć żadnego wpływu na aplikacje ani dane na innych urządzeniach.</translation> <translation id="3589766037099229847">Niezabezpieczone treści zablokowane</translation> <translation id="3590194807845837023">Odblokuj profil i uruchom ponownie</translation> <translation id="3592260987370335752">&Więcej informacji</translation> @@ -1835,7 +1814,6 @@ <translation id="3778152852029592020">Pobieranie zostało anulowane.</translation> <translation id="3778740492972734840">&Narzędzia dla programistów</translation> <translation id="3778868487658107119">Zadawaj mu pytania i wydawaj polecenia. To Twój osobisty asystent, zawsze gotowy do pomocy.</translation> -<translation id="3780663724044634171">Wybierz konto do zarządzania nadzorowanym użytkownikiem.</translation> <translation id="378312418865624974">Odczyt unikalnego identyfikatora tego komputera</translation> <translation id="3783640748446814672">alt</translation> <translation id="3785308913036335955">Pokaż skrót do aplikacji</translation> @@ -2563,7 +2541,6 @@ <translation id="4964455510556214366">Układ</translation> <translation id="4964673849688379040">Sprawdzam...</translation> <translation id="4965808351167763748">Czy na pewno chcesz skonfigurować to urządzenie na potrzeby Hangouts Meet?</translation> -<translation id="4967749818080339523">Wybierz konto</translation> <translation id="496888482094675990">Aplikacja Pliki daje szybki dostęp do plików zapisanych na Dysku Google, urządzeniu z Chrome OS lub w pamięci zewnętrznej.</translation> <translation id="4969785127455456148">Album</translation> <translation id="4971412780836297815">Otwórz po zakończeniu</translation> @@ -2750,7 +2727,6 @@ Niezależnie od tego, co stanie się z Twoim urządzeniem, pliki będą bezpiecznie zapisane na Dysku Google.<ph name="MARKUP_6" /> <ph name="MARKUP_7" />Udostępniaj i twórz pliki oraz edytuj<ph name="MARKUP_8" /> je z innymi użytkownikami – wszystko w jednym miejscu.<ph name="MARKUP_9" /></translation> -<translation id="5262401745672360397">Mogą zostać usunięte również pliki udostępnione aplikacjom na Linuksa.</translation> <translation id="5264148714798105376">To może potrwać około minuty.</translation> <translation id="5264252276333215551">Aby uruchomić aplikację w trybie kiosku, połącz się z internetem.</translation> <translation id="5265562206369321422">Offline od ponad tygodnia</translation> @@ -3402,7 +3378,6 @@ <translation id="6241530762627360640">Dostęp do informacji o urządzeniach Bluetooth sparowanych z systemem oraz wykrywanie urządzeń Bluetooth w pobliżu</translation> <translation id="6243280677745499710">Obecnie ustawiona</translation> <translation id="6243774244933267674">Serwer niedostępny</translation> -<translation id="6246413617632217567">Nie udało się zaimportować nadzorowanego użytkownika. Sprawdź miejsce na dysku twardym i uprawnienia, a potem spróbuj ponownie.</translation> <translation id="6247708409970142803"><ph name="PERCENTAGE" />%</translation> <translation id="6247802389331535091">System: <ph name="ARC_PROCESS_NAME" /></translation> <translation id="624789221780392884">Aktualizacja jest gotowa</translation> @@ -3601,7 +3576,6 @@ <translation id="654039047105555694"><ph name="BEGIN_BOLD" />Uwaga:<ph name="END_BOLD" /> włącz tę opcję, tylko jeśli dokładnie wiesz, co robisz, lub ktoś Cię o to poprosił – zbieranie danych może obniżyć wydajność.</translation> <translation id="654233263479157500">Używaj usługi internetowej, aby pomóc w rozwiązywaniu błędów nawigacji</translation> <translation id="6544215763872433504">Przeglądarka Google dla Ciebie</translation> -<translation id="6545325945815270297">Zarządzaj zsynchronizowanymi danymi i urządzeniami w <ph name="BEGIN_LINK" />Panelu Chrome<ph name="END_LINK" />.</translation> <translation id="6545665334409411530">Szybkość powtarzania</translation> <translation id="6545834809683560467">Używaj podpowiedzi, by uzupełniać zapytania i adresy URL wpisywane na pasku adresu lub w polu wyszukiwania menu z aplikacjami</translation> <translation id="6546686722964485737">Połącz z siecią WiMAX</translation> @@ -3616,7 +3590,6 @@ <translation id="6555810572223193255">Czyszczenie jest obecnie niedostępne</translation> <translation id="6556866813142980365">Ponów</translation> <translation id="6558280019477628686">Wystąpił błąd. Niektóre elementy mogły nie zostać usunięte.</translation> -<translation id="6559580823502247193">(użytkownik już zarejestrowany na urządzeniu)</translation> <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="656398493051028875">Usuwam „<ph name="FILENAME" />”...</translation> @@ -3813,7 +3786,6 @@ <translation id="6862635236584086457">Wszystkie pliki przechowywane w tym folderze są automatycznie zapisywane online</translation> <translation id="6865313869410766144">Autouzupełnianie danych formularzy</translation> <translation id="686664946474413495">Temperatura kolorów</translation> -<translation id="6867678160199975333">Przełącz profil na: <ph name="NEW_PROFILE_NAME" /></translation> <translation id="6870888490422746447">Wybierz aplikację docelową udostępniania:</translation> <translation id="6871644448911473373">Obiekt odpowiadający protokołu OCSP: <ph name="LOCATION" /></translation> <translation id="6872781471649843364">Podane hasło zostało odrzucone przez serwer.</translation> @@ -3907,7 +3879,6 @@ <translation id="7018275672629230621">Odczyt i zmiana historii przeglądania</translation> <translation id="7019805045859631636">Szybko</translation> <translation id="7022562585984256452">Strona startowa została ustawiona.</translation> -<translation id="7025036625303002400">Wygląda na to, że masz już nadzorowanego użytkownika o tej nazwie.</translation> <translation id="7025190659207909717">Zarządzanie komórkową usługą transmisji danych</translation> <translation id="7025325401470358758">Następny panel</translation> <translation id="7027125358315426638">Nazwa bazy danych:</translation> @@ -3956,7 +3927,6 @@ <translation id="7092106376816104">Wyjątki dla wyskakujących okienek</translation> <translation id="7093434536568905704">GTK+</translation> <translation id="7093866338626856921">Wymiana danych z urządzeniami o nazwach: <ph name="HOSTNAMES" /></translation> -<translation id="7096108453481049031">Nie udało się zaimportować nadzorowanego użytkownika. Sprawdź połączenie sieciowe i spróbuj ponownie później.</translation> <translation id="7096406577040705016">Włącz lub wyłącz lupę pełnego ekranu</translation> <translation id="7098447629416471489">Tutaj pojawią się inne zapisane wyszukiwarki</translation> <translation id="7099337801055912064">Nie można załadować pliku PPD, bo jest zbyt duży. Maksymalny rozmiar to 250 kB.</translation> @@ -4004,7 +3974,6 @@ <translation id="7168109975831002660">Minimalny rozmiar czcionki</translation> <translation id="7170041865419449892">Poza zasięgiem</translation> <translation id="7171559745792467651">Instalowanie aplikacji z innych urządzeń</translation> -<translation id="7173917244679555">Wygląda na to, że już zarządzasz użytkownikiem o tej nazwie. Chcesz <ph name="BEGIN_LINK" />zaimportować profil <ph name="PROFILE_NAME" /><ph name="END_LINK" /> na to urządzenie?</translation> <translation id="7175037578838465313">Skonfiguruj: <ph name="NAME" /></translation> <translation id="7175353351958621980">Załadowane z:</translation> <translation id="7180611975245234373">Odśwież</translation> @@ -4169,7 +4138,6 @@ <translation id="7444726222535375658">Otwórz Hangouts Meet</translation> <translation id="7444983668544353857">Wyłącz – <ph name="NETWORKDEVICE" /></translation> <translation id="7445682342344043969">Wyskakujące okienka zablokowane</translation> -<translation id="744859430125590922">Używaj adresu <ph name="CUSTODIAN_EMAIL" /> do kontrolowania i wyświetlania stron, na które wchodzi ta osoba</translation> <translation id="7453008956351770337">Wybierając tę drukarkę, zezwalasz na dostęp do niej temu rozszerzeniu:</translation> <translation id="7453467225369441013">Wylogowuje z większości stron internetowych. Nie wyloguje Cię z konta Google.</translation> <translation id="7456142309650173560">deweloperska</translation> @@ -4342,7 +4310,6 @@ <translation id="7717845620320228976">Sprawdź dostępność aktualizacji</translation> <translation id="7719367874908701697">Powiększenie strony</translation> <translation id="771953673318695590">QA</translation> -<translation id="7720375555307821262">Aby nadzorować tę osobę, <ph name="BEGIN_LINK" />zaloguj się w Chrome<ph name="END_LINK" />.</translation> <translation id="7721179060400456005">Zezwól na rozciąganie okien na wiele wyświetlaczy</translation> <translation id="7722040605881499779">Aktualizacja potrzebuje <ph name="NECESSARY_SPACE" /></translation> <translation id="7724603315864178912">Wytnij</translation> @@ -5198,7 +5165,6 @@ <translation id="9024331582947483881">pełny ekran</translation> <translation id="9025098623496448965">OK, wróć do ekranu logowania</translation> <translation id="9026731007018893674">pobrane</translation> -<translation id="9027146684281895941">Nadzoruj tę osobę, by kontrolować i wyświetlać odwiedzane przez nią strony ze swojego konta Google.</translation> <translation id="9027459031423301635">Otwórz link w nowej &karcie</translation> <translation id="9027603907212475920">Konfiguruj synchronizację</translation> <translation id="9030515284705930323">Twoja organizacja nie włączyła Sklepu Google Play dla Twojego konta. Aby uzyskać więcej informacji, skontaktuj się z administratorem.</translation> @@ -5358,7 +5324,6 @@ <translation id="98515147261107953">Poziomo</translation> <translation id="987897973846887088">Brak dostępnych plików graficznych</translation> <translation id="988978206646512040">Puste hasło jest niedozwolone</translation> -<translation id="990310048453480215">Usuń aplikacje na Linuksa</translation> <translation id="992032470292211616">Rozszerzenia, aplikacje i motywy mogą wyrządzić szkody na urządzeniu. Na pewno chcesz kontynuować?</translation> <translation id="992592832486024913">Wyłącz ChromeVox (potwierdzenia głosowe)</translation> <translation id="994289308992179865">&Powtarzaj</translation>
diff --git a/chrome/app/resources/generated_resources_pt-BR.xtb b/chrome/app/resources/generated_resources_pt-BR.xtb index 85318ed..acb191a7 100644 --- a/chrome/app/resources/generated_resources_pt-BR.xtb +++ b/chrome/app/resources/generated_resources_pt-BR.xtb
@@ -42,7 +42,6 @@ <translation id="1056898198331236512">Aviso</translation> <translation id="1058262162121953039">PUK</translation> <translation id="1062407476771304334">Substituir</translation> -<translation id="1062866675591297858">Administre seus usuários supervisionados usando o <ph name="BEGIN_LINK" />Painel de usuários supervisionados<ph name="END_LINK" />.</translation> <translation id="1064835277883315402">Conectar a uma rede particular</translation> <translation id="1064912851688322329">Desconecta sua Conta do Google</translation> <translation id="1067048845568873861">Criado em</translation> @@ -65,7 +64,6 @@ <translation id="1091767800771861448">Pressione ESC para pular (versões não-oficiais apenas).</translation> <translation id="1093457606523402488">Redes visíveis</translation> <translation id="1094607894174825014">A operação de leitura ou escrita foi solicitada com um deslocamento inválido em: "<ph name="DEVICE_NAME" />".</translation> -<translation id="1097507499312291972"><ph name="BEGIN_SIGN_IN_LINK" />Faça login<ph name="END_SIGN_IN_LINK" /> para controlar e ver os websites que essa pessoa visita.</translation> <translation id="109758035718544977">Parar de ignorar sites</translation> <translation id="1097658378307015415">Antes de fazer login, entre como Visitante para ativar a rede <ph name="NETWORK_ID" /></translation> <translation id="1103523840287552314">Sempre traduzir do <ph name="LANGUAGE" /></translation> @@ -244,7 +242,6 @@ <translation id="1361655923249334273">Não utilizado</translation> <translation id="1363028406613469049">Rastrear</translation> <translation id="1367951781824006909">Escolher um arquivo</translation> -<translation id="136802136832547685">Não há usuários supervisionados para adicionar a esse dispositivo.</translation> <translation id="1368265273904755308">Informar problema</translation> <translation id="1370646789215800222">Remover pessoa?</translation> <translation id="1372681413396468867">{NUM_ITEMS,plural, =1{1 item a ser removido}one{# item a ser removido}other{# itens a serem removidos}}</translation> @@ -472,7 +469,6 @@ <translation id="1692799361700686467">Cookies de vários sites foram permitidos.</translation> <translation id="169515659049020177">Shift</translation> <translation id="1698122934742150150">Apenas a sessão anônima atual</translation> -<translation id="1700199471143028312">Seu administrador não permite que você crie usuários supervisionados.</translation> <translation id="1701062906490865540">Remover esta pessoa</translation> <translation id="1706586824377653884">Adicionado pelo seu administrador</translation> <translation id="1706625117072057435">Níveis de zoom</translation> @@ -1041,7 +1037,6 @@ <translation id="2604255671529671813">Erro de conexão da rede</translation> <translation id="2606246518223360146">Vincular dados</translation> <translation id="2607101320794533334">Informações da chave pública do requerente</translation> -<translation id="2607459012323956820">As configurações e o histórico de navegação deste usuário supervisionado ainda podem ser vistos pelo administrador em <ph name="BEGIN_LINK" /><ph name="DISPLAY_LINK" /><ph name="END_LINK" />.</translation> <translation id="2608770217409477136">Usar configurações padrão</translation> <translation id="2609896558069604090">Criar atalhos...</translation> <translation id="2610157865375787051">Suspender</translation> @@ -1284,7 +1279,6 @@ <translation id="2951247061394563839">Centralizar janela</translation> <translation id="2956763290572484660"><ph name="COOKIES" /> cookies</translation> <translation id="2958721676848865875">Aviso de extensão de pacote</translation> -<translation id="2961043351165706615">Os apps do Linux que você instalou serão excluídos deste Chromebook.</translation> <translation id="2961090598421146107"><ph name="CERTIFICATE_NAME" /> (extensão fornecida)</translation> <translation id="2961695502793809356">Clique para avançar, mantenha pressionado para ver o histórico</translation> <translation id="2963151496262057773">Este plug-in não responde: <ph name="PLUGIN_NAME" />. Quer interrompê-lo?</translation> @@ -1336,15 +1330,6 @@ <translation id="3022978424994383087">Não entendi.</translation> <translation id="3024374909719388945">Usar relógio no formato 24 horas</translation> <translation id="302781076327338683">Atualizar ignorando o cache</translation> -<translation id="3030243755303701754">Um usuário supervisionado pode explorar a Web com sua orientação. Por ser o administrador de um usuário supervisionado no Chrome, você pode: - - • permitir ou proibir determinados websites; - • analisar os websites que o usuário supervisionado visitou; e - • gerenciar outras configurações. - -A criação de um usuário supervisionado não cria uma Conta do Google. Os favoritos, histórico de navegação e outras preferências desse usuário não são sincronizados com outros dispositivos com a Sincronização do Chrome. Depois de criar um novo usuário supervisionado, você pode gerenciar as configurações dele a qualquer momento, a partir de qualquer dispositivo, em <ph name="BEGIN_MANAGE_LINK" /><ph name="DISPLAY_LINK" /><ph name="END_MANAGE_LINK" />. - -Para ver mais informações, visite nossa <ph name="BEGIN_LINK" />Central de Ajuda<ph name="END_LINK" />.</translation> <translation id="3031417829280473749">Agente X</translation> <translation id="3031557471081358569">Selecione os itens que serão importados:</translation> <translation id="3031601332414921114">Retomar impressão</translation> @@ -1385,7 +1370,6 @@ <translation id="3085412380278336437">O site pode usar sua câmera</translation> <translation id="3085752524577180175">Host SOCKS</translation> <translation id="3088325635286126843">&Renomear...</translation> -<translation id="3089231390674410424">Parece que há um problema com suas credenciais. Verifique se você fez login corretamente e tente de novo.</translation> <translation id="3090193911106258841">Acessando entrada de áudio e vídeo</translation> <translation id="3090819949319990166">Não foi possível copiar o arquivo externo crx em <ph name="TEMP_CRX_FILE" />.</translation> <translation id="3090871774332213558">"<ph name="DEVICE_NAME" />" pareado</translation> @@ -1400,7 +1384,6 @@ <translation id="3121793941267913344">Restaurar este dispositivo <ph name="IDS_SHORT_PRODUCT_NAME" /></translation> <translation id="3122464029669770682">CPU</translation> <translation id="3122496702278727796">Falha ao criar o diretório de dados</translation> -<translation id="3123569374670379335">(Supervisionado)</translation> <translation id="3124111068741548686">Processamentos do USUÁRIO</translation> <translation id="3126026824346185272">Ctrl</translation> <translation id="3127156390846601284">Essa ação excluirá todos os dados armazenados no seu dispositivo para todos os sites exibidos. Quer continuar?</translation> @@ -1435,8 +1418,6 @@ <translation id="3160842278951476457"><ph name="ISSUED_BY" /> [<ph name="ISSUED_TO" />] (no hardware)</translation> <translation id="316125635462764134">Remover aplicativo</translation> <translation id="3161522574479303604">Todos os idiomas</translation> -<translation id="316307797510303346">Controlar e ver os websites que esta pessoa visita no <ph name="CUSTODIAN_EMAIL" />. - Seus detalhes de login da conta estão desatualizados.</translation> <translation id="3165390001037658081">Algumas operadoras podem bloquear esse recurso.</translation> <translation id="316854673539778496">Para ter todas as suas extensões em todos os seus dispositivos, faça login e ative a sincronização.</translation> <translation id="3170072451822350649">Também é possível ignorar o login e <ph name="LINK_START" />navegar como visitante<ph name="LINK_END" />.</translation> @@ -1469,7 +1450,6 @@ <translation id="3229922550070982305">reproduzir / pausar</translation> <translation id="3232318083971127729">Valor:</translation> <translation id="3236289833370040187">A propriedade será transferida para <ph name="DESTINATION_DOMAIN" />.</translation> -<translation id="3237784613213365159"><ph name="NEW_PROFILE_NAME" /> agora é um usuário supervisionado</translation> <translation id="323803881985677942">Abrir opções de extensão</translation> <translation id="3241680850019875542">Selecione o diretório raiz da extensão a ser empacotada. Para atualizar uma extensão, selecione também a chave privada a ser reutilizada.</translation> <translation id="3242765319725186192">Chave pré-compartilhada:</translation> @@ -1701,7 +1681,6 @@ <translation id="3584169441612580296">Ler e alterar fotos, músicas e outras mídias do seu computador</translation> <translation id="3587482841069643663">Tudo</translation> <translation id="358796204584394954">Digite este código no "<ph name="DEVICE_NAME" />" para o pareamento:</translation> -<translation id="3589532742556016615">Isso não afeta os apps nem os conteúdos em outros dispositivos.</translation> <translation id="3589766037099229847">Conteúdo inseguro bloqueado</translation> <translation id="3590194807845837023">Desbloquear perfil e reiniciar</translation> <translation id="3592260987370335752">&Saiba mais</translation> @@ -1835,7 +1814,6 @@ <translation id="3778152852029592020">O download foi cancelado.</translation> <translation id="3778740492972734840">Ferramentas do &desenvolvedor</translation> <translation id="3778868487658107119">Faça perguntas ou diga a ele o que fazer. É o seu Google pessoal, sempre pronto para ajudar.</translation> -<translation id="3780663724044634171">Selecione uma conta para administrar o usuário supervisionado.</translation> <translation id="378312418865624974">Ler o identificador exclusivo deste computador</translation> <translation id="3783640748446814672">alt</translation> <translation id="3785308913036335955">Mostrar atalho para aplicativos</translation> @@ -2563,7 +2541,6 @@ <translation id="4964455510556214366">Organização</translation> <translation id="4964673849688379040">Verificando...</translation> <translation id="4965808351167763748">Tem certeza que quer configurar este dispositivo para executar o Hangouts Meet?</translation> -<translation id="4967749818080339523">Selecionar uma conta</translation> <translation id="496888482094675990">O aplicativo Arquivos fornece acesso rápido a arquivos que foram salvos no Google Drive, em armazenamento externo ou no seu dispositivo Chrome OS.</translation> <translation id="4969785127455456148">Álbum</translation> <translation id="4971412780836297815">Abrir quando estiver concluído</translation> @@ -2750,7 +2727,6 @@ Aconteça o que acontecer com seu dispositivo, seus arquivos ficam armazenados em segurança no Google Drive.<ph name="MARKUP_6" /> <ph name="MARKUP_7" />Compartilhe, crie e colabore<ph name="MARKUP_8" /> em arquivos com outras pessoas em um só lugar.<ph name="MARKUP_9" /></translation> -<translation id="5262401745672360397">Os arquivos compartilhados com os apps do Linux também podem ser excluídos.</translation> <translation id="5264148714798105376">Isso pode levar aproximadamente um minuto.</translation> <translation id="5264252276333215551">Conecte-se à Internet para iniciar seu aplicativo no modo quiosque.</translation> <translation id="5265562206369321422">Off-line há mais de uma semana</translation> @@ -3404,7 +3380,6 @@ <translation id="6241530762627360640">Acessar informações sobre dispositivos Bluetooth pareados com seu sistema e descobrir dispositivos Bluetooth nas proximidades.</translation> <translation id="6243280677745499710">Definido no momento</translation> <translation id="6243774244933267674">Servidor não disponível</translation> -<translation id="6246413617632217567">Não foi possível importar o usuário supervisionado. Verifique o espaço no disco rígido e as permissões e tente novamente.</translation> <translation id="6247708409970142803"><ph name="PERCENTAGE" />%</translation> <translation id="6247802389331535091">Sistema: <ph name="ARC_PROCESS_NAME" /></translation> <translation id="624789221780392884">Atualização pronta</translation> @@ -3603,7 +3578,6 @@ <translation id="654039047105555694"><ph name="BEGIN_BOLD" />Observação:<ph name="END_BOLD" /> Ative somente se você souber o que está fazendo ou tiver sido solicitado(a) a fazê-lo, porque a coleta de dados pode reduzir o desempenho.</translation> <translation id="654233263479157500">Utilizar um serviço da web para ajudar a solucionar erros de navegação</translation> <translation id="6544215763872433504">O navegador da Web do Google para você</translation> -<translation id="6545325945815270297">Gerencie seus dados e dispositivos sincronizados no <ph name="BEGIN_LINK" />Painel do Chrome<ph name="END_LINK" />.</translation> <translation id="6545665334409411530">Taxa de repetição</translation> <translation id="6545834809683560467">Utilizar o serviço de previsão para ajudar a completar pesquisas e URLs digitados na barra de endereço ou na caixa de pesquisa do Acesso rápido aos apps</translation> <translation id="6546686722964485737">Entrar para a rede WiMAX</translation> @@ -3618,7 +3592,6 @@ <translation id="6555810572223193255">A limpeza está indisponível no momento</translation> <translation id="6556866813142980365">Refazer</translation> <translation id="6558280019477628686">Ocorreu um erro. Alguns itens podem não ter sido excluídos.</translation> -<translation id="6559580823502247193">(já neste dispositivo)</translation> <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="656398493051028875">Excluindo "<ph name="FILENAME" />"...</translation> @@ -3815,7 +3788,6 @@ <translation id="6862635236584086457">Todos os arquivos salvos nessa pasta são salvos em backup on-line automaticamente</translation> <translation id="6865313869410766144">Preenchimento automático dos dados do formulário</translation> <translation id="686664946474413495">Temperatura da cor</translation> -<translation id="6867678160199975333">Alternar para <ph name="NEW_PROFILE_NAME" /></translation> <translation id="6870888490422746447">Escolha um app para compartilhar:</translation> <translation id="6871644448911473373">Respondente OCSP: <ph name="LOCATION" /></translation> <translation id="6872781471649843364">A senha inserida foi recusada pelo servidor.</translation> @@ -3909,7 +3881,6 @@ <translation id="7018275672629230621">Ler e alterar seu histórico de navegação</translation> <translation id="7019805045859631636">Rápido</translation> <translation id="7022562585984256452">Sua página inicial foi definida.</translation> -<translation id="7025036625303002400">Parece que você já tem um usuário supervisionado com esse nome.</translation> <translation id="7025190659207909717">Gerenciamento dos serviços de dados móveis</translation> <translation id="7025325401470358758">Próximo painel</translation> <translation id="7027125358315426638">Nome do banco de dados:</translation> @@ -3958,7 +3929,6 @@ <translation id="7092106376816104">Exceções de pop-ups</translation> <translation id="7093434536568905704">GTK+</translation> <translation id="7093866338626856921">Trocar dados com os dispositivos chamados: <ph name="HOSTNAMES" /></translation> -<translation id="7096108453481049031">Não foi possível importar o usuário supervisionado. Verifique sua conexão de rede e tente novamente mais tarde.</translation> <translation id="7096406577040705016">Alternar para lupa de tela cheia</translation> <translation id="7098447629416471489">Outros mecanismos de pesquisa salvos serão exibidos aqui</translation> <translation id="7099337801055912064">Não é possível carregar um PPD grande. O tamanho máximo é 250 KB.</translation> @@ -4006,7 +3976,6 @@ <translation id="7168109975831002660">Tamanho mínimo da fonte</translation> <translation id="7170041865419449892">Fora de alcance</translation> <translation id="7171559745792467651">Instale apps dos seus outros dispositivos</translation> -<translation id="7173917244679555">Parece que você já está administrando um usuário com esse nome. Quer <ph name="BEGIN_LINK" />importar <ph name="PROFILE_NAME" /><ph name="END_LINK" /> para este dispositivo?</translation> <translation id="7175037578838465313">Configurar a rede <ph name="NAME" /></translation> <translation id="7175353351958621980">Carregado de:</translation> <translation id="7180611975245234373">Atualizar</translation> @@ -4179,7 +4148,6 @@ <translation id="7444726222535375658">Continuar para Hangouts Meet</translation> <translation id="7444983668544353857">Desativar <ph name="NETWORKDEVICE" /></translation> <translation id="7445682342344043969">Pop-ups bloqueados</translation> -<translation id="744859430125590922">Controlar e ver os websites que essa pessoa visita com o e-mail <ph name="CUSTODIAN_EMAIL" />.</translation> <translation id="7453008956351770337">Ao selecionar esta impressora, você concede permissão para acessar sua impressora à seguinte extensão:</translation> <translation id="7453467225369441013">Desconecta você da maioria dos sites, mas não da sua Conta do Google.</translation> <translation id="7456142309650173560">dev</translation> @@ -4353,7 +4321,6 @@ <translation id="7717845620320228976">Verificar se há atualizações</translation> <translation id="7719367874908701697">Zoom da página:</translation> <translation id="771953673318695590">QA</translation> -<translation id="7720375555307821262">Para supervisionar essa pessoa, <ph name="BEGIN_LINK" />faça login no Chrome<ph name="END_LINK" />.</translation> <translation id="7721179060400456005">Permitir que as janelas estendam as telas</translation> <translation id="7722040605881499779">Atualização necessária: <ph name="NECESSARY_SPACE" /></translation> <translation id="7724603315864178912">Recortar</translation> @@ -5209,7 +5176,6 @@ <translation id="9024331582947483881">tela cheia</translation> <translation id="9025098623496448965">Ok, leve-me de volta à tela de login</translation> <translation id="9026731007018893674">download</translation> -<translation id="9027146684281895941">Supervisionar esta pessoa para controlar e ver os websites que ela visita usando a Conta do Google.</translation> <translation id="9027459031423301635">Abrir link em uma nova &guia</translation> <translation id="9027603907212475920">Configurar a sincronização...</translation> <translation id="9030515284705930323">Sua organização não ativou a Google Play Store para sua conta. Entre em contato com seu administrador para receber mais informações.</translation> @@ -5369,7 +5335,6 @@ <translation id="98515147261107953">Paisagem</translation> <translation id="987897973846887088">Não há imagens disponíveis</translation> <translation id="988978206646512040">A senha longa não pode ficar em branco</translation> -<translation id="990310048453480215">Remover apps do Linux</translation> <translation id="992032470292211616">Extensões, aplicativos e temas podem danificar seu dispositivo. Tem certeza que quer continuar?</translation> <translation id="992592832486024913">Desativar ChromeVox (feedback falado)</translation> <translation id="994289308992179865">&Repetir</translation>
diff --git a/chrome/app/resources/generated_resources_pt-PT.xtb b/chrome/app/resources/generated_resources_pt-PT.xtb index edead17e..b5bb93d3 100644 --- a/chrome/app/resources/generated_resources_pt-PT.xtb +++ b/chrome/app/resources/generated_resources_pt-PT.xtb
@@ -42,7 +42,6 @@ <translation id="1056898198331236512">Aviso</translation> <translation id="1058262162121953039">PUK</translation> <translation id="1062407476771304334">Substituir</translation> -<translation id="1062866675591297858">Faça a gestão dos seus utilizadores supervisionados no <ph name="BEGIN_LINK" />Painel de controlo de utilizadores supervisionados<ph name="END_LINK" />.</translation> <translation id="1064835277883315402">Aderir a rede privada</translation> <translation id="1064912851688322329">Desligar a sua Conta Google</translation> <translation id="1067048845568873861">Data da criação</translation> @@ -65,7 +64,6 @@ <translation id="1091767800771861448">Prima ESCAPE para ignorar (apenas nas compilações não oficiais).</translation> <translation id="1093457606523402488">Redes visíveis</translation> <translation id="1094607894174825014">Foi solicitada uma operação de leitura ou de escrita com um desvio inválido em: "<ph name="DEVICE_NAME" />".</translation> -<translation id="1097507499312291972"><ph name="BEGIN_SIGN_IN_LINK" />Inicie sessão<ph name="END_SIGN_IN_LINK" /> para controlar e visualizar os Sites que esta pessoa visita.</translation> <translation id="109758035718544977">Reativar som dos sites</translation> <translation id="1097658378307015415">Antes de iniciar sessão, entre como Convidado para ativar a rede <ph name="NETWORK_ID" /></translation> <translation id="1103523840287552314">Traduzir sempre <ph name="LANGUAGE" /></translation> @@ -244,7 +242,6 @@ <translation id="1361655923249334273">Não utilizado</translation> <translation id="1363028406613469049">Faixa</translation> <translation id="1367951781824006909">Selecione um ficheiro</translation> -<translation id="136802136832547685">Não existem utilizadores supervisionados para adicionar a este dispositivo.</translation> <translation id="1368265273904755308">Comunicar problema</translation> <translation id="1370646789215800222">Remover a pessoa?</translation> <translation id="1372681413396468867">{NUM_ITEMS,plural, =1{1 item a remover}other{# itens a remover}}</translation> @@ -473,7 +470,6 @@ <translation id="1692799361700686467">Permitidos cookies de vários sites.</translation> <translation id="169515659049020177">Shift</translation> <translation id="1698122934742150150">Apenas para a sessão no modo de navegação anónima atual</translation> -<translation id="1700199471143028312">O gestor não lhe permite criar utilizadores supervisionados.</translation> <translation id="1701062906490865540">Remover esta pessoa</translation> <translation id="1706586824377653884">Adicionado pelo gestor</translation> <translation id="1706625117072057435">Níveis de zoom</translation> @@ -1042,7 +1038,6 @@ <translation id="2604255671529671813">Erro de ligação à rede</translation> <translation id="2606246518223360146">Associar dados</translation> <translation id="2607101320794533334">Informações de chave pública do requerente</translation> -<translation id="2607459012323956820">As definições e o histórico de navegação deste utilizador supervisionado podem continuar visíveis para o gestor em <ph name="BEGIN_LINK" /><ph name="DISPLAY_LINK" /><ph name="END_LINK" />.</translation> <translation id="2608770217409477136">Utilizar predefinições</translation> <translation id="2609896558069604090">Criar Atalhos...</translation> <translation id="2610157865375787051">Suspensão</translation> @@ -1285,7 +1280,6 @@ <translation id="2951247061394563839">Centrar janela</translation> <translation id="2956763290572484660"><ph name="COOKIES" /> cookies</translation> <translation id="2958721676848865875">Aviso de extensão do pacote</translation> -<translation id="2961043351165706615">As aplicações do Linux instaladas serão eliminadas deste Chromebook.</translation> <translation id="2961090598421146107"><ph name="CERTIFICATE_NAME" /> (extensão fornecida)</translation> <translation id="2961695502793809356">Clique para avançar, mantenha premido para ver o histórico</translation> <translation id="2963151496262057773">O seguinte plug-in está sem resposta: <ph name="PLUGIN_NAME" /> @@ -1338,15 +1332,6 @@ <translation id="3022978424994383087">Não entendido.</translation> <translation id="3024374909719388945">Utilizar relógio de 24h</translation> <translation id="302781076327338683">Atualizar processo para ignorar a cache</translation> -<translation id="3030243755303701754">Um utilizador supervisionado pode explorar a Web com a sua orientação. Como gestor de um utilizador supervisionado no Chrome, pode: - - • permitir ou proibir determinados Sites, - • rever os Sites visitados pelo utilizador supervisionado, e - • gerir outras definições. - -A criação de um utilizador supervisionado não cria uma Conta Google, pelo que os marcadores, o histórico de navegação e outras preferências de um utilizador supervisionado não o seguem para outros dispositivos com a Sincronização do Chrome. Depois de criar um novo utilizador supervisionado, pode gerir as respetivas definições a qualquer momento, a partir de qualquer dispositivo, em <ph name="BEGIN_MANAGE_LINK" /><ph name="DISPLAY_LINK" /><ph name="END_MANAGE_LINK" />. - -Para obter mais informações, aceda ao nosso <ph name="BEGIN_LINK" />Centro de Ajuda<ph name="END_LINK" />.</translation> <translation id="3031417829280473749">Agente X</translation> <translation id="3031557471081358569">Seleccione os itens a importar:</translation> <translation id="3031601332414921114">Retomar a impressão</translation> @@ -1387,7 +1372,6 @@ <translation id="3085412380278336437">O site pode utilizar a câmara.</translation> <translation id="3085752524577180175">Anfitrião SOCKS</translation> <translation id="3088325635286126843">&Mudar o nome...</translation> -<translation id="3089231390674410424">Parece que existe um problema com as suas credenciais. Certifique-se de que iniciou sessão corretamente e tente de novo.</translation> <translation id="3090193911106258841">A aceder à entrada de áudio e de vídeo</translation> <translation id="3090819949319990166">Não é possível copiar o ficheiro crx externo para <ph name="TEMP_CRX_FILE" />.</translation> <translation id="3090871774332213558">"<ph name="DEVICE_NAME" />" sincronizado</translation> @@ -1402,7 +1386,6 @@ <translation id="3121793941267913344">Repor este dispositivo <ph name="IDS_SHORT_PRODUCT_NAME" /></translation> <translation id="3122464029669770682">CPU</translation> <translation id="3122496702278727796">Falha ao criar directório de dados</translation> -<translation id="3123569374670379335">(Supervisionado)</translation> <translation id="3124111068741548686">Identificadores de UTILIZADOR</translation> <translation id="3126026824346185272">Ctrl</translation> <translation id="3127156390846601284">Esta ação irá eliminar todos os dados armazenados no dispositivo para todos os sites apresentados. Pretende continuar?</translation> @@ -1437,8 +1420,6 @@ <translation id="3160842278951476457"><ph name="ISSUED_BY" /> [<ph name="ISSUED_TO" />] (suportado por hardware)</translation> <translation id="316125635462764134">Remover aplicação</translation> <translation id="3161522574479303604">Todos os idiomas</translation> -<translation id="316307797510303346">Controlar e visualizar os Sites que esta pessoa visita a partir de <ph name="CUSTODIAN_EMAIL" />. - Os detalhes de início de sessão da sua conta estão desatualizados.</translation> <translation id="3165390001037658081">Alguns operadores podem bloquear esta funcionalidade.</translation> <translation id="316854673539778496">Para obter todas as suas extensões em todos os dispositivos, inicie sessão e ative a sincronização.</translation> <translation id="3170072451822350649">Também pode ignorar o início de sessão e <ph name="LINK_START" />navegar como Convidado<ph name="LINK_END" />.</translation> @@ -1471,7 +1452,6 @@ <translation id="3229922550070982305">reproduzir/colocar em pausa</translation> <translation id="3232318083971127729">Valor:</translation> <translation id="3236289833370040187">A propriedade será transferida para <ph name="DESTINATION_DOMAIN" />.</translation> -<translation id="3237784613213365159"><ph name="NEW_PROFILE_NAME" /> é agora um utilizador supervisionado</translation> <translation id="323803881985677942">Abrir opções de extensão</translation> <translation id="3241680850019875542">Selecione o directório raiz da extensão a comprimir. Para atualizar uma extensão, selecione também o ficheiro de chave privada a reutilizar.</translation> <translation id="3242765319725186192">Chave pré-partilhada:</translation> @@ -1703,7 +1683,6 @@ <translation id="3584169441612580296">Ler e alterar fotos, música e outros elementos multimédia a partir do computador</translation> <translation id="3587482841069643663">Tudo</translation> <translation id="358796204584394954">Introduza este código no "<ph name="DEVICE_NAME" />" para sincronizar:</translation> -<translation id="3589532742556016615">Esta ação não afeta aplicações ou conteúdo noutros dispositivos.</translation> <translation id="3589766037099229847">Conteúdo inseguro bloqueado</translation> <translation id="3590194807845837023">Desbloquear perfil e reiniciar</translation> <translation id="3592260987370335752">&Saiba mais</translation> @@ -1837,7 +1816,6 @@ <translation id="3778152852029592020">A transferência foi cancelada.</translation> <translation id="3778740492972734840">Ferramentas &do programador</translation> <translation id="3778868487658107119">Faça-lhe perguntas. Diga-lhe para realizar tarefas. É o seu Google pessoal, sempre pronto para ajudar.</translation> -<translation id="3780663724044634171">Selecione uma conta para gerir o utilizador supervisionado.</translation> <translation id="378312418865624974">Ler um identificador único para este computador</translation> <translation id="3783640748446814672">alt</translation> <translation id="3785308913036335955">Mostrar Atalho das Aplicações</translation> @@ -2565,7 +2543,6 @@ <translation id="4964455510556214366">Disposição</translation> <translation id="4964673849688379040">A verificar...</translation> <translation id="4965808351167763748">Tem a certeza de que pretende configurar este dispositivo para executar o Hangouts Meet?</translation> -<translation id="4967749818080339523">Selecionar uma conta</translation> <translation id="496888482094675990">A aplicação Ficheiros fornece um acesso rápido aos ficheiros que guardou no Google Drive, no armazenamento externo ou no dispositivo Chrome OS.</translation> <translation id="4969785127455456148">Álbum</translation> <translation id="4971412780836297815">Abrir quando estiver concluído</translation> @@ -2752,7 +2729,6 @@ Independentemente do que acontecer ao seu dispositivo, os seus ficheiros estão armazenados em segurança no Google Drive.<ph name="MARKUP_6" /> <ph name="MARKUP_7" />Partilhe, crie e colabore<ph name="MARKUP_8" /> em ficheiros com outras pessoas, tudo num único local.<ph name="MARKUP_9" /></translation> -<translation id="5262401745672360397">Os ficheiros partilhados com aplicações do Linux também podem ser eliminados.</translation> <translation id="5264148714798105376">Esta ação pode demorar cerca de um minuto.</translation> <translation id="5264252276333215551">Ligue-se à Internet para iniciar a aplicação no modo quiosque.</translation> <translation id="5265562206369321422">Offline durante mais de uma semana</translation> @@ -3405,7 +3381,6 @@ <translation id="6241530762627360640">Aceder às informações acerca dos dispositivos Bluetooth sincronizados com o seu sistema e descobrir dispositivos Bluetooth nas proximidades.</translation> <translation id="6243280677745499710">Definida atualmente</translation> <translation id="6243774244933267674">Servidor indisponível</translation> -<translation id="6246413617632217567">Não foi possível importar o utilizador supervisionado. Verifique o espaço disponível no disco rígido e as autorizações e tente novamente.</translation> <translation id="6247708409970142803"><ph name="PERCENTAGE" />%</translation> <translation id="6247802389331535091">Sistema: <ph name="ARC_PROCESS_NAME" /></translation> <translation id="624789221780392884">Atualização pronta</translation> @@ -3604,7 +3579,6 @@ <translation id="654039047105555694"><ph name="BEGIN_BOLD" />Nota:<ph name="END_BOLD" /> Ative apenas se tiver a certeza do que está a fazer ou se tal lhe tiver sido solicitado, dado que a recolha de dados pode diminuir o desempenho.</translation> <translation id="654233263479157500">Utilizar um serviço da Web para ajudar a resolver erros de navegação</translation> <translation id="6544215763872433504">O navegador de Internet da Google, para si</translation> -<translation id="6545325945815270297">Faça a gestão dos dados e dispositivos sincronizados no <ph name="BEGIN_LINK" />Painel de Controlo do Chrome<ph name="END_LINK" />.</translation> <translation id="6545665334409411530">Taxa de repetição</translation> <translation id="6545834809683560467">Utilize um serviço de previsão para ajudar a concluir as pesquisas e os URLs introduzidos na barra de endereço ou na caixa de pesquisa do iniciador de aplicações</translation> <translation id="6546686722964485737">Aderir à rede WiMAX</translation> @@ -3619,7 +3593,6 @@ <translation id="6555810572223193255">A limpeza está atualmente indisponível.</translation> <translation id="6556866813142980365">Refazer</translation> <translation id="6558280019477628686">Ocorreu um erro. É possível que alguns itens não tenham sido eliminados.</translation> -<translation id="6559580823502247193">(já existe neste dispositivo)</translation> <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="656398493051028875">A eliminar "<ph name="FILENAME" />"...</translation> @@ -3816,7 +3789,6 @@ <translation id="6862635236584086457">Será efetuada automaticamente uma cópia de segurança online de todos os ficheiros guardados nesta pasta</translation> <translation id="6865313869410766144">Dados de formulário de Preenchimento automático</translation> <translation id="686664946474413495">Temperatura da cor</translation> -<translation id="6867678160199975333">Mudar para <ph name="NEW_PROFILE_NAME" /></translation> <translation id="6870888490422746447">Escolha uma aplicação a partilhar em:</translation> <translation id="6871644448911473373">Serviço de resposta de OCSP: <ph name="LOCATION" /></translation> <translation id="6872781471649843364">A palavra-passe introduzida foi rejeitada pelo servidor.</translation> @@ -3910,7 +3882,6 @@ <translation id="7018275672629230621">Ler e alterar o histórico de navegação</translation> <translation id="7019805045859631636">Rápido</translation> <translation id="7022562585984256452">A sua página inicial foi definida.</translation> -<translation id="7025036625303002400">Parece que já tem um utilizador supervisionado com este nome.</translation> <translation id="7025190659207909717">Gestão de serviços de dados móveis</translation> <translation id="7025325401470358758">Painel seguinte</translation> <translation id="7027125358315426638">Nome da base de dados:</translation> @@ -3959,7 +3930,6 @@ <translation id="7092106376816104">Exceções de pop-up</translation> <translation id="7093434536568905704">GTK+</translation> <translation id="7093866338626856921">Trocar dados com os seguintes dispositivos: <ph name="HOSTNAMES" /></translation> -<translation id="7096108453481049031">Não foi possível importar o utilizador supervisionado. Verifique a ligação de rede e tente novamente mais tarde.</translation> <translation id="7096406577040705016">Ativar/desativar a Lupa de ecrã inteiro</translation> <translation id="7098447629416471489">Os outros motores de pesquisa guardados aparecem aqui</translation> <translation id="7099337801055912064">Não é possível carregar PPDs grandes. O tamanho máximo é 250 kB.</translation> @@ -4007,7 +3977,6 @@ <translation id="7168109975831002660">Tamanho mínimo do tipo de letra</translation> <translation id="7170041865419449892">Fora de alcance</translation> <translation id="7171559745792467651">Instalar aplicações dos seus outros dispositivos</translation> -<translation id="7173917244679555">Aparentemente, já está a fazer a gestão de um utilizador com esse nome. Pretendia <ph name="BEGIN_LINK" />importar <ph name="PROFILE_NAME" /><ph name="END_LINK" /> para este dispositivo?</translation> <translation id="7175037578838465313">Configurar <ph name="NAME" /></translation> <translation id="7175353351958621980">Carregado de:</translation> <translation id="7180611975245234373">Atualizar</translation> @@ -4179,7 +4148,6 @@ <translation id="7444726222535375658">Continuar para o Hangouts Meet</translation> <translation id="7444983668544353857">Desactivar <ph name="NETWORKDEVICE" /></translation> <translation id="7445682342344043969">Pop-ups bloqueados</translation> -<translation id="744859430125590922">Controlar e visualizar os Sites que esta pessoa visita a partir de <ph name="CUSTODIAN_EMAIL" />.</translation> <translation id="7453008956351770337">Ao selecionar esta impressora, está a conceder à seguinte extensão a autorização para aceder à sua impressora:</translation> <translation id="7453467225369441013">A sua sessão é terminada na maioria dos sites. A sessão na sua Conta Google não é terminada.</translation> <translation id="7456142309650173560">programador</translation> @@ -4353,7 +4321,6 @@ <translation id="7717845620320228976">Verificar se existem atualizações</translation> <translation id="7719367874908701697">Zoom da página</translation> <translation id="771953673318695590">Controlo de Qualidade</translation> -<translation id="7720375555307821262">Para supervisionar esta pessoa, <ph name="BEGIN_LINK" />inicie sessão no Chrome<ph name="END_LINK" />.</translation> <translation id="7721179060400456005">Permitir que a área de janela corresponda à dos ecrãs</translation> <translation id="7722040605881499779">Necessário para atualizar: <ph name="NECESSARY_SPACE" /></translation> <translation id="7724603315864178912">Cortar</translation> @@ -5208,7 +5175,6 @@ <translation id="9024331582947483881">ecrã inteiro</translation> <translation id="9025098623496448965">Regressar ao ecrã de início de sessão</translation> <translation id="9026731007018893674">transferir</translation> -<translation id="9027146684281895941">Supervisione esta pessoa para controlar e ver os Sites visitados pela mesma a partir da sua Conta Google.</translation> <translation id="9027459031423301635">Abrir Link num Novo &Separador</translation> <translation id="9027603907212475920">Configurar sincronização...</translation> <translation id="9030515284705930323">A sua entidade não ativou a Google Play Store para a sua conta. Contacte o gestor para obter mais informações.</translation> @@ -5368,7 +5334,6 @@ <translation id="98515147261107953">Horizontal</translation> <translation id="987897973846887088">Nenhuma imagem disponível.</translation> <translation id="988978206646512040">Não é permitida uma frase de acesso vazia</translation> -<translation id="990310048453480215">Remover aplicações do Linux</translation> <translation id="992032470292211616">As extensões, as aplicações e os temas podem danificar o seu dispositivo móvel. Tem a certeza de que pretende continuar?</translation> <translation id="992592832486024913">Desativar o ChromeVox (respostas faladas)</translation> <translation id="994289308992179865">&Ciclo</translation>
diff --git a/chrome/app/resources/generated_resources_ro.xtb b/chrome/app/resources/generated_resources_ro.xtb index 55d803b7..bd7d6fd9 100644 --- a/chrome/app/resources/generated_resources_ro.xtb +++ b/chrome/app/resources/generated_resources_ro.xtb
@@ -42,7 +42,6 @@ <translation id="1056898198331236512">Avertisment</translation> <translation id="1058262162121953039">Codul PUK</translation> <translation id="1062407476771304334">Înlocuiți</translation> -<translation id="1062866675591297858">Gestionați utilizatorii monitorizați din <ph name="BEGIN_LINK" />Tabloul de bord pentru utilizatori monitorizați<ph name="END_LINK" />.</translation> <translation id="1064835277883315402">Alăturați-vă rețelei private</translation> <translation id="1064912851688322329">Deconectați Contul dvs. Google</translation> <translation id="1067048845568873861">Creat</translation> @@ -65,7 +64,6 @@ <translation id="1091767800771861448">Apăsați pe ESCAPE pentru a ignora (numai versiunile neoficiale).</translation> <translation id="1093457606523402488">Rețele vizibile:</translation> <translation id="1094607894174825014">Operațiunea de citire sau de scriere a fost solicitată cu un decalaj nevalid pe: „<ph name="DEVICE_NAME" />”.</translation> -<translation id="1097507499312291972"><ph name="BEGIN_SIGN_IN_LINK" />Conectează-te<ph name="END_SIGN_IN_LINK" /> pentru a controla și a vedea site-urile accesate de această persoană.</translation> <translation id="109758035718544977">Activează sunetul pentru site-uri</translation> <translation id="1097658378307015415">Înainte de a vă conecta, începeți o sesiune pentru invitați pentru activarea rețelei <ph name="NETWORK_ID" /></translation> <translation id="1103523840287552314">Tradu întotdeauna din <ph name="LANGUAGE" /></translation> @@ -244,7 +242,6 @@ <translation id="1361655923249334273">Neutilizat</translation> <translation id="1363028406613469049">Melodia</translation> <translation id="1367951781824006909">Alege un fișier</translation> -<translation id="136802136832547685">Nu există niciun utilizator monitorizat de adăugat pe acest dispozitiv.</translation> <translation id="1368265273904755308">Semnalați o problemă</translation> <translation id="1370646789215800222">Elimini persoana?</translation> <translation id="1372681413396468867">{NUM_ITEMS,plural, =1{1 element de eliminat}few{# elemente de eliminat}other{# de elemente de eliminat}}</translation> @@ -472,7 +469,6 @@ <translation id="1692799361700686467">Se permit cookie-uri de la mai multe site-uri.</translation> <translation id="169515659049020177">Shift</translation> <translation id="1698122934742150150">Numai sesiunea incognito actuală</translation> -<translation id="1700199471143028312">Administratorul nu îți permite să creezi utilizatori monitorizați.</translation> <translation id="1701062906490865540">Elimină această persoană</translation> <translation id="1706586824377653884">Adăugat de administrator</translation> <translation id="1706625117072057435">Niveluri de zoom</translation> @@ -1041,7 +1037,6 @@ <translation id="2604255671529671813">Eroare de conectare la rețea</translation> <translation id="2606246518223360146">Conectează datele</translation> <translation id="2607101320794533334">Informații privind cheia publică a subiectului</translation> -<translation id="2607459012323956820">Istoricul de navigare și setările acestui utilizator monitorizat pot fi în continuare vizibile pentru administrator la <ph name="BEGIN_LINK" /><ph name="DISPLAY_LINK" /><ph name="END_LINK" />.</translation> <translation id="2608770217409477136">Utilizează setările prestabilite</translation> <translation id="2609896558069604090">Creați comenzi rapide...</translation> <translation id="2610157865375787051">Inactivitate</translation> @@ -1284,7 +1279,6 @@ <translation id="2951247061394563839">Centrați fereastra</translation> <translation id="2956763290572484660"><ph name="COOKIES" /> cookie-uri</translation> <translation id="2958721676848865875">Avertisment privind pachetul pentru extensie</translation> -<translation id="2961043351165706615">Aplicațiile Linux pe care le-ai instalat vor fi șterse de pe Chromebook.</translation> <translation id="2961090598421146107"><ph name="CERTIFICATE_NAME" /> (oferit de extensie)</translation> <translation id="2961695502793809356">Dă clic pentru a naviga înainte, ține apăsat pentru a vedea istoricul</translation> <translation id="2963151496262057773">Următorul plugin este inactiv: <ph name="PLUGIN_NAME" />. Dorești să îl oprești?</translation> @@ -1336,15 +1330,6 @@ <translation id="3022978424994383087">Nu am înțeles.</translation> <translation id="3024374909719388945">Utilizează formatul de 24 de ore</translation> <translation id="302781076327338683">Reîncarcă ignorând memoria cache</translation> -<translation id="3030243755303701754">Un utilizator monitorizat poate naviga pe web sub îndrumarea ta. În calitate de administrator al unui utilizator monitorizat în Chrome, poți: - - • să permiți sau să restricționezi accesul la anumite site-uri; - • să examinezi site-urile accesate de utilizatorul monitorizat; - • să gestionezi alte setări. - -Prin crearea unui utilizator monitorizat, nu se creează un Cont Google, iar marcajele, istoricul de navigare și alte preferințe nu vor fi preluate pe alte dispozitive cu Sincronizarea Chrome. După ce creezi un nou utilizator monitorizat, poți gestiona setările acestuia oricând și de pe orice dispozitiv, de la <ph name="BEGIN_MANAGE_LINK" /><ph name="DISPLAY_LINK" /><ph name="END_MANAGE_LINK" />. - -Pentru mai multe informații, accesează <ph name="BEGIN_LINK" />Centrul de ajutor<ph name="END_LINK" />.</translation> <translation id="3031417829280473749">Agenta X</translation> <translation id="3031557471081358569">Selectează elementele de importat:</translation> <translation id="3031601332414921114">Reia printarea</translation> @@ -1385,7 +1370,6 @@ <translation id="3085412380278336437">Site-ul poate folosi camera foto</translation> <translation id="3085752524577180175">Gazdă SOCKS</translation> <translation id="3088325635286126843">&Redenumiți...</translation> -<translation id="3089231390674410424">Se pare că a apărut o problemă privind datele de conectare. Asigură-te că te-ai conectat corect și încearcă din nou.</translation> <translation id="3090193911106258841">Se accesează intrările audio și video</translation> <translation id="3090819949319990166">Fișierul crx extern nu se poate copia în <ph name="TEMP_CRX_FILE" />.</translation> <translation id="3090871774332213558">„<ph name="DEVICE_NAME" />” conectată</translation> @@ -1400,7 +1384,6 @@ <translation id="3121793941267913344">Resetați acest dispozitiv <ph name="IDS_SHORT_PRODUCT_NAME" /></translation> <translation id="3122464029669770682">CPU</translation> <translation id="3122496702278727796">Nu s-a reușit crearea directorului de date</translation> -<translation id="3123569374670379335">(Monitorizat)</translation> <translation id="3124111068741548686">Handle-uri USER</translation> <translation id="3126026824346185272">Ctrl</translation> <translation id="3127156390846601284">Astfel, se vor șterge toate datele stocate pe dispozitiv pentru site-urile afișate. Vrei să continui?</translation> @@ -1435,8 +1418,6 @@ <translation id="3160842278951476457"><ph name="ISSUED_BY" /> [<ph name="ISSUED_TO" />] (stocat pe hardware)</translation> <translation id="316125635462764134">Eliminați aplicația</translation> <translation id="3161522574479303604">Toate limbile</translation> -<translation id="316307797510303346">Controlează și vezi site-urile pe care această persoană le accesează din <ph name="CUSTODIAN_EMAIL" />. - Detaliile de conectare la cont sunt învechite.</translation> <translation id="3165390001037658081">Este posibil ca unii operatori să blocheze funcția.</translation> <translation id="316854673539778496">Pentru a accesa toate extensiile pe toate dispozitivele, conectează-te și activează sincronizarea.</translation> <translation id="3170072451822350649">De asemenea, puteți să omiteți conectarea și să <ph name="LINK_START" />navigați ca invitat<ph name="LINK_END" />.</translation> @@ -1469,7 +1450,6 @@ <translation id="3229922550070982305">redă/întrerupe</translation> <translation id="3232318083971127729">Valoare:</translation> <translation id="3236289833370040187">Calitatea de proprietar va fi transferată către <ph name="DESTINATION_DOMAIN" />.</translation> -<translation id="3237784613213365159"><ph name="NEW_PROFILE_NAME" /> este acum un utilizator monitorizat</translation> <translation id="323803881985677942">Deschide opțiunile pentru extensii</translation> <translation id="3241680850019875542">Selectează directorul rădăcină al extensiei ce trebuie împachetată. Pentru a actualiza o extensie, selectează și fișierul cu cheia privată pentru reutilizare.</translation> <translation id="3242765319725186192">Cheie distribuită anterior:</translation> @@ -1701,7 +1681,6 @@ <translation id="3584169441612580296">Citește și modifică fotografii, muzică și alte tipuri de conținut media de pe computer</translation> <translation id="3587482841069643663">Toate</translation> <translation id="358796204584394954">Pentru a conecta, introduceți acest cod pe „<ph name="DEVICE_NAME" />”:</translation> -<translation id="3589532742556016615">Aceasta nu afectează aplicațiile sau conținutul de pe alte dispozitive.</translation> <translation id="3589766037099229847">Conținut nesecurizat blocat</translation> <translation id="3590194807845837023">Deblocați profilul și relansați Chrome</translation> <translation id="3592260987370335752">&Aflați mai multe</translation> @@ -1835,7 +1814,6 @@ <translation id="3778152852029592020">Descărcarea a fost anulată.</translation> <translation id="3778740492972734840">Instrumente pentru &dezvoltatori</translation> <translation id="3778868487658107119">Pune-i întrebări. Spune-i să facă diverse lucruri. Este serviciul tău Google personal, gata oricând să te ajute.</translation> -<translation id="3780663724044634171">Selectează un cont pentru a gestiona utilizatorul monitorizat.</translation> <translation id="378312418865624974">Citește un identificator unic pentru acest computer</translation> <translation id="3783640748446814672">alt</translation> <translation id="3785308913036335955">Afișați comanda rapidă pentru aplicații</translation> @@ -2563,7 +2541,6 @@ <translation id="4964455510556214366">Aranjare</translation> <translation id="4964673849688379040">Se verifică...</translation> <translation id="4965808351167763748">Sigur dorești să configurezi acest dispozitiv pentru a rula Hangouts Meet?</translation> -<translation id="4967749818080339523">Selectează un cont</translation> <translation id="496888482094675990">Aplicația Fișiere oferă acces rapid la fișierele pe care le-ai salvat în Google Drive, în spațiul de stocare extern sau pe dispozitivul cu sistem de operare Chrome.</translation> <translation id="4969785127455456148">Album</translation> <translation id="4971412780836297815">Deschide când s-a finalizat</translation> @@ -2750,7 +2727,6 @@ Indiferent de ceea ce se întâmplă cu dispozitivul, fișierele sunt stocate în siguranță în Google Drive.<ph name="MARKUP_6" /> <ph name="MARKUP_7" />Trimite și creează fișiere. Colaborează<ph name="MARKUP_8" /> cu alte persoane la realizarea fișierelor. Totul într-un singur loc.<ph name="MARKUP_9" /></translation> -<translation id="5262401745672360397">Fișierele trimise aplicațiilor Linux pot fi, de asemenea, șterse.</translation> <translation id="5264148714798105376">Poate dura câteva minute.</translation> <translation id="5264252276333215551">Conectați-vă la internet pentru a lansa aplicația în modul chioșc.</translation> <translation id="5265562206369321422">Offline pentru mai mult de o săptămână</translation> @@ -3402,7 +3378,6 @@ <translation id="6241530762627360640">Accesează informațiile despre dispozitivele Bluetooth conectate cu sistemul dvs. și descoperă dispozitivele Bluetooth din apropiere.</translation> <translation id="6243280677745499710">Setată în prezent</translation> <translation id="6243774244933267674">Server indisponibil</translation> -<translation id="6246413617632217567">Utilizatorul monitorizat nu a putut fi importat. Verifică spațiul de pe hard disk și permisiunile, apoi încearcă din nou.</translation> <translation id="6247708409970142803"><ph name="PERCENTAGE" /> %</translation> <translation id="6247802389331535091">Sistem: <ph name="ARC_PROCESS_NAME" /></translation> <translation id="624789221780392884">Actualizarea este pregătită</translation> @@ -3601,7 +3576,6 @@ <translation id="654039047105555694"><ph name="BEGIN_BOLD" />Notă:<ph name="END_BOLD" /> activați culegerea datelor numai dacă înțelegeți consecințele acțiunii sau dacă vi s-a solicitat să o activați, deoarece aceasta ar putea reduce performanța.</translation> <translation id="654233263479157500">Folosește un serviciu web pentru a soluționa erorile de navigare</translation> <translation id="6544215763872433504">Browserul web de la Google, pentru tine</translation> -<translation id="6545325945815270297">Gestionează datele și dispozitivele sincronizate în <ph name="BEGIN_LINK" />Tabloul de bord Chrome<ph name="END_LINK" />.</translation> <translation id="6545665334409411530">Frecvența de repetare</translation> <translation id="6545834809683560467">Folosește un serviciu de predicții pentru a completa căutările și adresele URL introduse în bara de adrese sau în caseta de căutare a lansatorului de aplicații</translation> <translation id="6546686722964485737">Conectați-vă la rețeaua WiMAX</translation> @@ -3616,7 +3590,6 @@ <translation id="6555810572223193255">Funcția de curățare este indisponibilă momentan</translation> <translation id="6556866813142980365">Repetă</translation> <translation id="6558280019477628686">A apărut o eroare. Este posibil ca unele elemente să nu fi fost șterse.</translation> -<translation id="6559580823502247193">(există deja pe acest dispozitiv)</translation> <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="656398493051028875">Se șterge „<ph name="FILENAME" />”...</translation> @@ -3813,7 +3786,6 @@ <translation id="6862635236584086457">Pentru toate fișierele salvate în acest dosar se creează copii de rezervă online în mod automat</translation> <translation id="6865313869410766144">Datele salvate pentru completarea automată a formularelor</translation> <translation id="686664946474413495">Temperatura culorii</translation> -<translation id="6867678160199975333">Comutați la <ph name="NEW_PROFILE_NAME" /></translation> <translation id="6870888490422746447">Alege o aplicație pentru trimitere:</translation> <translation id="6871644448911473373">Respondent OCSP: <ph name="LOCATION" /></translation> <translation id="6872781471649843364">Parola pe care ai introdus-o a fost respinsă de server.</translation> @@ -3907,7 +3879,6 @@ <translation id="7018275672629230621">Citește și modifică istoricul de navigare</translation> <translation id="7019805045859631636">Rapid</translation> <translation id="7022562585984256452">Pagina de pornire a fost setată.</translation> -<translation id="7025036625303002400">Se pare că ai deja un utilizator monitorizat cu acest nume.</translation> <translation id="7025190659207909717">Gestionarea serviciului de date mobile</translation> <translation id="7025325401470358758">Panoul următor</translation> <translation id="7027125358315426638">Nume bază de date:</translation> @@ -3956,7 +3927,6 @@ <translation id="7092106376816104">Excepții privind ferestrele de tip pop-up</translation> <translation id="7093434536568905704">GTK+</translation> <translation id="7093866338626856921">Fă schimb de date cu dispozitivele numite: <ph name="HOSTNAMES" /></translation> -<translation id="7096108453481049031">Utilizatorul monitorizat nu a putut fi importat. Verifică conexiunea la rețea și încearcă din nou mai târziu.</translation> <translation id="7096406577040705016">Activează/dezactivează Lupa de ecran complet</translation> <translation id="7098447629416471489">Alte motoare de căutare salvate vor fi afișate aici</translation> <translation id="7099337801055912064">Nu se poate încărca fișierul PPD mare. Dimensiunea maximă este 250 KB.</translation> @@ -4004,7 +3974,6 @@ <translation id="7168109975831002660">Dimensiunea minimă a fontului</translation> <translation id="7170041865419449892">Fără acoperire</translation> <translation id="7171559745792467651">Instalează aplicații de pe celelalte dispozitive</translation> -<translation id="7173917244679555">Se pare că gestionezi deja un utilizator cu acel nume. Dorești să <ph name="BEGIN_LINK" />imporți <ph name="PROFILE_NAME" /><ph name="END_LINK" /> pe acest dispozitiv?</translation> <translation id="7175037578838465313">Configurează <ph name="NAME" /></translation> <translation id="7175353351958621980">Încărcată de la:</translation> <translation id="7180611975245234373">Actualizați</translation> @@ -4176,7 +4145,6 @@ <translation id="7444726222535375658">Accesează Hangouts Meet</translation> <translation id="7444983668544353857">Dezactivează <ph name="NETWORKDEVICE" /></translation> <translation id="7445682342344043969">Ferestre pop-up blocate</translation> -<translation id="744859430125590922">Controlează și vezi site-urile pe care le accesează această persoană din <ph name="CUSTODIAN_EMAIL" />.</translation> <translation id="7453008956351770337">Selectând această imprimantă, acorzi următoarei extensii permisiunea de a accesa imprimanta:</translation> <translation id="7453467225369441013">Te deconectează de pe majoritatea site-urilor. Nu te va deconecta de la Contul Google.</translation> <translation id="7456142309650173560">dezvoltatori</translation> @@ -4350,7 +4318,6 @@ <translation id="7717845620320228976">Caută actualizări</translation> <translation id="7719367874908701697">Zoom pe pagină</translation> <translation id="771953673318695590">QA</translation> -<translation id="7720375555307821262">Pentru a monitoriza această persoană, <ph name="BEGIN_LINK" />conectează-te la Chrome<ph name="END_LINK" />.</translation> <translation id="7721179060400456005">Permite ca ferestrele să se afișeze pe mai multe ecrane</translation> <translation id="7722040605881499779">Spațiul necesar pentru actualizare: <ph name="NECESSARY_SPACE" /></translation> <translation id="7724603315864178912">Decupează</translation> @@ -5205,7 +5172,6 @@ <translation id="9024331582947483881">ecran complet</translation> <translation id="9025098623496448965">OK, revin la ecranul de conectare</translation> <translation id="9026731007018893674">descărcare</translation> -<translation id="9027146684281895941">Monitorizează această persoană pentru a controla și a vedea site-urile pe care le accesează din Contul tău Google.</translation> <translation id="9027459031423301635">Deschide linkul într-o filă &nouă</translation> <translation id="9027603907212475920">Configurează sincronizarea...</translation> <translation id="9030515284705930323">Organizația nu a activat Magazinul Google Play pentru contul tău. Contactează administratorul pentru mai multe informații.</translation> @@ -5365,7 +5331,6 @@ <translation id="98515147261107953">Peisaj</translation> <translation id="987897973846887088">Nu există imagini disponibile</translation> <translation id="988978206646512040">Trebuie să fie introdusă expresia de acces</translation> -<translation id="990310048453480215">Elimină aplicațiile Linux</translation> <translation id="992032470292211616">Extensiile, aplicațiile și temele pot dăuna dispozitivului. Sigur doriți să continuați?</translation> <translation id="992592832486024913">Dezactivați ChromeVox (feedback rostit)</translation> <translation id="994289308992179865">&Redă în buclă</translation>
diff --git a/chrome/app/resources/generated_resources_ru.xtb b/chrome/app/resources/generated_resources_ru.xtb index b614bdd..4f9f0ab 100644 --- a/chrome/app/resources/generated_resources_ru.xtb +++ b/chrome/app/resources/generated_resources_ru.xtb
@@ -42,7 +42,6 @@ <translation id="1056898198331236512">Внимание</translation> <translation id="1058262162121953039">PUK</translation> <translation id="1062407476771304334">Заменить</translation> -<translation id="1062866675591297858">Изменение контролируемых профилей производится через <ph name="BEGIN_LINK" />Панель управления профилями<ph name="END_LINK" />.</translation> <translation id="1064835277883315402">Подключение к частной сети</translation> <translation id="1064912851688322329">Отключение аккаунта Google</translation> <translation id="1067048845568873861">Создано</translation> @@ -65,7 +64,6 @@ <translation id="1091767800771861448">Чтобы отменить обновление, нажмите Esc (только для неофициальных версий).</translation> <translation id="1093457606523402488">Доступные сети:</translation> <translation id="1094607894174825014">Поступил запрос на чтение или запись с недействительным смещением на устройстве <ph name="DEVICE_NAME" />.</translation> -<translation id="1097507499312291972"><ph name="BEGIN_SIGN_IN_LINK" />Войдите в аккаунт<ph name="END_SIGN_IN_LINK" />, чтобы просматривать сайты, открытые этим пользователем, и контролировать его действия.</translation> <translation id="109758035718544977">Включить звук на сайтах</translation> <translation id="1097658378307015415">Сначала войдите как гость, чтобы активировать работу сети <ph name="NETWORK_ID" /></translation> <translation id="1103523840287552314">Всегда переводить <ph name="LANGUAGE" /></translation> @@ -244,7 +242,6 @@ <translation id="1361655923249334273">Не используется</translation> <translation id="1363028406613469049">Трек</translation> <translation id="1367951781824006909">Выберите файл</translation> -<translation id="136802136832547685">Контролируемых профилей нет.</translation> <translation id="1368265273904755308">Сообщить о проблеме</translation> <translation id="1370646789215800222">Удалить пользователя?</translation> <translation id="1372681413396468867">{NUM_ITEMS,plural, =1{Будет удален один объект}one{Будет удален # объект}few{Будет удалено # объекта}many{Будет удалено # объектов}other{Будет удалено # объекта}}</translation> @@ -471,7 +468,6 @@ <translation id="1692799361700686467">Файлы cookie с различных сайтов разрешены.</translation> <translation id="169515659049020177">Shift</translation> <translation id="1698122934742150150">Только на время текущего сеанса в режиме инкогнито</translation> -<translation id="1700199471143028312">Администратор запретил вам создавать контролируемые профили.</translation> <translation id="1701062906490865540">Удалить пользователя</translation> <translation id="1706586824377653884">Добавлено администратором</translation> <translation id="1706625117072057435">Масштабирование</translation> @@ -1042,7 +1038,6 @@ <translation id="2604255671529671813">Ошибка подключения к сети</translation> <translation id="2606246518223360146">Связать данные</translation> <translation id="2607101320794533334">Информация об открытом ключе субъекта</translation> -<translation id="2607459012323956820">Менеджер может просматривать настройки и историю этого контролируемого профиля на странице <ph name="BEGIN_LINK" /><ph name="DISPLAY_LINK" /><ph name="END_LINK" />.</translation> <translation id="2608770217409477136">Использовать настройки по умолчанию</translation> <translation id="2609896558069604090">Создать ярлык…</translation> <translation id="2610157865375787051">Включать спящий режим</translation> @@ -1285,7 +1280,6 @@ <translation id="2951247061394563839">Разместить окно по центру</translation> <translation id="2956763290572484660">Файлов cookie: <ph name="COOKIES" /></translation> <translation id="2958721676848865875">Внимание!</translation> -<translation id="2961043351165706615">Приложения Linux, которые вы установили, будут удалены с устройства Chromebook.</translation> <translation id="2961090598421146107"><ph name="CERTIFICATE_NAME" /> (предусмотрено продление)</translation> <translation id="2961695502793809356">Нажмите, чтобы перейти вперед. Удерживайте, чтобы просмотреть историю.</translation> <translation id="2963151496262057773">Плагин "<ph name="PLUGIN_NAME" />" перестал отвечать на запросы. Остановить его?</translation> @@ -1337,15 +1331,6 @@ <translation id="3022978424994383087">Повторите ещё раз.</translation> <translation id="3024374909719388945">Использовать 24-часовой формат</translation> <translation id="302781076327338683">Обновить, не используя кеш</translation> -<translation id="3030243755303701754">Пользователь контролируемого профиля работает в Интернете под вашим руководством. Как администратор профилей в Chrome, вы можете: - -• разрешать и запрещать посещение определенных сайтов; -• проверять, какие сайты посещает пользователь; -• менять другие настройки. - -Контролируемый профиль – это не аккаунт Google, поэтому закладки, история просмотров и прочие данные не синхронизируются с другими устройствами пользователя. Создав такой профиль, вы можете менять его настройки в любое время и на любом устройстве. Для этого перейдите на сайт <ph name="BEGIN_MANAGE_LINK" /><ph name="DISPLAY_LINK" /><ph name="END_MANAGE_LINK" />. - -Подробнее о контролируемых профилях читайте в <ph name="BEGIN_LINK" />Справочном центре<ph name="END_LINK" />.</translation> <translation id="3031417829280473749">Секретный агент</translation> <translation id="3031557471081358569">Выберите элементы для импорта:</translation> <translation id="3031601332414921114">Возобновить печать</translation> @@ -1386,7 +1371,6 @@ <translation id="3085412380278336437">Сайт может использовать камеру</translation> <translation id="3085752524577180175">SOCKS-прокси</translation> <translation id="3088325635286126843">&Переименовать</translation> -<translation id="3089231390674410424">Похоже, вы указали недействительные учетные данные. Проверьте их и повторите попытку.</translation> <translation id="3090193911106258841">Доступ к аудио- и видеовходу</translation> <translation id="3090819949319990166">Не удалось скопировать внешний файл CRX в <ph name="TEMP_CRX_FILE" />.</translation> <translation id="3090871774332213558">Подключено устройство: <ph name="DEVICE_NAME" /></translation> @@ -1401,7 +1385,6 @@ <translation id="3121793941267913344">Сбросить настройки устройства <ph name="IDS_SHORT_PRODUCT_NAME" /></translation> <translation id="3122464029669770682">ЦПУ</translation> <translation id="3122496702278727796">Не удалось создать каталог данных</translation> -<translation id="3123569374670379335">(контролируемый)</translation> <translation id="3124111068741548686">USER-дескрипторы</translation> <translation id="3126026824346185272">Ctrl</translation> <translation id="3127156390846601284">Все данные указанных сайтов будут удалены с устройства. Продолжить?</translation> @@ -1436,8 +1419,6 @@ <translation id="3160842278951476457"><ph name="ISSUED_BY" /> (<ph name="ISSUED_TO" />). Поддерживается аппаратным обеспечением.</translation> <translation id="316125635462764134">Удалить приложение</translation> <translation id="3161522574479303604">Все языки</translation> -<translation id="316307797510303346">Просматривать сайты, открытые этим пользователем, и контролировать его действия через аккаунт <ph name="CUSTODIAN_EMAIL" />. - Данные для входа в аккаунт устарели.</translation> <translation id="3165390001037658081">Некоторые операторы могут блокировать эту функцию.</translation> <translation id="316854673539778496">Чтобы получить доступ к расширениям на всех своих устройствах, войдите в аккаунт и включите синхронизацию.</translation> <translation id="3170072451822350649">Можно пропустить это действие и начать <ph name="LINK_START" />гостевой сеанс<ph name="LINK_END" />.</translation> @@ -1470,7 +1451,6 @@ <translation id="3229922550070982305">Воспроизведение/пауза</translation> <translation id="3232318083971127729">Значение:</translation> <translation id="3236289833370040187">Право собственности будет передано домену <ph name="DESTINATION_DOMAIN" />.</translation> -<translation id="3237784613213365159">Создан контролируемый профиль: <ph name="NEW_PROFILE_NAME" /></translation> <translation id="323803881985677942">Открыть параметры расширения</translation> <translation id="3241680850019875542">Выберите корневой каталог упаковываемого расширения. Для обновления расширения также укажите закрытый ключ.</translation> <translation id="3242765319725186192">Общий ключ:</translation> @@ -1702,7 +1682,6 @@ <translation id="3584169441612580296">Доступ к фотографиям, музыке и другим медиафайлам на вашем компьютере, а также их изменение</translation> <translation id="3587482841069643663">Все</translation> <translation id="358796204584394954">Для подключения введите следующий код на устройстве <ph name="DEVICE_NAME" />:</translation> -<translation id="3589532742556016615">Это не затронет приложения и данные на других устройствах.</translation> <translation id="3589766037099229847">Небезопасный контент заблокирован</translation> <translation id="3590194807845837023">Разблокировать профиль и перезапустить</translation> <translation id="3592260987370335752">&Подробнее</translation> @@ -1836,7 +1815,6 @@ <translation id="3778152852029592020">Скачивание отменено.</translation> <translation id="3778740492972734840">&Инструменты разработчика</translation> <translation id="3778868487658107119">Это ваш личный помощник, который всегда рядом. Просто спросите его о чем-нибудь или дайте поручение.</translation> -<translation id="3780663724044634171">Выберите аккаунт для управления контролируемым профилем.</translation> <translation id="378312418865624974">Просмотр уникального идентификатора этого компьютера</translation> <translation id="3783640748446814672">alt</translation> <translation id="3785308913036335955">Отображение ярлыков приложений</translation> @@ -2564,7 +2542,6 @@ <translation id="4964455510556214366">Расположение</translation> <translation id="4964673849688379040">Проверка...</translation> <translation id="4965808351167763748">Использовать это устройство для запуска Hangouts Meet?</translation> -<translation id="4967749818080339523">Выберите аккаунт</translation> <translation id="496888482094675990">С помощью приложения "Файлы" можно быстро открыть документы с Google Диска, устройства под управлением Chrome OS или из внешнего хранилища.</translation> <translation id="4969785127455456148">Альбом</translation> <translation id="4971412780836297815">Открыть по завершении</translation> @@ -2751,7 +2728,6 @@ Даже если с устройством что-то произойдет, резервная копия ваших данных хранится на Google Диске.<ph name="MARKUP_6" /> <ph name="MARKUP_7" />Вы можете создавать файлы, предоставлять к ним общий доступ и работать над ними<ph name="MARKUP_8" /> вместе с коллегами в одном удобном сервисе.<ph name="MARKUP_9" /></translation> -<translation id="5262401745672360397">Если у приложений Linux был доступ к файлам, эти файлы тоже могут быть удалены.</translation> <translation id="5264148714798105376">Это может занять около минуты.</translation> <translation id="5264252276333215551">Подключитесь к Интернету, чтобы запустить приложение в киоск-режиме.</translation> <translation id="5265562206369321422">Не в Сети больше недели</translation> @@ -3403,7 +3379,6 @@ <translation id="6241530762627360640">Доступ к информации об устройствах Bluetooth, связанных с вашей системой, и обнаружение устройств Bluetooth рядом с вами.</translation> <translation id="6243280677745499710">Установлено как обои</translation> <translation id="6243774244933267674">Сервер недоступен</translation> -<translation id="6246413617632217567">Не удалось импортировать контролируемый профиль. Убедитесь, что у вас есть необходимые разрешения и свободное место на жестком диске, а затем повторите попытку.</translation> <translation id="6247708409970142803"><ph name="PERCENTAGE" />%</translation> <translation id="6247802389331535091">Система: <ph name="ARC_PROCESS_NAME" /></translation> <translation id="624789221780392884">Обновление готово</translation> @@ -3602,7 +3577,6 @@ <translation id="654039047105555694"><ph name="BEGIN_BOLD" />Примечание.<ph name="END_BOLD" /> Данную функцию следует включать только при необходимости, поскольку сбор данных может замедлить работу системы.</translation> <translation id="654233263479157500">Использовать веб-службу для разрешения проблем, связанных с навигацией</translation> <translation id="6544215763872433504">Ваш браузер от Google</translation> -<translation id="6545325945815270297">Управлять синхронизацией данных и устройств можно в <ph name="BEGIN_LINK" />Личном кабинете Google<ph name="END_LINK" />.</translation> <translation id="6545665334409411530">Скорость повтора</translation> <translation id="6545834809683560467">Показывать подсказки при вводе поисковых запросов и URL</translation> <translation id="6546686722964485737">Подключение к сети Wimax</translation> @@ -3617,7 +3591,6 @@ <translation id="6555810572223193255">Инструмент очистки недоступен</translation> <translation id="6556866813142980365">Повторить</translation> <translation id="6558280019477628686">Произошла ошибка. Возможно, не все элементы были удалены.</translation> -<translation id="6559580823502247193">(используется на этом устройстве)</translation> <translation id="6561726789132298588">Войти</translation> <translation id="656293578423618167">Слишком длинное название файла или путь к нему. Выберите другое название или каталог.</translation> <translation id="656398493051028875">Удаление файла "<ph name="FILENAME" />"…</translation> @@ -3814,7 +3787,6 @@ <translation id="6862635236584086457">Для всех файлов, сохраненных в этой папке, автоматически создается резервная копия в Интернете</translation> <translation id="6865313869410766144">Данные для автозаполнения</translation> <translation id="686664946474413495">Цветовая температура</translation> -<translation id="6867678160199975333">Переключиться на профиль <ph name="NEW_PROFILE_NAME" /></translation> <translation id="6870888490422746447">Выберите, через какое приложение отправить.</translation> <translation id="6871644448911473373">Ответчик OCSP: <ph name="LOCATION" /></translation> <translation id="6872781471649843364">Сервер отклонил введенный пароль.</translation> @@ -3908,7 +3880,6 @@ <translation id="7018275672629230621">Чтение и изменение истории просмотров</translation> <translation id="7019805045859631636">Быстро</translation> <translation id="7022562585984256452">Главная страница настроена.</translation> -<translation id="7025036625303002400">Контролируемый профиль с таким именем уже существует.</translation> <translation id="7025190659207909717">Управление передачей данных в мобильных сетях</translation> <translation id="7025325401470358758">Следующая панель</translation> <translation id="7027125358315426638">Название базы данных:</translation> @@ -3957,7 +3928,6 @@ <translation id="7092106376816104">Исключения для всплывающих окон</translation> <translation id="7093434536568905704">GTK+</translation> <translation id="7093866338626856921">Обмен данными с устройствами <ph name="HOSTNAMES" /></translation> -<translation id="7096108453481049031">Не удалось импортировать контролируемый профиль. Проверьте подключение к сети и повторите попытку позже.</translation> <translation id="7096406577040705016">Включить полноэкранную лупу</translation> <translation id="7098447629416471489">Здесь появятся другие сохраненные поисковые системы</translation> <translation id="7099337801055912064">Размер файла PPD не должен превышать 250 КБ.</translation> @@ -4005,7 +3975,6 @@ <translation id="7168109975831002660">Минимальный размер шрифта</translation> <translation id="7170041865419449892">Выход за рамки диапазона</translation> <translation id="7171559745792467651">Скачайте приложения, установленные на других ваших устройствах</translation> -<translation id="7173917244679555">У вас уже есть контролируемый профиль с именем "<ph name="PROFILE_NAME" />". <ph name="BEGIN_LINK" />Импортировать его<ph name="END_LINK" /> на это устройство?</translation> <translation id="7175037578838465313">Настроить сеть "<ph name="NAME" />"</translation> <translation id="7175353351958621980">Загружено из:</translation> <translation id="7180611975245234373">Обновить</translation> @@ -4177,7 +4146,6 @@ <translation id="7444726222535375658">Перейти к Hangouts Meet</translation> <translation id="7444983668544353857">Отключить <ph name="NETWORKDEVICE" /></translation> <translation id="7445682342344043969">Всплывающие окна заблокированы</translation> -<translation id="744859430125590922">Просматривать сайты, открытые этим пользователем, и контролировать его действия через аккаунт <ph name="CUSTODIAN_EMAIL" />.</translation> <translation id="7453008956351770337">Выбирая этот принтер, вы предоставляете к нему доступ следующему расширению:</translation> <translation id="7453467225369441013">Вы выйдете из аккаунтов на большинстве сайтов, но останетесь в аккаунте Google.</translation> <translation id="7456142309650173560">для разработчиков</translation> @@ -4351,7 +4319,6 @@ <translation id="7717845620320228976">Проверить наличие обновлений</translation> <translation id="7719367874908701697">Масштабирование страницы</translation> <translation id="771953673318695590">QA</translation> -<translation id="7720375555307821262">Чтобы контролировать профиль этого пользователя, <ph name="BEGIN_LINK" />войдите в Chrome<ph name="END_LINK" />.</translation> <translation id="7721179060400456005">Разрешить показывать окно на нескольких устройствах</translation> <translation id="7722040605881499779">Для обновления необходимо <ph name="NECESSARY_SPACE" />.</translation> <translation id="7724603315864178912">Вырезать</translation> @@ -5206,7 +5173,6 @@ <translation id="9024331582947483881">полноэкранный режим</translation> <translation id="9025098623496448965">ОК. Вернуться на экран входа.</translation> <translation id="9026731007018893674">Без названия</translation> -<translation id="9027146684281895941">Просматривать сайты, открытые этим пользователем, и контролировать его действия через аккаунт Google.</translation> <translation id="9027459031423301635">Открыть ссылку в новой вкладке</translation> <translation id="9027603907212475920">Настройка синхронизации...</translation> <translation id="9030515284705930323">Приложение "Play Маркет" отключено для вашего аккаунта. За дополнительными сведениями обратитесь к администратору.</translation> @@ -5366,7 +5332,6 @@ <translation id="98515147261107953">Альбомная</translation> <translation id="987897973846887088">Нет изображений</translation> <translation id="988978206646512040">Поле с кодовой фразой не должно быть пустым</translation> -<translation id="990310048453480215">Удалить приложения Linux</translation> <translation id="992032470292211616">Расширения, приложения и темы могут причинить вред вашему мобильному устройству. Продолжить?</translation> <translation id="992592832486024913">Отключить ChromeVox (голосовое сопровождение)</translation> <translation id="994289308992179865">&Повтор</translation>
diff --git a/chrome/app/resources/generated_resources_sk.xtb b/chrome/app/resources/generated_resources_sk.xtb index c4e6116a..cc57774 100644 --- a/chrome/app/resources/generated_resources_sk.xtb +++ b/chrome/app/resources/generated_resources_sk.xtb
@@ -42,7 +42,6 @@ <translation id="1056898198331236512">Upozornenie</translation> <translation id="1058262162121953039">PUK</translation> <translation id="1062407476771304334">Nahradiť</translation> -<translation id="1062866675591297858">Spravujte kontrolovaných používateľov pomocou <ph name="BEGIN_LINK" />panela kontrolovaných používateľov<ph name="END_LINK" />.</translation> <translation id="1064835277883315402">Pripojiť sa k súkromnej sieti</translation> <translation id="1064912851688322329">Odpojenie účtu Google</translation> <translation id="1067048845568873861">Vytvorené</translation> @@ -65,7 +64,6 @@ <translation id="1091767800771861448">Ak chcete preskočiť aktualizáciu, stlačte kláves Escape (len pre neoficiálne zostavy).</translation> <translation id="1093457606523402488">Viditeľné siete:</translation> <translation id="1094607894174825014">Na zariadení <ph name="DEVICE_NAME" /> bola vyžiadaná operácia čítania alebo zápisu s nesprávnym odsadením.</translation> -<translation id="1097507499312291972"><ph name="BEGIN_SIGN_IN_LINK" />Prihláste sa<ph name="END_SIGN_IN_LINK" />, aby ste mohli ovládať a zobrazovať webové stránky, ktoré táto osoba navštevuje.</translation> <translation id="109758035718544977">Zapnúť zvuk webov</translation> <translation id="1097658378307015415">Ak chcete aktivovať sieť <ph name="NETWORK_ID" />, vstúpte pred prihlásením ako hosť</translation> <translation id="1103523840287552314">Vždy preložiť nasledujúci jazyk: <ph name="LANGUAGE" /></translation> @@ -244,7 +242,6 @@ <translation id="1361655923249334273">Nepoužitý</translation> <translation id="1363028406613469049">Stopa</translation> <translation id="1367951781824006909">Vybrať súbor</translation> -<translation id="136802136832547685">Na pridanie do tohto zariadenia nie sú k dispozícii žiadni kontrolovaní používatelia.</translation> <translation id="1368265273904755308">Nahlásiť problém</translation> <translation id="1370646789215800222">Chcete odstrániť túto osobu?</translation> <translation id="1372681413396468867">{NUM_ITEMS,plural, =1{1 položka na odstránenie}few{# položky na odstránenie}many{# položky na odstránenie}other{# položiek na odstránenie}}</translation> @@ -472,7 +469,6 @@ <translation id="1692799361700686467">Boli povolené súbory cookie z viacerých webových stránok.</translation> <translation id="169515659049020177">Shift</translation> <translation id="1698122934742150150">Iba aktuálna relácia inkognito</translation> -<translation id="1700199471143028312">Váš správca vám nepovolil vytvárať kontrolovaných používateľov.</translation> <translation id="1701062906490865540">Odstrániť túto osobu</translation> <translation id="1706586824377653884">Pridané správcom</translation> <translation id="1706625117072057435">Úrovne priblíženia</translation> @@ -1041,7 +1037,6 @@ <translation id="2604255671529671813">Chyba sieťového pripojenia</translation> <translation id="2606246518223360146">Prepojiť dáta</translation> <translation id="2607101320794533334">Informácie verejného kľúča subjektu</translation> -<translation id="2607459012323956820">Správca môže naďalej zobraziť nastavenia a históriu prehliadača tohto kontrolovaného používateľa na adrese <ph name="BEGIN_LINK" /><ph name="DISPLAY_LINK" /><ph name="END_LINK" />.</translation> <translation id="2608770217409477136">Použiť predvolené nastavenia</translation> <translation id="2609896558069604090">Vytvoriť odkazy...</translation> <translation id="2610157865375787051">Spánok</translation> @@ -1284,7 +1279,6 @@ <translation id="2951247061394563839">Vycentrovať okno</translation> <translation id="2956763290572484660">Počet súborov cookie: <ph name="COOKIES" /></translation> <translation id="2958721676848865875">Upozornenie na zbalenie rozšírenia</translation> -<translation id="2961043351165706615">Z tohto Chromebooku budú odstránené nainštalované aplikácie Linux.</translation> <translation id="2961090598421146107"><ph name="CERTIFICATE_NAME" /> (poskytnuté rozšírením)</translation> <translation id="2961695502793809356">Kliknutím prejdete dopredu. Pri dlhšom stlačení sa zobrazí história.</translation> <translation id="2963151496262057773">Nasledujúci doplnok prestal reagovať: <ph name="PLUGIN_NAME" />. Chcete ho zastaviť?</translation> @@ -1336,15 +1330,6 @@ <translation id="3022978424994383087">Nebolo rozumieť.</translation> <translation id="3024374909719388945">Použiť 24-hodinový režim hodín</translation> <translation id="302781076327338683">Znova načítať vyrovnávaciu pamäť na obídenie</translation> -<translation id="3030243755303701754">Kontrolovaný používateľ môže preskúmavať web pod vaším dohľadom. Ako správca kontrolovaného používateľa v Chrome môžete: - - • povoliť alebo zakázať konkrétne weby; - • pozrieť si weby, ktoré kontrolovaný používateľ navštívil; - • spravovať ďalšie nastavenia. - -Pri vytvorení kontrolovaného používateľa sa nevytvorí účet Google a jeho záložky, história prehliadania ani ďalšie predvoľby sa neprenesú na ďalšie zariadenia pomocou synchronizácie Chromu. Po vytvorení nového kontrolovaného používateľa môžete kedykoľvek spravovať nastavenia z akéhokoľvek zariadenia na adrese <ph name="BEGIN_MANAGE_LINK" /><ph name="DISPLAY_LINK" /><ph name="END_MANAGE_LINK" />. - -Ďalšie informácie nájdete v našom <ph name="BEGIN_LINK" />centre pomoci<ph name="END_LINK" />.</translation> <translation id="3031417829280473749">Agent X</translation> <translation id="3031557471081358569">Vyberte položky na import:</translation> <translation id="3031601332414921114">Pokračovať v tlači</translation> @@ -1385,7 +1370,6 @@ <translation id="3085412380278336437">Web môže používať vašu kameru</translation> <translation id="3085752524577180175">Hostiteľ SOCKS</translation> <translation id="3088325635286126843">&Premenovať...</translation> -<translation id="3089231390674410424">Zdá sa, že došlo k problému s vašimi povereniami. Uistite sa, že ste správne prihlásený/-á, a skúste to znova.</translation> <translation id="3090193911106258841">Pristupovanie k zvukovému vstupu a vstupu videa</translation> <translation id="3090819949319990166">Externý súbor crx nie je možné skopírovať do súboru <ph name="TEMP_CRX_FILE" /></translation> <translation id="3090871774332213558">Zariadenie „<ph name="DEVICE_NAME" />“ bolo spárované</translation> @@ -1400,7 +1384,6 @@ <translation id="3121793941267913344">Resetovanie tohto zariadenia <ph name="IDS_SHORT_PRODUCT_NAME" /></translation> <translation id="3122464029669770682">CPU</translation> <translation id="3122496702278727796">Nedal sa vytvoriť údajový adresár</translation> -<translation id="3123569374670379335">(kontrolovaný)</translation> <translation id="3124111068741548686">POUŽÍVATEĽ – popisovače</translation> <translation id="3126026824346185272">Ctrl</translation> <translation id="3127156390846601284">Táto akcia odstráni všetky dáta uložené v zariadení pre všetky zobrazené weby. Chcete pokračovať?</translation> @@ -1435,8 +1418,6 @@ <translation id="3160842278951476457"><ph name="ISSUED_BY" /> [<ph name="ISSUED_TO" />] (chránené hardvérom)</translation> <translation id="316125635462764134">Odstrániť aplikáciu</translation> <translation id="3161522574479303604">Všetky jazyky</translation> -<translation id="316307797510303346">Ovládať a zobrazovať stránky, ktoré táto osoba navštevuje v rámci účtu <ph name="CUSTODIAN_EMAIL" />. - Vaše prihlasovacie údaje do účtu sú zastarané.</translation> <translation id="3165390001037658081">Niektorí operátori môžu túto funkciu blokovať.</translation> <translation id="316854673539778496">Ak chcete získať svoje rozšírenia vo všetkých zariadeniach, prihláste sa a zapnite synchronizáciu.</translation> <translation id="3170072451822350649">Môžete tiež preskočiť prihlásenie a <ph name="LINK_START" />prehliadať ako hosť<ph name="LINK_END" />.</translation> @@ -1469,7 +1450,6 @@ <translation id="3229922550070982305">prehrať/pozastaviť</translation> <translation id="3232318083971127729">Hodnota:</translation> <translation id="3236289833370040187">Vlastníctvo bude prenesené do domény <ph name="DESTINATION_DOMAIN" />.</translation> -<translation id="3237784613213365159"><ph name="NEW_PROFILE_NAME" /> je odteraz kontrolovaný používateľ</translation> <translation id="323803881985677942">Otvoriť možnosti rozšírenia</translation> <translation id="3241680850019875542">Vyberte koreňový adresár rozšírenia, ktoré chcete zbaliť. Ak chcete rozšírenie aktualizovať, vyberte tiež súbor súkromného kľúča, ktorý sa má znova použiť.</translation> <translation id="3242765319725186192">Predzdieľaný kľúč:</translation> @@ -1701,7 +1681,6 @@ <translation id="3584169441612580296">Čítať a meniť fotky, hudbu a ďalšie médiá z tohto počítača</translation> <translation id="3587482841069643663">Všetko</translation> <translation id="358796204584394954">Na zariadení „<ph name="DEVICE_NAME" />“ zadajte tento kód:</translation> -<translation id="3589532742556016615">Neovplyvní to aplikácie ani obsah v ďalších zariadeniach.</translation> <translation id="3589766037099229847">Bol zablokovaný nezabezpečený obsah</translation> <translation id="3590194807845837023">Odomknúť profil a spustiť znova</translation> <translation id="3592260987370335752">&Viac informácií</translation> @@ -1835,7 +1814,6 @@ <translation id="3778152852029592020">Sťahovanie bolo zrušené.</translation> <translation id="3778740492972734840">&Nástroje pre vývojárov</translation> <translation id="3778868487658107119">Môžete mu klásť otázky. Môžete mu zadávať príkazy. Je to váš osobný Google, ktorý je vždy pripravený pomôcť.</translation> -<translation id="3780663724044634171">Vyberte účet na správu kontrolovaného používateľa.</translation> <translation id="378312418865624974">Čítať jedinečný identifikátor pre tento počítač</translation> <translation id="3783640748446814672">alt</translation> <translation id="3785308913036335955">Zobrazovať odkaz aplikácií</translation> @@ -2563,7 +2541,6 @@ <translation id="4964455510556214366">Usporiadanie</translation> <translation id="4964673849688379040">Prebieha kontrola...</translation> <translation id="4965808351167763748">Naozaj chcete v tomto zariadení nastaviť službu Hangouts Meet?</translation> -<translation id="4967749818080339523">Vyberte účet</translation> <translation id="496888482094675990">Aplikácia Súbory poskytuje rýchly prístup k súborom, ktoré ste uložili na Disk Google, do externého úložiska alebo do zariadenia so systémom OS Chrome.</translation> <translation id="4969785127455456148">Album</translation> <translation id="4971412780836297815">Otvoriť po stiahnutí</translation> @@ -2750,7 +2727,6 @@ Vaše súbory sú bezpečne uložené na Disku Google bez ohľadu na to, čo sa stane s vaším zariadením.<ph name="MARKUP_6" /> <ph name="MARKUP_7" />Zdieľajte a vytvárajte súbory, spolupracuje na nich<ph name="MARKUP_8" /> s ostatnými, a to všetko na jednom mieste.<ph name="MARKUP_9" /></translation> -<translation id="5262401745672360397">Môžu byť odstránené aj súbory zdieľané aplikáciami Linux.</translation> <translation id="5264148714798105376">Môže to chvíľu trvať.</translation> <translation id="5264252276333215551">Ak chcete aplikáciu spustiť v režime verejného terminálu, pripojte sa k internetu.</translation> <translation id="5265562206369321422">Offline viac ako týždeň</translation> @@ -3402,7 +3378,6 @@ <translation id="6241530762627360640">Prístup k informáciám o zariadeniach Bluetooth spárovaných s vaším systémom a objavovanie zariadení Bluetooth v blízkosti.</translation> <translation id="6243280677745499710">Práve nastavená</translation> <translation id="6243774244933267674">Server je nedostupný</translation> -<translation id="6246413617632217567">Kontrolovaný používateľ sa nedá importovať. Skontrolujte priestor na pevnom disku a povolenia a skúste to znova.</translation> <translation id="6247708409970142803"><ph name="PERCENTAGE" /> %</translation> <translation id="6247802389331535091">Systém: <ph name="ARC_PROCESS_NAME" /></translation> <translation id="624789221780392884">Aktualizácia je pripravená</translation> @@ -3601,7 +3576,6 @@ <translation id="654039047105555694"><ph name="BEGIN_BOLD" />Poznámka:<ph name="END_BOLD" /> Túto možnosť povoľte iba v prípade, ak viete, čo robíte, alebo ak vás o to niekto požiadal, pretože zhromažďovanie údajov môže znížiť výkonnosť.</translation> <translation id="654233263479157500">Riešiť chyby v navigácii pomocou webovej služby</translation> <translation id="6544215763872433504">Webový prehliadač od Googlu – pre vás</translation> -<translation id="6545325945815270297">Synchronizované dáta môžete spravovať na <ph name="BEGIN_LINK" />Informačnom paneli Chrome<ph name="END_LINK" />.</translation> <translation id="6545665334409411530">Rýchlosť opakovania</translation> <translation id="6545834809683560467">Predpovedať vyhľadávané výrazy a webové adresy zadávané na paneli s adresou alebo vo vyhľadávacom poli spúšťača</translation> <translation id="6546686722964485737">Pripojiť k sieti WiMax</translation> @@ -3616,7 +3590,6 @@ <translation id="6555810572223193255">Vyčistenie momentálne nie je k dispozícii</translation> <translation id="6556866813142980365">Znova</translation> <translation id="6558280019477628686">Vyskytla sa chyba. Niektoré položky sa nemuseli odstrániť.</translation> -<translation id="6559580823502247193">(už je na tomto zariadení)</translation> <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="656398493051028875">Prebieha odstraňovanie súboru <ph name="FILENAME" />...</translation> @@ -3811,7 +3784,6 @@ <translation id="6862635236584086457">Všetky súbory uložené v tomto priečinku sa automaticky zálohujú online</translation> <translation id="6865313869410766144">Dáta automatického dopĺňania formulárov</translation> <translation id="686664946474413495">Teplota farieb</translation> -<translation id="6867678160199975333">Prepnúť na používateľa <ph name="NEW_PROFILE_NAME" /></translation> <translation id="6870888490422746447">Vyberte aplikáciu, s ktorou chcete obsah zdieľať:</translation> <translation id="6871644448911473373">Odpovedajúce zariadenie OCSP: <ph name="LOCATION" /></translation> <translation id="6872781471649843364">Zadané heslo bolo zamietnuté serverom.</translation> @@ -3905,7 +3877,6 @@ <translation id="7018275672629230621">Čítať a upravovať históriu prehliadania</translation> <translation id="7019805045859631636">Rýchle</translation> <translation id="7022562585984256452">Vaša domovská stránka bola nastavená.</translation> -<translation id="7025036625303002400">Zdá sa, že už máte kontrolovaného používateľa s týmto menom.</translation> <translation id="7025190659207909717">Správa mobilnej dátovej služby</translation> <translation id="7025325401470358758">Nasledujúci panel</translation> <translation id="7027125358315426638">Názov databázy:</translation> @@ -3954,7 +3925,6 @@ <translation id="7092106376816104">Výnimky kontextových okien</translation> <translation id="7093434536568905704">GTK+</translation> <translation id="7093866338626856921">Vymieňať údaje so zariadeniami s nasledujúcimi názvami: <ph name="HOSTNAMES" /></translation> -<translation id="7096108453481049031">Nepodarilo sa importovať kontrolovaného používateľa. Skontrolujte sieťové pripojenie a skúste to znova neskôr.</translation> <translation id="7096406577040705016">Prepnúť lupu na celú obrazovku</translation> <translation id="7098447629416471489">Tu sa zobrazia ďalšie uložené vyhľadávače</translation> <translation id="7099337801055912064">Súbor PPD sa nedá načítať, pretože je príliš veľký. Maximálna veľkosť je 250 kB.</translation> @@ -4002,7 +3972,6 @@ <translation id="7168109975831002660">Minimálna veľkosť písma</translation> <translation id="7170041865419449892">Mimo rozsah</translation> <translation id="7171559745792467651">Inštalácia aplikácií z iných zariadení</translation> -<translation id="7173917244679555">Zdá sa, že používateľa s týmto menom už spravujete. Chcete používateľa <ph name="PROFILE_NAME" /> <ph name="BEGIN_LINK" />importovať do tohto zariadenia<ph name="END_LINK" />?</translation> <translation id="7175037578838465313">Konfigurácia siete <ph name="NAME" /></translation> <translation id="7175353351958621980">Načítané z:</translation> <translation id="7180611975245234373">Obnoviť</translation> @@ -4174,7 +4143,6 @@ <translation id="7444726222535375658">Pokračovať do služby Hangouts Meet</translation> <translation id="7444983668544353857">Zakázať zariadenie <ph name="NETWORKDEVICE" /></translation> <translation id="7445682342344043969">Boli zablokované kontextové okná</translation> -<translation id="744859430125590922">Skontrolovať a zobraziť stránky, ktoré táto osoba navštívila v rámci účtu <ph name="CUSTODIAN_EMAIL" />.</translation> <translation id="7453008956351770337">Výberom tejto tlačiarne udeľujete nasledujúcemu rozšíreniu povolenie k tlačiarni pristupovať:</translation> <translation id="7453467225369441013">Odhlási vás z väčšiny webov, ale nie z účtu Google.</translation> <translation id="7456142309650173560">dev</translation> @@ -4348,7 +4316,6 @@ <translation id="7717845620320228976">Kontrola dostupnosti aktualizácií</translation> <translation id="7719367874908701697">Priblíženie stránky</translation> <translation id="771953673318695590">Kontrola kvality</translation> -<translation id="7720375555307821262">Ak chcete kontrolovať túto osobu, <ph name="BEGIN_LINK" />prihláste sa do Chromu<ph name="END_LINK" />.</translation> <translation id="7721179060400456005">Povoliť oknám zobrazenie cez viacero obrazoviek</translation> <translation id="7722040605881499779">Potrebné miesto na aktualizáciu: <ph name="NECESSARY_SPACE" /></translation> <translation id="7724603315864178912">Vystrihnúť</translation> @@ -5203,7 +5170,6 @@ <translation id="9024331582947483881">celá obrazovka</translation> <translation id="9025098623496448965">OK, prejsť späť na obrazovku prihlásenia</translation> <translation id="9026731007018893674">stiahnuť</translation> -<translation id="9027146684281895941">Dozerať na túto osobu a zo svojho účtu Google ovládať a kontrolovať webové stránky, ktoré navštevuje.</translation> <translation id="9027459031423301635">Otvoriť odkaz na novej &karte</translation> <translation id="9027603907212475920">Nastaviť synchronizáciu...</translation> <translation id="9030515284705930323">Vaša organizácia nepovoľuje vo vašom účte Obchod Google Play. Ak chcete získať ďalšie informácie, kontaktujte svojho správcu.</translation> @@ -5363,7 +5329,6 @@ <translation id="98515147261107953">Na šírku</translation> <translation id="987897973846887088">K dispozícii nie sú žiadne obrázky</translation> <translation id="988978206646512040">Prístupová fráza nemôže byť prázdna</translation> -<translation id="990310048453480215">Odstrániť aplikácie Linux</translation> <translation id="992032470292211616">Rozšírenia, aplikácie a motívy môžu poškodiť vaše zariadenie. Naozaj chcete pokračovať?</translation> <translation id="992592832486024913">Zakázať funkciu ChromeVox (hlasovú spätnú väzbu)</translation> <translation id="994289308992179865">Opa&kovať</translation>
diff --git a/chrome/app/resources/generated_resources_sl.xtb b/chrome/app/resources/generated_resources_sl.xtb index 21bf07d..e0b3050 100644 --- a/chrome/app/resources/generated_resources_sl.xtb +++ b/chrome/app/resources/generated_resources_sl.xtb
@@ -42,7 +42,6 @@ <translation id="1056898198331236512">Opozorilo</translation> <translation id="1058262162121953039">PUK</translation> <translation id="1062407476771304334">Zamenjaj</translation> -<translation id="1062866675591297858">Zaščitene uporabnike lahko upravljate na <ph name="BEGIN_LINK" />nadzorni plošči za zaščitene uporabnike<ph name="END_LINK" />.</translation> <translation id="1064835277883315402">Pridružite se zasebnemu omrežju</translation> <translation id="1064912851688322329">Prekinitev povezave z Google Računom</translation> <translation id="1067048845568873861">Ustvarjeno</translation> @@ -65,7 +64,6 @@ <translation id="1091767800771861448">Pritisnite Esc, če želite preskočiti (samo neuradne delovne različice).</translation> <translation id="1093457606523402488">Vidna omrežja:</translation> <translation id="1094607894174825014">Dejanje branja ali pisanja je bilo zahtevano z neveljavnim zamikom v tej napravi: »<ph name="DEVICE_NAME" />«.</translation> -<translation id="1097507499312291972"><ph name="BEGIN_SIGN_IN_LINK" />Prijavite se<ph name="END_SIGN_IN_LINK" />, če želite nadzirati in si ogledati spletna mesta, ki jih obiskuje ta oseba.</translation> <translation id="109758035718544977">Vklopi zvok spletnih mest</translation> <translation id="1097658378307015415">Pred prijavo vstopite kot gost, da aktivirate omrežje <ph name="NETWORK_ID" />.</translation> <translation id="1103523840287552314">Vedno prevedi ta jezik: <ph name="LANGUAGE" /></translation> @@ -244,7 +242,6 @@ <translation id="1361655923249334273">Neuporabljeno</translation> <translation id="1363028406613469049">Posnetek</translation> <translation id="1367951781824006909">Izberite datoteko</translation> -<translation id="136802136832547685">Ni zaščitenih uporabnikov, ki bi jih bilo mogoče dodati v to napravo.</translation> <translation id="1368265273904755308">Prijava težave</translation> <translation id="1370646789215800222">Želite odstraniti osebo?</translation> <translation id="1372681413396468867">{NUM_ITEMS,plural, =1{1 element za odstranitev}one{# element za odstranitev}two{# elementa za odstranitev}few{# elementi za odstranitev}other{# elementov za odstranitev}}</translation> @@ -473,7 +470,6 @@ <translation id="1692799361700686467">Piškotki z več mest so dovoljeni.</translation> <translation id="169515659049020177">Shift</translation> <translation id="1698122934742150150">Samo za trenutno sejo brez beleženja zgodovine</translation> -<translation id="1700199471143028312">Skrbnik vam ne dopušča ustvarjanja zaščitenih uporabnikov.</translation> <translation id="1701062906490865540">Odstrani to osebo</translation> <translation id="1706586824377653884">Dodal skrbnik</translation> <translation id="1706625117072057435">Ravni povečave/pomanjšave</translation> @@ -1042,7 +1038,6 @@ <translation id="2604255671529671813">Napaka v omrežni povezavi</translation> <translation id="2606246518223360146">Poveži podatke</translation> <translation id="2607101320794533334">Informacije o javnem ključu subjekta</translation> -<translation id="2607459012323956820">Upravitelj lahko na <ph name="BEGIN_LINK" /><ph name="DISPLAY_LINK" /><ph name="END_LINK" /> še vedno vidi zgodovino brskanja in nastavitve tega zaščitenega uporabnika.</translation> <translation id="2608770217409477136">Uporabi privzete nastavitve</translation> <translation id="2609896558069604090">Ustvarjanje bližnjic ...</translation> <translation id="2610157865375787051">Stanje pripravljenosti</translation> @@ -1285,7 +1280,6 @@ <translation id="2951247061394563839">Okno na sredino</translation> <translation id="2956763290572484660">Št. piškotkov: <ph name="COOKIES" /></translation> <translation id="2958721676848865875">Opozorilo glede pakiranja razširitve</translation> -<translation id="2961043351165706615">Aplikacije za Linux, ki ste jih namestili, bodo izbrisane iz tega Chromebooka.</translation> <translation id="2961090598421146107"><ph name="CERTIFICATE_NAME" /> (zagotavlja razširitev)</translation> <translation id="2961695502793809356">Kliknite, če želite nadaljevati, za ogled zgodovine pa zadržite</translation> <translation id="2963151496262057773">Ta vtičnik se ne odziva: <ph name="PLUGIN_NAME" />. Ali ga želite ustaviti?</translation> @@ -1337,15 +1331,6 @@ <translation id="3022978424994383087">Ni bilo razumljivo.</translation> <translation id="3024374909719388945">Uporabi 24-urno obliko ure</translation> <translation id="302781076327338683">Vnovično nalaganje obide predpomnilnik</translation> -<translation id="3030243755303701754">Zaščiteni uporabnik lahko prek vašega vodenja raziskuje splet. Kot upravitelj zaščitenega uporabnika v Chromu imate te možnosti: - - • omogočanje ali prepoved dostopa do nekaterih spletnih mest, - • pregled spletnih mest, ki jih je obiskal zaščiteni uporabnik, in - • upravljanje drugih nastavitev. - -Z ustvarjanjem zaščitenega uporabnika ne ustvarite Google Računa, njegovi zaznamki, zgodovina brskanja in druge nastavitve pa ne bodo sinhronizirani z drugimi napravami prek funkcije Chrome Sync. Ko ustvarite novega zaščitenega uporabnika, lahko na <ph name="BEGIN_MANAGE_LINK" /><ph name="DISPLAY_LINK" /><ph name="END_MANAGE_LINK" /> kadar koli in v poljubni napravi upravljate njegove nastavitve. - -Če želite več informacij, obiščite naš <ph name="BEGIN_LINK" />center za pomoč<ph name="END_LINK" />.</translation> <translation id="3031417829280473749">Agent X</translation> <translation id="3031557471081358569">Izberite elemente, ki jih želite uvoziti:</translation> <translation id="3031601332414921114">Nadaljuj tiskanje</translation> @@ -1386,7 +1371,6 @@ <translation id="3085412380278336437">Spletno mesto lahko uporablja vašo kamero</translation> <translation id="3085752524577180175">Gostitelj SOCKS</translation> <translation id="3088325635286126843">&Preimenuj ...</translation> -<translation id="3089231390674410424">Videti je, da je prišlo do težave z vašimi poverilnicami. Poskrbite, da boste pravilno prijavljeni in poskusite znova.</translation> <translation id="3090193911106258841">Dostopanje do zvočnih vhodov in videovhodov</translation> <translation id="3090819949319990166">Zunanje datoteke crx ni mogoče kopirati v <ph name="TEMP_CRX_FILE" />.</translation> <translation id="3090871774332213558">Naprava »<ph name="DEVICE_NAME" />« je seznanjena</translation> @@ -1401,7 +1385,6 @@ <translation id="3121793941267913344">Ponastavitev te naprave <ph name="IDS_SHORT_PRODUCT_NAME" /></translation> <translation id="3122464029669770682">CPE</translation> <translation id="3122496702278727796">Imenika s podatki ni bilo mogoče ustvariti</translation> -<translation id="3123569374670379335">(Zaščiten)</translation> <translation id="3124111068741548686">Kode za dostop uporabnika USER</translation> <translation id="3126026824346185272">CTRL</translation> <translation id="3127156390846601284">S tem bodo izbrisani podatki, ki so jih prikazana spletna mesta shranila v vaši napravi. Ali želite nadaljevati?</translation> @@ -1436,8 +1419,6 @@ <translation id="3160842278951476457"><ph name="ISSUED_BY" /> [<ph name="ISSUED_TO" />] (podprto s strojno opremo)</translation> <translation id="316125635462764134">Odstrani aplikacijo</translation> <translation id="3161522574479303604">Vsi jeziki</translation> -<translation id="316307797510303346">Nadziranje in ogled spletnih mest, ki si jih ogleda ta oseba, z e-poštnega naslova <ph name="CUSTODIAN_EMAIL" />. - Vaši podatki za prijavo v račun so zastareli.</translation> <translation id="3165390001037658081">Nekateri operaterji morda blokirajo to funkcijo.</translation> <translation id="316854673539778496">Če želite dostopati do razširitev v vseh napravah, se prijavite in vklopite sinhronizacijo.</translation> <translation id="3170072451822350649">Prijavo lahko tudi preskočite in <ph name="LINK_START" />brskate kot gost<ph name="LINK_END" />.</translation> @@ -1470,7 +1451,6 @@ <translation id="3229922550070982305">predvajanje/premor</translation> <translation id="3232318083971127729">Vrednost:</translation> <translation id="3236289833370040187">Lastništvo bo preneseno v domeno <ph name="DESTINATION_DOMAIN" />.</translation> -<translation id="3237784613213365159">Uporabnik <ph name="NEW_PROFILE_NAME" /> je zdaj zaščiteni uporabnik</translation> <translation id="323803881985677942">Odpiranje možnosti razširitev</translation> <translation id="3241680850019875542">Izberite korenski imenik razširitve, ki jo želite zapakirati. Če želite posodobiti razširitev, izberite tudi datoteko z zasebnim ključem, ki jo želite znova uporabiti.</translation> <translation id="3242765319725186192">Ključ v predhodni skupni rabi:</translation> @@ -1702,7 +1682,6 @@ <translation id="3584169441612580296">Branje in spreminjanje fotografij, glasbe in drugih predstavnosti v računalniku</translation> <translation id="3587482841069643663">Vse</translation> <translation id="358796204584394954">Če želite začeti seznanjanje, v napravo »<ph name="DEVICE_NAME" />« vnesite to kodo:</translation> -<translation id="3589532742556016615">To ne vpliva na aplikacije ali vsebino v drugih napravah.</translation> <translation id="3589766037099229847">Vsebina, ki ni varna, je blokirana</translation> <translation id="3590194807845837023">Odkleni profil in zaženi znova</translation> <translation id="3592260987370335752">Več o tem</translation> @@ -1836,7 +1815,6 @@ <translation id="3778152852029592020">Prenos je bil preklican.</translation> <translation id="3778740492972734840">&Orodja za razvijalce</translation> <translation id="3778868487658107119">Postavite mu vprašanja ali mu naročite, kaj naj naredi. Je vaš osebni Google, ki vam je vedno pripravljen priskočiti na pomoč.</translation> -<translation id="3780663724044634171">Izberite račun za upravljanje zaščitenega uporabnika.</translation> <translation id="378312418865624974">Branje enoličnega identifikatorja za ta računalnik</translation> <translation id="3783640748446814672">alt</translation> <translation id="3785308913036335955">Pokaži bližnjico do aplikacij</translation> @@ -2564,7 +2542,6 @@ <translation id="4964455510556214366">Razvrstitev</translation> <translation id="4964673849688379040">Preverjanje ...</translation> <translation id="4965808351167763748">Ali res želite nastaviti to napravo za zagon storitve Hangouts Meet?</translation> -<translation id="4967749818080339523">Izberite račun</translation> <translation id="496888482094675990">Aplikacija Datoteke omogoča hiter dostop do datotek, ki ste jih shranili v Googlu Drive, v zunanji shrambi ali v napravi s sistemom Chrome OS.</translation> <translation id="4969785127455456148">Album</translation> <translation id="4971412780836297815">Odpri, ko je končano</translation> @@ -2751,7 +2728,6 @@ Datoteke so varno shranjene v Googlu Drive ne glede na to, kaj se zgodi z napravo.<ph name="MARKUP_6" /> <ph name="MARKUP_7" />Delite datoteke z drugimi, jih ustvarjajte in sodelujte<ph name="MARKUP_8" /> na enem mestu.<ph name="MARKUP_9" /></translation> -<translation id="5262401745672360397">Morda bodo izbrisane tudi datoteke v skupni rabi z aplikacijami za Linux.</translation> <translation id="5264148714798105376">To lahko traja kakšno minuto.</translation> <translation id="5264252276333215551">Če želite aplikacijo zagnati v načinu kioska, se povežite z internetom.</translation> <translation id="5265562206369321422">Brez povezave več kot en teden</translation> @@ -3404,7 +3380,6 @@ <translation id="6241530762627360640">Dostop do podatkov o napravah Bluetooth, ki so seznanjene z vašim sistemom, in odkrivanje naprav Bluetooth v bližini.</translation> <translation id="6243280677745499710">Trenutno nastavljeno</translation> <translation id="6243774244933267674">Strežnik ni na voljo</translation> -<translation id="6246413617632217567">Novega uporabnika ni bilo mogoče uvoziti. Preverite prostor na trdem disku in dovoljenja ter poskusite znova.</translation> <translation id="6247708409970142803"><ph name="PERCENTAGE" /> %</translation> <translation id="6247802389331535091">Sistem: <ph name="ARC_PROCESS_NAME" /></translation> <translation id="624789221780392884">Posodobitev je pripravljena</translation> @@ -3602,7 +3577,6 @@ <translation id="654039047105555694"><ph name="BEGIN_BOLD" />Opomba:<ph name="END_BOLD" /> Omogočite samo, če veste, kaj delate, ali če je bilo to zahtevano od vas, ker lahko zbiranje podatkov zmanjša učinkovitost delovanja.</translation> <translation id="654233263479157500">Razreševanje napak pri krmarjenju z uporabo spletne storitve</translation> <translation id="6544215763872433504">Googlov brskalnik za vas</translation> -<translation id="6545325945815270297">Sinhronizirane podatke in naprave lahko upravljate na <ph name="BEGIN_LINK" />nadzorni plošči za Chrome<ph name="END_LINK" />.</translation> <translation id="6545665334409411530">Hitrost ponavljanja</translation> <translation id="6545834809683560467">Za pomoč pri dokončanju iskalnih poizvedb in URL-jev, vnesenih v naslovno vrstico ali iskalno polje zaganjalnika aplikacij, uporabite storitev za predvidevanje</translation> <translation id="6546686722964485737">Pridružite se omrežju WiMAX</translation> @@ -3617,7 +3591,6 @@ <translation id="6555810572223193255">Čiščenje trenutno ni na voljo</translation> <translation id="6556866813142980365">Uveljavi</translation> <translation id="6558280019477628686">Prišlo je do napake. Nekateri elementi morda niso izbrisani.</translation> -<translation id="6559580823502247193">(že v tej napravi)</translation> <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="656398493051028875">Brisanje datoteke »<ph name="FILENAME" />« ...</translation> @@ -3814,7 +3787,6 @@ <translation id="6862635236584086457">Datoteke, shranjene v teh mapi, se samodejno varnostno kopirajo v splet</translation> <translation id="6865313869410766144">Podatki za samodejno izpolnjevanje obrazcev</translation> <translation id="686664946474413495">Barvna temperatura</translation> -<translation id="6867678160199975333">Preklop na <ph name="NEW_PROFILE_NAME" /></translation> <translation id="6870888490422746447">Izberite aplikacijo, s katero želite deliti:</translation> <translation id="6871644448911473373">Odzivnik OCSP: <ph name="LOCATION" /></translation> <translation id="6872781471649843364">Vneseno geslo je zavrnil strežnik.</translation> @@ -3908,7 +3880,6 @@ <translation id="7018275672629230621">Branje in spreminjanje zgodovine brskanja</translation> <translation id="7019805045859631636">Hitro</translation> <translation id="7022562585984256452">Domača stran je nastavljena.</translation> -<translation id="7025036625303002400">Videti je, da že imate zaščitenega uporabnika s tem imenom.</translation> <translation id="7025190659207909717">Upravljanje mobilne podatkovne storitve</translation> <translation id="7025325401470358758">Naslednje podokno</translation> <translation id="7027125358315426638">Ime zbirke podatkov:</translation> @@ -3957,7 +3928,6 @@ <translation id="7092106376816104">Izjeme za pojavna okna</translation> <translation id="7093434536568905704">GTK+</translation> <translation id="7093866338626856921">Izmenjava podatkov z napravami, imenovanimi: <ph name="HOSTNAMES" /></translation> -<translation id="7096108453481049031">Zaščitenega uporabnika ni bilo mogoče uvoziti. Preverite omrežno povezavo in poskusite znova pozneje.</translation> <translation id="7096406577040705016">Preklop celozaslonske lupe</translation> <translation id="7098447629416471489">Drugi shranjeni iskalniki bodo prikazani tukaj</translation> <translation id="7099337801055912064">Velikih datotek PPD ni mogoče naložiti. Največja dovoljena velikost je 250 KB.</translation> @@ -4005,7 +3975,6 @@ <translation id="7168109975831002660">Najmanjša velikost pisave</translation> <translation id="7170041865419449892">Zunaj dosega</translation> <translation id="7171559745792467651">Namestitev aplikacij iz drugih naprav</translation> -<translation id="7173917244679555">Videti je, da že upravljate uporabnika s tem imenom. Ali ste želeli <ph name="BEGIN_LINK" />profil <ph name="PROFILE_NAME" /> uvoziti<ph name="END_LINK" /> v to napravo?</translation> <translation id="7175037578838465313">Konfiguriranje omrežja <ph name="NAME" /></translation> <translation id="7175353351958621980">Naloženo iz:</translation> <translation id="7180611975245234373">Osveži</translation> @@ -4177,7 +4146,6 @@ <translation id="7444726222535375658">Naprej v Hangouts Meet</translation> <translation id="7444983668544353857">Onemogoči <ph name="NETWORKDEVICE" /></translation> <translation id="7445682342344043969">Pojavna okna so blokirana</translation> -<translation id="744859430125590922">Nadziranje in ogled spletnih mest, ki si jih ogleda ta oseba, z e-poštnega naslova <ph name="CUSTODIAN_EMAIL" />.</translation> <translation id="7453008956351770337">Če izberete ta tiskalnik, daste tej razširitvi dovoljenje za dostop do tiskalnika:</translation> <translation id="7453467225369441013">Odjavi vas iz večine spletnih mest, vendar ne iz Google Računa.</translation> <translation id="7456142309650173560">dev</translation> @@ -4351,7 +4319,6 @@ <translation id="7717845620320228976">Preveri, ali so na voljo posodobitve</translation> <translation id="7719367874908701697">Povečava/pomanjšava strani</translation> <translation id="771953673318695590">QA</translation> -<translation id="7720375555307821262">Če želite nadzirati to osebo, <ph name="BEGIN_LINK" />se prijavite v Chrome<ph name="END_LINK" />.</translation> <translation id="7721179060400456005">Dovoli prikaz oken čez več zaslonov</translation> <translation id="7722040605881499779">Potrebno za posodobitev: <ph name="NECESSARY_SPACE" /></translation> <translation id="7724603315864178912">Izreži</translation> @@ -5206,7 +5173,6 @@ <translation id="9024331582947483881">celozaslonski način</translation> <translation id="9025098623496448965">V redu, želim nazaj na zaslon za prijavo</translation> <translation id="9026731007018893674">prenos</translation> -<translation id="9027146684281895941">Spremljanje te osebe zaradi nadzora in ogleda spletnih mest, jih obišče v vašem Google Računu.</translation> <translation id="9027459031423301635">Povezavo odpri v novem &zavihku</translation> <translation id="9027603907212475920">Nastavitev sinhronizacije ...</translation> <translation id="9030515284705930323">Organizacija za vaš račun ni omogočila Trgovine Google Play. Če želite več informacij, se obrnite na skrbnika.</translation> @@ -5366,7 +5332,6 @@ <translation id="98515147261107953">Ležeče</translation> <translation id="987897973846887088">Na voljo ni nobenih slik</translation> <translation id="988978206646512040">Prazno geslo ni dovoljeno</translation> -<translation id="990310048453480215">Odstrani aplikacije za Linux</translation> <translation id="992032470292211616">Razširitve, programi in teme lahko škodujejo napravi. Ali ste prepričani, da želite nadaljevati?</translation> <translation id="992592832486024913">Onemogoči ChromeVox (izgovorjava povratnih informacij)</translation> <translation id="994289308992179865">Ponav&ljaj</translation>
diff --git a/chrome/app/resources/generated_resources_sr.xtb b/chrome/app/resources/generated_resources_sr.xtb index aa9ead3f..689ccc9 100644 --- a/chrome/app/resources/generated_resources_sr.xtb +++ b/chrome/app/resources/generated_resources_sr.xtb
@@ -42,7 +42,6 @@ <translation id="1056898198331236512">Упозорење</translation> <translation id="1058262162121953039">PUK</translation> <translation id="1062407476771304334">Замени</translation> -<translation id="1062866675591297858">Управљајте корисницима под надзором преко <ph name="BEGIN_LINK" />Контролне табле за кориснике под надзором<ph name="END_LINK" />.</translation> <translation id="1064835277883315402">Придруживање приватној мрежи</translation> <translation id="1064912851688322329">Прекид везе са Google налогом...</translation> <translation id="1067048845568873861">Направљено</translation> @@ -65,7 +64,6 @@ <translation id="1091767800771861448">Притисните ESCAPE да бисте прескочили (само у незваничним верзијама).</translation> <translation id="1093457606523402488">Видљиве мреже:</translation> <translation id="1094607894174825014">Операција читања или писања је захтевана уз неважеће смањење на: „<ph name="DEVICE_NAME" />“.</translation> -<translation id="1097507499312291972"><ph name="BEGIN_SIGN_IN_LINK" />Пријавите се<ph name="END_SIGN_IN_LINK" /> да бисте контролисали и прегледали веб-сајтове које ова особа посећује.</translation> <translation id="109758035718544977">Укључи звук сајтова</translation> <translation id="1097658378307015415">Пре пријављивања приступите као гост да бисте активирали мрежу <ph name="NETWORK_ID" /></translation> <translation id="1103523840287552314">Увек преводи <ph name="LANGUAGE" /></translation> @@ -244,7 +242,6 @@ <translation id="1361655923249334273">Није коришћен</translation> <translation id="1363028406613469049">Песма</translation> <translation id="1367951781824006909">Изабери датотеку</translation> -<translation id="136802136832547685">Нема корисника под надзором за додавање овом уређају.</translation> <translation id="1368265273904755308">Пријављивање проблема</translation> <translation id="1370646789215800222">Желите ли да уклоните особу?</translation> <translation id="1372681413396468867">{NUM_ITEMS,plural, =1{1 ставка за уклањање}one{# ставка за уклањање}few{# ставке за уклањање}other{# ставки за уклањање}}</translation> @@ -469,7 +466,6 @@ <translation id="1692799361700686467">Колачићи са више сајтова су дозвољени.</translation> <translation id="169515659049020177">Shift</translation> <translation id="1698122934742150150">Само актуелна сесија без архивирања</translation> -<translation id="1700199471143028312">Администратор вам не дозвољава да направите кориснике под надзором.</translation> <translation id="1701062906490865540">Уклони ову особу</translation> <translation id="1706586824377653884">Додао администратор</translation> <translation id="1706625117072057435">Нивои зумирања</translation> @@ -1037,7 +1033,6 @@ <translation id="2604255671529671813">Грешка мрежне везе</translation> <translation id="2606246518223360146">Повежи податке</translation> <translation id="2607101320794533334">Информације о јавном кључу субјекта</translation> -<translation id="2607459012323956820">Менаџер ће можда и даље моћи да види подешавања и историју прегледања за овог корисника под надзором на <ph name="BEGIN_LINK" /><ph name="DISPLAY_LINK" /><ph name="END_LINK" />.</translation> <translation id="2608770217409477136">Користи подразумевана подешавања</translation> <translation id="2609896558069604090">Направи пречице...</translation> <translation id="2610157865375787051">Спавање</translation> @@ -1280,7 +1275,6 @@ <translation id="2951247061394563839">Центрирање прозора</translation> <translation id="2956763290572484660"><ph name="COOKIES" /> колачића</translation> <translation id="2958721676848865875">Упозорење о паковању додатка</translation> -<translation id="2961043351165706615">Инсталиране Linux апликације ће бити обрисане са овог Chromebook-а.</translation> <translation id="2961090598421146107"><ph name="CERTIFICATE_NAME" /> (продужено је)</translation> <translation id="2961695502793809356">Кликните да бисте отишли напред, задржите да бисте видели историју</translation> <translation id="2963151496262057773">Следећа додатна компонента се не одазива: <ph name="PLUGIN_NAME" /> Желите ли да је зауставите?</translation> @@ -1332,15 +1326,6 @@ <translation id="3022978424994383087">Нисмо вас разумели.</translation> <translation id="3024374909719388945">Користи 24-часовни сат</translation> <translation id="302781076327338683">Поновно учитавање уз заобилажење кеша</translation> -<translation id="3030243755303701754">Корисник под надзором може да истражује веб уз вашу помоћ. Као менаџер корисника под надзором у Chrome-у, можете: - - • да дозволите или забраните одређене веб-сајтове, - • да прегледате веб-сајтове које је корисник под надзором посетио и - • да управљате другим подешавањима. - -Прављењем корисника под надзором не отварате Google налог и његови обележивачи, историја прегледања и друга подешавања неће бити синхронизована на другим уређајима помоћу Chrome синхронизације. Када направите новог корисника под надзором, у било ком тренутку и са сваког уређаја можете да управљате његовим подешавањима на <ph name="BEGIN_MANAGE_LINK" /><ph name="DISPLAY_LINK" /><ph name="END_MANAGE_LINK" />. - -Више информација потражите у <ph name="BEGIN_LINK" />центру за помоћ<ph name="END_LINK" />.</translation> <translation id="3031417829280473749">Агент Икс</translation> <translation id="3031557471081358569">Изаберите ставке за увоз:</translation> <translation id="3031601332414921114">Настави штампање</translation> @@ -1381,7 +1366,6 @@ <translation id="3085412380278336437">Сајт може да користи камеру</translation> <translation id="3085752524577180175">SOCKS хост</translation> <translation id="3088325635286126843">&Преименуј...</translation> -<translation id="3089231390674410424">Изгледа да постоји проблем са акредитивима. Проверите да ли сте исправно пријављени и покушајте поново.</translation> <translation id="3090193911106258841">Приступа се аудио и видео улазу</translation> <translation id="3090819949319990166">Није успело копирање спољне crx датотеке у датотеку <ph name="TEMP_CRX_FILE" />.</translation> <translation id="3090871774332213558">Упарили сте „<ph name="DEVICE_NAME" />“</translation> @@ -1396,7 +1380,6 @@ <translation id="3121793941267913344">Ресетовање овог <ph name="IDS_SHORT_PRODUCT_NAME" /> уређаја</translation> <translation id="3122464029669770682">CPU</translation> <translation id="3122496702278727796">Прављење директоријума са подацима није успело</translation> -<translation id="3123569374670379335">(Под надзором)</translation> <translation id="3124111068741548686">КОРИСНИЧКИ надимци</translation> <translation id="3126026824346185272">Ctrl</translation> <translation id="3127156390846601284">Овим ћете избрисати све податке сачуване на уређају за све приказане сајтове. Желите ли да наставите?</translation> @@ -1431,8 +1414,6 @@ <translation id="3160842278951476457"><ph name="ISSUED_BY" /> [<ph name="ISSUED_TO" />] (хардвер је сертификован)</translation> <translation id="316125635462764134">Уклони апликацију</translation> <translation id="3161522574479303604">Сви језици</translation> -<translation id="316307797510303346">Контролишите и прегледајте веб-сајтове које ова особа посећује са <ph name="CUSTODIAN_EMAIL" />. - Детаљи за пријављивање на налог су застарели.</translation> <translation id="3165390001037658081">Неки мобилни оператери могу да блокирају ову функцију.</translation> <translation id="316854673539778496">Да би вам додаци били доступни на свим уређајима, пријавите се и укључите синхронизацију.</translation> <translation id="3170072451822350649">Можете и да прескочите пријављивање и да <ph name="LINK_START" />прегледате као гост<ph name="LINK_END" />.</translation> @@ -1465,7 +1446,6 @@ <translation id="3229922550070982305">пусти/паузирај</translation> <translation id="3232318083971127729">Вредност:</translation> <translation id="3236289833370040187">Власништво ће бити пренесено на <ph name="DESTINATION_DOMAIN" />.</translation> -<translation id="3237784613213365159"><ph name="NEW_PROFILE_NAME" /> је сада корисник под надзором</translation> <translation id="323803881985677942">Отвори опције додатака</translation> <translation id="3241680850019875542">Изаберите основни директоријум додатка за паковање. Да бисте ажурирали додатак, изаберите и датотеку приватног кључа која ће се поново користити.</translation> <translation id="3242765319725186192">Тајни кључ:</translation> @@ -1697,7 +1677,6 @@ <translation id="3584169441612580296">Читање слика, музике и других медија са рачунара и мењање тих медија</translation> <translation id="3587482841069643663">Све</translation> <translation id="358796204584394954">Унесите овај кôд на „<ph name="DEVICE_NAME" />“ да бисте обавили упаривање:</translation> -<translation id="3589532742556016615">То не утиче на апликације или садржај на другим уређајима.</translation> <translation id="3589766037099229847">Небезбедан садржај је блокиран</translation> <translation id="3590194807845837023">Откључај профил и поново покрени</translation> <translation id="3592260987370335752">&Сазнајте више</translation> @@ -1831,7 +1810,6 @@ <translation id="3778152852029592020">Преузимање је отказано.</translation> <translation id="3778740492972734840">&Алатке за програмере</translation> <translation id="3778868487658107119">Постављајте му питања. Дајте му да ради нешто. То је ваш лични Google, увек на услузи.</translation> -<translation id="3780663724044634171">Изаберите налог за управљање корисником под надзором.</translation> <translation id="378312418865624974">Читање јединственог идентификатора за овај рачунар</translation> <translation id="3783640748446814672">alt</translation> <translation id="3785308913036335955">Прикажи пречицу за апликације</translation> @@ -2559,7 +2537,6 @@ <translation id="4964455510556214366">Распоред</translation> <translation id="4964673849688379040">Проверава се...</translation> <translation id="4965808351167763748">Желите ли стварно да подесите овај уређај за коришћење Hangouts Meet-а?</translation> -<translation id="4967749818080339523">Изаберите налог</translation> <translation id="496888482094675990">Апликација Датотеке пружа брз приступ датотекама које сте сачували на Google диску, у спољној меморији или на Chrome ОС уређају.</translation> <translation id="4969785127455456148">Албум</translation> <translation id="4971412780836297815">Отвори када буде довршено</translation> @@ -2746,7 +2723,6 @@ Без обзира на то шта се деси са уређајем, датотеке се безбедно чувају на Google диску.<ph name="MARKUP_6" /> <ph name="MARKUP_7" />Делите и правите датотеке и сарађујте<ph name="MARKUP_8" /> на њима са другима, и све то на једном месту.<ph name="MARKUP_9" /></translation> -<translation id="5262401745672360397">Биће обрисане и датотеке које се деле са Linux апликацијама.</translation> <translation id="5264148714798105376">Ово ће потрајати минут или два.</translation> <translation id="5264252276333215551">Успоставите везу са интернетом да бисте покренули апликацију у режиму киоска.</translation> <translation id="5265562206369321422">Офлајн дуже од недељу дана</translation> @@ -3400,7 +3376,6 @@ <translation id="6241530762627360640">Приступање информацијама о Bluetooth уређајима упареним са вашим системом и откривање оближњих Bluetooth уређаја.</translation> <translation id="6243280677745499710">Тренутно подешена</translation> <translation id="6243774244933267674">Сервер је недоступан</translation> -<translation id="6246413617632217567">Није могуће увести корисника под надзором. Проверите простор на хард-диску и дозволе и покушајте поново.</translation> <translation id="6247708409970142803"><ph name="PERCENTAGE" />%</translation> <translation id="6247802389331535091">Систем: <ph name="ARC_PROCESS_NAME" /></translation> <translation id="624789221780392884">Ажурирање је спремно</translation> @@ -3598,7 +3573,6 @@ <translation id="654039047105555694"><ph name="BEGIN_BOLD" />Напомена:<ph name="END_BOLD" /> Омогућите ово само ако знате шта радите или ако је то неко затражио од вас јер прикупљање података може да погорша учинак.</translation> <translation id="654233263479157500">Користи веб услугу за помоћ у решавању грешака при навигацији</translation> <translation id="6544215763872433504">Google-ов веб-прегледач за вас</translation> -<translation id="6545325945815270297">Управљајте синхронизованим подацима и уређајима на <ph name="BEGIN_LINK" />Chrome контролној табли<ph name="END_LINK" />.</translation> <translation id="6545665334409411530">Брзина понављања</translation> <translation id="6545834809683560467">Користите услугу предвиђања за довршавање упита за претрагу и URL-ова које куцате у траци за адресу или оквиру за претрагу у покретачу апликација</translation> <translation id="6546686722964485737">Придруживање WiMAX мрежи</translation> @@ -3613,7 +3587,6 @@ <translation id="6555810572223193255">Чишћење је тренутно недоступно</translation> <translation id="6556866813142980365">Понови</translation> <translation id="6558280019477628686">Дошло је до грешке. Неке ставке можда нису избрисане.</translation> -<translation id="6559580823502247193">(већ је на овом уређају)</translation> <translation id="6561726789132298588">enter</translation> <translation id="656293578423618167">Путања или назив датотеке су предугачки. Сачувајте са краћим називом или на другој локацији.</translation> <translation id="656398493051028875">Брисање „<ph name="FILENAME" />“...</translation> @@ -3810,7 +3783,6 @@ <translation id="6862635236584086457">За све датотеке сачуване у овом директоријуму аутоматски се прави резервна копија на мрежи</translation> <translation id="6865313869410766144">Подаци Аутоматског попуњавања за обрасце</translation> <translation id="686664946474413495">Температура боја</translation> -<translation id="6867678160199975333">Пребаци на <ph name="NEW_PROFILE_NAME" /></translation> <translation id="6870888490422746447">Изаберите апликацију за дељење:</translation> <translation id="6871644448911473373">OCSP одзивник: <ph name="LOCATION" /></translation> <translation id="6872781471649843364">Сервер је одбио лозинку коју сте унели.</translation> @@ -3904,7 +3876,6 @@ <translation id="7018275672629230621">Читање историје прегледања и мењање те историје</translation> <translation id="7019805045859631636">Брзо</translation> <translation id="7022562585984256452">Почетна страница је подешена.</translation> -<translation id="7025036625303002400">Изгледа да већ имате корисника под надзором са овим именом.</translation> <translation id="7025190659207909717">Управљање услугом мобилног преноса података</translation> <translation id="7025325401470358758">Следећи оквир</translation> <translation id="7027125358315426638">Назив базе података:</translation> @@ -3953,7 +3924,6 @@ <translation id="7092106376816104">Изузеци за искачуће прозоре</translation> <translation id="7093434536568905704">GTK+</translation> <translation id="7093866338626856921">Размена података са уређајима следећих назива: <ph name="HOSTNAMES" /></translation> -<translation id="7096108453481049031">Није могуће увести корисника под надзором. Проверите мрежну везу и покушајте поново касније.</translation> <translation id="7096406577040705016">Укључује/искључује лупу за цео екран</translation> <translation id="7098447629416471489">Други сачувани претраживачи ће се појавити овде</translation> <translation id="7099337801055912064">Велики PPD не може да се учита. Максимална величина је 250 kB.</translation> @@ -4001,7 +3971,6 @@ <translation id="7168109975831002660">Минимална величина фонта</translation> <translation id="7170041865419449892">Изван опсега</translation> <translation id="7171559745792467651">Инсталирајте апликације са других уређаја</translation> -<translation id="7173917244679555">Изгледа да већ управљате корисником са тим именом. Да ли желите да <ph name="BEGIN_LINK" />увезете корисника <ph name="PROFILE_NAME" /><ph name="END_LINK" /> на овај уређај?</translation> <translation id="7175037578838465313">Конфигуришите <ph name="NAME" /></translation> <translation id="7175353351958621980">Учитава се са:</translation> <translation id="7180611975245234373">Освежи</translation> @@ -4167,7 +4136,6 @@ <translation id="7444726222535375658">Настави на Hangouts Meet</translation> <translation id="7444983668544353857">Онемогући <ph name="NETWORKDEVICE" /></translation> <translation id="7445682342344043969">Искачући прозори су блокирани</translation> -<translation id="744859430125590922">Контролишите и прегледајте веб-сајтове које ова особа посећује са <ph name="CUSTODIAN_EMAIL" />.</translation> <translation id="7453008956351770337">Када изаберете овај штампач, дајете дозволу за приступ штампачу следећем додатку:</translation> <translation id="7453467225369441013">Одјавиће вас са већине сајтова. Неће вас одјавити са Google налога.</translation> <translation id="7456142309650173560">програмер</translation> @@ -4341,7 +4309,6 @@ <translation id="7717845620320228976">Тражење ажурирања</translation> <translation id="7719367874908701697">Зумирање странице</translation> <translation id="771953673318695590">QA</translation> -<translation id="7720375555307821262">Да бисте надгледали овог корисника, <ph name="BEGIN_LINK" />пријавите се у Chrome<ph name="END_LINK" />.</translation> <translation id="7721179060400456005">Дозволи да се прозори простиру на више екрана</translation> <translation id="7722040605881499779">За ажурирање је потребно: <ph name="NECESSARY_SPACE" /></translation> <translation id="7724603315864178912">Исеци</translation> @@ -5196,7 +5163,6 @@ <translation id="9024331582947483881">цео екран</translation> <translation id="9025098623496448965">Важи, врати ме на екран за пријављивање</translation> <translation id="9026731007018893674">преузимање</translation> -<translation id="9027146684281895941">Надгледајте ову особу да бисте контролисали и прегледали веб-сајтове које она посећује са вашег Google налога.</translation> <translation id="9027459031423301635">Отвори везу у новој &картици</translation> <translation id="9027603907212475920">Подеси синхронизацију...</translation> <translation id="9030515284705930323">Организација није омогућила Google Play продавницу за налог. Контактирајте администратора за више информација.</translation> @@ -5356,7 +5322,6 @@ <translation id="98515147261107953">Хоризонтално</translation> <translation id="987897973846887088">Нема доступних слика</translation> <translation id="988978206646512040">Поље за приступну фразу не може да буде празно</translation> -<translation id="990310048453480215">Уклони Linux апликације</translation> <translation id="992032470292211616">Додаци, апликације и теме могу да нашкоде уређају. Желите ли стварно да наставите?</translation> <translation id="992592832486024913">Онемогући ChromeVox (говорне повратне информације)</translation> <translation id="994289308992179865">&Понављај</translation>
diff --git a/chrome/app/resources/generated_resources_sv.xtb b/chrome/app/resources/generated_resources_sv.xtb index c6fa3307..8bad1e4 100644 --- a/chrome/app/resources/generated_resources_sv.xtb +++ b/chrome/app/resources/generated_resources_sv.xtb
@@ -42,7 +42,6 @@ <translation id="1056898198331236512">Varning</translation> <translation id="1058262162121953039">PUK-kod</translation> <translation id="1062407476771304334">Ersätt</translation> -<translation id="1062866675591297858">Hantera dina kontrollerade användare via <ph name="BEGIN_LINK" />översikten för kontrollerade användare<ph name="END_LINK" />.</translation> <translation id="1064835277883315402">Anslut till privat nätverk</translation> <translation id="1064912851688322329">Koppla bort Google-kontot</translation> <translation id="1067048845568873861">Skapad</translation> @@ -65,7 +64,6 @@ <translation id="1091767800771861448">Tryck på Esc om du vill hoppa över (endast versioner som inte är officiella).</translation> <translation id="1093457606523402488">Synliga nätverk:</translation> <translation id="1094607894174825014">Läs- eller skrivåtgärden begärdes med en ogiltig offset på: <ph name="DEVICE_NAME" />.</translation> -<translation id="1097507499312291972"><ph name="BEGIN_SIGN_IN_LINK" />Logga in<ph name="END_SIGN_IN_LINK" /> om du vill styra och visa vilka webbplatser den här personen besöker.</translation> <translation id="109758035718544977">Ta fram dolda webbplatser</translation> <translation id="1097658378307015415">Aktivera nätverket <ph name="NETWORK_ID" /> genom att logga in som gäst innan du loggar in</translation> <translation id="1103523840287552314">Översätt alltid <ph name="LANGUAGE" /></translation> @@ -244,7 +242,6 @@ <translation id="1361655923249334273">Oanvänd</translation> <translation id="1363028406613469049">Spår</translation> <translation id="1367951781824006909">Välj fil</translation> -<translation id="136802136832547685">Det finns inga kontrollerade användare att lägga till på enheten.</translation> <translation id="1368265273904755308">Rapportera problem</translation> <translation id="1370646789215800222">Vill du ta bort personen?</translation> <translation id="1372681413396468867">{NUM_ITEMS,plural, =1{1 objekt som ska tas bort}other{# objekt som ska tas bort}}</translation> @@ -471,7 +468,6 @@ <translation id="1692799361700686467">Cookies från flera webbplatser tillåts.</translation> <translation id="169515659049020177">Skift</translation> <translation id="1698122934742150150">Endast nuvarande inkognitosession</translation> -<translation id="1700199471143028312">Administratören tillåter inte att du skapar kontrollerade användare.</translation> <translation id="1701062906490865540">Ta bort personen</translation> <translation id="1706586824377653884">Lades till av administratören</translation> <translation id="1706625117072057435">Zoomnivåer</translation> @@ -1040,7 +1036,6 @@ <translation id="2604255671529671813">Fel vid nätverksanslutning</translation> <translation id="2606246518223360146">Länka Data</translation> <translation id="2607101320794533334">Information om mottagarens publika nyckel</translation> -<translation id="2607459012323956820">Den som hanterar användaren kan fortfarande se vilka webbplatser som har besökts och användarens inställningar på <ph name="BEGIN_LINK" /><ph name="DISPLAY_LINK" /><ph name="END_LINK" />.</translation> <translation id="2608770217409477136">Använd standardinställningar</translation> <translation id="2609896558069604090">Skapa genvägar ...</translation> <translation id="2610157865375787051">Viloläge</translation> @@ -1283,7 +1278,6 @@ <translation id="2951247061394563839">Centrera fönster</translation> <translation id="2956763290572484660"><ph name="COOKIES" /> cookies</translation> <translation id="2958721676848865875">Varning vid paketering av tillägg</translation> -<translation id="2961043351165706615">Linux-appar som du har installerat raderas från denna Chromebook.</translation> <translation id="2961090598421146107"><ph name="CERTIFICATE_NAME" /> (tillägg har angetts)</translation> <translation id="2961695502793809356">Klicka för att fortsätta, håll ned för att se historik</translation> <translation id="2963151496262057773">Följande pluginprogram svarar inte: <ph name="PLUGIN_NAME" />. Vill du stoppa det?</translation> @@ -1335,15 +1329,6 @@ <translation id="3022978424994383087">Jag hörde inte.</translation> <translation id="3024374909719388945">Använd 24-timmars klocka</translation> <translation id="302781076327338683">Läs in igen och förbigå cacheminnet</translation> -<translation id="3030243755303701754">En kontrollerad användare kan utforska webben under ditt överinseende. Som ansvarig för en kontrollerad användare i Chrome kan du - - • tillåta eller förbjuda webbplatser - • se vilka webbplatser den kontrollerade användaren har besökt - • hantera andra inställningar. - -Att skapa en kontrollerad användare innebär inte att ett Google-konto skapas. Den kontrollerade användarens bokmärken, webbhistorik och övriga inställningar följer inte med till andra enheter vid synkronisering i Chrome. När du har skapat en ny kontrollerad användare kan du hantera inställningarna för den när som helst och med vilken enhet som helst på <ph name="BEGIN_MANAGE_LINK" /><ph name="DISPLAY_LINK" /><ph name="END_MANAGE_LINK" />. - -Besök vårt <ph name="BEGIN_LINK" />hjälpcenter<ph name="END_LINK" /> om du vill ha mer information.</translation> <translation id="3031417829280473749">Agent X</translation> <translation id="3031557471081358569">Välj objekt att importera:</translation> <translation id="3031601332414921114">Återuppta utskriften</translation> @@ -1384,7 +1369,6 @@ <translation id="3085412380278336437">Webbplatsen har åtkomst till kameran</translation> <translation id="3085752524577180175">SOCKS-värd</translation> <translation id="3088325635286126843">&Byt namn ...</translation> -<translation id="3089231390674410424">Det verkar vara problem med användaruppgifterna. Kontrollera att inloggningen är rätt och försök igen.</translation> <translation id="3090193911106258841">Får åtkomst till ljud- och videoindata</translation> <translation id="3090819949319990166">Det går inte att kopiera den externa CRX-filen till <ph name="TEMP_CRX_FILE" />.</translation> <translation id="3090871774332213558"><ph name="DEVICE_NAME" /> har kopplats</translation> @@ -1399,7 +1383,6 @@ <translation id="3121793941267913344">Återställ den här <ph name="IDS_SHORT_PRODUCT_NAME" />-enheten</translation> <translation id="3122464029669770682">CPU</translation> <translation id="3122496702278727796">Kunde inte skapa datakatalog</translation> -<translation id="3123569374670379335">(Kontrollerad)</translation> <translation id="3124111068741548686">USER-handtag</translation> <translation id="3126026824346185272">Ctrl</translation> <translation id="3127156390846601284">Det här raderar all data som lagrats på enheten av alla webbplatser som visas. Vill du fortsätta?</translation> @@ -1434,8 +1417,6 @@ <translation id="3160842278951476457"><ph name="ISSUED_BY" /> [<ph name="ISSUED_TO" />] (med maskinvarustöd)</translation> <translation id="316125635462764134">Ta bort app</translation> <translation id="3161522574479303604">Alla språk</translation> -<translation id="316307797510303346">Styr och visa vilka webbplatser den här personen besöker från <ph name="CUSTODIAN_EMAIL" />. - Dina inloggningsuppgifter för kontot är inaktuella.</translation> <translation id="3165390001037658081">Vissa operatörer kanske blockerar den här funktionen.</translation> <translation id="316854673539778496">Logga in och aktivera synkronisering om du vill ha samma tillägg tillgängliga oavsett vilken enhet du använder.</translation> <translation id="3170072451822350649">Du kan även hoppa över inloggningen och <ph name="LINK_START" />surfa som gäst<ph name="LINK_END" />.</translation> @@ -1468,7 +1449,6 @@ <translation id="3229922550070982305">spela upp/pausa</translation> <translation id="3232318083971127729">Värde:</translation> <translation id="3236289833370040187"><ph name="DESTINATION_DOMAIN" /> blir den nya ägaren efter överföringen.</translation> -<translation id="3237784613213365159"><ph name="NEW_PROFILE_NAME" /> är nu en kontrollerad användare</translation> <translation id="323803881985677942">Öppna tilläggsalternativ</translation> <translation id="3241680850019875542">Välj rotkatalogen för tillägget som ska paketeras. Om du vill uppdatera ett tillägg väljer du också den privata nyckel som ska återanvändas.</translation> <translation id="3242765319725186192">I förväg delad nyckel:</translation> @@ -1700,7 +1680,6 @@ <translation id="3584169441612580296">Läsa och ändra foton, musik och andra media från datorn</translation> <translation id="3587482841069643663">Alla</translation> <translation id="358796204584394954">Genomför kopplingen genom att skriva den här koden på <ph name="DEVICE_NAME" />:</translation> -<translation id="3589532742556016615">Appar eller innehåll på andra enheter påverkas inte.</translation> <translation id="3589766037099229847">Osäkert innehåll har blockerats</translation> <translation id="3590194807845837023">Lås upp profil och starta om</translation> <translation id="3592260987370335752">&Läs mer</translation> @@ -1834,7 +1813,6 @@ <translation id="3778152852029592020">Nedladdnningen avbröts.</translation> <translation id="3778740492972734840">&Verktyg för programmerare</translation> <translation id="3778868487658107119">Ställ frågor. Be den att göra saker. Det är Google anpassat just för dig, alltid redo att hjälpa dig.</translation> -<translation id="3780663724044634171">Välj ett konto som ska hantera den kontrollerade användaren.</translation> <translation id="378312418865624974">Läsa en unik identifierare för den här datorn</translation> <translation id="3783640748446814672">alt</translation> <translation id="3785308913036335955">Visa genväg för appar</translation> @@ -2562,7 +2540,6 @@ <translation id="4964455510556214366">Ordning</translation> <translation id="4964673849688379040">Kontrollerar …</translation> <translation id="4965808351167763748">Vill du konfigurera den här enheten för Hangouts Meet?</translation> -<translation id="4967749818080339523">Välj ett konto</translation> <translation id="496888482094675990">Med appen Filer kommer du snabbt åt filer som du har sparat på Google Drive, externa lagringsenheter eller din Chrome OS-enhet.</translation> <translation id="4969785127455456148">Album</translation> <translation id="4971412780836297815">Öppna när nedladdningen är klar</translation> @@ -2749,7 +2726,6 @@ Oavsett vad som händer med din enhet förvaras filerna säkert i Google Drive.<ph name="MARKUP_6" /> <ph name="MARKUP_7" />Dela, skapa och jobba<ph name="MARKUP_8" /> med filer tillsammans med andra på ett och samma ställe.<ph name="MARKUP_9" /></translation> -<translation id="5262401745672360397">Även filer som delats med Linux-appar kan raderas.</translation> <translation id="5264148714798105376">Det här kan ta en liten stund.</translation> <translation id="5264252276333215551">Anslut till internet för att starta appen i kioskläge.</translation> <translation id="5265562206369321422">Offline i mer än en vecka</translation> @@ -3401,7 +3377,6 @@ <translation id="6241530762627360640">Få åtkomst till information om Bluetooth-enheter som är kopplade till ditt system och upptäck Bluetooth-enheter i närheten.</translation> <translation id="6243280677745499710">Nuvarande</translation> <translation id="6243774244933267674">Servern är inte tillgänglig</translation> -<translation id="6246413617632217567">Det gick inte att importera den hanterade användaren. Kontrollera hårddiskutrymmet och dina behörigheter och försök igen.</translation> <translation id="6247708409970142803"><ph name="PERCENTAGE" /> %</translation> <translation id="6247802389331535091">System: <ph name="ARC_PROCESS_NAME" /></translation> <translation id="624789221780392884">Uppdateringen är klar</translation> @@ -3600,7 +3575,6 @@ <translation id="654039047105555694"><ph name="BEGIN_BOLD" />Obs!<ph name="END_BOLD" /> Aktivera endast om du vet vad du gör eller om du har blivit ombedd att göra det eftersom insamling av data kan försämra resultatet.</translation> <translation id="654233263479157500">Åtgärda navigeringsfel med hjälp av en webbtjänst</translation> <translation id="6544215763872433504">En webbläsare till dig från Google</translation> -<translation id="6545325945815270297">Hantera synkroniserade data och enheter i <ph name="BEGIN_LINK" />Google Översikt<ph name="END_LINK" />.</translation> <translation id="6545665334409411530">Upprepningsintervall</translation> <translation id="6545834809683560467">Använd en förslagstjänst om du vill ha hjälp att slutföra sökningar och fylla i webbadresser i adressfältet eller i sökrutan i startprogrammet för appar</translation> <translation id="6546686722964485737">Anslut till WiMAX-nätverk</translation> @@ -3615,7 +3589,6 @@ <translation id="6555810572223193255">Rensning är inte tillgängligt för tillfället</translation> <translation id="6556866813142980365">Upprepa</translation> <translation id="6558280019477628686">Ett fel uppstod. Vissa objekt kanske inte har raderats.</translation> -<translation id="6559580823502247193">(finns redan på enheten)</translation> <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="656398493051028875"><ph name="FILENAME" /> tas bort ...</translation> @@ -3812,7 +3785,6 @@ <translation id="6862635236584086457">Alla filer som sparas i den här mappen säkerhetskopieras online automatiskt</translation> <translation id="6865313869410766144">Formuläruppgifter för Autofyll</translation> <translation id="686664946474413495">Färgtemperatur</translation> -<translation id="6867678160199975333">Växla till <ph name="NEW_PROFILE_NAME" /></translation> <translation id="6870888490422746447">Välj en app som du vill dela till:</translation> <translation id="6871644448911473373">OCSP-svarare: <ph name="LOCATION" /></translation> <translation id="6872781471649843364">Det angivna lösenordet avvisades av servern.</translation> @@ -3906,7 +3878,6 @@ <translation id="7018275672629230621">Läsa och ändra din webbhistorik</translation> <translation id="7019805045859631636">Snabb</translation> <translation id="7022562585984256452">Startsidan har ställts in.</translation> -<translation id="7025036625303002400">Det verkar som om du redan har lagt till en kontrollerad användare med det här namnet.</translation> <translation id="7025190659207909717">Hantering av mobil datatjänst</translation> <translation id="7025325401470358758">Nästa ruta</translation> <translation id="7027125358315426638">Databasnamn:</translation> @@ -3955,7 +3926,6 @@ <translation id="7092106376816104">Undantag för popup-fönster</translation> <translation id="7093434536568905704">GTK+</translation> <translation id="7093866338626856921">Utväxla data med enheterna <ph name="HOSTNAMES" /></translation> -<translation id="7096108453481049031">Det gick inte att importera den hanterade användaren. Kontrollera nätverksanslutningen och försök igen senare.</translation> <translation id="7096406577040705016">Aktivera och inaktivera helskärmsförstoring</translation> <translation id="7098447629416471489">Andra sparade sökmotorer visas här</translation> <translation id="7099337801055912064">PPD-filen var för stor att läsa in. Storleksgränsen är 250 kB.</translation> @@ -4003,7 +3973,6 @@ <translation id="7168109975831002660">Minsta teckenstorlek</translation> <translation id="7170041865419449892">Utanför intervallet</translation> <translation id="7171559745792467651">Installera appar från dina andra enheter</translation> -<translation id="7173917244679555">Det verkar som om du redan hanterar en användare med det namnet. Vill du <ph name="BEGIN_LINK" />importera <ph name="PROFILE_NAME" /><ph name="END_LINK" /> till den här enheten?</translation> <translation id="7175037578838465313">Konfigurera <ph name="NAME" /></translation> <translation id="7175353351958621980">Överförd från:</translation> <translation id="7180611975245234373">Uppdatera</translation> @@ -4174,7 +4143,6 @@ <translation id="7444726222535375658">Fortsätt till Hangouts Meet</translation> <translation id="7444983668544353857">Inaktivera <ph name="NETWORKDEVICE" /></translation> <translation id="7445682342344043969">Popupfönster har blockerats</translation> -<translation id="744859430125590922">Styr och visa vilka webbplatser den här personen besöker från <ph name="CUSTODIAN_EMAIL" />.</translation> <translation id="7453008956351770337">Genom att välja den här skrivaren ger du följande tillägg behörighet att komma åt skrivaren:</translation> <translation id="7453467225369441013">Du loggas ut från de flesta webbplatser. Du loggas inte ut från Google-kontot.</translation> <translation id="7456142309650173560">utvecklare</translation> @@ -4348,7 +4316,6 @@ <translation id="7717845620320228976">Sök efter uppdateringar</translation> <translation id="7719367874908701697">Sidzoom</translation> <translation id="771953673318695590">Kvalitetssäkring</translation> -<translation id="7720375555307821262">Om du vill bevaka personen <ph name="BEGIN_LINK" />loggar du in i Chrome<ph name="END_LINK" />.</translation> <translation id="7721179060400456005">Tillåt att fönster visas över flera skärmar.</translation> <translation id="7722040605881499779">Uppdateringen kräver: <ph name="NECESSARY_SPACE" /></translation> <translation id="7724603315864178912">Klipp ut</translation> @@ -5203,7 +5170,6 @@ <translation id="9024331582947483881">helskärm</translation> <translation id="9025098623496448965">OK, ta mig till inloggningssidan igen</translation> <translation id="9026731007018893674">ladda ned</translation> -<translation id="9027146684281895941">Kontrollera den här personen för att styra och visa webbplatserna de besöker via ditt Google-konto.</translation> <translation id="9027459031423301635">Öppna länk i ny &flik</translation> <translation id="9027603907212475920">Konfigurera synkronisering...</translation> <translation id="9030515284705930323">Organisationen har inte aktiverat Google Play Butik för ditt konto. Kontakta administratören om du vill veta mer.</translation> @@ -5363,7 +5329,6 @@ <translation id="98515147261107953">Liggande</translation> <translation id="987897973846887088">Det finns inga bilder</translation> <translation id="988978206646512040">Lösenfrasen får inte vara tom</translation> -<translation id="990310048453480215">Ta bort Linux-appar</translation> <translation id="992032470292211616">Tillägg, appar och teman kan skada enheten. Vill du fortsätta?</translation> <translation id="992592832486024913">Inaktivera ChromeVox (talad feedback)</translation> <translation id="994289308992179865">&Repetera</translation>
diff --git a/chrome/app/resources/generated_resources_sw.xtb b/chrome/app/resources/generated_resources_sw.xtb index 4a33dc4..7001301 100644 --- a/chrome/app/resources/generated_resources_sw.xtb +++ b/chrome/app/resources/generated_resources_sw.xtb
@@ -42,7 +42,6 @@ <translation id="1056898198331236512">Ilani</translation> <translation id="1058262162121953039">PUK</translation> <translation id="1062407476771304334">Badilisha</translation> -<translation id="1062866675591297858">Dhibiti watumiaji wako wanaosimamiwa kupitia <ph name="BEGIN_LINK" />Dashibodi ya Watumiaji Wanaosimamiwa<ph name="END_LINK" /> .</translation> <translation id="1064835277883315402">Jiunge na mtandao binafsi</translation> <translation id="1064912851688322329">Tenganisha Akaunti yako ya Google</translation> <translation id="1067048845568873861">Kiliundwa</translation> @@ -65,7 +64,6 @@ <translation id="1091767800771861448">Bonyeza ESCAPE ili kuruka (Vijenzi visivyo rasmi pekee).</translation> <translation id="1093457606523402488">Mitandao Inayoonekana:</translation> <translation id="1094607894174825014">Shughuli za kusoma au kuandika ziliombwa kwa kutumia nambari isiyo sahihi kwenye : "<ph name="DEVICE_NAME" />".</translation> -<translation id="1097507499312291972"><ph name="BEGIN_SIGN_IN_LINK" />Ingia katika akaunti<ph name="END_SIGN_IN_LINK" /> ili udhibiti na uangalie tovuti ambazo mtu huyu hutembelea.</translation> <translation id="109758035718544977">Washa Sauti za Tovuti</translation> <translation id="1097658378307015415">Kabla ya kuingia, tafadhali ingia kama Mgeni ili kuamilisha mtandao <ph name="NETWORK_ID" /></translation> <translation id="1103523840287552314">Tafsiri <ph name="LANGUAGE" /> kila wakati</translation> @@ -244,7 +242,6 @@ <translation id="1361655923249334273">Haijatumiwa</translation> <translation id="1363028406613469049">Wimbo</translation> <translation id="1367951781824006909">Chagua faili</translation> -<translation id="136802136832547685">Hakuna watumiaji wanaosimamiwa wa kuongeza kwenye kifaa hiki.</translation> <translation id="1368265273904755308">Ripoti tatizo</translation> <translation id="1370646789215800222">Ungependa kumwondoa?</translation> <translation id="1372681413396468867">{NUM_ITEMS,plural, =1{Kipengee 1 kitaondolewa}other{Vipengee # vitaondolewa}}</translation> @@ -470,7 +467,6 @@ <translation id="1692799361700686467">Vidakuzi kutoka tovuti anuwai vinaruhusiwa.</translation> <translation id="169515659049020177">Hama</translation> <translation id="1698122934742150150">Kipindi cha sasa cha hali fiche pekee</translation> -<translation id="1700199471143028312">Msimamizi wako haruhusu kuunda wasifu wa watumiaji wanaosimamiwa.</translation> <translation id="1701062906490865540">Ondoa mtumiaji huyu</translation> <translation id="1706586824377653884">Imeongezwa na msimamizi wako</translation> <translation id="1706625117072057435">Viwango vya kukuza</translation> @@ -1038,7 +1034,6 @@ <translation id="2604255671529671813">Hitilafu ya muunganisho wa mtandao</translation> <translation id="2606246518223360146">Unganisha Data</translation> <translation id="2607101320794533334">Maelezo ya Ufunguo wa Umma wa Mhusika</translation> -<translation id="2607459012323956820">Historia ya mipangilio na kuvinjari kwa mtumiaji huyu anayesimamiwa bado inaweza kuonekana na msimamizi kwenye <ph name="BEGIN_LINK" /><ph name="DISPLAY_LINK" /><ph name="END_LINK" />.</translation> <translation id="2608770217409477136">Tumia mipangilio chaguo-msingi</translation> <translation id="2609896558069604090">Unda Njia mikato...</translation> <translation id="2610157865375787051">Hali tuli</translation> @@ -1107,7 +1102,7 @@ <translation id="2686759344028411998">Haiwezi kugundua vipengee vyovyote vilivyopakiwa.</translation> <translation id="2688196195245426394">Hitilafu wakati wa kusajili kifaa kwa seva: <ph name="CLIENT_ERROR" />.</translation> <translation id="2690024944919328218">Onyesha chaguo za lugha</translation> -<translation id="2690824726518456119">Inaanzisha huduma ya Bawabu.</translation> +<translation id="2690824726518456119">Inaanzisha huduma ya Jaribio.</translation> <translation id="2691385045260836588">Muundo</translation> <translation id="2693176596243495071">Samahani! Hitilafu isiyojulikana imetokea. Tafadhali jaribu tena baadaye au uwasiliane na msimamizi wako ikiwa tatizo hili litaendelea.</translation> <translation id="2694026874607847549">Kidakuzi 1</translation> @@ -1281,7 +1276,6 @@ <translation id="2951247061394563839">Dirisha la katikati</translation> <translation id="2956763290572484660"><ph name="COOKIES" /> vidakuzi</translation> <translation id="2958721676848865875">Onyo la kiendelezi cha kifurushi</translation> -<translation id="2961043351165706615">Programu za Linux ambazo umesakinisha zitaondolewa kwenye Chromebook hii.</translation> <translation id="2961090598421146107"><ph name="CERTIFICATE_NAME" /> (kiendelezi kipo)</translation> <translation id="2961695502793809356">Bofya kuenda mbele, shikilia kuona historia</translation> <translation id="2963151496262057773">Programu-jalizi inayofuata imekwama: <ph name="PLUGIN_NAME" />Ungependa kuisimamisha?</translation> @@ -1333,15 +1327,6 @@ <translation id="3022978424994383087">Imeshindwa kutafsiri.</translation> <translation id="3024374909719388945">Tumia mfumo wa saa 24</translation> <translation id="302781076327338683">Pakia upya hatua ya kupuuza akiba</translation> -<translation id="3030243755303701754">Mtumiaji anayesimamiwa anaweza kuvinjari wavuti ukimwongoza. Ukiwa msimamizi wa mtumiaji anayesimamiwa katika Chrome, unaweza: - - • kuruhusu au kuzuia tovuti fulani, - • kukagua tovuti ambazo mtumiaji anayesimamiwa ametembelea, na - • kudhibiti mipangilio mingine. - -Kuunda mtumiaji anayesimamiwa hakufungui Akaunti ya Google, alamisho, historia ya kuvinjari na mapendeleo yake mengine hayatapatikana kwenye vifaa vingine vilivyo na Usawazishaji wa Chrome. Baada ya kuunda mtumiaji mpya anayesimamiwa, unaweza kudhibiti mipangilio yake wakati wowote, kutoka kifaa chochote, katika <ph name="BEGIN_MANAGE_LINK" /><ph name="DISPLAY_LINK" /><ph name="END_MANAGE_LINK" />. - -Tembelea <ph name="BEGIN_LINK" />Kituo chetu cha Usaidizi<ph name="END_LINK" /> upate maelezo zaidi.</translation> <translation id="3031417829280473749">Wakala X</translation> <translation id="3031557471081358569">Chagua vitu vya kuingiza:</translation> <translation id="3031601332414921114">Endelea kuchapisha</translation> @@ -1382,7 +1367,6 @@ <translation id="3085412380278336437">Tovuti inaweza kutumia kamera yako</translation> <translation id="3085752524577180175">Seva Mbadala ya Seva Pangishi ya SOCKS</translation> <translation id="3088325635286126843">&Badilisha jina...</translation> -<translation id="3089231390674410424">Inaonekana kitambulisho chako kina hitilafu. Tafadhali hakikisha kuwa umeingia katika akaunti kwa njia sahihi kisha ujaribu tena.</translation> <translation id="3090193911106258841">Inafikia vifaa vya kuingiza sauti na video</translation> <translation id="3090819949319990166">Haiwezi kunakili faili ya CRX kwenye <ph name="TEMP_CRX_FILE" />.</translation> <translation id="3090871774332213558">"<ph name="DEVICE_NAME" />" imeoanishwa</translation> @@ -1397,7 +1381,6 @@ <translation id="3121793941267913344">Weka kifaa hiki cha <ph name="IDS_SHORT_PRODUCT_NAME" /> upya</translation> <translation id="3122464029669770682">CPU</translation> <translation id="3122496702278727796">Imeshindwa Kuunda Saraka ya Data</translation> -<translation id="3123569374670379335">(Unaosimamiwa)</translation> <translation id="3124111068741548686">Mishikilio ya MTUMIAJI</translation> <translation id="3126026824346185272">Ctrl</translation> <translation id="3127156390846601284">Hatua hii itafuta data yoyote iliyohifadhiwa kwenye kifaa chako kwa tovuti zote zilizoonyeshwa. Je, ungependa kuendelea?</translation> @@ -1432,8 +1415,6 @@ <translation id="3160842278951476457"><ph name="ISSUED_BY" /> [<ph name="ISSUED_TO" />] (inatumia maunzi)</translation> <translation id="316125635462764134">Ondoa programu</translation> <translation id="3161522574479303604">Lugha zote</translation> -<translation id="316307797510303346">Dhibiti na uangalie tovuti ambazo mtu huyu hutembelea kutoka kwenye <ph name="CUSTODIAN_EMAIL" />. - Maelezo yako ya kuingia katika akaunti yamekwisha muda.</translation> <translation id="3165390001037658081">Huenda watoa huduma wengine wakazuia kipengele hiki.</translation> <translation id="316854673539778496">Ingia katika akaunti na uwashe kipengele cha usawazishaji ili upate viendelezi vyako vyote kwenye vifaa vyako vyote.</translation> <translation id="3170072451822350649">Pia unaweza kuruka kuingia na <ph name="LINK_START" />uvinjari kama Mgeni<ph name="LINK_END" />.</translation> @@ -1466,7 +1447,6 @@ <translation id="3229922550070982305">cheza / sitisha</translation> <translation id="3232318083971127729">Thamani:</translation> <translation id="3236289833370040187">Umiliki utahamishiwa kwenye <ph name="DESTINATION_DOMAIN" />.</translation> -<translation id="3237784613213365159"><ph name="NEW_PROFILE_NAME" /> sasa ni mtumiaji anayesimamiwa</translation> <translation id="323803881985677942">Fungua chaguo za viendelezi</translation> <translation id="3241680850019875542">Chagua saraka msingi ya kiendelezi ya kuweka kwenye furushi. Kusasisha kiendelezi, chagua pia ufunguo wa kibinafsi wa kutumia tena.</translation> <translation id="3242765319725186192">Kitufe kilichoshirikiwa awali:</translation> @@ -1695,7 +1675,6 @@ <translation id="3584169441612580296">Kusoma na kubadilisha picha, muziki na maudhui mengine kwenye kompyuta yako</translation> <translation id="3587482841069643663">Zote</translation> <translation id="358796204584394954">Charaza msimbo huu kwenye "<ph name="DEVICE_NAME" />" ili kuoanisha:</translation> -<translation id="3589532742556016615">Hatua hii haitaathiri programu au maudhui yaliyo kwenye vifaa vingine.</translation> <translation id="3589766037099229847">Maudhui yasiyo salama yamezuiwa</translation> <translation id="3590194807845837023">Fungua Wasifu na Uzindue tena</translation> <translation id="3592260987370335752">&Pata maelezo zaidi</translation> @@ -1829,7 +1808,6 @@ <translation id="3778152852029592020">Upakuaji ulighairiwa.</translation> <translation id="3778740492972734840">Zana za &Wasanidi Programu</translation> <translation id="3778868487658107119">Iulize maswali. Iambie ifanye kitu. Ni Google yako mwenyewe, tayari kukusaidia kila wakati.</translation> -<translation id="3780663724044634171">Chagua akaunti ya kudhibiti mtumiaji anayesimamiwa.</translation> <translation id="378312418865624974">Soma kitambulisho cha kipekee cha kompyuta hii</translation> <translation id="3783640748446814672">alt</translation> <translation id="3785308913036335955">Onyesha Mkato wa Programu</translation> @@ -2050,7 +2028,7 @@ <translation id="4109135793348361820">Hamisha dirisha hadi kwa <ph name="USER_NAME" /> (<ph name="USER_EMAIL" />)</translation> <translation id="4110559665646603267">kabati ya Kulenga</translation> <translation id="4110895898888439383">Vinjari wavuti katika hali ya utofautishaji wa juu</translation> -<translation id="4112774766611964959">Hatua hii itaondoa <ph name="APP_NAME" />, na iondoe programu na data yote ya Linux kwenye <ph name="DEVICE_TYPE" /> yako. Una hakika?</translation> +<translation id="4112774766611964959">Hatua hii itaondoa <ph name="APP_NAME" /> na iondoe programu na data yote ya Linux kwenye <ph name="DEVICE_TYPE" /> yako. Una hakika?</translation> <translation id="4114360727879906392">Dirisha la awali</translation> <translation id="4115002065223188701">Uko mbali na mtandao huu</translation> <translation id="4115080753528843955">Baadhi ya huduma za maudhui hutumia vitambulisho vya kipekee kwa madhumuni ya kuidhinisha ufikiaji wa maudhui yaliyolindwa</translation> @@ -2555,7 +2533,6 @@ <translation id="4964455510556214366">Mpangilio</translation> <translation id="4964673849688379040">Inakagua...</translation> <translation id="4965808351167763748">Una uhakika ungependa kuweka mipangilio kwenye kifaa hiki ili utumie Hangouts Meet?</translation> -<translation id="4967749818080339523">Chagua akaunti</translation> <translation id="496888482094675990">Programu ya Faili inatoa ufikiaji wa haraka kwenye faili ambazo umeweka kwenye Hifadhi ya Google, nafasi ya nje, au kifaa chako cha Chrome OS.</translation> <translation id="4969785127455456148">Albamu</translation> <translation id="4971412780836297815">Fungua baada ya kukamilisha</translation> @@ -2742,7 +2719,6 @@ Haijalishi kitakachotendekea kifaa chako, faili zako zinahifadhiwa kwa njia salama katika Hifadhi ya Google.<ph name="MARKUP_6" /> <ph name="MARKUP_7" />Shiriki, unda na ushirikiane<ph name="MARKUP_8" /> kwenye faili na wengine, vyote mahali pamoja.<ph name="MARKUP_9" /></translation> -<translation id="5262401745672360397">Huenda faili zinazoshirikiwa na programu za Linux zikafutwa pia.</translation> <translation id="5264148714798105376">Huenda shughuli hii ikachukua dakika kadhaa.</translation> <translation id="5264252276333215551">Tafadhali unganisha kwenye mtandao ili uzindue programu yako katika skrini nzima.</translation> <translation id="5265562206369321422">Nje ya mtandao kwa zaidi ya wiki moja</translation> @@ -3165,7 +3141,7 @@ <translation id="5863445608433396414">Washa vipengele vya kutatua</translation> <translation id="5864471791310927901">Mwonekano wa DHCP umeshindikana</translation> <translation id="586567932979200359">Unaendesha <ph name="PRODUCT_NAME" /> kutoka kwenye picha yake ya diski. Kuisakinisha kwenye kompyuta yako kunakuruhusu kuendesha bila picha ya diski, na kunahakikisha itasasishwa.</translation> -<translation id="5865733239029070421">Hutuma kiotomatiki takwimu za matumizi na ripoti za programu kuacha kufanya kazi kwenye Google</translation> +<translation id="5865733239029070421">Hutuma kiotomatiki takwimu za matumizi na ripoti za programu kuacha kufanya kazi kwa Google</translation> <translation id="5866557323934807206">Futa mipangilio hii kwa matembezi yajayo</translation> <translation id="5866840822086176774">Thabiti sana</translation> <translation id="5867841422488265304">Tafuta au andika anwani ya wavuti</translation> @@ -3394,7 +3370,6 @@ <translation id="6241530762627360640">Fikia maelezo kuhusu vifaa vya Bluetooth vilivyooanishwa na mfumo wako na ugundue vifaa vya karibu vya Bluetooth.</translation> <translation id="6243280677745499710">Mandhari yaliyopo</translation> <translation id="6243774244933267674">Seva haipatikani.</translation> -<translation id="6246413617632217567">Mtumiaji anayesimamiwa hakuweza kuletwa. Tafadhali angalia ruhusa na nafasi ya hifadhi ya diski kuu kisha ujaribu tena.</translation> <translation id="6247708409970142803"><ph name="PERCENTAGE" />%</translation> <translation id="6247802389331535091">Mfumo: <ph name="ARC_PROCESS_NAME" /></translation> <translation id="624789221780392884">Sasisho iko tayari</translation> @@ -3593,7 +3568,6 @@ <translation id="654039047105555694"><ph name="BEGIN_BOLD" />Kumbuka:<ph name="END_BOLD" /> Washa tu kama unajua unachofanya au kama umeambiwa ufanye hivyo, kwani mkusanyiko wa data unaweza kupunguza utendaji.</translation> <translation id="654233263479157500">Tumia huduma ya mtandao kusaidia kutatua hitilafu za kutalii</translation> <translation id="6544215763872433504">Kivinjari cha Google, kwa ajili yako</translation> -<translation id="6545325945815270297">Dhibiti data iliyosawazishwa na vifaa vyako kwenye <ph name="BEGIN_LINK" />Dashibodi ya Chrome<ph name="END_LINK" />.</translation> <translation id="6545665334409411530">Ukadiriaji wa kurudia</translation> <translation id="6545834809683560467">Tumia huduma ya kutabiri ili isaidie kukamilisha utafutaji na URL zilizoingizwa katika upau wa anwani au katika kisanduku cha kutafutia kizindua programu</translation> <translation id="6546686722964485737">Jiunge kwenye mtandao wa WiMAX</translation> @@ -3608,7 +3582,6 @@ <translation id="6555810572223193255">Kipengele cha usafishaji hakiwezi kutumika kwa sasa</translation> <translation id="6556866813142980365">Rudia</translation> <translation id="6558280019477628686">Hitilafu imetokea. Huenda baadhi ya vipengee havijafutwa.</translation> -<translation id="6559580823502247193">(tayari kwenye kifaa hiki)</translation> <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="656398493051028875">Inafuta "<ph name="FILENAME" />"...</translation> @@ -3630,7 +3603,7 @@ <translation id="6596745167571172521">Zima Herufi Kubwa</translation> <translation id="6596816719288285829">Anwani ya IP</translation> <translation id="6597017209724497268">Sampuli</translation> -<translation id="6597332018579308636">Toa idhini ya ufikiaji</translation> +<translation id="6597332018579308636">Ruhusu ufikiaji</translation> <translation id="659934686219830168">Itaanza kusawazisha utakapofunga ukurasa huu</translation> <translation id="6602353599068390226">hamishia dirisha kwenye skrini nyingine</translation> <translation id="6602956230557165253">Tumia vitufe vya mshale wa kushoto na kulia kutalii.</translation> @@ -3805,7 +3778,6 @@ <translation id="6862635236584086457">Faili zote zilizohifadhiwa kwenye folda hii zinachelezwa kiotomatiki mtandaoni</translation> <translation id="6865313869410766144">Data ya fomu ya Kujaza Kiotomatiki</translation> <translation id="686664946474413495">Halijoto ya rangi</translation> -<translation id="6867678160199975333">Badili hadi <ph name="NEW_PROFILE_NAME" /></translation> <translation id="6870888490422746447">Chagua programu ili kushiriki kwenye:</translation> <translation id="6871644448911473373">Kijibu OCSP: <ph name="LOCATION" /></translation> <translation id="6872781471649843364">Nenosiri uliloweka limekataliwa na seva.</translation> @@ -3899,7 +3871,6 @@ <translation id="7018275672629230621">Kusoma na kubadilisha historia yako ya kuvinjari</translation> <translation id="7019805045859631636">Haraka</translation> <translation id="7022562585984256452">Ukurasa wako wa mwanzo umewekwa.</translation> -<translation id="7025036625303002400">Inaonekana tayari una mtumiaji anayesimamiwa aliye na jina hili.</translation> <translation id="7025190659207909717">Udhibiti wa huduma ya data ya simu ya mkononi</translation> <translation id="7025325401470358758">Kidirisha kinachofuata</translation> <translation id="7027125358315426638">Jina la hifadhidata:</translation> @@ -3948,7 +3919,6 @@ <translation id="7092106376816104">Vighairi madirisha ibukizi</translation> <translation id="7093434536568905704">GTK+</translation> <translation id="7093866338626856921">Badilisha data kwa vifaa viitwavyo: <ph name="HOSTNAMES" /></translation> -<translation id="7096108453481049031">Mtumiaji anayesimamiwa hakuweza kuletwa. Tafadhali angalia muunganisho wako wa mtandao kisha ujaribu tena baadaye.</translation> <translation id="7096406577040705016">Kuwasha au Kuzima Kikuzaji cha Skrini Nzima</translation> <translation id="7098447629416471489">Mitambo mingine ya kutafuta iliyohifadhiwa itaonekana hapa</translation> <translation id="7099337801055912064">Imeshindwa kupakia PPD kubwa. Kima cha juu kinachoruhusiwa ni KB 250.</translation> @@ -3996,7 +3966,6 @@ <translation id="7168109975831002660">Ukubwa wa chini wa fonti</translation> <translation id="7170041865419449892">Nje ya eneo</translation> <translation id="7171559745792467651">Sakinisha programu kutoka vifaa vyako vingine</translation> -<translation id="7173917244679555">Inaonekana tayari unasimamia mtumiaji aliye na jina hilo. Je, ulitaka <ph name="BEGIN_LINK" />kuleta <ph name="PROFILE_NAME" /><ph name="END_LINK" /> kwenye kifaa hiki?</translation> <translation id="7175037578838465313">Weka mipangilio ya <ph name="NAME" /></translation> <translation id="7175353351958621980">Imepakiwa kutoka:</translation> <translation id="7180611975245234373">Onyesha upya</translation> @@ -4168,7 +4137,6 @@ <translation id="7444726222535375658">Nenda kwenye Hangouts Meet</translation> <translation id="7444983668544353857">Zima <ph name="NETWORKDEVICE" /></translation> <translation id="7445682342344043969">Madirisha ibukizi yamezuiwa</translation> -<translation id="744859430125590922">Dhibiti na uangalie tovuti ambazo mtu huyu huzitembelea kupitia <ph name="CUSTODIAN_EMAIL" />.</translation> <translation id="7453008956351770337">Kwa kuchagua printa hii, unakipa kiendelezi kifuatacho ruhusa ya kufikia printa yako:</translation> <translation id="7453467225369441013">Hukuondoa kwenye akaunti za tovuti nyingi. Hutaondolewa kwenye Akaunti ya Google.</translation> <translation id="7456142309650173560">dev</translation> @@ -4341,7 +4309,6 @@ <translation id="7717845620320228976">Angalia masasisho</translation> <translation id="7719367874908701697">Kuza ukurasa</translation> <translation id="771953673318695590">Maswali na Majibu</translation> -<translation id="7720375555307821262">Ili kumsimamia mtu huyu, <ph name="BEGIN_LINK" />ingia katika Chrome<ph name="END_LINK" />.</translation> <translation id="7721179060400456005">Ruhusu madirisha kuonyeshwa katika skrini tofauti kana kwamba ni moja</translation> <translation id="7722040605881499779">Nafasi inayohitajika ili kusasisha: <ph name="NECESSARY_SPACE" /></translation> <translation id="7724603315864178912">Kata</translation> @@ -4418,7 +4385,7 @@ <ph name="BR" /> Unaweza kuwasha vipengele vya utatuzi kwenye Kifaa Kinachotumia Mfumo wa Uendeshaji wa Chrome ili usakinishe na ujaribu misimbo maalum kwenye kifaa chako. Hatua hii itakuruhusu:<ph name="BR" /> <ph name="BEGIN_LIST" /> - <ph name="LIST_ITEM" />Uondoe udhibitishaji wa msingi ili uweze kurekebisha faili za Mfumo wa Uendeshaji + <ph name="LIST_ITEM" />Uondoe uthibitishaji wa msingi ili uweze kurekebisha faili za Mfumo wa Uendeshaji <ph name="LIST_ITEM" />Uwashe ufikiaji wa SSH kwenye kifaa ukitumia funguo za kawaida za jaribio ili uweze kutumia zana kama vile <ph name="BEGIN_CODE" />'cros flash'<ph name="END_CODE" /> kufikia kifaa <ph name="LIST_ITEM" />Uruhusu kuwasha kupitia USB ili uweze kusakinisha picha ya Mfumo wa Uendeshaji kutoka hifadhi ya USB <ph name="LIST_ITEM" />Uweke mipangilio ya nenosiri la kuingia katika akaunti ya msingi ya mfumo na ya usanidi, iwe thamani maalum ili uweze kuweka mwenyewe SSH kwenye kifaa @@ -5037,7 +5004,7 @@ <translation id="8757803915342932642">Kifaa kwenye Vifaa vya Wingu vya Google</translation> <translation id="8759408218731716181">Haiwezi kusanida uwezo wa kuingia katika akaunti nyingi kwa wakati mmoja</translation> <translation id="8759753423332885148">Pata maelezo zaidi.</translation> -<translation id="8762207669047572135">Toa Idhini ya Ufikiaji</translation> +<translation id="8762207669047572135">Ruhusu Ufikiaji</translation> <translation id="8767621466733104912">Sasisha Chrome kwa watumiaji wote kiotomatiki</translation> <translation id="8770406935328356739">Saraka msingi ya kiendelezi</translation> <translation id="8770507190024617908">Simamia Watu</translation> @@ -5199,7 +5166,6 @@ <translation id="9024331582947483881">skrini nzima</translation> <translation id="9025098623496448965">Sawa, Nirudishe nyuma hadi kwenye skrini ya kuingia katika akaunti</translation> <translation id="9026731007018893674">pakua</translation> -<translation id="9027146684281895941">Msimamie mtu huyu ili udhibiti na uangalie tovuti anazotembelea kwenye Akaunti yako ya Google.</translation> <translation id="9027459031423301635">Fungua Kiungo katika Kichupo &Kipya</translation> <translation id="9027603907212475920">Sanidi usawazishaji...</translation> <translation id="9030515284705930323">Shirika lako halijaruhusu Duka la Google Play kwa akaunti yako. Wasiliana na msimamizi wako kwa maelezo zaidi.</translation> @@ -5215,7 +5181,7 @@ <translation id="9042893549633094279">Faragha na usalama</translation> <translation id="904451693890288097">Tafadhali weka nenosiri la "<ph name="DEVICE_NAME" />":</translation> <translation id="9044646465488564462">Imeshindwa kuunganisha kwenye mtandao: <ph name="DETAILS" /></translation> -<translation id="9045430190527754450">Hutuma anwani ya wavuti ya ukurasa unaojaribu kufikia kwenye Google</translation> +<translation id="9045430190527754450">Hutuma kwa Google anwani ya wavuti ya ukurasa unaojaribu kufikia</translation> <translation id="9046895021617826162">Muunganisho umeshindikana</translation> <translation id="9050666287014529139">Kaulisiri</translation> <translation id="9052208328806230490">Umesajili printa zako kwenye <ph name="CLOUD_PRINT_NAME" /> ukitumia akaunti ya <ph name="EMAIL" /></translation> @@ -5359,7 +5325,6 @@ <translation id="98515147261107953">Mlalo</translation> <translation id="987897973846887088">Hakuna picha zinazopatikana</translation> <translation id="988978206646512040">Kauli ya siri tupu hairuhusiwi</translation> -<translation id="990310048453480215">Ondoa Programu za Linux</translation> <translation id="992032470292211616">Viendelezi, programu, na mandhari vinaweza kudhuru kifaa chako. Je, una uhakika unataka kuendelea?</translation> <translation id="992592832486024913">Zima ChromeVox (maoni ya yaliyotamkwa)</translation> <translation id="994289308992179865">&Rudia-Rudia</translation>
diff --git a/chrome/app/resources/generated_resources_ta.xtb b/chrome/app/resources/generated_resources_ta.xtb index 24f7721..4401a9a 100644 --- a/chrome/app/resources/generated_resources_ta.xtb +++ b/chrome/app/resources/generated_resources_ta.xtb
@@ -42,10 +42,11 @@ <translation id="1056898198331236512">எச்சரிக்கை</translation> <translation id="1058262162121953039">PUK</translation> <translation id="1062407476771304334">மாற்றியமை</translation> -<translation id="1062866675591297858"><ph name="BEGIN_LINK" />கண்காணிக்கப்படும் பயனர்களின் டாஷ்போர்டு<ph name="END_LINK" /> வழியாக உங்கள் கண்காணிக்கப்படும் பயனர்களை நிர்வகிக்கவும்.</translation> <translation id="1064835277883315402">தனிப்பட்ட பிணையத்துடன் சேர்</translation> <translation id="1064912851688322329">உங்கள் Google கணக்கைத் துண்டிக்கவும்</translation> <translation id="1067048845568873861">உருவாக்கப்பட்டது</translation> +<translation id="1067291318998134776">Linux (பீட்டா)</translation> +<translation id="1067922213147265141">பிற Google சேவைகள்</translation> <translation id="1070066693520972135">WEP</translation> <translation id="1070377999570795893">உங்கள் கணினியில் உள்ள மற்றொரு நிரல், Chrome செயல்படும் முறையை மாற்றக்கூடிய நீட்டிப்பைச் சேர்த்தது. @@ -63,7 +64,6 @@ <translation id="1091767800771861448">தவிர்க்க, ESCAPE அழுத்துக (அதிகாரப்பூர்வமற்ற தொகுதிகள் மட்டும்).</translation> <translation id="1093457606523402488">தெரியும் நெட்வொர்க்குகள்:</translation> <translation id="1094607894174825014">படித்தல் அல்லது எழுதுதல் செயல்பாடு தவறான ஆஃப்செட்டுடன் கோரப்பட்ட சாதனம்: "<ph name="DEVICE_NAME" />".</translation> -<translation id="1097507499312291972">இவர் பார்வையிடுகின்ற, இணையதளங்களைக் கட்டுப்படுத்த மற்றும் பார்க்க, <ph name="BEGIN_SIGN_IN_LINK" />உள்நுழையவும்<ph name="END_SIGN_IN_LINK" />.</translation> <translation id="109758035718544977">தளங்களில் ஒலி இயக்கு</translation> <translation id="1097658378307015415">உள்நுழைவதற்கு முன்பாக, நெட்வொர்க் <ph name="NETWORK_ID" /> ஐச் செயல்படுத்த விருந்தினராக உள்ளிடுக</translation> <translation id="1103523840287552314">எப்போதும் இந்த மொழியை மொழிபெயர் <ph name="LANGUAGE" /></translation> @@ -184,6 +184,7 @@ <translation id="1260240842868558614">காட்டு:</translation> <translation id="126710816202626562">மொழிபெயர்ப்பிற்கான மொழி:</translation> <translation id="126768002343224824">16x</translation> +<translation id="1271317946095246719">இயல்புத் தேடல் இன்ஜினிற்கு முகவரிப் பட்டி, தேடல் பெட்டியிலிருந்து தேடல்களையும் சில குக்கீகளையும் அனுப்பும்</translation> <translation id="1272079795634619415">நிறுத்து</translation> <translation id="1272978324304772054">இந்தப் பயனர் கணக்கானது சாதனம் பதிவுசெய்யப்பட்ட களத்திற்கு உரியது அல்ல. வேறொரு களத்தில் பதிவுசெய்ய விரும்பினால், முதலில் சாதன மீட்புக்குச் செல்ல வேண்டும்.</translation> <translation id="1274977772557788323">Adobe Flash Player இன் சேமிப்பக அமைப்புகள்</translation> @@ -241,7 +242,6 @@ <translation id="1361655923249334273">பயன்படுத்தாத</translation> <translation id="1363028406613469049">ட்ராக் எண்</translation> <translation id="1367951781824006909">கோப்பைத் தேர்வுசெய்க</translation> -<translation id="136802136832547685">இந்தச் சாதனத்தில் சேர்ப்பதற்கு, கண்காணிக்கப்படும் பயனர்கள் எவருமில்லை.</translation> <translation id="1368265273904755308">சிக்கலைப் புகார் செய்க</translation> <translation id="1370646789215800222">பயனரை அகற்றவா?</translation> <translation id="1372681413396468867">{NUM_ITEMS,plural, =1{1 உருப்படியை அகற்ற வேண்டும்}other{# உருப்படிகளை அகற்ற வேண்டும்}}</translation> @@ -469,7 +469,6 @@ <translation id="1692799361700686467">பல தளங்களிலிருந்து வரும் குக்கீகள் அனுமதிக்கப்படுகின்றன.</translation> <translation id="169515659049020177">Shift</translation> <translation id="1698122934742150150">தற்போதைய மறைநிலை அமர்விற்கு மட்டும்</translation> -<translation id="1700199471143028312">கண்காணிக்கப்படும் பயனர்களை உருவாக்க, உங்கள் நிர்வாகி அனுமதிக்கவில்லை.</translation> <translation id="1701062906490865540">இவரை அகற்று</translation> <translation id="1706586824377653884">உங்கள் நிர்வாகி சேர்த்துள்ளார்</translation> <translation id="1706625117072057435">அளவுமாற்ற நிலைகள்</translation> @@ -804,6 +803,7 @@ <translation id="2230062665678605299">"<ph name="FOLDER_NAME" />" கோப்புறையை உருவாக்க முடியவில்லை. <ph name="ERROR_MESSAGE" /></translation> <translation id="223106756035922488">இன்றைய doodleஐப் பார்க்க, கிளிக் செய்யவும்</translation> <translation id="2231238007119540260">நீங்கள் ஒரு சேவையக சான்றிதழை நீக்கினால், அந்த சேவையகத்திற்கான வழக்கமான பாதுகாப்பு சரிபார்ப்புகளை மீட்டமைக்கிறீர்கள் மற்றும் அது செல்லுபடியாகும் சான்றிதழைப் பயன்படுத்துமாறும் கோருகிறீர்கள்.</translation> +<translation id="2232379019872353004">சில சாதனத் தகவலையும் பக்க உள்ளடக்கத்தையும் Googleக்கு அனுப்பும்</translation> <translation id="2232876851878324699">கோப்பில் ஒரு இறக்குமதி செய்யப்படாத சான்றிதழ் உள்ளது:</translation> <translation id="2233502537820838181">&மேலும் தகவல்</translation> <translation id="2238379619048995541">காலஇடைவெளி நிலையின் தரவு</translation> @@ -889,6 +889,7 @@ <translation id="2359808026110333948">தொடர்க</translation> <translation id="236141728043665931">மைக்ரோஃபோன் அணுகலை எப்போதும் தடு</translation> <translation id="2365507699358342471">கிளிப்போர்டுக்கு நகலெடுத்த உரையையும் படங்களையும், இந்தத் தளத்தால் பார்க்க முடியும்.</translation> +<translation id="2366463953911599217">பிழை: <ph name="APP_NAME" />ஐ நிறுவல்நீக்க முடியவில்லை.</translation> <translation id="2367199180085172140">கோப்புப் பகிர்வைச் சேர்</translation> <translation id="2367972762794486313">பயன்பாடுகளைக் காட்டு</translation> <translation id="2371076942591664043">&முடிந்ததும் திற</translation> @@ -940,6 +941,7 @@ <translation id="2462724976360937186">சான்றளிக்கும் மைய விசை ID</translation> <translation id="2462752602710430187"><ph name="PRINTER_NAME" /> சேர்க்கப்பட்டது</translation> <translation id="2464089476039395325">HTTP ப்ராக்ஸி</translation> +<translation id="2468205691404969808">அந்தப் பக்கங்களுக்குச் சென்றதில்லை என்றாலும், உங்கள் விருப்பத்தேர்வுகளை நினைவில்கொள்ள, குக்கீகளைப் பயன்படுத்தும்</translation> <translation id="2468902267404883140">மொபைலுடன் இணைக்க முடியவில்லை. இணங்கும் Android ஃபோனைப் பயன்படுத்துவதையும், அது இயக்கப்பட்டு அருகில் உள்ளதையும் உறுதிப்படுத்திக்கொள்ளவும். <a>மேலும் அறிக</a></translation> <translation id="2470702053775288986">ஆதரிக்கப்படாத நீட்டிப்புகள் முடக்கப்பட்டன</translation> <translation id="2473195200299095979">இந்தப் பக்கத்தை மொழிபெயர்</translation> @@ -1036,7 +1038,6 @@ <translation id="2604255671529671813">நெட்வொர்க் இணைப்புப் பிழை</translation> <translation id="2606246518223360146">தரவை இணை</translation> <translation id="2607101320794533334">தலைப்பு பொதுவானவை தகவல்</translation> -<translation id="2607459012323956820">இந்தக் கண்காணிக்கப்படும் பயனரின் அமைப்புகளையும் உலாவல் வரலாற்றையும் <ph name="BEGIN_LINK" /><ph name="DISPLAY_LINK" /><ph name="END_LINK" /> இல் உள்ள நிர்வாகியால் தொடர்ந்து பார்க்க முடியும்.</translation> <translation id="2608770217409477136">இயல்புநிலை அமைப்புகளைப் பயன்படுத்து</translation> <translation id="2609896558069604090">குறுக்குவழிகளை உருவாக்கு...</translation> <translation id="2610157865375787051">உறக்கநிலையிலிரு</translation> @@ -1105,6 +1106,7 @@ <translation id="2686759344028411998">ஏற்றப்பட்ட எந்த தொகுதிக்கூறுகளையும் கண்டறிய முடியவில்லை.</translation> <translation id="2688196195245426394">வேறு சேவையகத்துடன் சாதனத்தைப் பதிவுசெய்யும்போது பிழை: <ph name="CLIENT_ERROR" />.</translation> <translation id="2690024944919328218">மொழி விருப்பங்களைக் காட்டு</translation> +<translation id="2690824726518456119">Concierge சேவை தொடங்குகிறது.</translation> <translation id="2691385045260836588">மாடல்</translation> <translation id="2693176596243495071">அச்சச்சோ! எதிர்பாராத பிழை ஏற்பட்டது. பிறகு முயலவும் அல்லது சிக்கல் தொடர்ந்தால், உங்கள் நிர்வாகியைத் தொடர்புகொள்ளவும்.</translation> <translation id="2694026874607847549">1 குக்கீ</translation> @@ -1329,15 +1331,6 @@ <translation id="3022978424994383087">மொழிபெயர்க்க முடியவில்லை.</translation> <translation id="3024374909719388945">24-மணிநேர கடிகாரத்தைப் பயன்படுத்து</translation> <translation id="302781076327338683">தற்காலிகச் சேமிப்பைப் புறக்கணித்து மீண்டும் ஏற்று</translation> -<translation id="3030243755303701754">கண்காணிக்கப்படும் பயனர் உங்கள் வழிகாட்டுதல் மூலம் இணையத்தில் உலாவலாம். கண்காணிக்கப்படும் பயனரின் நிர்வாகியாக, நீங்கள் Chrome இல் பின்வருவனவற்றைச் செய்யலாம்: - - • குறிப்பிட்ட இணையதளங்களை அனுமதிக்கலாம் அல்லது தடைசெய்யலாம், - • கண்காணிக்கப்படும் பயனர் பார்வையிட்ட இணையதளங்களை மறுபார்வையிடலாம், - • பிற அமைப்புகளை நிர்வகிக்கலாம். - -கண்காணிக்கப்படும் பயனரை உருவாக்குவதால் Google கணக்கு உருவாக்கப்படாது, மேலும் அவர்களின் புக்மார்க்குகள், உலாவல் வரலாறு மற்றும் பிற விருப்பத்தேர்வுகள் ஆகியவை Chrome ஒத்திசைவு மூலம் பிற சாதனங்களில் ஒத்திசைக்கப்படாது. புதிய கண்காணிக்கப்படும் பயனரை உருவாக்கிய பின், எந்தச் சாதனத்திலும் எப்போது வேண்டுமானாலும் அவர்களின் அமைப்புகளை <ph name="BEGIN_MANAGE_LINK" /><ph name="DISPLAY_LINK" /><ph name="END_MANAGE_LINK" /> இல் நிர்வகிக்கலாம். - -மேலும் தகவலுக்கு, எங்கள் <ph name="BEGIN_LINK" />உதவி மையத்திற்குச்<ph name="END_LINK" /> செல்லவும்.</translation> <translation id="3031417829280473749">ஏஜென்ட் X</translation> <translation id="3031557471081358569">இறக்குமதிக்கு உருப்படிகளைத் தேர்ந்தெடு</translation> <translation id="3031601332414921114">அச்சிடுவதை மீண்டும் தொடங்கு</translation> @@ -1378,7 +1371,6 @@ <translation id="3085412380278336437">தளத்தால் உங்கள் கேமராவைப் பயன்படுத்த முடியும்</translation> <translation id="3085752524577180175">SOCKS ஹோஸ்ட்</translation> <translation id="3088325635286126843">&மறுபெயரிடுக...</translation> -<translation id="3089231390674410424">உங்கள் நற்சான்றிதழில் சிக்கல் இருப்பது போல் தெரிகிறது. சரியாக உள்நுழைந்துள்ளீர்கள் என்பதை உறுதிசெய்து, மீண்டும் முயலவும்.</translation> <translation id="3090193911106258841">ஆடியோ மற்றும் வீடியோ உள்ளீட்டை அணுகுகிறது</translation> <translation id="3090819949319990166">வெளிப்புற crx கோப்பை <ph name="TEMP_CRX_FILE" />க்கு நகலெடுக்க முடியாது.</translation> <translation id="3090871774332213558">"<ph name="DEVICE_NAME" />" இணைக்கப்பட்டது</translation> @@ -1393,7 +1385,6 @@ <translation id="3121793941267913344">இந்த <ph name="IDS_SHORT_PRODUCT_NAME" /> சாதனத்தை மீட்டமைக்கவும்</translation> <translation id="3122464029669770682">CPU</translation> <translation id="3122496702278727796">ஒரு தரவு கோப்பகத்தை உருவாக்குவதில் தோல்வியடைந்தது</translation> -<translation id="3123569374670379335">(கண்காணிக்கப்பட்டது)</translation> <translation id="3124111068741548686">USER ஹேண்டில்ஸ்</translation> <translation id="3126026824346185272">Ctrl</translation> <translation id="3127156390846601284">இவ்வாறு செய்வதால், காட்டப்படும் எல்லாத் தளங்களுக்கும் உங்கள் சாதனத்தில் சேமித்த தரவு நீக்கப்படும். தொடரவா?</translation> @@ -1428,8 +1419,6 @@ <translation id="3160842278951476457"><ph name="ISSUED_BY" /> [<ph name="ISSUED_TO" />] (வன்பொருளில் சேமிக்கப்பட்டிருக்கும்)</translation> <translation id="316125635462764134">பயன்பாட்டை அகற்று</translation> <translation id="3161522574479303604">எல்லா மொழிகளும்</translation> -<translation id="316307797510303346"><ph name="CUSTODIAN_EMAIL" /> இலிருந்து இவர் பார்க்கும் இணையதளங்களைக் கட்டுப்படுத்து, காட்டு. - உங்கள் கணக்கு உள்நுழைவு விவரங்கள் காலாவதியானவை.</translation> <translation id="3165390001037658081">சில தொலைத்தொடர்பு நிறுவனங்கள் இந்த அம்சத்தைத் தடுக்கலாம்.</translation> <translation id="316854673539778496">உங்கள் எல்லாச் சாதனங்களிலும் நீட்டிப்புகளைப் பெற, உள்நுழைந்து, ஒத்திசைவை இயக்கவும்.</translation> <translation id="3170072451822350649">உள்நுழைவதைத் தவிர்த்துவிட்டு <ph name="LINK_START" />விருந்தினராக உலாவலாம்<ph name="LINK_END" />.</translation> @@ -1443,6 +1432,7 @@ <translation id="3190558889382726167">கடவுச்சொல் சேமிக்கப்பட்டது</translation> <translation id="3192947282887913208">ஆடியோ கோப்புகள்</translation> <translation id="3194737229810486521">உங்கள் சாதனத்தில், தரவை நிரந்தரமாகச் சேமிக்க <ph name="URL" /> விரும்புகிறது</translation> +<translation id="3197054279257119376">டெர்மினா காம்பனென்ட்டை ஏற்றுகிறது.</translation> <translation id="3199127022143353223">சேவைகங்கள்</translation> <translation id="3202131003361292969">தடம்</translation> <translation id="3202173864863109533">இந்தத் தாவலின் ஆடியோ முடக்கப்படுகிறது.</translation> @@ -1461,7 +1451,6 @@ <translation id="3229922550070982305">இயக்கு / இடைநிறுத்து</translation> <translation id="3232318083971127729">மதிப்பு:</translation> <translation id="3236289833370040187"><ph name="DESTINATION_DOMAIN" />க்கு உரிமை மாற்றப்படும்.</translation> -<translation id="3237784613213365159">இப்போது <ph name="NEW_PROFILE_NAME" />, கண்காணிக்கப்படும் பயனராவார்</translation> <translation id="323803881985677942">நீட்டிப்பு விருப்பங்களைத் திற</translation> <translation id="3241680850019875542">தொகுக்க வேண்டிய நீட்டிப்பின் மூல இருப்பிடத்தைத் தேர்ந்தெடு. ஒரு நீட்டிப்பைப் புதுப்பிக்க, மீண்டும் பயன்படுத்துவதற்கு தனிப்பட்ட விசைக் கோப்பையும் தேர்ந்தெடு.</translation> <translation id="3242765319725186192">முன்பே-பகிர்ந்து கொள்ளப்பட்ட விசை:</translation> @@ -1566,6 +1555,7 @@ <translation id="3405664148539009465">எழுத்துருக்களைத் தனிப்பயனாக்கு</translation> <translation id="3405763860805964263">...</translation> <translation id="3406605057700382950">புக்மார்க்ஸ் பட்டியைக் &காண்பி</translation> +<translation id="3407837288045706722">தனியுரிமை, பாதுகாப்பு, தரவுச் சேகரிப்பான் ஆகியவற்றுடன் தொடர்புடைய மேலும் பல அமைப்புகளுக்கு, <ph name="BEGIN_LINK" />ஒத்திசைவையும் தனிப்பயனாக்கத்தையும்<ph name="END_LINK" /> பார்க்கவும்</translation> <translation id="3412265149091626468">தேர்வுக்கு செல்</translation> <translation id="3413122095806433232">CA வழங்குநர்கள்: <ph name="LOCATION" /></translation> <translation id="3414856743105198592">அகற்றத்தக்க மீடியாவை வடிவமைப்பதானது எல்லா தரவையும் அழிக்கும். தொடர விரும்புகிறீர்களா?</translation> @@ -1643,6 +1633,7 @@ <translation id="3504135463003295723">குழுப் பெயர்:</translation> <translation id="3505030558724226696">சாதன அணுகலை ரத்துசெய்</translation> <translation id="3507421388498836150">"<ph name="EXTENSION_NAME" />" இன் தற்போதைய அனுமதிகள்</translation> +<translation id="3507547268929739059">Chromebook இல் Linux பயன்பாடுகளை அகற்று</translation> <translation id="3507888235492474624">புளூடூத் சாதனங்களை மீண்டும் ஸ்கேன் செய்யும்</translation> <translation id="3508920295779105875">வேறு கோப்புறையைத் தேர்வு செய்க...</translation> <translation id="3510797500218907545">WiMAX</translation> @@ -1753,7 +1744,7 @@ <translation id="3670229581627177274">புளூடூத்தை இயக்கு</translation> <translation id="3672681487849735243">முக்கியப் பிழை கண்டறியப்பட்டது</translation> <translation id="367645871420407123">மூல கடவுச்சொல்லை இயல்புநிலை சோதனைப் பட மதிப்பாக அமைக்க விரும்பினால், வெறுமையாக விடவும்</translation> -<translation id="3677657024345889897">ஒலியளவு மாற்றம்</translation> +<translation id="3677657024345889897">குறைவு</translation> <translation id="3678156199662914018">நீட்டிப்பு: <ph name="EXTENSION_NAME" /></translation> <translation id="3681311097828166361">உங்கள் கருத்திற்கு நன்றி. இப்போது ஆஃப்லைனில் உள்ளீர்கள், உங்கள் அறிக்கை பின்னர் அனுப்பப்படும்.</translation> <translation id="3683023058278427253">உங்கள் டொமைனுக்கு, பல உரிம வகைகளைக் கண்டறிந்துள்ளோம். தொடர, ஏதேனும் ஒன்றைத் தேர்வு செய்யவும்.</translation> @@ -1823,7 +1814,6 @@ <translation id="3778152852029592020">பதிவிறக்கம் ரத்துசெய்யப்பட்டது.</translation> <translation id="3778740492972734840">&டெவெலப்பர் கருவிகள்</translation> <translation id="3778868487658107119">அதனிடம் கேள்விகளைக் கேட்கலாம். பணிகளைச் செய்யும்படி சொல்லலாம். இது உங்கள் தனிப்பட்ட Google, உங்களுக்கு உதவுவதற்காக எப்போதும் தயாராக இருக்கும்.</translation> -<translation id="3780663724044634171">கண்காணிக்கப்படும் பயனரை நிர்வகிக்க, கணக்கைத் தேர்ந்தெடுக்கவும்.</translation> <translation id="378312418865624974">இந்தக் கணினிக்கான தனிப்பட்ட அடையாளங்காட்டியைப் படிக்கலாம்</translation> <translation id="3783640748446814672">alt</translation> <translation id="3785308913036335955">பயன்பாடுகளின் குறுக்குவழியைக் காட்டு</translation> @@ -1837,6 +1827,7 @@ <translation id="379422718204375917">கணக்கில் உள்நுழைய, Smart Lockஐப் பயன்படுத்து</translation> <translation id="3796648294839530037">பிடித்த நெட்வொர்க்குகள்:</translation> <translation id="3797900183766075808"><ph name="SEARCH_ENGINE" /> இல் “<ph name="SEARCH_TERMS" />” எனத் &தேடு</translation> +<translation id="3798133693323981089">தேடல்களையும் இணைய முகவரிகளையும் தானே நிரப்பு</translation> <translation id="3798449238516105146">பதிப்பு</translation> <translation id="3799201711591988491">{COUNT,plural, =0{&எல்லாம் திற}=1{&புத்தகக்குறியைத் திற}other{&எல்லாப் புத்தகக்குறிகளையும் (#) திற}}</translation> <translation id="3800806661949714323">எல்லாம் காட்டு (பரிந்துரைக்கப்படுவது)</translation> @@ -1951,7 +1942,7 @@ <translation id="3956702100721821638">Google Playஐத் தொடர்புகொள்ள முடியவில்லை</translation> <translation id="3958088479270651626">புக்மார்க்குகளையும் அமைப்புகளையும் இறக்குமதி செய்</translation> <translation id="3960566196862329469">ONC</translation> -<translation id="3965965397408324205"><ph name="PROFILE_NAME" />ஐ வெளியேற்று</translation> +<translation id="3965965397408324205"><ph name="PROFILE_NAME" />ஐ மூடு</translation> <translation id="3966072572894326936">வேறு கோப்புறையைத் தேர்வு செய்க...</translation> <translation id="3966388904776714213">ஆடியோ பிளேயர்</translation> <translation id="3967822245660637423">பதிவிறக்கம் முடிந்தது</translation> @@ -2013,6 +2004,7 @@ <translation id="4065876735068446555">பயன்படுத்திக் கொண்டிருக்கும் நெட்வொர்க் (<ph name="NETWORK_ID" />), அதன் உள்நுழைவுப் பக்கத்தை நீங்கள் பார்க்குமாறு கேட்கலாம்.</translation> <translation id="4068506536726151626">உங்கள் இருப்பிடத்தைத் தெரிந்து கொள்ளக் கூடிய பின்வரும் தளங்களின் கூறுகள் இந்தப் பக்கத்தில் உள்ளன:</translation> <translation id="4068776064906523561">சேமித்த கைரேகைகள்</translation> +<translation id="407173827865827707">கிளிக் செய்யும் போது</translation> <translation id="4071770069230198275"><ph name="PROFILE_NAME" />: உள்நுழைவு பிழை</translation> <translation id="4074900173531346617">மின்னஞ்சல் கையொப்பமிடுநர் சான்றிதழ்</translation> <translation id="407520071244661467">அளவு</translation> @@ -2044,6 +2036,7 @@ <translation id="4109135793348361820"><ph name="USER_NAME" /> (<ph name="USER_EMAIL" />) க்குச் சாளரத்தை நகர்த்து</translation> <translation id="4110559665646603267">ஷெல்ஃப் கவனிப்பு</translation> <translation id="4110895898888439383">அதிக ஒளி மாறுபாட்டுப் பயன்முறையில் இணையத்தில் உலாவுதல்</translation> +<translation id="4112774766611964959">இது <ph name="APP_NAME" />ஐ நிறுவல்நீக்கும், <ph name="DEVICE_TYPE" /> இலிருந்து எல்லா Linux தரவையும் பயன்பாடுகளையும் அகற்றும். தொடரவா?</translation> <translation id="4114360727879906392">முந்தைய சாளரம்</translation> <translation id="4115002065223188701">நெட்வொர்க் தொடர்பு எல்லைக்கு வெளியே உள்ளது</translation> <translation id="4115080753528843955">பாதுகாக்கப்பட்ட உள்ளடக்கத்திற்கான அணுகலை அங்கீகரிக்கும் நோக்கங்களுக்காக, சில உள்ளடக்கச் சேவைகள் தனித்துவ அடையாளங்காட்டிகளைப் பயன்படுத்துகின்றன</translation> @@ -2098,6 +2091,7 @@ <translation id="42137655013211669">இந்த ஆதாரத்திற்கான அணுகல் சேவையகத்தால் தடுக்கப்பட்டிருக்கிறது.</translation> <translation id="4215350869199060536">அச்சச்சோ, பெயரில் சட்டவிரோத சின்னங்கள் உள்ளன!</translation> <translation id="4215448920900139318"><ph name="FILE_COUNT" /> கோப்புகளைக் காப்புப் பிரதி எடுக்கிறது</translation> +<translation id="4225397296022057997">எல்லாத் தளங்களிலும்</translation> <translation id="4235200303672858594">திரை முழுவதும்</translation> <translation id="4235813040357936597"><ph name="PROFILE_NAME" /> க்கான கணக்கைச் சேர்</translation> <translation id="4235965441080806197">உள்நுழைவை ரத்துசெய்</translation> @@ -2165,6 +2159,7 @@ <translation id="4345703751611431217">மென்பொருள் இணக்கமின்மை: மேலும் அறிக</translation> <translation id="4348766275249686434">பிழைகளைச் சேகரி</translation> <translation id="4350019051035968019">இந்தச் சாதனத்தை உங்கள் கணக்கிற்குச் சொந்தமான களத்தில் பதிவுசெய்ய முடியாது, ஏனெனில் சாதனமானது வேறு களத்தால் நிர்வகிக்கப்படுவதற்காகக் குறிக்கப்பட்டுள்ளது.</translation> +<translation id="4354266305752237763">ஆபத்தான தளங்களிலிருந்து உங்களையும் உங்கள் சாதனத்தையும் பாதுகாக்கும் (பாதுகாப்பான உலாவல்)</translation> <translation id="4356334633973342967">அல்லது உங்கள் சொந்த இயக்கியைக் குறிப்பிடவும்:</translation> <translation id="4358353773267946514"><ph name="LANGUAGE_1" />, <ph name="LANGUAGE_2" /></translation> <translation id="4359408040881008151">நீட்டிப்பு(கள்) சார்ந்திருப்பதன் காரணமாக நிறுவப்பட்டது.</translation> @@ -2173,6 +2168,7 @@ <translation id="4364567974334641491"><ph name="APP_NAME" /> சாளரத்தைப் பகிர்கிறது.</translation> <translation id="4364830672918311045">அறிவிப்புகளைக் காட்டலாம்</translation> <translation id="4365673000813822030">அச்சச்சோ, ஒத்திசைவு பணியை நிறுத்தியுள்ளது.</translation> +<translation id="4370373819607756384"><ph name="BEGIN_LINK" />மொழிகளில்<ph name="END_LINK" /> இந்த அமைப்பைக் கட்டுப்படுத்தலாம்</translation> <translation id="4370975561335139969">உள்ளிட்ட மின்னஞ்சலும், கடவுச்சொல்லும் பொருந்தவில்லை.</translation> <translation id="437184764829821926">மேம்பட்ட எழுத்துரு அமைப்புகள்</translation> <translation id="4372884569765913867">1x1</translation> @@ -2227,6 +2223,7 @@ <translation id="4462159676511157176">தனிப்பயன் பெயர் சேவையகங்கள்</translation> <translation id="4467100756425880649">Chrome இணைய அங்காடி கேலரி</translation> <translation id="4467101674048705704"><ph name="FOLDER_NAME" />ஐ விரிக்கும் பொத்தான்</translation> +<translation id="447252321002412580">Chrome இன் அம்சங்களையும் செயல்திறனையும் மேம்படுத்த உதவு</translation> <translation id="4474155171896946103">அனைத்து தாவல்களையும் புக்மார்க்கிடுக...</translation> <translation id="4475552974751346499">பதிவிறக்கங்களைத் தேடு</translation> <translation id="4476590490540813026">தடகள வீராங்கனை</translation> @@ -2249,6 +2246,7 @@ <translation id="4514542542275172126">புதிய கண்காணிக்கப்படும் பயனரை அமை</translation> <translation id="451515744433878153">அகற்று</translation> <translation id="4518677423782794009">Chrome செயலிழக்கிறதா, வழக்கத்திற்கு மாறான துவக்கப் பக்கங்கள், கருவிப்பட்டிகள் தோன்றுகின்றனவா, தவிர்க்கமுடியாத திடீர் விளம்பரங்களால் தொல்லையா, உங்கள் உவாவல் அனுபவத்தில் மாற்றங்கள் உள்ளதா? Chrome சுத்திகரிப்புக் கருவியை இயக்கி இச்சிக்கல்களைத் தீர்க்கலாம்.</translation> +<translation id="4518928191942891293">டெர்மினா VM இல் கன்டெய்னரைத் தொடங்குகிறது.</translation> <translation id="4520385623207007473">பயன்படுத்தப்படும் குக்கீகள்</translation> <translation id="452039078290142656"><ph name="VENDOR_NAME" /> வழங்கும் தெரியாத சாதனங்கள்</translation> <translation id="4522570452068850558">விவரங்கள்</translation> @@ -2297,6 +2295,7 @@ <translation id="4589268276914962177">புதிய முனையம்</translation> <translation id="4590324241397107707">தரவுத்தளச் சேகரிப்பு</translation> <translation id="4593021220803146968"><ph name="URL" /> க்குச் &செல்க</translation> +<translation id="459505086032485258">Google சேவைகள் அமைப்புகளைக் காட்டு</translation> <translation id="4595560905247879544">பயன்பாடுகளையும் நீட்டிப்புகளையும் நிர்வாகியால் (<ph name="CUSTODIAN_NAME" />) மட்டுமே மாற்ற முடியும்.</translation> <translation id="4596295440756783523">இந்தச் சேவையகங்களை அடையாளங்காணும் சான்றிதழ்கள் கோப்பில் உள்ளன</translation> <translation id="4598556348158889687">சேமிப்பிட மேலாண்மை</translation> @@ -2516,6 +2515,7 @@ <translation id="4917385247580444890">வலிமையானது</translation> <translation id="4918021164741308375"><ph name="ORIGIN" />, "<ph name="EXTENSION_NAME" />" நீட்டிப்புடன் தொடர்புகொள்ள விழைகிறது</translation> <translation id="4918086044614829423">ஏற்கிறேன்</translation> +<translation id="4920350943031252905">Chromebook இல் Linux கருவிகள், திருத்திகள், IDEகள் ஆகியவற்றை இயக்கும்.</translation> <translation id="4920887663447894854">இந்தப் பக்கத்தில் உங்கள் இருப்பிடத்தைத் தடமறிவதிலிருந்து பின்வரும் தளங்கள் தடுக்கப்பட்டுள்ளன:</translation> <translation id="492299503953721473">Android பயன்பாடுகளை அகற்று</translation> <translation id="4923279099980110923">ஆம், எனக்கு உதவி தேவை</translation> @@ -2541,7 +2541,6 @@ <translation id="4964455510556214366">ஒழுங்கமைவு</translation> <translation id="4964673849688379040">சரிபார்க்கிறது...</translation> <translation id="4965808351167763748">Hangouts Meetஐ இயக்க, இந்தச் சாதனத்தை நிச்சயமாக அமைக்க விரும்புகிறீர்களா?</translation> -<translation id="4967749818080339523">கணக்கைத் தேர்ந்தெடுக்கவும்</translation> <translation id="496888482094675990">Google இயக்ககம், வெளிப்புறச் சேமிப்பகம் அல்லது உங்கள் Chrome OS சாதனத்தில் சேமித்துள்ள கோப்புகளுக்கான விரைவான அணுகலைக் கோப்புகள் பயன்பாடு வழங்குகிறது.</translation> <translation id="4969785127455456148">ஆல்பம்</translation> <translation id="4971412780836297815">முடிந்ததும் திற</translation> @@ -2681,6 +2680,7 @@ <translation id="5186650237607254032">நீங்கள் அருகில் உள்ளபோது, உங்கள் ஃபோனின் திரைப்பூட்டு தானாகவே முடக்கப்படுமாறு அதனைப் புதுப்பிக்கவும். நீங்கள் இன்னும் விரைவாக ஃபோனின் தடையை நீக்கலாம், உங்கள் <ph name="DEVICE_TYPE" />இல் மேம்பட்ட Smart Lock அனுபவத்தைப் பெறலாம்.</translation> <translation id="5187295959347858724">நீங்கள் இப்போது <ph name="SHORT_PRODUCT_NAME" /> இல் உள்நுழைந்துள்ளீர்கள். உங்களுடைய புக்மார்க்குகள், வரலாறு மற்றும் இதர அமைப்புகள் Google கணக்குடன் ஒத்திசைக்கப்படுகிறது.</translation> <translation id="5187826826541650604"><ph name="KEY_NAME" /> (<ph name="DEVICE" />)</translation> +<translation id="5196721203029902230">உலாவலையும் Chromeஐயும் மேம்படுத்த, Google உடன் தகவல்தொடர்புகொள்ளும்</translation> <translation id="5204967432542742771">கடவுச்சொல்</translation> <translation id="5206215183583316675">"<ph name="CERTIFICATE_NAME" />"ஐ நீக்கவா?</translation> <translation id="520621735928254154">சான்றிதழ் இறக்குமதியாவதில் பிழை</translation> @@ -2718,6 +2718,7 @@ <translation id="5254368820972107711">அகற்ற வேண்டிய கோப்புகளைக் காட்டு</translation> <translation id="52550593576409946">கியோஸ்க் பயன்பாட்டைத் தொடங்க முடியவில்லை.</translation> <translation id="5255315797444241226">நீங்கள் உள்ளிட்ட கடவுச்சொற்றொடர் தவறானது.</translation> +<translation id="5256861893479663409">எல்லாத் தளங்களிலும்</translation> <translation id="5260508466980570042">மன்னிக்கவும், உங்கள் மின்னஞ்சலையும் கடவுச்சொல்லையும் சரிபார்க்க முடியவில்லை. தயவுசெய்து மீண்டும் முயற்சி செய்க.</translation> <translation id="5261683757250193089">இணைய அங்காடியில் திற</translation> <translation id="5262311848634918433"><ph name="MARKUP_1" />எங்கிருந்தும் கோப்புகளை அணுகலாம் (ஆஃப்லைனில் இருந்தாலும்).<ph name="MARKUP_2" /> @@ -2942,6 +2943,8 @@ <translation id="555746285996217175">பூட்டு / பவர்</translation> <translation id="5557991081552967863">தூக்கப் பயன்முறையின் போதும், வைஃபையை இயக்கத்தில் வைத்திரு</translation> <translation id="5558129378926964177">Zoom &In</translation> +<translation id="5558446705802335921">தீங்கு விளைவிக்கும் செயல்பாடு, ஃபிஷிங் அல்லது தீம்பொருள் போன்ற உள்ளடக்கம் ஆகியவற்றிற்காக, செல்லும் தளங்களையும் பதிவிறக்கும் கோப்புகளையும் சரிபார்க்கும்</translation> +<translation id="5559719557406102971">டெர்மினா VMஐத் தொடங்குகிறது.</translation> <translation id="55601339223879446">திரைக்குள் உங்கள் டெஸ்க்டாப் எல்லைகளைச் சரிசெய்யவும்</translation> <translation id="5562781907504170924">இந்தத் தாவல் புளூடூத் சாதனத்துடன் இணைக்கப்பட்டுள்ளது.</translation> <translation id="5565871407246142825">கிரெடிட் கார்டுகள்</translation> @@ -3147,6 +3150,7 @@ <translation id="5863445608433396414">பிழைதிருத்த அம்சங்களை இயக்கவும்</translation> <translation id="5864471791310927901">DHCP பார்வையிடுதல் தோல்வி</translation> <translation id="586567932979200359">அதன் வட்டுப்படித்திலிருந்து <ph name="PRODUCT_NAME" /> ஐ நீங்கள் இயக்குகிறீர்கள். உங்கள் கணினியில் இதை அமைப்பதால் வட்டுப்படிமம் இல்லாமல் இதை இயக்கலாம், மற்றும் இன்றுவரை புதுப்பிக்கப்பட்டதாக வைத்திருப்பதை உறுதிசெய்கிறது.</translation> +<translation id="5865733239029070421">பயன்பாட்டுப் புள்ளிவிவரங்களையும் சிதைவு அறிக்கைகளையும் தானாகவே Googleக்கு அனுப்பும்</translation> <translation id="5866557323934807206">எதிர்கால வருகைகளுக்கு இந்த அமைப்புகளை அழி</translation> <translation id="5866840822086176774">மிக வலிமையானது</translation> <translation id="5867841422488265304">தேடவும் அல்லது இணைய முகவரியை உள்ளிடவும்</translation> @@ -3197,6 +3201,7 @@ <translation id="5957613098218939406">கூடுதல் விருப்பங்கள்</translation> <translation id="5958529069007801266">கண்காணிக்கப்படும் பயனர்</translation> <translation id="5959471481388474538">நெட்வொர்க் கிடைக்கவில்லை</translation> +<translation id="595959584676692139">இந்த நீட்டிப்பைப் பயன்படுத்தி, பக்கத்தை ரெஃப்ரெஷ் செய்யவும்</translation> <translation id="5963026469094486319">தீம்களைப் பெறு</translation> <translation id="5963453369025043595"><ph name="NUM_HANDLES" /> (<ph name="NUM_KILOBYTES_LIVE" /> உச்சம்)</translation> <translation id="5965661248935608907">முகப்புப் பொத்தானைக் கிளிக் செய்யும்போது அல்லது சர்வபுலத்திலிருந்து தேடலை மேற்கொள்ளும்போது காண்பிக்கப்படும் பக்கத்தையும் இது கட்டுப்படுத்துகிறது.</translation> @@ -3370,10 +3375,10 @@ <translation id="6237816943013845465">திரையின் தெளிவுத்திறனைச் சரிசெய்ய அனுமதிக்கும்</translation> <translation id="6238923052227198598">சமீபத்திய குறிப்பைப் லாக் ஸ்கிரீனில் வைத்திரு</translation> <translation id="6239558157302047471">&ஃபிரேமை மீண்டும் ஏற்று</translation> +<translation id="6240004034869232531">நிறுவல்நீக்குகிறது...</translation> <translation id="6241530762627360640">உங்கள் கணினியுடன் இணைக்கப்பட்ட புளூடூத் சாதனங்கள் பற்றிய தகவலை அணுகுதல் மற்றும் அருகிலுள்ள புளூடூத் சாதனங்களைக் கண்டறிதல்.</translation> <translation id="6243280677745499710">தற்போது அமைக்கப்பட்டுள்ளது</translation> <translation id="6243774244933267674">சேவையகம் கிடைக்கவில்லை</translation> -<translation id="6246413617632217567">கண்காணிக்கப்படும் பயனரை இறக்க முடியவில்லை. உங்கள் வட்டு இயக்ககத்தின் இடத்தையும் அனுமதிகளையும் சரிபார்த்து மீண்டும் முயலவும்.</translation> <translation id="6247708409970142803"><ph name="PERCENTAGE" />%</translation> <translation id="6247802389331535091">சிஸ்டம்: <ph name="ARC_PROCESS_NAME" /></translation> <translation id="624789221780392884">புதுப்பிப்பு தயார்</translation> @@ -3572,7 +3577,6 @@ <translation id="654039047105555694"><ph name="BEGIN_BOLD" />குறிப்பு:<ph name="END_BOLD" /> தரவைச் சேகரிப்பது செயல்திறனைக் குறைக்கும் என்பதால், நீங்கள் தெரிந்துதான் செய்கிறீர்கள் என்றால் அல்லது அவ்வாறு செய்ய வேண்டுமெனக் கேட்டுக்கொள்ளப்பட்டிருந்தால் மட்டும் இயக்கவும்.</translation> <translation id="654233263479157500">வழிசெலுத்தல் பிழைகளைச் சரிசெய்ய ஒரு வலை சேவையைப் பயன்படுத்துக</translation> <translation id="6544215763872433504">Google உங்களுக்காக வழங்கும் இணைய உலாவி</translation> -<translation id="6545325945815270297">ஒத்திசைத்த தரவையும் சாதனங்களையும் <ph name="BEGIN_LINK" />Chrome டாஷ்போர்டில்<ph name="END_LINK" /> நிர்வகிக்கலாம்.</translation> <translation id="6545665334409411530">மீண்டும் இயக்குவதன் வீதம்</translation> <translation id="6545834809683560467">தேடல்களையும், முகவரிப் பட்டி அல்லது பயன்பாட்டுத் துவக்கியின் தேடல் பெட்டியில் தட்டச்சு செய்யப்பட்ட URLகளையும் நிறைவு செய்ய யூகச் சேவையைப் பயன்படுத்தவும்</translation> <translation id="6546686722964485737">WiMAX பிணையத்தில் சேர்</translation> @@ -3587,7 +3591,6 @@ <translation id="6555810572223193255">சுத்தப்படுத்தல் தற்போது கிடைக்கவில்லை</translation> <translation id="6556866813142980365">மீண்டும் செய்</translation> <translation id="6558280019477628686">பிழை ஏற்பட்டது. சில உருப்படிகள் நீக்கப்படாமல் இருக்கக்கூடும்.</translation> -<translation id="6559580823502247193">(ஏற்கனவே இந்த சாதனத்தில் இருக்கிறார்)</translation> <translation id="6561726789132298588">எண்டர்</translation> <translation id="656293578423618167">கோப்பு பாதை அல்லது பெயர் மிக நீளமாக உள்ளது. பெயரைச் சுருக்கியோ அல்லது மற்றொரு இடத்திலோ சேமிக்கவும்.</translation> <translation id="656398493051028875">"<ph name="FILENAME" />" ஐ நீக்குகிறது...</translation> @@ -3609,6 +3612,7 @@ <translation id="6596745167571172521">கேப்ஸ் லாக்கை முடக்கவும்</translation> <translation id="6596816719288285829">IP முகவரி</translation> <translation id="6597017209724497268">மாதிரிகள்</translation> +<translation id="6597332018579308636">அணுகலை அனுமதி</translation> <translation id="659934686219830168">இந்தப் பக்கத்திலிருந்து நீங்கள் வெளியேறியதும், ஒத்திசைவு தொடங்கும்</translation> <translation id="6602353599068390226">மற்றொரு திரைக்குச் சாளரத்தை நகர்த்தவும்.</translation> <translation id="6602956230557165253">வழிசெலுத்த இடது மற்றும் வலது அம்புக்குறி விசைகளைப் பயன்படுத்தவும்.</translation> @@ -3639,7 +3643,7 @@ <translation id="6639554308659482635">SQLite நினைவகம்</translation> <translation id="6641138807883536517">பாதுகாப்பு மாட்யூலின் கடவுச்சொல் (தற்போக்காக உருவாக்கியது) இல்லை. பவர்வாஷிற்குப் பிறகு இப்படி நடப்பது இயல்பு.</translation> <translation id="6643016212128521049">அழி</translation> -<translation id="6644512095122093795">கடவுச்சொற்களைச் சேமிப்பதற்கான சலுகை</translation> +<translation id="6644512095122093795">கடவுச்சொற்களைச் சேமிப்பதற்குக் கேள்</translation> <translation id="6644846457769259194">சாதனத்தைப் புதுப்பிக்கிறது (<ph name="PROGRESS_PERCENT" />)</translation> <translation id="6647228709620733774">Netscape சான்றளிக்கும் மைய தளர்த்தல் URL</translation> <translation id="6647838571840953560">தற்போதைய சேனல்: <ph name="CHANNEL_NAME" /></translation> @@ -3675,6 +3679,7 @@ <translation id="6690751852586194791">இந்தச் சாதனத்துடன் சேர்க்க கண்காணிக்கப்படும் பயனரைத் தேர்வுசெய்யவும்.</translation> <translation id="6691331417640343772">ஒத்திசைத்த தரவை Google டாஷ்போர்டில் நிர்வகி</translation> <translation id="6691936601825168937">&அடுத்த பக்கம்</translation> +<translation id="6697492270171225480">பக்கத்தைக் கண்டறிய முடியாத போது, அதே மாதிரியான பக்கங்களுக்கான பரிந்துரைகளைக் காட்டும்</translation> <translation id="6698810901424468597"><ph name="WEBSITE_1" /> மற்றும் <ph name="WEBSITE_2" /> இல் உள்ள உங்கள் தரவைப் படித்தல் மற்றும் திருத்துதல்</translation> <translation id="6700480081846086223"><ph name="HOST_NAME" />ஐ அனுப்பு</translation> <translation id="6701535245008341853">சுயவிவரத்தைப் பெற முடியவில்லை.</translation> @@ -3772,7 +3777,7 @@ <translation id="6841186874966388268">பிழைகள்</translation> <translation id="6843725295806269523">ஒலியடக்கு</translation> <translation id="6845038076637626672">பெரிதாக்கப்பட்டதை திற</translation> -<translation id="685040365210406336">மாற்றங்கள் எதுவுமில்லை</translation> +<translation id="685040365210406336">மாற்றங்கள் எதுவும் செய்ய வேண்டாம்</translation> <translation id="6851497530878285708">பயன்பாடு இயக்கப்பட்டது</translation> <translation id="6853388645642883916">புதுப்பிப்பான் செயலில் இல்லை</translation> <translation id="68541483639528434">பிற தாவல்களை மூடுக</translation> @@ -3782,7 +3787,6 @@ <translation id="6862635236584086457">இந்த கோப்புறையில் சேமிக்கப்படும் எல்லாக் கோப்புகளும் ஆன்லைனில் தானாகவே காப்புப்பிரதி எடுக்கப்படுகின்றன</translation> <translation id="6865313869410766144">தன்னிரப்பி படிவத் தரவு</translation> <translation id="686664946474413495">ஒளித் தோற்றம்</translation> -<translation id="6867678160199975333"><ph name="NEW_PROFILE_NAME" /> க்கு மாறு</translation> <translation id="6870888490422746447">பகிர்வதற்கான இலக்குப் பயன்பாட்டைத் தேர்வுசெய்க:</translation> <translation id="6871644448911473373">OCSP பதிலளிப்பான்: <ph name="LOCATION" /></translation> <translation id="6872781471649843364">சேவையகம் நீங்கள் உள்ளிட்ட கடவுச்சொல்லை நிராகரித்தது.</translation> @@ -3876,7 +3880,6 @@ <translation id="7018275672629230621">உங்கள் உலாவல் வரலாற்றை படிக்கலாம் மற்றும் மாற்றலாம்</translation> <translation id="7019805045859631636">வேகமான</translation> <translation id="7022562585984256452">உங்களின் முகப்பு பக்கம் அமைக்கப்பட்டது.</translation> -<translation id="7025036625303002400">உங்களிடம் ஏற்கனவே இதே பெயரில் கண்காணிக்கப்படும் பயனர் இருப்பது போல் தெரிகிறது.</translation> <translation id="7025190659207909717">மொபைல் டேட்டா சேவை மேலாண்மை</translation> <translation id="7025325401470358758">அடுத்த பலகம்</translation> <translation id="7027125358315426638">தரவுத்தளப் பெயர்:</translation> @@ -3925,7 +3928,7 @@ <translation id="7092106376816104">பாப்-அப் விதிவிலக்குகள்</translation> <translation id="7093434536568905704">GTK+</translation> <translation id="7093866338626856921">பின்வரும் பெயரிடப்பட்ட எந்தச் சாதனங்களுடனும் தரவைப் பரிமாறவும்: <ph name="HOSTNAMES" /></translation> -<translation id="7096108453481049031">கண்காணிக்கப்படும் பயனரை இறக்க முடியவில்லை. உங்கள் நெட்வொர்க் இணைப்பைச் சரிபார்த்து, பிறகு முயலவும்.</translation> +<translation id="7096406577040705016">முழுத்திரைப் பெரிதாக்கியை நிலைமாற்று</translation> <translation id="7098447629416471489">சேமித்த பிற தேடல் இன்ஜின்கள் இங்கே தோன்றும்</translation> <translation id="7099337801055912064">அதிகபட்ச அளவு 250 கி.பை. என்பதால், பெரிய PPDஐ ஏற்ற முடியாது.</translation> <translation id="7100897339030255923"><ph name="COUNT" /> உருப்படிகள் தேர்ந்தெடுக்கப்பட்டுள்ளன.</translation> @@ -3972,7 +3975,6 @@ <translation id="7168109975831002660">குறைந்தபட்ச எழுத்துரு அளவு</translation> <translation id="7170041865419449892">வரம்புக்கு வெளியே</translation> <translation id="7171559745792467651">உங்களின் பிற சாதனங்களிலிருந்து பயன்பாடுகளை நிறுவவும்</translation> -<translation id="7173917244679555">இந்தப் பெயரைக் கொண்ட பயனரை நீங்கள் ஏற்கனவே நிர்வகிப்பது போல் தெரிகிறது. இந்தச் சாதனத்தில் <ph name="BEGIN_LINK" /><ph name="PROFILE_NAME" />ஐ இறக்க<ph name="END_LINK" /> விரும்புகிறீர்களா?</translation> <translation id="7175037578838465313"><ph name="NAME" />ஐ உள்ளமை</translation> <translation id="7175353351958621980">இதிலிருந்து ஏற்றப்பட்டது:</translation> <translation id="7180611975245234373">புதுப்பி</translation> @@ -4138,7 +4140,6 @@ <translation id="7444726222535375658">Hangouts Meetஐத் திறக்கவும்</translation> <translation id="7444983668544353857"><ph name="NETWORKDEVICE" /> ஐ முடக்கு</translation> <translation id="7445682342344043969">பாப் அப்கள் தடுக்கப்பட்டுள்ளன</translation> -<translation id="744859430125590922"><ph name="CUSTODIAN_EMAIL" /> இலிருந்து இவர் பார்வையிடுகின்ற இணையதளங்களைக் கட்டுப்படுத்து மற்றும் காட்டு.</translation> <translation id="7453008956351770337">இந்தப் பிரிண்டரைத் தேர்ந்தெடுப்பதன் மூலம், பின்வரும் நீட்டிப்பு உங்கள் பிரிண்டரை அணுகுவதற்கான அனுமதியை வழங்குகிறீர்கள்:</translation> <translation id="7453467225369441013">பெரும்பாலான தளங்களிலிருந்து உங்களை வெளியேற்றும். உங்கள் Google கணக்கிலிருந்து வெளியேற்றாது.</translation> <translation id="7456142309650173560">dev</translation> @@ -4310,7 +4311,6 @@ <translation id="7717845620320228976">புதுப்பிப்புகளைத் தேடு</translation> <translation id="7719367874908701697">பக்கத்தின் அளவு</translation> <translation id="771953673318695590">QA</translation> -<translation id="7720375555307821262">இவரைக் கண்காணிக்க, <ph name="BEGIN_LINK" />Chrome இல் உள்நுழையவும்<ph name="END_LINK" />.</translation> <translation id="7721179060400456005">ஒன்றுக்கும் மேற்பட்ட திரைகளில் சாளரங்களைக் காட்ட அனுமதி</translation> <translation id="7722040605881499779">புதுப்பிப்பதற்குத் தேவைப்படும் இடம்: <ph name="NECESSARY_SPACE" /></translation> <translation id="7724603315864178912">வெட்டு</translation> @@ -4382,6 +4382,24 @@ <ph name="LINE_BREAK2" /> குறைவான படங்களைத் தேர்ந்தெடுத்து முயலவும்.</translation> <translation id="782590969421016895">தற்போதைய பக்கங்களைப் பயன்படுத்து</translation> +<translation id="7826790948326204519"><ph name="BEGIN_H3" />பிழைதிருத்த அம்சங்கள்<ph name="END_H3" /> + <ph name="BR" /> + உங்கள் சாதனத்தில் தனிப்பயன் குறியீட்டை நிறுவி, சோதனை செய்வதற்கு, Chrome OS சாதனத்தில் பிழைதிருத்த அம்சங்களை இயக்கலாம். இதனால் உங்களுக்குக் கிடைக்கும் அனுமதிகள்:<ph name="BR" /> + <ph name="BEGIN_LIST" /> + <ph name="LIST_ITEM" />OS கோப்புகளை மாற்றக்கூடிய rootfs சரிபார்ப்பை அகற்றலாம் + <ph name="LIST_ITEM" />சாதனத்தை அணுக, <ph name="BEGIN_CODE" />'கிராஸ் ஃபிளாஷ்'<ph name="END_CODE" /> போன்ற கருவிகளைப் பயன்படுத்தக்கூடிய, வழக்கமான சோதனை விசைகளைப் பயன்படுத்தி, சாதனத்தின் SSH அணுகலை இயக்கலாம் + <ph name="LIST_ITEM" />USB டிரைவிலிருந்து OS பிரதியை நிறுவக்கூடிய USB இலிருந்து பூட் செய்வதை இயக்கலாம் + <ph name="LIST_ITEM" />சாதனத்தில் கைமுறையாக SSH செய்யக்கூடிய, dev மற்றும் முறைமை ரூட் உள்நுழைவுக் கடவுச்சொல் ஆகிய இரண்டையும் தனிப்பயன் மதிப்பிற்கு அமைக்கலாம் + <ph name="END_LIST" /> + <ph name="BR" /> + ஒருமுறை இயக்கப்பட்டால், பெரும்பாலான பிழைதிருத்த அம்சங்கள், நிறுவனத்தால் நிர்வகிக்கப்படும் சாதனத்தில் பவர்வாஷ் அல்லது தரவை அழித்த பிறகும் கூட இயக்கப்பட்டே இருக்கும். பிழைதிருத்த அம்சங்களை முழுமையாக முடக்க, Chrome OS மீட்டெடுப்புச் செயல்முறையை மேற்கொள்ளவும் (https://support.google.com/chromebook/answer/1080595). + <ph name="BR" /> + <ph name="BR" /> + பிழைதிருத்த அம்சங்களைப் பற்றிய மேலும் தகவல்களுக்கு இந்த இணைப்பைப் பார்க்கவும்:<ph name="BR" /> + https://www.chromium.org/chromium-os/how-tos-and-troubleshooting/debugging-features + <ph name="BR" /> + <ph name="BR" /> + <ph name="BEGIN_BOLD" />குறிப்பு:<ph name="END_BOLD" /> செயல்முறையின் போது சாதனம் மறுதொடக்கம் செய்யப்படும்.</translation> <translation id="7829298379596169484">ஆடியோ உள்ளீட்டை அணுகுகிறது</translation> <translation id="7831491651892296503">நெட்வொர்க்கை உள்ளமைப்பதில் பிழை</translation> <translation id="7831754656372780761"><ph name="TAB_TITLE" /> <ph name="EMOJI_MUTING" /></translation> @@ -4446,6 +4464,7 @@ <translation id="7912080627461681647">சேவையகத்தில் உங்கள் கடவுச்சொல் மாற்றப்பட்டது. வெளியேறி, மீண்டும் உள்நுழையவும்.</translation> <translation id="7912883689016444961">மொபைல் நெட்வொர்க்கை உள்ளமை</translation> <translation id="7915471803647590281">மறுமொழி அனுப்புவதற்கு முன், என்ன நடந்துகொண்டிருக்கிறது என்பதை எங்களிடம் தெரியப்படுத்துங்கள்.</translation> +<translation id="7916556741383518510">கிளிக் செய்யும் போது</translation> <translation id="792514962475806987">டாக் செய்யப்பட்ட பெரிதாக்கியின் அளவை மாற்றுவதற்கான நிலை:</translation> <translation id="7925247922861151263">AAA சோதனை தோல்வியுற்றது</translation> <translation id="7925285046818567682"><ph name="HOST_NAME" /> க்காக காத்திருக்கிறது...</translation> @@ -4486,6 +4505,7 @@ <translation id="7978412674231730200">தனிப்பட்ட விசை</translation> <translation id="7979036127916589816">ஒத்திசைவு பிழை</translation> <translation id="7980084013673500153">பண்புக்கூறு ஐடி: <ph name="ASSET_ID" /></translation> +<translation id="7981313251711023384">மிக விரைவான உலாவலுக்காகவும் தேடலிற்காகவும் பக்கங்களை முன்னதாக ஏற்றும்</translation> <translation id="7982083145464587921">இந்தப் பிழையைச் சரிசெய்ய உங்கள் சாதனத்தை மறுதொடக்கம் செய்யவும்.</translation> <translation id="7982283708762922719">உயரம்</translation> <translation id="7982789257301363584">நெட்வொர்க்</translation> @@ -4891,6 +4911,7 @@ <translation id="8651585100578802546">இந்தப் பக்கத்தைக் கட்டாயமாக மீண்டும் ஏற்று</translation> <translation id="8652400352452647993">தொகுப்பு நீட்டிப்புப் பிழை</translation> <translation id="8652487083013326477">பக்க வரம்பு ரேடியோ பொத்தான்</translation> +<translation id="8653292045957015650">டாக் செய்யப்பட்ட பெரிதாக்கியை நிலைமாற்றும்</translation> <translation id="8654151524613148204">உங்கள் கணினியில் கையாளுவதற்கான கோப்பு மிகப்பெரியதாக உள்ளது. மன்னிக்கவும்.</translation> <translation id="8655295600908251630">சேனல்</translation> <translation id="8655319619291175901">அச்சச்சோ, ஏதோ தவறு ஏற்பட்டது.</translation> @@ -4982,6 +5003,7 @@ <translation id="8757803915342932642">Google கிளவுடு சாதனங்களில் உள்ள சாதனம்</translation> <translation id="8759408218731716181">பல உள்நுழைவை அமைக்க முடியாது</translation> <translation id="8759753423332885148">மேலும் அறிக.</translation> +<translation id="8762207669047572135">அணுகலை அனுமதி</translation> <translation id="8767621466733104912">எல்லாப் பயனர்களுக்கும் தானாகவே Chromeஐப் புதுப்பி</translation> <translation id="8770406935328356739">நீட்டிப்பு மூலக் கோப்பகம்</translation> <translation id="8770507190024617908">நபர்களை நிர்வகி</translation> @@ -5111,7 +5133,9 @@ <translation id="8976520271376534479">இந்தப் பக்கத்தில் Flash தடுக்கப்பட்டுள்ளது.</translation> <translation id="8977811652087512276">தவறான கடவுச்சொல் அல்லது சிதைந்த கோப்பு</translation> <translation id="8978154919215542464">இயக்கத்திலுள்ளது - அனைத்தையும் ஒத்திசை</translation> +<translation id="897939795688207351"><ph name="ORIGIN" /> இல்</translation> <translation id="8980951173413349704"><ph name="WINDOW_TITLE" /> - சிதைந்துவிட்டது</translation> +<translation id="8983677657449185470">பாதுகாப்பான உலாவலை மேம்படுத்த உதவு</translation> <translation id="8986362086234534611">மற</translation> <translation id="8986494364107987395">பயன்பாட்டுப் புள்ளிவிவரங்களையும் சிதைவு அறிக்கைகளையும் தானாகவே Google க்கு அனுப்பு</translation> <translation id="8987927404178983737">மாதம்</translation> @@ -5120,6 +5144,7 @@ <translation id="8995603266996330174"><ph name="DOMAIN" /> ஆல் நிர்வகிக்கப்படுகிறது</translation> <translation id="8996526648899750015">கணக்கைச் சேர்...</translation> <translation id="8997135628821231"><ph name="ISSUED_BY" /> [<ph name="ISSUED_TO" />] (<ph name="DEVICE" />)</translation> +<translation id="8998788483361403036">டிஸ்க் பிரதியை உருவாக்குகிறது.</translation> <translation id="9003647077635673607">எல்லா இணையதளங்களிலும் அனுமதி</translation> <translation id="9003677638446136377">மீண்டும் சரிபார்க்கவும்</translation> <translation id="9003704114456258138">அதிர்வெண்</translation> @@ -5140,7 +5165,6 @@ <translation id="9024331582947483881">முழுத்திரை</translation> <translation id="9025098623496448965">சரி, மீண்டும் என்னை உள்நுழைவுத் திரைக்குக் கொண்டு செல்</translation> <translation id="9026731007018893674">பதிவிறக்கு</translation> -<translation id="9027146684281895941">எனது Google கணக்கிலிருந்து இந்தப் பயனர் பார்வையிடும் இணையதளங்களைக் கட்டுப்படுத்தவும் காட்டவும் இந்தப் பயனரைக் கண்காணி.</translation> <translation id="9027459031423301635">இணைப்பை புதிய &தாவலில் திற</translation> <translation id="9027603907212475920">sync ஐ அமை...</translation> <translation id="9030515284705930323">உங்கள் கணக்கிற்கு Google Play ஸ்டோர் அணுகலை உங்கள் நிறுவனம் இயக்கவில்லை. மேலும் தகவலுக்கு, உங்கள் நிர்வாகியைத் தொடர்புகொள்ளவும்.</translation> @@ -5156,6 +5180,7 @@ <translation id="9042893549633094279">தனியுரிமை மற்றும் பாதுகாப்பு</translation> <translation id="904451693890288097">"<ph name="DEVICE_NAME" />" க்கான கடவுக்குறியீட்டை உள்ளிடுக:</translation> <translation id="9044646465488564462">பிணையத்துடன் இணைப்பதில் தோல்வி: <ph name="DETAILS" /></translation> +<translation id="9045430190527754450">Google இல் அடைய முயற்சி செய்யும் பக்கத்தின் இணைய முகவரியை அனுப்பும்</translation> <translation id="9046895021617826162">இணைப்பு தோல்வியடைந்தது</translation> <translation id="9050666287014529139">கடவுச்சொற்றொடர்</translation> <translation id="9052208328806230490"><ph name="CLOUD_PRINT_NAME" /> உடன் <ph name="EMAIL" /> கணக்கைப் பயன்படுத்தி உங்கள் பிரிண்டர்களைப் பதிவு செய்துள்ளீர்கள்</translation>
diff --git a/chrome/app/resources/generated_resources_te.xtb b/chrome/app/resources/generated_resources_te.xtb index 87a5a33..ef7ffc4 100644 --- a/chrome/app/resources/generated_resources_te.xtb +++ b/chrome/app/resources/generated_resources_te.xtb
@@ -42,7 +42,6 @@ <translation id="1056898198331236512">హెచ్చరిక</translation> <translation id="1058262162121953039">PUK</translation> <translation id="1062407476771304334">భర్తీ చేయి</translation> -<translation id="1062866675591297858"><ph name="BEGIN_LINK" />పర్యవేక్షించబడే వినియోగదారుల డాష్బోర్డ్<ph name="END_LINK" /> ద్వారా మీ పర్యవేక్షించబడే వినియోగదారులను నిర్వహించండి.</translation> <translation id="1064835277883315402">వ్యక్తిగత నెట్వర్క్లో చేరండి</translation> <translation id="1064912851688322329">మీ Google ఖాతాను డిస్కనెక్ట్ చేస్తుంది</translation> <translation id="1067048845568873861">సృష్టించబడింది</translation> @@ -63,7 +62,6 @@ <translation id="1091767800771861448">దాటవేయడానికి ESCAPEను నొక్కండి (అనధికార బిల్డ్లకు మాత్రమే)</translation> <translation id="1093457606523402488">కనిపిస్తున్న నెట్వర్క్లు:</translation> <translation id="1094607894174825014">దీనిలో చెల్లని ఆఫ్సెట్తో చదివే లేదా వ్రాసే చర్య అభ్యర్థించబడింది: "<ph name="DEVICE_NAME" />".</translation> -<translation id="1097507499312291972">ఈ వ్యక్తి సందర్శించిన వెబ్సైట్లను నియంత్రించడానికి మరియు వీక్షించడానికి <ph name="BEGIN_SIGN_IN_LINK" />సైన్ ఇన్ చేయండి<ph name="END_SIGN_IN_LINK" />.</translation> <translation id="109758035718544977">సైట్లను అన్మ్యూట్ చేయండి</translation> <translation id="1097658378307015415">సైన్ ఇన్ చేయడానికి ముందుగా, దయచేసి <ph name="NETWORK_ID" /> నెట్వర్క్ను సక్రియం చేయడానికి అతిథి వలె ప్రవేశించండి</translation> <translation id="1103523840287552314">ఎల్లప్పుడూ <ph name="LANGUAGE" />ను అనువదించు</translation> @@ -241,7 +239,6 @@ <translation id="1361655923249334273">ఉపయోగించనిది</translation> <translation id="1363028406613469049">ట్రాక్ చేయండి</translation> <translation id="1367951781824006909">ఒక ఫైల్ని ఎంచుకోండి</translation> -<translation id="136802136832547685">ఈ పరికరానికి జోడించేందుకు పర్యవేక్షిత వినియోగదారులు ఎవరూ లేరు.</translation> <translation id="1368265273904755308">సమస్యను నివేదించు</translation> <translation id="1370646789215800222">వ్యక్తిని తీసివేయాలా?</translation> <translation id="1372681413396468867">{NUM_ITEMS,plural, =1{1 అంశం తీసివేయబడాలి}other{# అంశాలు తీసివేయబడాలి}}</translation> @@ -469,7 +466,6 @@ <translation id="1692799361700686467">బహుళ సైట్ల నుండి కుకీలు అనుమతించబడ్డాయి.</translation> <translation id="169515659049020177">Shift</translation> <translation id="1698122934742150150">ప్రస్తుత అజ్ఞాత సెషన్కు మాత్రమే</translation> -<translation id="1700199471143028312">మీ నిర్వాహకులు పర్యవేక్షించబడే వినియోగదారులను సృష్టించడానికి మిమ్మల్ని అనుమతించలేదు.</translation> <translation id="1701062906490865540">ఈ వ్యక్తిని తీసివేయి</translation> <translation id="1706586824377653884">మీ నిర్వాహకులు జోడించారు</translation> <translation id="1706625117072057435">జూమ్ స్థాయిలు</translation> @@ -1035,7 +1031,6 @@ <translation id="2604255671529671813">నెట్వర్క్ కనెక్షన్ ఎర్రర్</translation> <translation id="2606246518223360146">డేటాను లింక్ చేయి</translation> <translation id="2607101320794533334">విషయం పబ్లిక్ కీ సమాచారం</translation> -<translation id="2607459012323956820">ఈ పర్యవేక్షించబడే వినియోగదారు సెట్టింగ్లు మరియు బ్రౌజింగ్ చరిత్ర ఇప్పటికీ <ph name="BEGIN_LINK" /><ph name="DISPLAY_LINK" /><ph name="END_LINK" />లో నిర్వాహకుడికి కనిపిస్తుండవచ్చు.</translation> <translation id="2608770217409477136">ఢీఫాల్ట్ సెట్టింగ్లను ఉపయోగించండి</translation> <translation id="2609896558069604090">సత్వరమార్గాలను సృష్టించండి...</translation> <translation id="2610157865375787051">నిద్రావస్థ</translation> @@ -1328,15 +1323,6 @@ <translation id="3022978424994383087">అది పూర్తి కాలేదు.</translation> <translation id="3024374909719388945">24-గంటల గడియారాన్ని ఉపయోగించండి</translation> <translation id="302781076327338683">దాటవేసే కాష్ని మళ్లీ లోడ్ చేయండి</translation> -<translation id="3030243755303701754">పర్యవేక్షించబడే వినియోగదారు మీ మార్గదర్శకత్వంతో వెబ్లో అన్వేషించగలరు. Chromeలో పర్యవేక్షించబడే వినియోగదారుని నిర్వాహకుడిగా, మీరు: - - • నిర్దిష్ట వెబ్సైట్లను అనుమతించగలరు లేదా నిషేధించగలరు, - • పర్యవేక్షించబడే వినియోగదారు సందర్శించిన వెబ్సైట్లను సమీక్షించగలరు మరియు - • ఇతర సెట్టింగ్లను నిర్వహించగలరు. - -పర్యవేక్షించబడే వినియోగదారుని సృష్టించడం వలన Google ఖాతా సృష్టించబడదు మరియు వారి బుక్మార్క్లు, బ్రౌజింగ్ చరిత్ర మరియు ఇతర ప్రాధాన్యతలు Chrome సమకాలీకరణతో ఇతర పరికరాలకు తరలించబడవు. మీరు కొత్త పర్యవేక్షించబడే వినియోగదారుని సృష్టించిన తర్వాత, వారి సెట్టింగ్లను ఏ సమయంలోనైనా, ఏ పరికరం నుండైనా <ph name="BEGIN_MANAGE_LINK" /><ph name="DISPLAY_LINK" /><ph name="END_MANAGE_LINK" />లో నిర్వహించవచ్చు. - -మరింత సమాచారం కోసం, మా <ph name="BEGIN_LINK" />సహాయ కేంద్రాన్ని<ph name="END_LINK" /> సందర్శించండి.</translation> <translation id="3031417829280473749">ఏజెంట్ X</translation> <translation id="3031557471081358569">దిగుమతి చెయ్యడానికి ఐటమ్లను ఎంచుకోండి:</translation> <translation id="3031601332414921114">ముద్రణను పునఃప్రారంభించు</translation> @@ -1377,7 +1363,6 @@ <translation id="3085412380278336437">సైట్ మీ కెమెరాని ఉపయోగించవచ్చు</translation> <translation id="3085752524577180175">SOCKS హోస్ట్</translation> <translation id="3088325635286126843">&పేరుమార్చు...</translation> -<translation id="3089231390674410424">మీ ఆధారాలతో సమస్య ఉన్నట్లుగా కనిపిస్తోంది. దయచేసి మీరు సరిగ్గా సైన్ ఇన్ చేసినట్లు నిర్ధారించుకుని, ఆపై మళ్లీ ప్రయత్నించండి.</translation> <translation id="3090193911106258841">ఆడియో మరియు వీడియో ఇన్పుట్ ప్రాప్యత చేయబడుతోంది</translation> <translation id="3090819949319990166">బాహ్య crx ఫైల్ను <ph name="TEMP_CRX_FILE" />కి కాపీ చేయడం సాధ్యపడదు.</translation> <translation id="3090871774332213558">"<ph name="DEVICE_NAME" />" జత చేయబడింది</translation> @@ -1392,7 +1377,6 @@ <translation id="3121793941267913344">ఈ <ph name="IDS_SHORT_PRODUCT_NAME" /> పరికరాన్ని రీసెట్ చేయండి</translation> <translation id="3122464029669770682">CPU</translation> <translation id="3122496702278727796">డేటా డైరెక్టరీని సృష్టించడంలో విఫలమైంది</translation> -<translation id="3123569374670379335">(పర్యవేక్షించబడింది)</translation> <translation id="3124111068741548686">వినియోగదారు నిర్వహించేవి</translation> <translation id="3126026824346185272">Ctrl</translation> <translation id="3127156390846601284">దీని వలన చూపబడిన అన్ని సైట్ల కోసం మీ పరికరంలో నిల్వ చేయబడిన ఏ డేటా అయినా తొలగించబడుతుంది. మీరు కొనసాగించదలిచారా?</translation> @@ -1427,8 +1411,6 @@ <translation id="3160842278951476457"><ph name="ISSUED_BY" /> [<ph name="ISSUED_TO" />] (హార్డ్వేర్ భద్రత కలిగినది)</translation> <translation id="316125635462764134">అనువర్తనాన్ని తీసివేయి</translation> <translation id="3161522574479303604">అన్ని భాషలు</translation> -<translation id="316307797510303346">ఈ వ్యక్తి <ph name="CUSTODIAN_EMAIL" /> నుండి సందర్శించే వెబ్సైట్లను నియంత్రించండి మరియు వీక్షించండి. - మీ ఖాతా సైన్-ఇన్ వివరాలు చాలా పాతవి.</translation> <translation id="3165390001037658081">కొన్ని క్యారియర్లు ఈ లక్షణాన్ని బ్లాక్ చేయవచ్చు.</translation> <translation id="316854673539778496">మీ అన్ని పరికరాలలో మీ అన్ని ఎక్స్టెన్షన్లను పొందాలంటే, సైన్ ఇన్ చేసి, సమకాలీకరణను ఆన్ చేయండి.</translation> <translation id="3170072451822350649">మీరు సైన్ ఇన్ చేయడాన్ని కూడా దాటవేయవచ్చు మరియు <ph name="LINK_START" />అతిథిగా బ్రౌజ్ చేయవచ్చు<ph name="LINK_END" />.</translation> @@ -1460,7 +1442,6 @@ <translation id="3229922550070982305">ప్లే / పాజ్ చేయి</translation> <translation id="3232318083971127729">విలువ:</translation> <translation id="3236289833370040187">యాజమాన్యం <ph name="DESTINATION_DOMAIN" />కి బదిలీ చేయబడుతుంది.</translation> -<translation id="3237784613213365159"><ph name="NEW_PROFILE_NAME" /> ఇప్పుడు పర్యవేక్షించబడే వినియోగదారు</translation> <translation id="323803881985677942">పొడిగింపు ఎంపికలను తెరువు</translation> <translation id="3241680850019875542">ప్యాక్ చెయ్యడానికి పొడిగింపు యొక్క మూలం డైరెక్టరీని ఎంచుకోండి. ఒక పొడిగింపును నవీకరించడానికి, మళ్ళీ ఉపయోగించడానికి వ్యక్తిగత కీ ఫైల్ను కూడా ఎంచుకోండి.</translation> <translation id="3242765319725186192">ముందే-భాగస్వామ్యించిన కీ:</translation> @@ -1823,7 +1804,6 @@ <translation id="3778152852029592020">డౌన్లోడ్ చేయడం రద్దు చేయబడింది.</translation> <translation id="3778740492972734840">డెవలపర్ ఉపకరణాలు</translation> <translation id="3778868487658107119">దీన్ని ప్రశ్నలు అడగండి. కార్యాచరణలు చేయమని ఆదేశించండి. ఇది మీ వ్యక్తిగతమైన Google, ఎల్లవేళలా సహాయం చేయడానికి సిద్ధంగా ఉంటుంది.</translation> -<translation id="3780663724044634171">పర్యవేక్షిత వినియోగదారును నిర్వహించడానికి ఖాతాను ఎంచుకోండి.</translation> <translation id="378312418865624974">ఈ కంప్యూటర్ కోసం ప్రత్యేక ఐడెంటిఫైయర్ని చదవడం</translation> <translation id="3783640748446814672">alt</translation> <translation id="3785308913036335955">అనువర్తనాల సత్వరమార్గాన్ని చూపు</translation> @@ -2541,7 +2521,6 @@ <translation id="4964455510556214366">అమరిక</translation> <translation id="4964673849688379040">తనిఖీ చేస్తోంది...</translation> <translation id="4965808351167763748">మీరు Hangouts సమావేశాన్ని అమలు చేయడానికి ఈ పరికరాన్ని ఖచ్చితంగా సెటప్ చేయాలనుకుంటున్నారా?</translation> -<translation id="4967749818080339523">ఖాతాను ఎంచుకోండి</translation> <translation id="496888482094675990">ఫైల్ల అనువర్తనం మీరు Google డిస్క్, బాహ్య నిల్వ లేదా మీ Chrome OS పరికరంలో సేవ్ చేసిన ఫైల్లకు శీఘ్ర ప్రాప్యతను అందిస్తుంది.</translation> <translation id="4969785127455456148">ఆల్బమ్</translation> <translation id="4971412780836297815">పూర్తవగానే తెరువు</translation> @@ -3372,7 +3351,6 @@ <translation id="6241530762627360640">మీ సిస్టమ్తో జత చేయబడిన బ్లూటూత్ పరికరాలకు సంబంధించిన సమాచారాన్ని ప్రాప్యత చేయడానికి మరియు సమీపంలోని బ్లూటూత్ పరికరాలను కనుగొనడానికి అనుమతి.</translation> <translation id="6243280677745499710">ప్రస్తుతం సెట్ చేసినది</translation> <translation id="6243774244933267674">సర్వర్ అందుబాటులో లేదు</translation> -<translation id="6246413617632217567">పర్యవేక్షిత వినియోగదారుని దిగుమతి చేయడం సాధ్యపడలేదు. దయచేసి మీ హార్డ్ డ్రైవ్ ఖాళీ మరియు అనుమతులను తనిఖీ చేసి, ఆపై మళ్లీ ప్రయత్నించండి.</translation> <translation id="6247708409970142803"><ph name="PERCENTAGE" />%</translation> <translation id="6247802389331535091">సిస్టమ్: <ph name="ARC_PROCESS_NAME" /></translation> <translation id="624789221780392884">నవీకరణ సిద్ధంగా ఉంది</translation> @@ -3571,7 +3549,6 @@ <translation id="654039047105555694"><ph name="BEGIN_BOLD" />గమనిక:<ph name="END_BOLD" /> డేటా సేకరణ వలన పనితీరు తగ్గవచ్చు అందువలన మీరు చేస్తున్నది మీకు తెలిసినప్పుడు లేదా ఇలా చేయాలని మీకు చెప్పినప్పుడు మాత్రమే ప్రారంభించండి.</translation> <translation id="654233263479157500">నావిగేషన్ లోపాలను పరిష్కరించడానికి సహాయం కోసం వెబ్ సేవను ఉపయోగించండి</translation> <translation id="6544215763872433504">మీ కోసం Google సమర్పిత వెబ్ బ్రౌజర్</translation> -<translation id="6545325945815270297"><ph name="BEGIN_LINK" />Chrome డాష్బోర్డ్<ph name="END_LINK" />లో మీ సమకాలీకరించిన డేటా మరియు పరికరాలను నిర్వహించండి.</translation> <translation id="6545665334409411530">పునరావృత రేటు</translation> <translation id="6545834809683560467">చిరునామా పట్టీలో లేదా అనువర్తన లాంచర్ శోధన పెట్టెలో టైప్ చేసే శోధనలను మరియు URLలను పూర్తి చేయడంలో సహాయకరంగా ఉండటానికి సూచన సేవను ఉపయోగించండి</translation> <translation id="6546686722964485737">WiMAX నెట్వర్క్లో చేరండి</translation> @@ -3586,7 +3563,6 @@ <translation id="6555810572223193255">క్లీనప్ ప్రస్తుతం అందుబాటులో లేదు</translation> <translation id="6556866813142980365">చర్య పునరావృతం</translation> <translation id="6558280019477628686">లోపం సంభవించింది. కొన్ని అంశాలు తొలగించబడకపోవచ్చు.</translation> -<translation id="6559580823502247193">(ఇప్పటికే ఈ పరికరంలో ఉన్నారు)</translation> <translation id="6561726789132298588">enter</translation> <translation id="656293578423618167">ఫైల్ పథం లేదా పేరు చాలా పొడవుగా ఉంది. దయచేసి చిన్న పేరుతో లేదా మరొక స్థానానికి సేవ్ చేయండి.</translation> <translation id="656398493051028875">"<ph name="FILENAME" />"ని తొలగిస్తోంది...</translation> @@ -3781,7 +3757,6 @@ <translation id="6862635236584086457">ఈ ఫోల్డర్లో సేవ్ చేసిన అన్ని ఫైల్లు ఆన్లైన్లో స్వయంచాలకంగా బ్యాకప్ చేయబడతాయి</translation> <translation id="6865313869410766144">స్వీయపూర్తి ఫారమ్ డేటా</translation> <translation id="686664946474413495">రంగు ఉష్ణోగ్రత</translation> -<translation id="6867678160199975333"><ph name="NEW_PROFILE_NAME" />కు మారు</translation> <translation id="6870888490422746447">దీనికి భాగస్వామ్యం చేసేందుకు అనువర్తనాన్ని ఎంచుకోండి:</translation> <translation id="6871644448911473373">OCSP ప్రతిస్పందనదారు: <ph name="LOCATION" /></translation> <translation id="6872781471649843364">మీరు నమోదు చేసిన పాస్వర్డ్ని సర్వర్ తిరస్కరించింది.</translation> @@ -3875,7 +3850,6 @@ <translation id="7018275672629230621">మీ బ్రౌజింగ్ చరిత్రని చదవడం మరియు మార్చడం</translation> <translation id="7019805045859631636">వేగంగా</translation> <translation id="7022562585984256452">మీ హోమ్ పేజీ సెట్ చేయబడింది.</translation> -<translation id="7025036625303002400">మీరు ఈ పేరుతో ఇప్పటికే పర్యవేక్షించబడే వినియోగదారుని కలిగి ఉన్నట్లు కనిపిస్తోంది.</translation> <translation id="7025190659207909717">మొబైల్ డేటా సేవ నిర్వహణ</translation> <translation id="7025325401470358758">తదుపరి పేన్</translation> <translation id="7027125358315426638">డేటాబేస్ పేరు:</translation> @@ -3924,7 +3898,6 @@ <translation id="7092106376816104">పాప్-అప్ మినహాయింపులు</translation> <translation id="7093434536568905704">GTK+</translation> <translation id="7093866338626856921">ఈ పేర్లు గల పరికరాలతో డేటాను ఇచ్చిపుచ్చుకోవడానికి అనుమతి: <ph name="HOSTNAMES" /></translation> -<translation id="7096108453481049031">పర్యవేక్షిత వినియోగదారును దిగుమతి చేయడం సాధ్యపడలేదు. దయచేసి మీ నెట్వర్క్ కనెక్షన్ను తనిఖీ చేసి, ఆపై మళ్లీ ప్రయత్నించండి.</translation> <translation id="7098447629416471489">సేవ్ చేసిన ఇతర శోధన ఇంజిన్లు ఇక్కడ కనిపిస్తాయి</translation> <translation id="7099337801055912064">పెద్ద PPDని లోడ్ చేయడం సాధ్యం కాదు. గరిష్ట పరిమాణం 250 kB.</translation> <translation id="7100897339030255923"><ph name="COUNT" /> అంశాలు ఎంచుకోబడ్డాయి</translation> @@ -3971,7 +3944,6 @@ <translation id="7168109975831002660">కనిష్ఠ ఫాంట్ పరిమాణం</translation> <translation id="7170041865419449892">పరిధిని దాటింది</translation> <translation id="7171559745792467651">మీ ఇతర పరికరాల నుండి యాప్లను ఇన్స్టాల్ చేయి</translation> -<translation id="7173917244679555">మీరు ఇప్పటికే ఈ పేరుతో వినియోగదారును నిర్వహిస్తున్నట్లు కనిపిస్తోంది. మీరు ఈ పరికరానికి <ph name="BEGIN_LINK" /><ph name="PROFILE_NAME" />ని దిగుమతి<ph name="END_LINK" /> చేయాలనుకుంటున్నారా?</translation> <translation id="7175037578838465313"><ph name="NAME" />ని కాన్ఫిగర్ చేయండి</translation> <translation id="7175353351958621980">దీని నుండి లోడ్ అయ్యింది:</translation> <translation id="7180611975245234373">రీఫ్రెష్ చేయి</translation> @@ -4143,7 +4115,6 @@ <translation id="7444726222535375658">Hangouts సమావేశానికి కొనసాగండి</translation> <translation id="7444983668544353857"><ph name="NETWORKDEVICE" />ను ఆపివెయ్యి</translation> <translation id="7445682342344043969">పాప్-అప్లు బ్లాక్ చేయబడ్డాయి</translation> -<translation id="744859430125590922">ఈ వ్యక్తి <ph name="CUSTODIAN_EMAIL" /> నుండి సందర్శించే వెబ్సైట్లను నియంత్రించండి మరియు వీక్షించండి.</translation> <translation id="7453008956351770337">ఈ ప్రింటర్ను ఎంచుకోవడం ద్వారా, మీరు మీ ప్రింటర్ని ప్రాప్యత చేయడానికి క్రింది పొడిగింపుకు అనుమతి ఇస్తున్నారు:</translation> <translation id="7453467225369441013">చాలా సైట్ల నుండి మిమ్మల్ని సైన్ అవుట్ చేస్తుంది. మీరు మీ Google ఖాతా నుండి సైన్ అవుట్ చేయబడరు.</translation> <translation id="7456142309650173560">డెవలపర్</translation> @@ -4317,7 +4288,6 @@ <translation id="7717845620320228976">నవీకరణల కోసం తనిఖీ చేయి</translation> <translation id="7719367874908701697">పేజీ జూమ్</translation> <translation id="771953673318695590">QA</translation> -<translation id="7720375555307821262">ఈ వ్యక్తిని పర్యవేక్షించడానికి, <ph name="BEGIN_LINK" />Chromeకి సైన్ ఇన్ చేయండి<ph name="END_LINK" />.</translation> <translation id="7721179060400456005">డిస్ప్లేల మేరకు విస్తరించేలా విండోలను అనుమతించు</translation> <translation id="7722040605881499779">అప్డేట్ చేయడానికి కావాల్సిన స్థలం: <ph name="NECESSARY_SPACE" /></translation> <translation id="7724603315864178912">కత్తిరించు</translation> @@ -5144,7 +5114,6 @@ <translation id="9024331582947483881">పూర్తి స్క్రీన్</translation> <translation id="9025098623496448965">సరే, నన్ను తిరిగి సైన్-ఇన్ స్క్రీన్కు తీసుకువెళ్లు</translation> <translation id="9026731007018893674">డౌన్లోడ్</translation> -<translation id="9027146684281895941">ఈ వ్యక్తి మీ Google ఖాతా నుండి సందర్శించే వెబ్సైట్లను నియంత్రించడానికి మరియు వీక్షించడానికి వీరిని పర్యవేక్షిస్తుంది.</translation> <translation id="9027459031423301635">లింక్ను క్రొత్త &టాబ్లో తెరువు</translation> <translation id="9027603907212475920">సమకాలీకరణను సెటప్ చేయి...</translation> <translation id="9030515284705930323">మీ సంస్థ మీ ఖాతా కోసం Google Play స్టోర్ని ప్రారంభించలేదు. మరింత సమాచారం కోసం మీ నిర్వాహకులను సంప్రదించండి.</translation>
diff --git a/chrome/app/resources/generated_resources_th.xtb b/chrome/app/resources/generated_resources_th.xtb index abe58945..795ad22 100644 --- a/chrome/app/resources/generated_resources_th.xtb +++ b/chrome/app/resources/generated_resources_th.xtb
@@ -42,7 +42,6 @@ <translation id="1056898198331236512">คำเตือน</translation> <translation id="1058262162121953039">PUK</translation> <translation id="1062407476771304334">แทนที่</translation> -<translation id="1062866675591297858">จัดการผู้ใช้ภายใต้การดูแลของคุณผ่าน<ph name="BEGIN_LINK" />หน้าแดชบอร์ดผู้ใช้ภายใต้การดูแล<ph name="END_LINK" /></translation> <translation id="1064835277883315402">เข้าร่วมเครือข่ายส่วนบุคคล</translation> <translation id="1064912851688322329">หยุดเชื่อมต่อบัญชี Google ของคุณ</translation> <translation id="1067048845568873861">สร้างแล้ว</translation> @@ -65,7 +64,6 @@ <translation id="1091767800771861448">กด ESCAPE เพื่อยกเลิก (รุ่นที่ไม่เป็นทางการเท่านั้น)</translation> <translation id="1093457606523402488">เครือข่ายที่แสดงตัว:</translation> <translation id="1094607894174825014">ได้รับคำขอการอ่านหรือเขียนที่มีออฟเซ็ตไม่ถูกต้องใน "<ph name="DEVICE_NAME" />"</translation> -<translation id="1097507499312291972"><ph name="BEGIN_SIGN_IN_LINK" />ลงชื่อเข้าใช้<ph name="END_SIGN_IN_LINK" />เพื่อควบคุมและดูเว็บไซต์ที่บุคคลนี้เข้าชม</translation> <translation id="109758035718544977">เปิดเสียงเว็บไซต์</translation> <translation id="1097658378307015415">ก่อนที่จะลงชื่อเข้าใช้ โปรดเข้าใช้ในฐานะผู้มาเยือนเพื่อเปิดใช้งานเครือข่าย <ph name="NETWORK_ID" /></translation> <translation id="1103523840287552314">แปลภาษา<ph name="LANGUAGE" />ทุกครั้ง</translation> @@ -244,7 +242,6 @@ <translation id="1361655923249334273">ไม่ได้ใช้</translation> <translation id="1363028406613469049">แทร็ก</translation> <translation id="1367951781824006909">เลือกไฟล์</translation> -<translation id="136802136832547685">ไม่มีผู้ใช้ภายใต้การดูแลที่จะเพิ่มลงในอุปกรณ์เครื่องนี้</translation> <translation id="1368265273904755308">รายงานปัญหา</translation> <translation id="1370646789215800222">นำบุคคลนี้ออกใช่ไหม</translation> <translation id="1372681413396468867">{NUM_ITEMS,plural, =1{1 รายการที่จะนำออก}other{# รายการที่จะนำออก}}</translation> @@ -472,7 +469,6 @@ <translation id="1692799361700686467">อนุญาตคุกกี้จากหลายไซต์</translation> <translation id="169515659049020177">Shift</translation> <translation id="1698122934742150150">เซสชันไม่ระบุตัวตนปัจจุบันเท่านั้น</translation> -<translation id="1700199471143028312">ผู้ดูแลระบบของคุณไม่อนุญาตให้คุณสร้างผู้ใช้ภายใต้การดูแล</translation> <translation id="1701062906490865540">นำบุคคลนี้ออก</translation> <translation id="1706586824377653884">เพิ่มโดยผู้ดูแลระบบ</translation> <translation id="1706625117072057435">ระดับการซูม</translation> @@ -1041,7 +1037,6 @@ <translation id="2604255671529671813">ข้อผิดพลาดในการเชื่อมต่อเครือข่าย</translation> <translation id="2606246518223360146">ลิงก์ข้อมูล</translation> <translation id="2607101320794533334">ข้อมูลหัวเรื่องคีย์สาธารณะ</translation> -<translation id="2607459012323956820">ผู้จัดการอาจยังคงสามารถดูประวัติการท่องเว็บและการตั้งค่าของผู้ใช้ภายใต้การดูแลนี้ได้ที่ <ph name="BEGIN_LINK" /><ph name="DISPLAY_LINK" /><ph name="END_LINK" /></translation> <translation id="2608770217409477136">ใช้การตั้งค่าเริ่มต้น</translation> <translation id="2609896558069604090">สร้างทางลัด...</translation> <translation id="2610157865375787051">สลีป</translation> @@ -1284,7 +1279,6 @@ <translation id="2951247061394563839">กลางหน้าต่าง</translation> <translation id="2956763290572484660">คุกกี้ <ph name="COOKIES" /> รายการ</translation> <translation id="2958721676848865875">คำเตือนเกี่ยวกับการรวมแพ็กเกจส่วนขยาย</translation> -<translation id="2961043351165706615">ระบบจะลบแอป Linux ที่คุณติดตั้งออกจาก Chromebook เครื่องนี้</translation> <translation id="2961090598421146107"><ph name="CERTIFICATE_NAME" /> (มีส่วนขยายให้มาด้วย)</translation> <translation id="2961695502793809356">คลิกเพื่อไปข้างหน้า กดค้างเพื่อดูประวัติการเข้าชม</translation> <translation id="2963151496262057773">ปลั๊กอินต่อไปนี้ไม่ตอบสนอง: <ph name="PLUGIN_NAME" />คุณต้องการหยุดปลั๊กอินดังกล่าวไหม</translation> @@ -1336,15 +1330,6 @@ <translation id="3022978424994383087">ฟังไม่เข้าใจ</translation> <translation id="3024374909719388945">ใช้เวลารูปแบบ 24 ชั่วโมง</translation> <translation id="302781076327338683">โหลดแคชการข้ามซ้ำ</translation> -<translation id="3030243755303701754">ผู้ใช้ภายใต้การดูแลสามารถสำรวจเว็บไปพร้อมกับการแนะนำของคุณได้ ในฐานะที่เป็นผู้จัดการของผู้ใช้ภายใต้การดูแลใน Chrome คุณสามารถ: - - • อนุญาตหรือไม่อนุญาตการเข้าถึงบางเว็บไซต์ได้ - • ตรวจสอบเว็บไซต์ที่ผู้ใช้ภายใต้การดูแลเข้าชม และ - • จัดการการตั้งค่าอื่นๆ - -การสร้างผู้ใช้ภายใต้การดูแลจะไม่สร้างบัญชี Google และบุ๊กมาร์ก ประวัติการเข้าชม และค่ากำหนดอื่นๆ จะไม่มีในอุปกรณ์เครื่องอื่นเมื่อใช้การซิงค์ของ Chrome หลังจากคุณสร้างผู้ใช้ภายใต้การดูแลใหม่ คุณสามารถจัดการการตั้งค่าของพวกเขาได้ทุกเมื่อจากทุกอุปกรณ์ที่ <ph name="BEGIN_MANAGE_LINK" /><ph name="DISPLAY_LINK" /><ph name="END_MANAGE_LINK" /> - -สำหรับข้อมูลเพิ่มเติม โปรดไปที่<ph name="BEGIN_LINK" />ศูนย์ช่วยเหลือ<ph name="END_LINK" /></translation> <translation id="3031417829280473749">เอเจนต์เอ็กซ์</translation> <translation id="3031557471081358569">เลือกรายการที่จะนำเข้าต่อไปนี้:</translation> <translation id="3031601332414921114">พิมพ์ต่อ</translation> @@ -1385,7 +1370,6 @@ <translation id="3085412380278336437">เว็บไซต์ใช้กล้องของคุณได้</translation> <translation id="3085752524577180175">โฮสต์ SOCKS</translation> <translation id="3088325635286126843">&เปลี่ยนชื่อ...</translation> -<translation id="3089231390674410424">ดูเหมือนว่าข้อมูลรับรองมีปัญหา โปรดตรวจสอบว่าคุณได้ลงชื่อเข้าใช้อย่างถูกต้องแล้วลองอีกครั้ง</translation> <translation id="3090193911106258841">กำลังเข้าถึงอินพุตเสียงและวิดีโอ</translation> <translation id="3090819949319990166">ไม่สามารถคัดลอกไฟล์ crx ภายนอกไปยัง <ph name="TEMP_CRX_FILE" /></translation> <translation id="3090871774332213558">จับคู่ "<ph name="DEVICE_NAME" />" แล้ว</translation> @@ -1400,7 +1384,6 @@ <translation id="3121793941267913344">รีเซ็ตอุปกรณ์ <ph name="IDS_SHORT_PRODUCT_NAME" /></translation> <translation id="3122464029669770682">CPU</translation> <translation id="3122496702278727796">การสร้างไดเรกทอรีข้อมูลล้มเหลว</translation> -<translation id="3123569374670379335">(อยู่ภายใต้การดูแล)</translation> <translation id="3124111068741548686">ผู้ใช้จัดการ</translation> <translation id="3126026824346185272">Ctrl</translation> <translation id="3127156390846601284">การดำเนินการนี้จะลบข้อมูลของเว็บไซต์ทั้งหมดที่แสดงซึ่งเก็บไว้ในอุปกรณ์ คุณต้องการดำเนินการต่อไหม</translation> @@ -1435,8 +1418,6 @@ <translation id="3160842278951476457"><ph name="ISSUED_BY" /> [<ph name="ISSUED_TO" />] (ใช้ฮาร์ดแวร์คีย์เข้ารหัสลับ)</translation> <translation id="316125635462764134">นำแอปออก</translation> <translation id="3161522574479303604">ทุกภาษา</translation> -<translation id="316307797510303346">ควบคุมและดูเว็บไซต์ที่บุคคลนี้เข้าชมจาก <ph name="CUSTODIAN_EMAIL" /> - รายละเอียดการลงชื่อเข้าใช้บัญชีของคุณล้าสมัยแล้ว</translation> <translation id="3165390001037658081">ผู้ให้บริการบางรายอาจบล็อกฟีเจอร์นี้</translation> <translation id="316854673539778496">ลงชื่อเข้าใช้และเปิดการซิงค์เพื่อรับส่วนขยายในอุปกรณ์ทุกเครื่องของคุณ</translation> <translation id="3170072451822350649">คุณสามารถข้ามการลงชื่อเข้าใช้และ<ph name="LINK_START" />เรียกดูในฐานะผู้เยี่ยมชม<ph name="LINK_END" />ได้ด้วย</translation> @@ -1469,7 +1450,6 @@ <translation id="3229922550070982305">เล่น / หยุดชั่วคราว</translation> <translation id="3232318083971127729">ค่า:</translation> <translation id="3236289833370040187">ระบบจะโอนการเป็นเจ้าของไปยัง <ph name="DESTINATION_DOMAIN" /></translation> -<translation id="3237784613213365159"><ph name="NEW_PROFILE_NAME" /> เป็นผู้ใช้ภายใต้การดูแลแล้ว</translation> <translation id="323803881985677942">เปิดตัวเลือกส่วนขยาย</translation> <translation id="3241680850019875542">เลือกไดเรกทอรีหลักของส่วนขยายที่จะแพค หากคุณต้องการอัปเดตส่วนขยาย ให้เลือกไฟล์กุญแจส่วนตัวที่จะใช้ซ้ำด้วย</translation> <translation id="3242765319725186192">Pre-shared key:</translation> @@ -1701,7 +1681,6 @@ <translation id="3584169441612580296">อ่านและเปลี่ยนแปลงรูปภาพ เพลง และสื่ออื่นๆ จากคอมพิวเตอร์ของคุณ</translation> <translation id="3587482841069643663">ทั้งหมด</translation> <translation id="358796204584394954">พิมพ์รหัสนี้บน "<ph name="DEVICE_NAME" />" เพื่อจับคู่:</translation> -<translation id="3589532742556016615">การเลือกนี้ไม่ส่งผลต่อแอปหรือเนื้อหาในอุปกรณ์อื่น</translation> <translation id="3589766037099229847">บล็อกเนื้อหาที่ไม่ปลอดภัย</translation> <translation id="3590194807845837023">ปลดล็อกโปรไฟล์และเปิดใหม่</translation> <translation id="3592260987370335752">&เรียนรู้เพิ่มเติม</translation> @@ -1835,7 +1814,6 @@ <translation id="3778152852029592020">การดาวน์โหลดถูกยกเลิก</translation> <translation id="3778740492972734840">&เครื่องมือสำหรับนักพัฒนาซอฟต์แวร์</translation> <translation id="3778868487658107119">ถามคำถามและบอกให้ทำสิ่งต่างๆ ได้เหมือนเป็น Google ส่วนตัวที่พร้อมช่วยเหลือคุณเสมอ</translation> -<translation id="3780663724044634171">เลือกบัญชีที่จะจัดการผู้ใช้ภายใต้การดูแล</translation> <translation id="378312418865624974">อ่านตัวระบุเฉพาะสำหรับคอมพิวเตอร์เครื่องนี้</translation> <translation id="3783640748446814672">alt</translation> <translation id="3785308913036335955">แสดงทางลัดแอป</translation> @@ -2563,7 +2541,6 @@ <translation id="4964455510556214366">การจัดเรียง</translation> <translation id="4964673849688379040">กำลังตรวจสอบ...</translation> <translation id="4965808351167763748">คุณแน่ใจไหมว่าต้องการตั้งค่าอุปกรณ์นี้ให้เรียกใช้การประชุม Hangouts </translation> -<translation id="4967749818080339523">เลือกบัญชี</translation> <translation id="496888482094675990">แอป Files มอบการเข้าถึงไฟล์ที่คุณบันทึกไว้ใน Google ไดรฟ์ พื้นที่เก็บข้อมูลภายนอก หรืออุปกรณ์ Chrome OS ของคุณอย่างรวดเร็ว</translation> <translation id="4969785127455456148">อัลบั้ม</translation> <translation id="4971412780836297815">เปิดเมื่อเสร็จสิ้น</translation> @@ -2750,7 +2727,6 @@ ไม่ว่าจะเกิดอะไรขึ้นกับอุปกรณ์ของคุณ ไฟล์จะได้รับการจัดเก็บไว้อย่างปลอดภัยใน Google ไดรฟ์<ph name="MARKUP_6" /> <ph name="MARKUP_7" />แชร์ สร้าง และทำงานร่วมกัน<ph name="MARKUP_8" /> กับผู้อื่นบนไฟล์ได้ทั้งหมดในที่เดียว<ph name="MARKUP_9" /></translation> -<translation id="5262401745672360397">ระบบอาจลบไฟล์ที่แชร์กับแอป Linux ด้วย</translation> <translation id="5264148714798105376">อาจใช้เวลาประมาณ 1 นาที</translation> <translation id="5264252276333215551">โปรดเชื่อมต่ออินเทอร์เน็ตเพื่อเปิดแอปในโหมดคีออสก์</translation> <translation id="5265562206369321422">ออฟไลน์นานกว่าหนึ่งสัปดาห์</translation> @@ -3402,7 +3378,6 @@ <translation id="6241530762627360640">เข้าถึงข้อมูลเกี่ยวกับอุปกรณ์บลูทูธที่จับคู่กับระบบของคุณ และสำรวจอุปกรณ์บลูทูธใกล้เคียง</translation> <translation id="6243280677745499710">วอลเปเปอร์ปัจจุบัน</translation> <translation id="6243774244933267674">เซิร์ฟเวอร์ไม่พร้อมใช้งาน</translation> -<translation id="6246413617632217567">ไม่สามารถนำเข้าผู้ใช้ภายใต้การดูแล โปรดตรวจสอบพื้นที่ว่างในฮาร์ดไดรฟ์และสิทธิ์ แล้วลองอีกครั้ง</translation> <translation id="6247708409970142803"><ph name="PERCENTAGE" />%</translation> <translation id="6247802389331535091">ระบบ: <ph name="ARC_PROCESS_NAME" /></translation> <translation id="624789221780392884">พร้อมอัปเดต</translation> @@ -3601,7 +3576,6 @@ <translation id="654039047105555694"><ph name="BEGIN_BOLD" />หมายเหตุ:<ph name="END_BOLD" /> เปิดใช้งานเฉพาะเมื่อคุณทราบว่าคุณกำลังทำอะไรอยู่ หรือเมื่อคุณถูกร้องขอให้ทำเช่นนั้นเท่านั้น เนื่องจากคอลเล็กชันข้อมูลอาจลดประสิทธิภาพในการปฏิบัติงาน</translation> <translation id="654233263479157500">ใช้บริการเว็บช่วยแก้ไขข้อผิดพลาดในการนำทาง</translation> <translation id="6544215763872433504">เว็บเบราว์เซอร์โดย Google สำหรับคุณ</translation> -<translation id="6545325945815270297">จัดการข้อมูลและอุปกรณ์ที่ซิงค์ของคุณใน<ph name="BEGIN_LINK" />หน้าแดชบอร์ดของ Chrome<ph name="END_LINK" /></translation> <translation id="6545665334409411530">อัตราการพิมพ์ซ้ำ</translation> <translation id="6545834809683560467">ใช้บริการคาดคะเนที่จะช่วยเติมข้อความค้นหาและ URL ที่พิมพ์ลงในแถบที่อยู่เว็บหรือช่องค้นหาของเครื่องเรียกใช้งานแอป</translation> <translation id="6546686722964485737">เข้าร่วมเครือข่าย Wimax</translation> @@ -3616,7 +3590,6 @@ <translation id="6555810572223193255">การทำความสะอาดไม่พร้อมใช้งานในขณะนี้</translation> <translation id="6556866813142980365">ทำซ้ำ</translation> <translation id="6558280019477628686">เกิดข้อผิดพลาด อาจไม่ได้ลบบางรายการ</translation> -<translation id="6559580823502247193">(อยู่บนอุปกรณ์นี้แล้ว)</translation> <translation id="6561726789132298588">ป้อน</translation> <translation id="656293578423618167">เส้นทางหรือชื่อของไฟล์ยาวเกินไป โปรดบันทึกด้วยชื่อที่สั้นกว่านี้หรือบันทึกลงในตำแหน่งอื่น</translation> <translation id="656398493051028875">กำลังลบ "<ph name="FILENAME" />"...</translation> @@ -3813,7 +3786,6 @@ <translation id="6862635236584086457">ไฟล์ทั้งหมดที่บันทึกไว้ในโฟลเดอร์นี้จะถูกสำรองข้อมูลแบบออนไลน์โดยอัตโนมัติ</translation> <translation id="6865313869410766144">ข้อมูลฟอร์มที่ป้อนอัตโนมัติ</translation> <translation id="686664946474413495">อุณหภูมิสี</translation> -<translation id="6867678160199975333">สลับเป็น <ph name="NEW_PROFILE_NAME" /></translation> <translation id="6870888490422746447">เลือกแอปเพื่อแชร์ไปยัง:</translation> <translation id="6871644448911473373">OCSP Responder: <ph name="LOCATION" /></translation> <translation id="6872781471649843364">เซิร์ฟเวอร์ปฏิเสธรหัสผ่านที่คุณป้อน</translation> @@ -3907,7 +3879,6 @@ <translation id="7018275672629230621">อ่านและเปลี่ยนแปลงประวัติการเข้าชม</translation> <translation id="7019805045859631636">เร็ว</translation> <translation id="7022562585984256452">ตั้งค่าหน้าแรกของคุณแล้ว</translation> -<translation id="7025036625303002400">ดูเหมือนว่าคุณมีผู้ใช้ภายใต้การดูแลที่ใช้ชื่อนี้อยู่แล้ว</translation> <translation id="7025190659207909717">การจัดการบริการดาต้าบนมือถือ</translation> <translation id="7025325401470358758">แผงถัดไป</translation> <translation id="7027125358315426638">ชื่อฐานข้อมูล:</translation> @@ -3956,7 +3927,6 @@ <translation id="7092106376816104">ข้อยกเว้นป๊อปอัป</translation> <translation id="7093434536568905704">GTK+</translation> <translation id="7093866338626856921">แลกเปลี่ยนข้อมูลกับอุปกรณ์ชื่อ <ph name="HOSTNAMES" /></translation> -<translation id="7096108453481049031">ไม่สามารถนำเข้าผู้ใช้ภายใต้การดูแล โปรดตรวจสอบการเชื่อมต่อเครือข่ายแล้วลองอีกครั้งในภายหลัง</translation> <translation id="7096406577040705016">สลับแว่นขยายทั้งหน้าจอ</translation> <translation id="7098447629416471489">เครื่องมือค้นหาอื่นๆ ที่บันทึกไว้จะแสดงที่นี่</translation> <translation id="7099337801055912064">โหลด PPD ขนาดใหญ่ไม่ได้ ขนาดต้องไม่เกิน 250 KB</translation> @@ -4004,7 +3974,6 @@ <translation id="7168109975831002660">ขนาดแบบอักษรขั้นต่ำ</translation> <translation id="7170041865419449892">อยู่นอกระยะสัญญาณ</translation> <translation id="7171559745792467651">ติดตั้งแอปจากอุปกรณ์อื่น</translation> -<translation id="7173917244679555">ดูเหมือนว่าคุณกำลังจัดการผู้ใช้ที่มีชื่อดังกล่าวอยู่แล้ว คุณต้องการ<ph name="BEGIN_LINK" />นำเข้า <ph name="PROFILE_NAME" /><ph name="END_LINK" /> มายังอุปกรณ์เครื่องนี้ไหม</translation> <translation id="7175037578838465313">กำหนดค่า <ph name="NAME" /></translation> <translation id="7175353351958621980">โหลดจาก:</translation> <translation id="7180611975245234373">รีเฟรช</translation> @@ -4176,7 +4145,6 @@ <translation id="7444726222535375658">ดำเนินการต่อไปยังการประชุม Hangouts </translation> <translation id="7444983668544353857">ปิดการใช้งาน<ph name="NETWORKDEVICE" /></translation> <translation id="7445682342344043969">บล็อกป๊อปอัป</translation> -<translation id="744859430125590922">ควบคุมและดูเว็บไซต์ที่บุคคลนี้เข้าชมจาก <ph name="CUSTODIAN_EMAIL" /></translation> <translation id="7453008956351770337">ในการเลือกเครื่องพิมพ์นี้ แสดงว่าคุณให้สิทธิ์การเข้าถึงเครื่องพิมพ์แก่ส่วนขยายต่อไปนี้:</translation> <translation id="7453467225369441013">นำคุณออกจากระบบของเว็บไซต์ส่วนใหญ่ แต่คุณจะไม่ออกจากระบบบัญชี Google</translation> <translation id="7456142309650173560">การพัฒนา</translation> @@ -4350,7 +4318,6 @@ <translation id="7717845620320228976">ตรวจสอบการอัปเดต</translation> <translation id="7719367874908701697">การซูมหน้า</translation> <translation id="771953673318695590">QA</translation> -<translation id="7720375555307821262"><ph name="BEGIN_LINK" />ลงชื่อเข้าใช้ Chrome<ph name="END_LINK" /> เพื่อดูแลบุคคลนี้</translation> <translation id="7721179060400456005">อนุญาตให้ขยายการแสดงหน้าต่างไปยังหลายหน้าจอ</translation> <translation id="7722040605881499779">จำเป็นสำหรับอัปเดต: <ph name="NECESSARY_SPACE" /></translation> <translation id="7724603315864178912">ตัด</translation> @@ -5205,7 +5172,6 @@ <translation id="9024331582947483881">เต็มหน้าจอ</translation> <translation id="9025098623496448965">ตกลง นำฉันกลับไปที่หน้าจอลงชื่อเข้าใช้</translation> <translation id="9026731007018893674">ดาวน์โหลด</translation> -<translation id="9027146684281895941">แนะนำบุคคลนี้ให้ควบคุมและดูเว็บไซต์ที่เขาเข้าถึงจากบัญชี Google ของคุณ</translation> <translation id="9027459031423301635">เปิดลิงก์ในแ&ท็บใหม่</translation> <translation id="9027603907212475920">ตั้งค่าการซิงค์ข้อมูล...</translation> <translation id="9030515284705930323">องค์กรของคุณยังไม่ได้เปิดใช้ Google Play Store สำหรับบัญชีของคุณ โปรดสอบถามข้อมูลเพิ่มเติมจากผู้ดูแลระบบ</translation> @@ -5365,7 +5331,6 @@ <translation id="98515147261107953">แนวนอน</translation> <translation id="987897973846887088">ไม่มีรูปภาพที่พร้อมใช้งาน</translation> <translation id="988978206646512040">ต้องระบุรหัสผ่าน</translation> -<translation id="990310048453480215">นำแอป Linux ออก</translation> <translation id="992032470292211616">ส่วนขยาย แอป และธีมอาจเป็นอันตรายต่ออุปกรณ์ของคุณ คุณแน่ใจไหมว่าต้องการดำเนินการต่อ</translation> <translation id="992592832486024913">ปิดใช้ ChromeVox (การตอบสนองด้วยเสียง)</translation> <translation id="994289308992179865">ว&นกลับ</translation>
diff --git a/chrome/app/resources/generated_resources_tr.xtb b/chrome/app/resources/generated_resources_tr.xtb index 33243348..b04a4de 100644 --- a/chrome/app/resources/generated_resources_tr.xtb +++ b/chrome/app/resources/generated_resources_tr.xtb
@@ -42,7 +42,6 @@ <translation id="1056898198331236512">Uyarı</translation> <translation id="1058262162121953039">PUK</translation> <translation id="1062407476771304334">Değiştir</translation> -<translation id="1062866675591297858">Denetlenen kullanıcılarınızı <ph name="BEGIN_LINK" />Denetlenen Kullanıcılar Gösterge Tablosu<ph name="END_LINK" /> aracılığıyla yönetin.</translation> <translation id="1064835277883315402">Özel ağa katıl</translation> <translation id="1064912851688322329">Google Hesabınızın bağlantısını kesin</translation> <translation id="1067048845568873861">Oluşturulduğu tarih</translation> @@ -65,7 +64,6 @@ <translation id="1091767800771861448">Atlamak için ESCAPE tuşuna basın (Yalnızca resmi olmayan sürümler).</translation> <translation id="1093457606523402488">Görünür Ağlar:</translation> <translation id="1094607894174825014">Şu cihazda geçersiz bir ofset değeriyle okuma veya yazma işlemi istendi: "<ph name="DEVICE_NAME" />".</translation> -<translation id="1097507499312291972">Bu kişinin ziyaret ettiği web sitelerini kontrol etmek ve görüntülemek için <ph name="BEGIN_SIGN_IN_LINK" />oturum açın<ph name="END_SIGN_IN_LINK" />.</translation> <translation id="109758035718544977">Sitelerin Sesini Aç</translation> <translation id="1097658378307015415">Oturum açmadan önce <ph name="NETWORK_ID" /> ağını etkinleştirmek için lütfen Misafir olarak giriş yapın</translation> <translation id="1103523840287552314"><ph name="LANGUAGE" /> dilini daima çevir</translation> @@ -244,7 +242,6 @@ <translation id="1361655923249334273">Kullanılmıyor</translation> <translation id="1363028406613469049">Takip numarası</translation> <translation id="1367951781824006909">Dosya seç</translation> -<translation id="136802136832547685">Bu cihaza eklenebilecek denetlenen kullanıcı yok.</translation> <translation id="1368265273904755308">Sorun bildir</translation> <translation id="1370646789215800222">Kişi kaldırılsın mı?</translation> <translation id="1372681413396468867">{NUM_ITEMS,plural, =1{1 öğe kaldırılacak}other{# öğe kaldırılacak}}</translation> @@ -472,7 +469,6 @@ <translation id="1692799361700686467">Birden çok siteden çerez almaya izin verildi.</translation> <translation id="169515659049020177">ÜstKrktr</translation> <translation id="1698122934742150150">Yalnızca geçerli gizli oturum</translation> -<translation id="1700199471143028312">Yöneticiniz, denetlenen kullanıcılar oluşturmanıza izin vermiyor.</translation> <translation id="1701062906490865540">Bu kişiyi kaldır</translation> <translation id="1706586824377653884">Yöneticiniz tarafından eklendi</translation> <translation id="1706625117072057435">Yakınlaştırma seviyeleri</translation> @@ -1041,7 +1037,6 @@ <translation id="2604255671529671813">Ağ bağlantısı hatası</translation> <translation id="2606246518223360146">Verileri Bağla</translation> <translation id="2607101320794533334">Konunun Genel Anahtar Bilgileri</translation> -<translation id="2607459012323956820">Bu denetlenen kullanıcıya ilişkin ayarlar ve göz atma geçmişi, <ph name="BEGIN_LINK" /><ph name="DISPLAY_LINK" /><ph name="END_LINK" /> adresinden yönetici tarafından görülmeye devam edilebilir.</translation> <translation id="2608770217409477136">Varsayılan ayarları kullan</translation> <translation id="2609896558069604090">Kısayol Oluştur...</translation> <translation id="2610157865375787051">Uyku</translation> @@ -1284,7 +1279,6 @@ <translation id="2951247061394563839">Pencereyi ortala</translation> <translation id="2956763290572484660"><ph name="COOKIES" /> çerez</translation> <translation id="2958721676848865875">Uzantı paketleme uyarısı</translation> -<translation id="2961043351165706615">Yüklemiş olduğunuz Linux uygulamaları bu Chromebook'tan silinecektir.</translation> <translation id="2961090598421146107"><ph name="CERTIFICATE_NAME" /> (süresi uzatıldı)</translation> <translation id="2961695502793809356">İlerlemek için tıkla, geçmişi görmek için tıklayıp tut</translation> <translation id="2963151496262057773">Aşağıdaki eklenti yanıt vermiyor: <ph name="PLUGIN_NAME" />Durdurmak ister misiniz?</translation> @@ -1336,15 +1330,6 @@ <translation id="3022978424994383087">Anlaşılmadı.</translation> <translation id="3024374909719388945">24 saatlik biçimi kullan</translation> <translation id="302781076327338683">Önbelleği atlayarak yeniden yükle</translation> -<translation id="3030243755303701754">Denetlenen bir kullanıcı web'i sizin rehberliğinizde keşfedebilir. Chrome'da denetlenen bir kullanıcının yöneticisi olarak şunları yapabilirsiniz: - - • belirli web sitelerine izin verebilir veya belirli siteleri yasaklayabilirsiniz, - • denetlenen kullanıcının ziyaret ettiği web sitelerini incleyebilirsiniz ve - • diğer ayarları yönetebilirsiniz. - -Denetlenen kullanıcı oluşturulduğunda ayrıca bir Google Hesabı oluşturulmaz. Denetlenen kullanıcıların yer işaretleri, göz atma geçmişleri ve diğer tercihleri Chrome Senkronizasyonu ile diğer cihazlarda kullanılmaz. Yeni bir denetlenen kullanıcı oluşturduktan sonra, istediğiniz zaman herhangi bir cihazda <ph name="BEGIN_MANAGE_LINK" /><ph name="DISPLAY_LINK" /><ph name="END_MANAGE_LINK" /> adresinden kullanıcının ayarlarını yönetebilirsiniz. - -Daha fazla bilgi için <ph name="BEGIN_LINK" />Yardım Merkezimizi<ph name="END_LINK" /> ziyaret edin.</translation> <translation id="3031417829280473749">Ajan X</translation> <translation id="3031557471081358569">İçe aktarılacak öğeleri seçin:</translation> <translation id="3031601332414921114">Yazdırma işlemini devam ettir</translation> @@ -1385,7 +1370,6 @@ <translation id="3085412380278336437">Site, kameranızı kullanabilir</translation> <translation id="3085752524577180175">SOCKS Ana Makinesi</translation> <translation id="3088325635286126843">&Yeniden adlandır…</translation> -<translation id="3089231390674410424">Kimlik bilgilerinizde bir sorun olduğu anlaşılıyor. Lütfen düzgün şekilde oturum açtığınızdan emin olun ve tekrar deneyin.</translation> <translation id="3090193911106258841">Ses ve video girişlerine erişiliyor</translation> <translation id="3090819949319990166">Harici crx dosyası <ph name="TEMP_CRX_FILE" /> hedefine kopyalanamıyor.</translation> <translation id="3090871774332213558">"<ph name="DEVICE_NAME" />" eşlendi</translation> @@ -1400,7 +1384,6 @@ <translation id="3121793941267913344">Bu <ph name="IDS_SHORT_PRODUCT_NAME" /> cihazını sıfırla</translation> <translation id="3122464029669770682">CPU</translation> <translation id="3122496702278727796">Veri Dizini Oluşturulamadı</translation> -<translation id="3123569374670379335">(Denetleniyor)</translation> <translation id="3124111068741548686">KULLANICI işleyicileri</translation> <translation id="3126026824346185272">Ctrl</translation> <translation id="3127156390846601284">Bu işlem, gösterilen tüm sitelerin cihazınıza kaydettiği tüm verileri silecek. Devam etmek istiyor musunuz?</translation> @@ -1435,8 +1418,6 @@ <translation id="3160842278951476457"><ph name="ISSUED_BY" /> [<ph name="ISSUED_TO" />] (donanım destekli)</translation> <translation id="316125635462764134">Uygulamayı kaldır</translation> <translation id="3161522574479303604">Tüm diller</translation> -<translation id="316307797510303346">Bu kişinin <ph name="CUSTODIAN_EMAIL" /> profili ile ziyaret ettiği web sitelerini kontrol et ve görüntüle. - Hesap oturum açma bilgileriniz güncel değil.</translation> <translation id="3165390001037658081">Bazı operatörler bu özelliği engelleyebilir.</translation> <translation id="316854673539778496">Tüm uzantılarınızı tüm cihazlarınızda almak için oturum açın ve senkronizasyonu etkinleştirin.</translation> <translation id="3170072451822350649">Ayrıca, oturum açmayı atlayabilir ve <ph name="LINK_START" />misafir olarak göz atabilirsiniz<ph name="LINK_END" />.</translation> @@ -1469,7 +1450,6 @@ <translation id="3229922550070982305">oynat / duraklat</translation> <translation id="3232318083971127729">Değer:</translation> <translation id="3236289833370040187">Sahiplik <ph name="DESTINATION_DOMAIN" /> alanına aktarılacak.</translation> -<translation id="3237784613213365159"><ph name="NEW_PROFILE_NAME" /> denetlenen kullanıcı olarak oluşturuldu</translation> <translation id="323803881985677942">Uzantı seçeneklerini aç</translation> <translation id="3241680850019875542">Paketlenecek uzantının kök dizinini seçin. Bir uzantıyı güncellemek için tekrar kullanılacak özel anahtar dosyasını da seçin.</translation> <translation id="3242765319725186192">Önceden paylaşılan anahtar:</translation> @@ -1701,7 +1681,6 @@ <translation id="3584169441612580296">Bilgisayarınızdaki fotoğrafları, müzikleri ve diğer medyaları okuma ve değiştirme</translation> <translation id="3587482841069643663">Tümü</translation> <translation id="358796204584394954">Eşlemek için "<ph name="DEVICE_NAME" />" cihazında şu kodu yazın:</translation> -<translation id="3589532742556016615">Bu işlem, diğer cihazlardaki uygulamaları veya içerikleri etkilemez.</translation> <translation id="3589766037099229847">Güvenli olmayan içerik engellendi</translation> <translation id="3590194807845837023">Profilin Kilidini Aç ve Tekrar Başlat</translation> <translation id="3592260987370335752">&Daha fazla bilgi edinin</translation> @@ -1835,7 +1814,6 @@ <translation id="3778152852029592020">İndirme iptal edildi.</translation> <translation id="3778740492972734840">&Geliştirici araçları</translation> <translation id="3778868487658107119">Sorular sorun. Bir şeyler yapmasını isteyin. Bu cihaz sizin kendi Google'ınızdır ve her zaman yardıma hazırdır.</translation> -<translation id="3780663724044634171">Denetlenen kullanıcıyı yönetmek için bir hesap seçin.</translation> <translation id="378312418865624974">Bu bilgisayara ilişkin benzersiz bir tanıtıcıyı okuma</translation> <translation id="3783640748446814672">alt</translation> <translation id="3785308913036335955">Uygulamalar Kısayolunu Göster</translation> @@ -2563,7 +2541,6 @@ <translation id="4964455510556214366">Düzenleme</translation> <translation id="4964673849688379040">Denetleniyor...</translation> <translation id="4965808351167763748">Bu cihazı Hangouts Meet'i çalıştırmak üzere ayarlamak istediğinizden emin misiniz?</translation> -<translation id="4967749818080339523">Bir hesap seçin</translation> <translation id="496888482094675990">Dosyalar uygulaması; Google Drive'a, harici depolama birimine veya Chrome OS cihazınıza kaydettiğiniz dosyalara hızlı bir şekilde erişebilmenizi sağlar.</translation> <translation id="4969785127455456148">Albüm</translation> <translation id="4971412780836297815">İşlem tamamlandığında aç</translation> @@ -2750,7 +2727,6 @@ Cihazınıza ne olursa olsun, dosyalarınız Google Drive'da güvenli şekilde saklanır.<ph name="MARKUP_6" /> <ph name="MARKUP_7" />Tek bir yerden dosya oluşturun, başkalarıyla paylaşın ve<ph name="MARKUP_8" /> ortak çalışın.<ph name="MARKUP_9" /></translation> -<translation id="5262401745672360397">Linux uygulamalarıyla paylaşılan dosyalar da silinecektir.</translation> <translation id="5264148714798105376">Bu işlem bir dakika kadar sürebilir.</translation> <translation id="5264252276333215551">Uygulamanızı kiosk modunda başlatmak için lütfen İnternet'e bağlanın.</translation> <translation id="5265562206369321422">Bir haftadan fazladır çevrimdışı</translation> @@ -3403,7 +3379,6 @@ <translation id="6241530762627360640">Sisteminizle eşlenen Bluetooth cihazlarıyla ilgili bilgilere erişme ve yakındaki Bluetooth cihazlarını keşfetme.</translation> <translation id="6243280677745499710">Şu anda ayarlı</translation> <translation id="6243774244933267674">Sunucu kullanılamıyor</translation> -<translation id="6246413617632217567">Denetlenen kullanıcı içe aktarılamadı. Lütfen sabit disk alanınızı ve izinlerinizi kontrol edip tekrar deneyin.</translation> <translation id="6247708409970142803">%<ph name="PERCENTAGE" /></translation> <translation id="6247802389331535091">Sistem: <ph name="ARC_PROCESS_NAME" /></translation> <translation id="624789221780392884">Güncelleme hazır</translation> @@ -3602,7 +3577,6 @@ <translation id="654039047105555694"><ph name="BEGIN_BOLD" />Not:<ph name="END_BOLD" /> Veri toplama işlemi performansı düşürebileceğinden sadece etkinleştirmenin sonuçlarını biliyorsanız veya etkinleştirmeniz istenmişse bunu yapın.</translation> <translation id="654233263479157500">Gezinme hatalarının çözülmesine yardımcı olması için bir web hizmeti kullan</translation> <translation id="6544215763872433504">Sizin için Google'dan web tarayıcısı</translation> -<translation id="6545325945815270297">Senkronize edilmiş verilerinizi ve cihazlarınızı <ph name="BEGIN_LINK" />Chrome Kontrol Paneli<ph name="END_LINK" />'nde yönetin.</translation> <translation id="6545665334409411530">Yineleme hızı</translation> <translation id="6545834809683560467">Adres çubuğuna veya Uygulama Başlatıcı arama kutusuna yazılan aramaların ve URL'lerin tamamlanmasına yardımcı olması için bir tahmin hizmeti kullan</translation> <translation id="6546686722964485737">WiMAX ağına katıl</translation> @@ -3617,7 +3591,6 @@ <translation id="6555810572223193255">Temizleme şu anda kullanılamıyor</translation> <translation id="6556866813142980365">Yeniden Yap</translation> <translation id="6558280019477628686">Bir hata oluştu. Bazı öğeler silinmemiş olabilir.</translation> -<translation id="6559580823502247193">(bu cihazda zaten mevcut)</translation> <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="656398493051028875">"<ph name="FILENAME" />" siliniyor...</translation> @@ -3814,7 +3787,6 @@ <translation id="6862635236584086457">Bu klasöre kaydedilen tüm dosyalar otomatik bir şekilde çevrimiçi olarak yedeklenir</translation> <translation id="6865313869410766144">Form otomatik doldurma verileri</translation> <translation id="686664946474413495">Renk sıcaklığı</translation> -<translation id="6867678160199975333"><ph name="NEW_PROFILE_NAME" /> kullanıcısına geç</translation> <translation id="6870888490422746447">Paylaşımda bulunmak için bir uygulama seçin:</translation> <translation id="6871644448911473373">OCSP Yanıtlayanı: <ph name="LOCATION" /></translation> <translation id="6872781471649843364">Girdiğiniz şifre, sunucu tarafından reddedildi.</translation> @@ -3908,7 +3880,6 @@ <translation id="7018275672629230621">Göz atma geçmişinizi okuma ve değiştirme</translation> <translation id="7019805045859631636">Hızlı</translation> <translation id="7022562585984256452">Ana sayfanız ayarlandı.</translation> -<translation id="7025036625303002400">Bu ada sahip bir denetlenen kullanıcınız olduğu görülüyor.</translation> <translation id="7025190659207909717">Mobil veri hizmeti yönetimi</translation> <translation id="7025325401470358758">Sonraki bölme</translation> <translation id="7027125358315426638">Veritabanı adı:</translation> @@ -3957,7 +3928,6 @@ <translation id="7092106376816104">Pop-up istisnaları</translation> <translation id="7093434536568905704">GTK+</translation> <translation id="7093866338626856921"><ph name="HOSTNAMES" /> adlı cihazlarla veri alışverişi</translation> -<translation id="7096108453481049031">Denetlenen kullanıcı içe aktarılamadı. Lütfen ağ bağlantınızı kontrol edin ve daha sonra tekrar deneyin.</translation> <translation id="7096406577040705016">Tam Ekran Büyüteci aç/kapat</translation> <translation id="7098447629416471489">Diğer kayıtlı arama motorları burada görünür</translation> <translation id="7099337801055912064">Büyük PPD yüklenemiyor. Maksimum boyut 250 kB'tır.</translation> @@ -4005,7 +3975,6 @@ <translation id="7168109975831002660">Minimum yazı tipi boyutu</translation> <translation id="7170041865419449892">Aralık dışında</translation> <translation id="7171559745792467651">Diğer cihazlarınızdan uygulama yükleyin</translation> -<translation id="7173917244679555">Bu ada sahip bir kullanıcıyı zaten yönettiğiniz anlaşılıyor. <ph name="BEGIN_LINK" /><ph name="PROFILE_NAME" /> adlı kullanıcıyı bu cihaza aktarmak<ph name="END_LINK" /> mı istediniz?</translation> <translation id="7175037578838465313"><ph name="NAME" /> adlı ağı yapılandırın</translation> <translation id="7175353351958621980">Yükleme kaynağı:</translation> <translation id="7180611975245234373">Yenile</translation> @@ -4177,7 +4146,6 @@ <translation id="7444726222535375658">Hangouts Meet'e devam et</translation> <translation id="7444983668544353857"><ph name="NETWORKDEVICE" /> ağ cihazını devre dışı bırak</translation> <translation id="7445682342344043969">Pop-up'lar engellendi</translation> -<translation id="744859430125590922">Bu kişinin <ph name="CUSTODIAN_EMAIL" /> ile ziyaret ettiği web sitelerini kontrol et ve görüntüle.</translation> <translation id="7453008956351770337">Bu yazıcıyı seçerek aşağıdaki uzantının yazıcınıza erişmesine izin verirsiniz:</translation> <translation id="7453467225369441013">Çoğu sitedeki oturumunuz kapatılır. Google Hesabınızdaki oturumunuz kapatılmaz.</translation> <translation id="7456142309650173560">geliştirici</translation> @@ -4351,7 +4319,6 @@ <translation id="7717845620320228976">Güncellemeleri kontrol et</translation> <translation id="7719367874908701697">Sayfa yakınlaştırma</translation> <translation id="771953673318695590">KG</translation> -<translation id="7720375555307821262">Bu kişiyi denetlemek için <ph name="BEGIN_LINK" />Chrome'da oturum açın<ph name="END_LINK" />.</translation> <translation id="7721179060400456005">Pencerelerin birden fazla ekrana genişlemesine izin ver</translation> <translation id="7722040605881499779">Güncelleme için gereken: <ph name="NECESSARY_SPACE" /></translation> <translation id="7724603315864178912">Kes</translation> @@ -5205,7 +5172,6 @@ <translation id="9024331582947483881">tam ekran</translation> <translation id="9025098623496448965">Tamam, oturum açma ekranına geri dönelim</translation> <translation id="9026731007018893674">indir</translation> -<translation id="9027146684281895941">Bu kişinin Google Hesabınızdan ziyaret ettiği web sitelerini kontrol etmek ve görüntülemek için bu kişiyi denetleyin.</translation> <translation id="9027459031423301635">Bağlantıyı Yeni &Sekmede Aç</translation> <translation id="9027603907212475920">Senkronizasyonu ayarla...</translation> <translation id="9030515284705930323">Kuruluşunuz, hesabınız için Google Play Store'u etkinleştirmedi. Daha fazla bilgi için yöneticinize başvurun.</translation> @@ -5365,7 +5331,6 @@ <translation id="98515147261107953">Yatay</translation> <translation id="987897973846887088">Resim yok</translation> <translation id="988978206646512040">Boş parolaya izin verilmez</translation> -<translation id="990310048453480215">Linux Uygulamalarını Kaldır</translation> <translation id="992032470292211616">Uzantılar, uygulamalar ve temalar cihazınıza zarar verebilir. Devam etmek istediğinizden emin misiniz?</translation> <translation id="992592832486024913">ChromeVox'u (sesli geri bildirim) devre dışı bırak</translation> <translation id="994289308992179865">&Döngü</translation>
diff --git a/chrome/app/resources/generated_resources_uk.xtb b/chrome/app/resources/generated_resources_uk.xtb index 3c1f155..0c4bb52 100644 --- a/chrome/app/resources/generated_resources_uk.xtb +++ b/chrome/app/resources/generated_resources_uk.xtb
@@ -42,7 +42,6 @@ <translation id="1056898198331236512">Застереження</translation> <translation id="1058262162121953039">PUK-код</translation> <translation id="1062407476771304334">Замінити</translation> -<translation id="1062866675591297858">Керуйте своїми контрольованими користувачами на <ph name="BEGIN_LINK" />Інформаційній панелі контрольованих користувачів<ph name="END_LINK" />.</translation> <translation id="1064835277883315402">Приєднатися до приватної мережі</translation> <translation id="1064912851688322329">Від’єднатися від облікового запису Google</translation> <translation id="1067048845568873861">Створено</translation> @@ -65,7 +64,6 @@ <translation id="1091767800771861448">Натисніть ESCAPE, щоб пропустити (лише в неофіційних версіях складання).</translation> <translation id="1093457606523402488">Видимі мережі:</translation> <translation id="1094607894174825014">Запит на операцію перегляду або внесення змін надіслано з недійсним зміщенням на пристрої <ph name="DEVICE_NAME" />.</translation> -<translation id="1097507499312291972"><ph name="BEGIN_SIGN_IN_LINK" />Увійдіть<ph name="END_SIGN_IN_LINK" />, щоб контролювати й переглядати веб-сайти, які відвідує цей користувач.</translation> <translation id="109758035718544977">Увімкнути звук на сайтах</translation> <translation id="1097658378307015415">Перш ніж увійти, розпочніть сеанс у режимі гостя, щоб активувати мережу <ph name="NETWORK_ID" /></translation> <translation id="1103523840287552314">Завжди перекладати з такої мови: <ph name="LANGUAGE" /></translation> @@ -244,7 +242,6 @@ <translation id="1361655923249334273">Не використаний</translation> <translation id="1363028406613469049">Композиція</translation> <translation id="1367951781824006909">Вибрати файл</translation> -<translation id="136802136832547685">Немає контрольованих користувачів, яких можна додати на цей пристрій.</translation> <translation id="1368265273904755308">Повідомити про проблему</translation> <translation id="1370646789215800222">Видалити користувача?</translation> <translation id="1372681413396468867">{NUM_ITEMS,plural, =1{1 елемент буде видалено}one{# елемент буде видалено}few{# елементи буде видалено}many{# елементів буде видалено}other{# елемента буде видалено}}</translation> @@ -472,7 +469,6 @@ <translation id="1692799361700686467">Файли cookie з багатьох сайтів дозволено.</translation> <translation id="169515659049020177">Shift</translation> <translation id="1698122934742150150">Лише поточний сеанс анонімного перегляду</translation> -<translation id="1700199471143028312">Ваш адміністратор не дозволяє створювати контрольованих користувачів.</translation> <translation id="1701062906490865540">Видалити цього користувача</translation> <translation id="1706586824377653884">Додано адміністратором</translation> <translation id="1706625117072057435">Рівні масштабування</translation> @@ -1041,7 +1037,6 @@ <translation id="2604255671529671813">Помилка з’єднання з мережею</translation> <translation id="2606246518223360146">Зв’язати профіль</translation> <translation id="2607101320794533334">Інформація про відкритий ключ суб'єкта</translation> -<translation id="2607459012323956820">Адміністратор усе одно може бачити налаштування й історію веб-перегляду цього контрольованого користувача на сторінці <ph name="BEGIN_LINK" /><ph name="DISPLAY_LINK" /><ph name="END_LINK" />.</translation> <translation id="2608770217409477136">Використовувати налаштування за умовчанням</translation> <translation id="2609896558069604090">Створення ярликів...</translation> <translation id="2610157865375787051">Сон</translation> @@ -1284,7 +1279,6 @@ <translation id="2951247061394563839">Відцентрувати вікно</translation> <translation id="2956763290572484660">Файлів cookie: <ph name="COOKIES" /></translation> <translation id="2958721676848865875">Застереження щодо пакування розширення</translation> -<translation id="2961043351165706615">Додатки Linux, які ви встановили, буде видалено з Chromebook.</translation> <translation id="2961090598421146107"><ph name="CERTIFICATE_NAME" /> (розширення встановлено)</translation> <translation id="2961695502793809356">Натисніть, щоб перейти далі; утримуйте, щоб переглянути історію</translation> <translation id="2963151496262057773">Плагін <ph name="PLUGIN_NAME" /> не відповідає. Зупинити?</translation> @@ -1336,15 +1330,6 @@ <translation id="3022978424994383087">Незрозуміло.</translation> <translation id="3024374909719388945">Використовувати 24-годинний формат</translation> <translation id="302781076327338683">Оновити в обхід кешу</translation> -<translation id="3030243755303701754">Контрольований користувач може переглядати веб-сайти під вашим наглядом. Адміністратор контрольованого користувача в Chrome може: - - • дозволяти чи забороняти певні веб-сайти; - • переглядати, які веб-сайти відвідував контрольований користувач; - • керувати іншими налаштуваннями. - -Створюючи контрольованого користувача, ви не створюєте обліковий запис Google, а закладки, історія веб-перегляду й інші налаштування не переносяться на інші пристрої за допомогою Синхронізації Chrome. Створивши нового контрольованого користувача, ви завжди можете змінити його налаштування з будь-якого пристрою на сторінці <ph name="BEGIN_MANAGE_LINK" /><ph name="DISPLAY_LINK" /><ph name="END_MANAGE_LINK" />. - -Щоб дізнатися більше, відвідайте наш <ph name="BEGIN_LINK" />Довідковий центр<ph name="END_LINK" />.</translation> <translation id="3031417829280473749">Агент X</translation> <translation id="3031557471081358569">Виберіть елементи для імпорту:</translation> <translation id="3031601332414921114">Відновити друк</translation> @@ -1385,7 +1370,6 @@ <translation id="3085412380278336437">Сайт може використовувати камеру</translation> <translation id="3085752524577180175">Хост SOCKS</translation> <translation id="3088325635286126843">&Перейменувати...</translation> -<translation id="3089231390674410424">Схоже, виникла проблема з вашими обліковими даними. Переконайтеся, що ви ввійшли правильно, і повторіть спробу.</translation> <translation id="3090193911106258841">Отримання доступу до аудіо- й відеовходу</translation> <translation id="3090819949319990166">Не вдається скопіювати зовнішній файл .crx у файл <ph name="TEMP_CRX_FILE" />.</translation> <translation id="3090871774332213558"><ph name="DEVICE_NAME" />: підключено</translation> @@ -1400,7 +1384,6 @@ <translation id="3121793941267913344">Скинути налаштування цього пристрою <ph name="IDS_SHORT_PRODUCT_NAME" /></translation> <translation id="3122464029669770682">ЦП</translation> <translation id="3122496702278727796">Не вдалося створити каталог даних</translation> -<translation id="3123569374670379335">(контрольований)</translation> <translation id="3124111068741548686">Обробка КОРИСТУВАЧА</translation> <translation id="3126026824346185272">Ctrl</translation> <translation id="3127156390846601284">Буде видалено всі дані вказаних веб-сайтів на пристрої. Продовжити?</translation> @@ -1435,8 +1418,6 @@ <translation id="3160842278951476457"><ph name="ISSUED_BY" /> [<ph name="ISSUED_TO" />] (з апаратною підтримкою)</translation> <translation id="316125635462764134">Видалити додаток</translation> <translation id="3161522574479303604">Усі мови</translation> -<translation id="316307797510303346">Контролюйте й переглядайте веб-сайти, які відвідує цей користувач в обліковому записі <ph name="CUSTODIAN_EMAIL" />. - Дані для входу у ваш обліковий запис застаріли.</translation> <translation id="3165390001037658081">Деякі оператори можуть блокувати цю функцію.</translation> <translation id="316854673539778496">Щоб мати доступ до розширень на всіх своїх пристроях, увійдіть в обліковий запис і ввімкніть синхронізацію.</translation> <translation id="3170072451822350649">Можна також пропустити вхід і <ph name="LINK_START" />працювати в режимі "Гість"<ph name="LINK_END" />.</translation> @@ -1469,7 +1450,6 @@ <translation id="3229922550070982305">відтворити або призупинити</translation> <translation id="3232318083971127729">Значення:</translation> <translation id="3236289833370040187">Право власності буде передано в домен <ph name="DESTINATION_DOMAIN" />.</translation> -<translation id="3237784613213365159"><ph name="NEW_PROFILE_NAME" /> тепер контрольований користувач</translation> <translation id="323803881985677942">Відкрити параметри розширень</translation> <translation id="3241680850019875542">Виберіть кореневий каталог для пакування розширення. Щоб оновити розширення, також виберіть файл секретного ключа для повторного використання.</translation> <translation id="3242765319725186192">Спільний ключ:</translation> @@ -1701,7 +1681,6 @@ <translation id="3584169441612580296">Читати й змінювати фотографії, музику та інші медіафайли на комп’ютері</translation> <translation id="3587482841069643663">Все</translation> <translation id="358796204584394954">Введіть цей код на пристрої <ph name="DEVICE_NAME" />, щоб підключити:</translation> -<translation id="3589532742556016615">Це не впливає на додатки чи вміст інших пристроїв.</translation> <translation id="3589766037099229847">Незахищений вміст заблоковано</translation> <translation id="3590194807845837023">Розблокувати профіль і перезапустити</translation> <translation id="3592260987370335752">&Докладніше</translation> @@ -1835,7 +1814,6 @@ <translation id="3778152852029592020">Завантаження скасовано.</translation> <translation id="3778740492972734840">&Інструменти розробника</translation> <translation id="3778868487658107119">Ставте запитання. Давайте завдання. Ваш персональний Google Асистент завжди готовий допомогти.</translation> -<translation id="3780663724044634171">Виберіть обліковий запис, який керуватиме контрольованим користувачем.</translation> <translation id="378312418865624974">Читати унікальний ідентифікатор для цього комп’ютера</translation> <translation id="3783640748446814672">alt</translation> <translation id="3785308913036335955">Показувати ярлики додатків</translation> @@ -2563,7 +2541,6 @@ <translation id="4964455510556214366">Упорядкування</translation> <translation id="4964673849688379040">Перевірка…</translation> <translation id="4965808351167763748">Налаштувати пристрій для роботи Hangouts Meet?</translation> -<translation id="4967749818080339523">Виберіть обліковий запис</translation> <translation id="496888482094675990">Додаток Файли надає швидкий доступ до файлів, збережених на Google Диску, у зовнішній пам’яті або на пристрої з ОС Chrome.</translation> <translation id="4969785127455456148">Альбом</translation> <translation id="4971412780836297815">Відкрити після завантаження</translation> @@ -2750,7 +2727,6 @@ Незалежно від того, що станеться з вашим пристроєм, файли надійно зберігаються на Google Диску.<ph name="MARKUP_6" /> <ph name="MARKUP_7" />Надсилайте та створюйте файли, а також працюйте<ph name="MARKUP_8" /> над ними разом з іншими – усе в одному місці.<ph name="MARKUP_9" /></translation> -<translation id="5262401745672360397">Файли, до яких мають доступ додатки Linux, також може бути видалено.</translation> <translation id="5264148714798105376">Це може зайняти близько хвилини.</translation> <translation id="5264252276333215551">Щоб запустити програму в режимі термінала, під’єднайтеся до Інтернету.</translation> <translation id="5265562206369321422">Офлайн понад тиждень</translation> @@ -3402,7 +3378,6 @@ <translation id="6241530762627360640">Переглядати інформацію про пристрої Bluetooth, підключені до вашої системи, і знаходити пристрої Bluetooth поблизу.</translation> <translation id="6243280677745499710">Налаштовано зараз</translation> <translation id="6243774244933267674">Сервер недоступний</translation> -<translation id="6246413617632217567">Не вдалось імпортувати контрольованого користувача. Перевірте, чи у вас є дозволи й вільне місце на жорсткому диску, і повторіть спробу.</translation> <translation id="6247708409970142803"><ph name="PERCENTAGE" />%</translation> <translation id="6247802389331535091">Система: <ph name="ARC_PROCESS_NAME" /></translation> <translation id="624789221780392884">Оновлення завершено</translation> @@ -3601,7 +3576,6 @@ <translation id="654039047105555694"><ph name="BEGIN_BOLD" />Примітка.<ph name="END_BOLD" /> Вмикайте, лише якщо ви знаєте, що робите, або вас попросили це зробити, оскільки збір даних може знизити ефективність.</translation> <translation id="654233263479157500">Використовувати веб-послугу для виправлення помилок навігації</translation> <translation id="6544215763872433504">Веб-переглядач від Google для вас</translation> -<translation id="6545325945815270297">Керуйте синхронізованими даними та пристроями на <ph name="BEGIN_LINK" />Інформаційній панелі Chrome<ph name="END_LINK" />.</translation> <translation id="6545665334409411530">Частота повторів</translation> <translation id="6545834809683560467">Використовувати підказки для завершення пошукових запитів і URL-адрес, введених в адресний рядок або вікно пошуку на панелі запуску додатків</translation> <translation id="6546686722964485737">Приєднатися до мережі WiMAX</translation> @@ -3616,7 +3590,6 @@ <translation id="6555810572223193255">Функція "Очищення" зараз недоступна</translation> <translation id="6556866813142980365">Повторити</translation> <translation id="6558280019477628686">Сталася помилка. Можливо, не всі елементи було видалено.</translation> -<translation id="6559580823502247193">(уже на цьому пристрої)</translation> <translation id="6561726789132298588">enter</translation> <translation id="656293578423618167">Шлях файлу чи назва файлу задовгі. Збережіть з коротшою назвою чи в іншому місці.</translation> <translation id="656398493051028875">Видалення файлу "<ph name="FILENAME" />"…</translation> @@ -3813,7 +3786,6 @@ <translation id="6862635236584086457">Для всіх файлів, збережених у цій папці, автоматично зберігаються резервні копії онлайн</translation> <translation id="6865313869410766144">Дані автозаповнення форм</translation> <translation id="686664946474413495">Температура кольорів</translation> -<translation id="6867678160199975333">Переключитися на користувача <ph name="NEW_PROFILE_NAME" /></translation> <translation id="6870888490422746447">Виберіть додаток:</translation> <translation id="6871644448911473373">Відповідач OCSP: <ph name="LOCATION" /></translation> <translation id="6872781471649843364">Сервер відхилив введений вами пароль.</translation> @@ -3907,7 +3879,6 @@ <translation id="7018275672629230621">Читати й змінювати історію веб-перегляду</translation> <translation id="7019805045859631636">Швидка</translation> <translation id="7022562585984256452">Вашу домашню сторінку налаштовано.</translation> -<translation id="7025036625303002400">Схоже, у вас уже є контрольований користувач із таким іменем.</translation> <translation id="7025190659207909717">Керування службою пересилання мобільних даних</translation> <translation id="7025325401470358758">Наступна панель</translation> <translation id="7027125358315426638">Назва бази даних:</translation> @@ -3956,7 +3927,6 @@ <translation id="7092106376816104">Винятки для спливаючих вікон</translation> <translation id="7093434536568905704">Тема GTK+</translation> <translation id="7093866338626856921">Обмінюватися даними з пристроями з назвами: <ph name="HOSTNAMES" /></translation> -<translation id="7096108453481049031">Не вдалось імпортувати контрольованого користувача. Перевірте з’єднання з мережею та спробуйте пізніше.</translation> <translation id="7096406577040705016">Перемикає лупу для всього екрана</translation> <translation id="7098447629416471489">Тут відображатимуться інші збережені пошукові системи</translation> <translation id="7099337801055912064">Не вдається завантажити великий файл PPD. Розмір не може перевищувати 250 КБ.</translation> @@ -4004,7 +3974,6 @@ <translation id="7168109975831002660">Мінімальний розмір шрифту</translation> <translation id="7170041865419449892">За межами досяжності</translation> <translation id="7171559745792467651">Установіть додатки з інших пристроїв</translation> -<translation id="7173917244679555">Схоже, ви вже керуєте користувачем із таким іменем.<ph name="BEGIN_LINK" />Імпортувати дані користувача <ph name="PROFILE_NAME" /> на цей пристрій<ph name="END_LINK" />?</translation> <translation id="7175037578838465313">Налаштувати мережу "<ph name="NAME" />"</translation> <translation id="7175353351958621980">Завантажено з:</translation> <translation id="7180611975245234373">Оновити</translation> @@ -4176,7 +4145,6 @@ <translation id="7444726222535375658">Перейти в Hangouts Meet</translation> <translation id="7444983668544353857">Вимкнути <ph name="NETWORKDEVICE" /></translation> <translation id="7445682342344043969">Спливаючі вікна заблоковано</translation> -<translation id="744859430125590922">Контролювати й переглядати веб-сайти, які відвідує цей користувач в обліковому записі <ph name="CUSTODIAN_EMAIL" />.</translation> <translation id="7453008956351770337">Вибираючи цей принтер, ви надаєте доступ до свого принтера такому розширенню:</translation> <translation id="7453467225369441013">Ви вийдете з більшості сайтів, але не вийдете з облікового запису Google.</translation> <translation id="7456142309650173560">версія для розробників</translation> @@ -4350,7 +4318,6 @@ <translation id="7717845620320228976">Перевірка наявності оновлень</translation> <translation id="7719367874908701697">Масштабування сторінки</translation> <translation id="771953673318695590">Перевірка якості</translation> -<translation id="7720375555307821262">Щоб контролювати активність цього користувача, <ph name="BEGIN_LINK" />увійдіть в обліковий запис Chrome<ph name="END_LINK" />.</translation> <translation id="7721179060400456005">Дозволити вікнам відображатися на екранах</translation> <translation id="7722040605881499779">Потрібно для оновлення: <ph name="NECESSARY_SPACE" /></translation> <translation id="7724603315864178912">Вирізати</translation> @@ -5205,7 +5172,6 @@ <translation id="9024331582947483881">повноекранний режим</translation> <translation id="9025098623496448965">ОК, повернутися до екрана входу</translation> <translation id="9026731007018893674">завантаження</translation> -<translation id="9027146684281895941">Щоб контролювати й переглядати веб-сайти, які цей користувач відвідує з облікового запису Google, ви маєте стати його адміністратором.</translation> <translation id="9027459031423301635">Відкрити посилання в новій &вкладці</translation> <translation id="9027603907212475920">Налаштувати синхронізацію...</translation> <translation id="9030515284705930323">У вашій організації не ввімкнено магазин Google Play для вашого облікового запису. Зв’яжіться з адміністратором, щоб дізнатися більше.</translation> @@ -5365,7 +5331,6 @@ <translation id="98515147261107953">Альбомна</translation> <translation id="987897973846887088">Немає зображень</translation> <translation id="988978206646512040">Потрібно вказати парольну фразу</translation> -<translation id="990310048453480215">Видалити додатки Linux</translation> <translation id="992032470292211616">Розширення, служби й теми можуть зашкодити вашому пристрою. Справді продовжити?</translation> <translation id="992592832486024913">Вимкнути ChromeVox (голосові підказки)</translation> <translation id="994289308992179865">&Безперервно</translation>
diff --git a/chrome/app/resources/generated_resources_vi.xtb b/chrome/app/resources/generated_resources_vi.xtb index f9c9467..e2f64c8 100644 --- a/chrome/app/resources/generated_resources_vi.xtb +++ b/chrome/app/resources/generated_resources_vi.xtb
@@ -42,7 +42,6 @@ <translation id="1056898198331236512">Cảnh báo</translation> <translation id="1058262162121953039">PUK</translation> <translation id="1062407476771304334">Thay thế</translation> -<translation id="1062866675591297858">Quản lý người dùng được giám sát của bạn qua <ph name="BEGIN_LINK" />Bảng điều khiển người dùng được giám sát<ph name="END_LINK" />.</translation> <translation id="1064835277883315402">Tham gia mạng riêng</translation> <translation id="1064912851688322329">Ngắt kết nối Tài khoản Google của bạn</translation> <translation id="1067048845568873861">Đã tạo</translation> @@ -65,7 +64,6 @@ <translation id="1091767800771861448">Nhấn ESCAPE để bỏ qua (Chỉ phiên bản không chính thức).</translation> <translation id="1093457606523402488">Mạng hiển thị:</translation> <translation id="1094607894174825014">Đã yêu cầu tác vụ đọc hoặc ghi với hiệu số không hợp lệ trên: "<ph name="DEVICE_NAME" />".</translation> -<translation id="1097507499312291972"><ph name="BEGIN_SIGN_IN_LINK" />Đăng nhập<ph name="END_SIGN_IN_LINK" /> để kiểm soát và xem các trang web mà người này truy cập.</translation> <translation id="109758035718544977">Bật tiếng các trang web</translation> <translation id="1097658378307015415">Trước khi đăng nhập, vui lòng đăng nhập với tư cách khách để kích hoạt mạng <ph name="NETWORK_ID" /></translation> <translation id="1103523840287552314">Luôn dịch <ph name="LANGUAGE" /></translation> @@ -244,7 +242,6 @@ <translation id="1361655923249334273">Không sử dụng</translation> <translation id="1363028406613469049">Số theo dõi</translation> <translation id="1367951781824006909">Chọn tệp</translation> -<translation id="136802136832547685">Không có người dùng được giám sát nào để thêm vào thiết bị này.</translation> <translation id="1368265273904755308">Báo cáo sự cố</translation> <translation id="1370646789215800222">Bạn muốn xóa người này?</translation> <translation id="1372681413396468867">{NUM_ITEMS,plural, =1{1 mục sẽ bị xóa}other{# mục sẽ bị xóa}}</translation> @@ -473,7 +470,6 @@ <translation id="1692799361700686467">Đã cho phép cookie từ nhiều trang web.</translation> <translation id="169515659049020177">Shift</translation> <translation id="1698122934742150150">Chỉ phiên ẩn danh hiện tại</translation> -<translation id="1700199471143028312">Quản trị viên của bạn không cho phép bạn tạo người dùng được giám sát.</translation> <translation id="1701062906490865540">Xóa người này</translation> <translation id="1706586824377653884">Do quản trị viên thêm</translation> <translation id="1706625117072057435">Mức thu phóng</translation> @@ -1012,7 +1008,7 @@ <translation id="2562685439590298522">Documents</translation> <translation id="2562743677925229011">Chưa được đăng nhập vào <ph name="SHORT_PRODUCT_NAME" /></translation> <translation id="2563856802393254086">Xin chúc mừng! Dịch vụ dữ liệu '<ph name="NAME" />' của bạn đã được kích hoạt và sẵn sàng sử dụng.</translation> -<translation id="2564520396658920462">Tính năng thực thi JavaScript qua AppleScript đang tắt. Để bật tính năng này, từ thanh menu, hãy chuyển đến Xem> Nhà phát triển > Cho phép JavaScript từ Apple Events. Để biết thêm thông tin, hãy truy cập vào https://support.google.com/chrome/?p=applescript</translation> +<translation id="2564520396658920462">Tùy chọn thực thi JavaScript qua AppleScript đã bị tắt. Để bật tùy chọn này, từ thanh menu, hãy chuyển đến Xem> Nhà phát triển > Cho phép JavaScript từ Apple Events. Để biết thêm thông tin, hãy truy cập vào https://support.google.com/chrome/?p=applescript</translation> <translation id="2566124945717127842">Powerwash để đặt lại thiết bị <ph name="IDS_SHORT_PRODUCT_NAME" /> của bạn giống như mới.</translation> <translation id="2567257616420533738">Đã lưu mật khẩu. Xem và quản lý mật khẩu đã lưu tại <ph name="SAVED_PASSWORDS_LINK" /></translation> <translation id="2568774940984945469">Bộ chứa Thanh thông tin</translation> @@ -1042,7 +1038,6 @@ <translation id="2604255671529671813">Lỗi kết nối mạng</translation> <translation id="2606246518223360146">Liên kết dữ liệu</translation> <translation id="2607101320794533334">Thông tin Khoá Công cộng Đối tượng</translation> -<translation id="2607459012323956820">Cài đặt và lịch sử duyệt web của người dùng được giám sát này có thể vẫn hiển thị với người quản lý tại <ph name="BEGIN_LINK" /><ph name="DISPLAY_LINK" /><ph name="END_LINK" />.</translation> <translation id="2608770217409477136">Sử dụng cài đặt mặc định</translation> <translation id="2609896558069604090">Tạo phím tắt...</translation> <translation id="2610157865375787051">Ngủ</translation> @@ -1285,7 +1280,6 @@ <translation id="2951247061394563839">Căn giữa cửa sổ</translation> <translation id="2956763290572484660"><ph name="COOKIES" /> cookie</translation> <translation id="2958721676848865875">Cảnh báo đóng gói tiện ích</translation> -<translation id="2961043351165706615">Các ứng dụng Linux bạn đã cài đặt sẽ bị xóa khỏi Chromebook này.</translation> <translation id="2961090598421146107"><ph name="CERTIFICATE_NAME" /> (đã cung cấp tiện ích)</translation> <translation id="2961695502793809356">Nhấp vào để tiến, giữ để xem lịch sử</translation> <translation id="2963151496262057773">Plugin sau không hồi đáp: <ph name="PLUGIN_NAME" />Bạn có muốn dừng lại không?</translation> @@ -1337,15 +1331,6 @@ <translation id="3022978424994383087">Không hiểu được.</translation> <translation id="3024374909719388945">Sử dụng đồng hồ 24 giờ</translation> <translation id="302781076327338683">Tải lại bộ nhớ đệm bỏ qua</translation> -<translation id="3030243755303701754">Người dùng được giám sát có thể khám phá web dưới sự hướng dẫn của bạn. Là người quản lý của người dùng được giám sát trong Chrome, bạn có thể: - - • cho phép hoặc cấm các trang web nhất định, - • xem lại các trang web mà người dùng được giám sát đã truy cập và - • quản lý các cài đặt khác. - -Tạo người dùng được giám sát sẽ không tạo Tài khoản Google, đồng thời dấu trang, lịch sử duyệt web và các tùy chọn khác sẽ không đồng bộ hóa với các thiết bị khác bằng Chrome Sync. Sau khi tạo người dùng được giám sát mới, bạn có thể quản lý cài đặt của họ bất kỳ lúc nào từ mọi thiết bị tại <ph name="BEGIN_MANAGE_LINK" /><ph name="DISPLAY_LINK" /><ph name="END_MANAGE_LINK" />. - -Để biết thêm thông tin, hãy truy cập <ph name="BEGIN_LINK" />Trung tâm trợ giúp<ph name="END_LINK" /> của chúng tôi.</translation> <translation id="3031417829280473749">Đặc vụ X</translation> <translation id="3031557471081358569">Chọn các mục cần nhập:</translation> <translation id="3031601332414921114">Tiếp tục in</translation> @@ -1386,7 +1371,6 @@ <translation id="3085412380278336437">Trang web có thể sử dụng máy ảnh của bạn</translation> <translation id="3085752524577180175">Máy chủ SOCKS</translation> <translation id="3088325635286126843">Đổ&i tên...</translation> -<translation id="3089231390674410424">Có vẻ như đã xảy ra sự cố với thông tin đăng nhập của bạn. Hãy đảm bảo bạn đăng nhập đúng cách và thử lại.</translation> <translation id="3090193911106258841">Đang truy cập thiết bị đầu vào video và âm thanh</translation> <translation id="3090819949319990166">Không thể sao chép tệp crx bên ngoài sang <ph name="TEMP_CRX_FILE" />.</translation> <translation id="3090871774332213558">Đã ghép nối "<ph name="DEVICE_NAME" />"</translation> @@ -1401,7 +1385,6 @@ <translation id="3121793941267913344">Đặt lại thiết bị <ph name="IDS_SHORT_PRODUCT_NAME" /> này</translation> <translation id="3122464029669770682">CPU</translation> <translation id="3122496702278727796">Lỗi tạo Thư mục Dữ liệu</translation> -<translation id="3123569374670379335">(Được giám sát)</translation> <translation id="3124111068741548686">Quản lý NGƯỜI DÙNG</translation> <translation id="3126026824346185272">Ctrl</translation> <translation id="3127156390846601284">Thao tác này sẽ xóa mọi dữ liệu được lưu trữ trên thiết bị của bạn cho tất cả trang web hiển thị. Bạn có muốn tiếp tục không?</translation> @@ -1436,8 +1419,6 @@ <translation id="3160842278951476457"><ph name="ISSUED_BY" /> [<ph name="ISSUED_TO" />] (dựa trên phần cứng)</translation> <translation id="316125635462764134">Xóa ứng dụng</translation> <translation id="3161522574479303604">Tất cả ngôn ngữ</translation> -<translation id="316307797510303346">Kiểm soát và xem các trang web người này truy cập từ <ph name="CUSTODIAN_EMAIL" />. - Chi tiết đăng nhập tài khoản của bạn đã lỗi thời.</translation> <translation id="3165390001037658081">Một số nhà cung cấp dịch vụ có thể chặn tính năng này.</translation> <translation id="316854673539778496">Để có tất cả các tiện ích trên mọi thiết bị của bạn, hãy đăng nhập rồi bật tính năng đồng bộ hóa.</translation> <translation id="3170072451822350649">Bạn cũng có thể bỏ qua việc đăng nhập và <ph name="LINK_START" />duyệt với tư cách khách<ph name="LINK_END" />.</translation> @@ -1470,7 +1451,6 @@ <translation id="3229922550070982305">phát / tạm dừng</translation> <translation id="3232318083971127729">Giá trị:</translation> <translation id="3236289833370040187">Sẽ chuyển quyền sở hữu sang <ph name="DESTINATION_DOMAIN" />.</translation> -<translation id="3237784613213365159"><ph name="NEW_PROFILE_NAME" /> hiện là người dùng được giám sát</translation> <translation id="323803881985677942">Mở tùy chọn tiện ích</translation> <translation id="3241680850019875542">Chọn thư mục gốc của tiện ích để đóng gói. Để cập nhật tiện ích, bạn cũng chọn tệp khóa cá nhân để sử dụng lại.</translation> <translation id="3242765319725186192">Khóa chia sẻ trước:</translation> @@ -1702,7 +1682,6 @@ <translation id="3584169441612580296">Đọc và thay đổi ảnh, nhạc và phương tiện khác từ máy tính của bạn</translation> <translation id="3587482841069643663">Tất cả</translation> <translation id="358796204584394954">Nhập mã này vào "<ph name="DEVICE_NAME" />" để ghép nối:</translation> -<translation id="3589532742556016615">Điều này sẽ không ảnh hưởng đến các ứng dụng hoặc nội dung trên những thiết bị khác.</translation> <translation id="3589766037099229847">Đã chặn nội dung không an toàn</translation> <translation id="3590194807845837023">Mở khóa cấu hình và chạy lại</translation> <translation id="3592260987370335752">&Tìm hiểu thêm</translation> @@ -1836,7 +1815,6 @@ <translation id="3778152852029592020">Đã hủy tải xuống.</translation> <translation id="3778740492972734840">Công cụ dành cho &Nhà phát triển</translation> <translation id="3778868487658107119">Đặt câu hỏi cho Trợ lý. Yêu cầu Trợ lý làm mọi việc. Đó là Google của riêng bạn, luôn sẵn sàng trợ giúp bạn.</translation> -<translation id="3780663724044634171">Chọn tài khoản để quản lý người dùng được giám sát.</translation> <translation id="378312418865624974">Đọc mã số nhận dạng duy nhất dành cho máy tính này</translation> <translation id="3783640748446814672">alt</translation> <translation id="3785308913036335955">Hiển thị lối tắt cho ứng dụng</translation> @@ -2346,7 +2324,7 @@ <translation id="4632483769545853758">Bật âm thanh tab</translation> <translation id="4633003931260532286">Tiện ích yêu cầu "<ph name="IMPORT_NAME" />" có phiên bản tối thiểu "<ph name="IMPORT_VERSION" />" nhưng mới chỉ cài đặt được phiên bản "<ph name="INSTALLED_VERSION" />"</translation> <translation id="4634771451598206121">Đăng nhập lại...</translation> -<translation id="4635398712689569051">Không có <ph name="PAGE_NAME" /> cho Người dùng khách.</translation> +<translation id="4635398712689569051">Người dùng khách không thể sử dụng <ph name="PAGE_NAME" />.</translation> <translation id="4640525840053037973">Đăng nhập bằng Tài khoản Google của bạn</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> <translation id="4643612240819915418">&Mở Video trong Tab Mới</translation> @@ -2383,7 +2361,7 @@ Nếu không mong muốn việc này, vui lòng liên hệ với bộ phận hỗ trợ.</translation> <translation id="469230890969474295">Thư mục OEM</translation> <translation id="4692623383562244444">Công cụ tìm kiếm</translation> -<translation id="4694024090038830733">Quản trị viên đã xử lý cấu hình máy in.</translation> +<translation id="4694024090038830733">Chỉ quản trị viên mới có thể thiết lập cấu hình máy in.</translation> <translation id="4697551882387947560">Khi phiên duyệt kết thúc</translation> <translation id="4699172675775169585">Tệp và hình ảnh được lưu trong bộ nhớ đệm</translation> <translation id="4699357559218762027">(tự động chạy)</translation> @@ -2564,7 +2542,6 @@ <translation id="4964455510556214366">Sắp xếp</translation> <translation id="4964673849688379040">Đang kiểm tra...</translation> <translation id="4965808351167763748">Bạn có chắc chắn muốn thiết lập thiết bị này để chạy Hangouts Meet không?</translation> -<translation id="4967749818080339523">Chọn tài khoản</translation> <translation id="496888482094675990">Ứng dụng Tệp cho phép truy cập nhanh các tệp mà bạn đã lưu trên Google Drive, bộ nhớ ngoài hoặc thiết bị Chrome OS của bạn.</translation> <translation id="4969785127455456148">Album</translation> <translation id="4971412780836297815">Mở khi hoàn tất</translation> @@ -2751,7 +2728,6 @@ Dù có điều gì xảy ra với thiết bị, tệp của bạn vẫn được lưu trữ an toàn trong Google Drive.<ph name="MARKUP_6" /> <ph name="MARKUP_7" />Chia sẻ, tạo và cộng tác<ph name="MARKUP_8" /> trên các tệp với những người khác, tất cả tại cùng một địa điểm.<ph name="MARKUP_9" /></translation> -<translation id="5262401745672360397">Các tệp được chia sẻ với ứng dụng Linux cũng có thể bị xóa.</translation> <translation id="5264148714798105376">Quá trình này có thể mất một vài phút.</translation> <translation id="5264252276333215551">Vui lòng két nối Internet để chạy ứng dụng của bạn ở chế độ kiosk.</translation> <translation id="5265562206369321422">Ngoại tuyến hơn một tuần</translation> @@ -2763,7 +2739,7 @@ <translation id="527605719918376753">Tắt tiếng tab</translation> <translation id="527605982717517565">Luôn cho phép JavaScript trên <ph name="HOST" /></translation> <translation id="5280426389926346830">Tạo lối tắt?</translation> -<translation id="528208740344463258">Để tải xuống và dùng ứng dụng Android, trước tiên, bạn cần cài đặt bản cập nhật bắt buộc này. Bạn sẽ không thể sử dụng <ph name="DEVICE_TYPE" /> trong khi thiết bị đang cập nhật. <ph name="DEVICE_TYPE" /> sẽ khởi động lại sau khi quá trình cài đặt hoàn tất.</translation> +<translation id="528208740344463258">Để tải xuống và dùng các ứng dụng Android, trước tiên, bạn cần cài đặt bản cập nhật bắt buộc này. Bạn sẽ không thể sử dụng <ph name="DEVICE_TYPE" /> trong khi thiết bị đang cập nhật. <ph name="DEVICE_TYPE" /> sẽ khởi động lại sau khi quá trình cài đặt hoàn tất.</translation> <translation id="5282733140964383898">Bật tính năng 'Không theo dõi' nghĩa là một yêu cầu sẽ đi kèm với lưu lượng duyệt web của bạn. Mọi ảnh hưởng đều phụ thuộc vào việc liệu trang web có phản hồi yêu cầu không và cách thức yêu cầu được diễn giải. Ví dụ: một số trang web có thể phản hồi yêu cầu này bằng cách hiển thị cho bạn các quảng cáo không dựa trên các trang web khác mà bạn đã truy cập. Nhiều trang web sẽ vẫn thu thập và sử dụng dữ liệu duyệt web của bạn - ví dụ: để cải thiện bảo mật, cung cấp nội dung, dịch vụ, quảng cáo và các đề xuất về trang web của chúng và tạo số liệu thống kê báo cáo. <ph name="BEGIN_LINK" />Tìm hiểu thêm<ph name="END_LINK" /></translation> <translation id="5283677936944177147">Rất tiếc! Hệ thống không xác định được số sê-ri hoặc kiểu thiết bị.</translation> <translation id="5284445933715251131">Tiếp tục tải xuống</translation> @@ -3403,7 +3379,6 @@ <translation id="6241530762627360640">Truy cập thông tin về thiết bị Bluetooth được ghép nối với hệ thống của bạn và khám phá các thiết bị Bluetooth lân cận.</translation> <translation id="6243280677745499710">Hiện đã được đặt</translation> <translation id="6243774244933267674">Máy chủ không khả dụng</translation> -<translation id="6246413617632217567">Không thể nhập người dùng được giám sát. Vui lòng kiểm tra dung lượng ổ đĩa cứng và quyền của bạn rồi thử lại.</translation> <translation id="6247708409970142803"><ph name="PERCENTAGE" />%</translation> <translation id="6247802389331535091">Hệ thống: <ph name="ARC_PROCESS_NAME" /></translation> <translation id="624789221780392884">Bản cập nhật đã sẵn sàng</translation> @@ -3497,7 +3472,7 @@ <translation id="6388771388956873507">Tìm cảm biến vân tay trên thiết bị của bạn và chạm vào bằng ngón tay</translation> <translation id="6390799748543157332">Những trang bạn xem trong cửa sổ này sẽ không xuất hiện trong lịch sử trình duyệt và sẽ không để lại các dấu vết khác như cookie trên máy tính sau khi bạn đóng tất cả cửa sổ Khách đang mở. Tuy nhiên, bất kỳ tệp nào bạn tải xuống cũng sẽ được giữ nguyên.</translation> <translation id="6395423953133416962">Gửi <ph name="BEGIN_LINK1" />thông tin hệ thống<ph name="END_LINK1" /> và <ph name="BEGIN_LINK2" />số liệu<ph name="END_LINK2" /></translation> -<translation id="6397094776139756010">Các tùy chọn đồng bộ hóa và cá nhân hóa</translation> +<translation id="6397094776139756010">Tùy chọn đồng bộ hóa và cá nhân hóa</translation> <translation id="6397592254427394018">Mở tất cả dấu trang trong &cửa sổ ẩn danh</translation> <translation id="6398715114293939307">Xóa Cửa hàng Google Play</translation> <translation id="6398765197997659313">Thoát khỏi chế độ toàn màn hình</translation> @@ -3602,7 +3577,6 @@ <translation id="654039047105555694"><ph name="BEGIN_BOLD" />Lưu ý:<ph name="END_BOLD" /> Chỉ bật nếu bạn biết mình đang làm gì hoặc nếu bạn đã được yêu cầu bật vì việc thu thập dữ liệu có thể giảm hiệu suất hoạt động.</translation> <translation id="654233263479157500">Sử dụng dịch vụ web để giúp giải quyết lỗi điều hướng</translation> <translation id="6544215763872433504">Trình duyệt web của Google, dành cho bạn</translation> -<translation id="6545325945815270297">Quản lý các thiết bị và dữ liệu đã đồng bộ hóa của bạn trên <ph name="BEGIN_LINK" />Trang tổng quan của Chrome<ph name="END_LINK" />.</translation> <translation id="6545665334409411530">Tốc độ lặp lại</translation> <translation id="6545834809683560467">Sử dụng dịch vụ gợi ý để giúp hoàn thành các tìm kiếm và URL được nhập vào thanh địa chỉ hoặc hộp tìm kiếm của trình chạy ứng dụng</translation> <translation id="6546686722964485737">Tham gia mạng Wimax</translation> @@ -3617,7 +3591,6 @@ <translation id="6555810572223193255">Tính năng dọn dẹp hiện không khả dụng</translation> <translation id="6556866813142980365">Làm lại</translation> <translation id="6558280019477628686">Đã xảy ra lỗi. Một số mục có thể chưa được xóa.</translation> -<translation id="6559580823502247193">(đã có trên thiết bị này)</translation> <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="656398493051028875">Đang xóa "<ph name="FILENAME" />"...</translation> @@ -3688,7 +3661,7 @@ <translation id="6659594942844771486">Tab</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="6670647982128220776">Các tính năng liên quan đến đồng bộ hóa và cá nhân hóa hiện đang ở chế độ kiểm soát duy nhất. Việc bật tính năng này có thể thay đổi các tùy chọn cài đặt hiện tại của bạn.</translation> +<translation id="6670647982128220776">Các tính năng liên quan đến đồng bộ hóa và cá nhân hóa hiện được kết hợp trong một tùy chọn kiểm soát. Việc bật tùy chọn này có thể thay đổi các mục cài đặt hiện tại của bạn.</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> @@ -3814,7 +3787,6 @@ <translation id="6862635236584086457">Tất cả tệp được lưu trong thư mục này đều tự động được sao lưu trực tuyến</translation> <translation id="6865313869410766144">Dữ liệu biểu mẫu tự động điền</translation> <translation id="686664946474413495">Nhiệt độ màu</translation> -<translation id="6867678160199975333">Chuyển sang <ph name="NEW_PROFILE_NAME" /></translation> <translation id="6870888490422746447">Chọn một ứng dụng để chia sẻ:</translation> <translation id="6871644448911473373">Phản hồi OCSP: <ph name="LOCATION" /></translation> <translation id="6872781471649843364">Mật khẩu bạn nhập đã bị máy chủ từ chối.</translation> @@ -3908,7 +3880,6 @@ <translation id="7018275672629230621">Đọc và thay đổi lịch sử duyệt web của bạn</translation> <translation id="7019805045859631636">Nhanh</translation> <translation id="7022562585984256452">Trang chủ của bạn đã được đặt.</translation> -<translation id="7025036625303002400">Dường như bạn đã có người dùng được giám sát có tên này.</translation> <translation id="7025190659207909717">Quản lý dịch vụ dữ liệu di động</translation> <translation id="7025325401470358758">Ngăn tiếp theo</translation> <translation id="7027125358315426638">Tên cơ sở dữ liệu:</translation> @@ -3957,7 +3928,6 @@ <translation id="7092106376816104">Ngoại lệ cho cửa sổ bật lên</translation> <translation id="7093434536568905704">GTK+</translation> <translation id="7093866338626856921">Trao đổi dữ liệu với thiết bị có tên: <ph name="HOSTNAMES" /></translation> -<translation id="7096108453481049031">Không thể nhập người dùng được giám sát. Vui lòng kiểm tra kết nối mạng của bạn rồi thử lại sau.</translation> <translation id="7096406577040705016">Bật/tắt tính năng Phóng to toàn bộ màn hình</translation> <translation id="7098447629416471489">Các công cụ tìm kiếm đã lưu khác sẽ xuất hiện ở đây</translation> <translation id="7099337801055912064">Không thể tải PPD có kích cỡ lớn. Kích cỡ tối đa là 250 kB.</translation> @@ -4005,7 +3975,6 @@ <translation id="7168109975831002660">Kích thước phông chữ tối thiểu</translation> <translation id="7170041865419449892">Ngoài vùng phủ sóng</translation> <translation id="7171559745792467651">Cài đặt ứng dụng từ các thiết bị khác của bạn</translation> -<translation id="7173917244679555">Có vẻ như bạn đang quản lý người dùng có tên đó. Bạn có muốn <ph name="BEGIN_LINK" />nhập <ph name="PROFILE_NAME" /><ph name="END_LINK" /> vào thiết bị này không?</translation> <translation id="7175037578838465313">Định cấu hình <ph name="NAME" /></translation> <translation id="7175353351958621980">Được tải từ:</translation> <translation id="7180611975245234373">Làm mới</translation> @@ -4177,7 +4146,6 @@ <translation id="7444726222535375658">Tiếp tục với Hangouts Meet</translation> <translation id="7444983668544353857">Vô hiệu hóa <ph name="NETWORKDEVICE" /></translation> <translation id="7445682342344043969">Đã chặn cửa sổ bật lên</translation> -<translation id="744859430125590922">Kiểm soát và xem các trang web người này truy cập từ <ph name="CUSTODIAN_EMAIL" />.</translation> <translation id="7453008956351770337">Bằng cách chọn máy in này, bạn sẽ cấp cho tiện ích sau quyền truy cập vào máy in của mình:</translation> <translation id="7453467225369441013">Đăng xuất bạn khỏi hầu hết các trang web. Bạn sẽ không bị đăng xuất khỏi Tài khoản Google của mình.</translation> <translation id="7456142309650173560">nhà phát triển</translation> @@ -4351,7 +4319,6 @@ <translation id="7717845620320228976">Kiểm tra các bản cập nhật</translation> <translation id="7719367874908701697">Thu phóng trang</translation> <translation id="771953673318695590">QA</translation> -<translation id="7720375555307821262">Để giám sát người này, hãy <ph name="BEGIN_LINK" />đăng nhập vào Chrome<ph name="END_LINK" />.</translation> <translation id="7721179060400456005">Cho phép cửa sổ mở rộng màn hình</translation> <translation id="7722040605881499779">Cần được cập nhật: <ph name="NECESSARY_SPACE" /></translation> <translation id="7724603315864178912">Cắt</translation> @@ -4362,7 +4329,7 @@ <translation id="773426152488311044">Bạn hiện là người dùng <ph name="PRODUCT_NAME" /> duy nhất.</translation> <translation id="7740996059027112821">Chuẩn</translation> <translation id="7748528009589593815">Tab trước</translation> -<translation id="7748626145866214022">Có các tùy chọn khác trên thanh hành động. Hãy nhấn tổ hợp phím Alt + A để đặt con trỏ vào thanh hành động.</translation> +<translation id="7748626145866214022">Trên thanh hành động có các tùy chọn khác. Nhấn tổ hợp phím Alt + A để đặt tiêu điểm vào thanh hành động.</translation> <translation id="7751260505918304024">Hiển thị tất cả</translation> <translation id="7754704193130578113">Hỏi vị trí lưu từng tệp trước khi tải xuống</translation> <translation id="7758450972308449809">Điều chỉnh ranh giới cho màn hình của bạn</translation> @@ -4852,7 +4819,7 @@ <translation id="8470028084415844044">Để lấy tất cả mật khẩu của bạn trên mọi thiết bị, hãy bật tính năng đồng bộ hóa.</translation> <translation id="8470513973197838199">Đã lưu mật khẩu cho <ph name="ORIGIN" /></translation> <translation id="8472623782143987204">được hỗ trợ bằng phần cứng</translation> -<translation id="8474229360677287535">Đóng tất cả các Cửa sổ</translation> +<translation id="8474229360677287535">Đóng tất cả các cửa sổ</translation> <translation id="8475313423285172237">Một chương trình khác trên máy tính của bạn đã thêm một tiện ích có thể thay đổi cách Chrome hoạt động.</translation> <translation id="8475647382427415476">Google Drive không thể đồng bộ hóa "<ph name="FILENAME" />" ngay bây giờ. Google Drive sẽ thử lại sau.</translation> <translation id="8477241577829954800">Đã thay thế</translation> @@ -5206,7 +5173,6 @@ <translation id="9024331582947483881">toàn màn hình</translation> <translation id="9025098623496448965">OK, đưa tôi quay lại màn hình đăng nhập</translation> <translation id="9026731007018893674">tải xuống</translation> -<translation id="9027146684281895941">Giám sát người này để kiểm soát và xem các trang web mà họ truy cập từ Tài khoản Google của bạn.</translation> <translation id="9027459031423301635">Mở Liên kết trong &Tab Mới</translation> <translation id="9027603907212475920">Thiết lập đồng bộ hóa...</translation> <translation id="9030515284705930323">Tổ chức chưa bật Cửa hàng Google Play cho tài khoản của bạn. Hãy liên hệ với quản trị viên để biết thêm thông tin.</translation> @@ -5366,7 +5332,6 @@ <translation id="98515147261107953">Khổ ngang</translation> <translation id="987897973846887088">Không có hình ảnh</translation> <translation id="988978206646512040">Không cho phép cụm mật khẩu trống</translation> -<translation id="990310048453480215">Xóa ứng dụng Linux</translation> <translation id="992032470292211616">Tiện ích, ứng dụng và chủ đề có thể gây hại cho thiết bị của bạn. Bạn có chắc chắn muốn tiếp tục không?</translation> <translation id="992592832486024913">Tắt ChromeVox (phản hồi bằng giọng nói)</translation> <translation id="994289308992179865">&Vòng lặp</translation>
diff --git a/chrome/app/resources/generated_resources_zh-CN.xtb b/chrome/app/resources/generated_resources_zh-CN.xtb index 44b77dd..5d532d5 100644 --- a/chrome/app/resources/generated_resources_zh-CN.xtb +++ b/chrome/app/resources/generated_resources_zh-CN.xtb
@@ -42,10 +42,11 @@ <translation id="1056898198331236512">警告</translation> <translation id="1058262162121953039">PUK</translation> <translation id="1062407476771304334">替换</translation> -<translation id="1062866675591297858">请通过<ph name="BEGIN_LINK" />受监管用户信息中心<ph name="END_LINK" />管理您的受监管用户。</translation> <translation id="1064835277883315402">加入专用网络</translation> <translation id="1064912851688322329">取消与您的 Google 帐号的关联</translation> <translation id="1067048845568873861">创建时间</translation> +<translation id="1067291318998134776">Linux(测试版)</translation> +<translation id="1067922213147265141">其他 Google 服务</translation> <translation id="1070066693520972135">WEP</translation> <translation id="1070377999570795893">您计算机上的其他程序擅自安装了一个可能会更改 Chrome 工作方式的扩展程序。 @@ -63,7 +64,6 @@ <translation id="1091767800771861448">按 ESC 键可跳过更新(仅限非官方版本)。</translation> <translation id="1093457606523402488">可见网络:</translation> <translation id="1094607894174825014">有人使用无效偏移值在“<ph name="DEVICE_NAME" />”上请求了读取或写入操作。</translation> -<translation id="1097507499312291972">需<ph name="BEGIN_SIGN_IN_LINK" />登录<ph name="END_SIGN_IN_LINK" />才能控制和查看此用户访问的网站。</translation> <translation id="109758035718544977">将多个网站取消静音</translation> <translation id="1097658378307015415">登录前,请先以访客身份进入,以便激活“<ph name="NETWORK_ID" />”网络。</translation> <translation id="1103523840287552314">一律翻译<ph name="LANGUAGE" /></translation> @@ -184,6 +184,7 @@ <translation id="1260240842868558614">显示:</translation> <translation id="126710816202626562">翻译语言:</translation> <translation id="126768002343224824">16 倍</translation> +<translation id="1271317946095246719">将地址栏和搜索框中的搜索字词以及一些 Cookie 发送至您的默认搜索引擎</translation> <translation id="1272079795634619415">停止</translation> <translation id="1272978324304772054">此用户帐号不属于设备所注册的域。如果想注册其他域,那么您首先需要执行设备恢复。</translation> <translation id="1274977772557788323">Adobe Flash Player 存储设置</translation> @@ -241,7 +242,6 @@ <translation id="1361655923249334273">未使用</translation> <translation id="1363028406613469049">曲目</translation> <translation id="1367951781824006909">选择文件</translation> -<translation id="136802136832547685">没有任何可添加到此设备中的受监管用户。</translation> <translation id="1368265273904755308">报告问题</translation> <translation id="1370646789215800222">要移除用户吗?</translation> <translation id="1372681413396468867">{NUM_ITEMS,plural, =1{将移除 1 项内容}other{将移除 # 项内容}}</translation> @@ -466,7 +466,6 @@ <translation id="1692799361700686467">允许来自多个网站的 Cookie。</translation> <translation id="169515659049020177">Shift</translation> <translation id="1698122934742150150">仅限当前的隐身会话</translation> -<translation id="1700199471143028312">您的管理员禁止您创建受监管用户。</translation> <translation id="1701062906490865540">移除此用户</translation> <translation id="1706586824377653884">此图标是由管理员添加的</translation> <translation id="1706625117072057435">缩放级别</translation> @@ -801,6 +800,7 @@ <translation id="2230062665678605299">无法创建文件夹“<ph name="FOLDER_NAME" />”。<ph name="ERROR_MESSAGE" /></translation> <translation id="223106756035922488">点击即可查看今日的涂鸦</translation> <translation id="2231238007119540260">如果您删除了某个服务器的证书,则会恢复对该服务器的常规安全检查,并要求其使用有效证书。</translation> +<translation id="2232379019872353004">将一些系统信息和网页内容发送至 Google</translation> <translation id="2232876851878324699">该文件包含一个证书,但未导入:</translation> <translation id="2233502537820838181">详细信息(&M)</translation> <translation id="2238379619048995541">频率状态数据</translation> @@ -886,6 +886,7 @@ <translation id="2359808026110333948">继续</translation> <translation id="236141728043665931">始终禁止使用麦克风</translation> <translation id="2365507699358342471">此页面可以查看复制到剪贴板的文字和图片。</translation> +<translation id="2366463953911599217">错误:未能成功卸载“<ph name="APP_NAME" />”。</translation> <translation id="2367199180085172140">添加文件共享</translation> <translation id="2367972762794486313">显示应用</translation> <translation id="2371076942591664043">完成时打开(&D)</translation> @@ -937,6 +938,7 @@ <translation id="2462724976360937186">证书授权中心密钥 ID</translation> <translation id="2462752602710430187">已添加<ph name="PRINTER_NAME" /></translation> <translation id="2464089476039395325">HTTP 代理</translation> +<translation id="2468205691404969808">使用 Cookie 记住您的偏好设置(即使您不访问这些网页)</translation> <translation id="2468902267404883140">无法连接到您的手机。请确保您使用的是兼容的 Android 手机,而且该手机正处于开机状态且就在您身边。<a>了解详情</a></translation> <translation id="2470702053775288986">已停用不支持的扩展程序</translation> <translation id="2473195200299095979">翻译此页</translation> @@ -1031,7 +1033,6 @@ <translation id="2604255671529671813">网络连接错误</translation> <translation id="2606246518223360146">关联数据</translation> <translation id="2607101320794533334">证书持有者的公共密钥信息</translation> -<translation id="2607459012323956820">管理员仍可前往 <ph name="BEGIN_LINK" /><ph name="DISPLAY_LINK" /><ph name="END_LINK" /> 查看这位受监管用户的设置和浏览记录。</translation> <translation id="2608770217409477136">使用默认设置</translation> <translation id="2609896558069604090">创建快捷方式...</translation> <translation id="2610157865375787051">休眠</translation> @@ -1100,6 +1101,7 @@ <translation id="2686759344028411998">未检测到任何已加载的模块。</translation> <translation id="2688196195245426394">向服务器注册设备时出错:<ph name="CLIENT_ERROR" />。</translation> <translation id="2690024944919328218">显示语言选项</translation> +<translation id="2690824726518456119">正在启动“Concierge”服务。</translation> <translation id="2691385045260836588">型号</translation> <translation id="2693176596243495071">糟糕!发生了未知错误。请稍后重试;如果问题依然存在,请与您的管理员联系。</translation> <translation id="2694026874607847549">1 个 Cookie</translation> @@ -1324,15 +1326,6 @@ <translation id="3022978424994383087">无法解析您所说的内容。</translation> <translation id="3024374909719388945">使用24小时制</translation> <translation id="302781076327338683">忽略缓存重新加载</translation> -<translation id="3030243755303701754">受监管用户可以在您的指导下浏览网页。作为 Chrome 中受监管用户的管理员,您可以: - - • 允许或禁止受监管用户访问某些网站; - • 查看受监管用户访问过的网站; - • 管理其他设置。 - -创建受监管用户时不会随之创建 Google 帐号,因此通过 Chrome 同步功能将这些用户同步到其他设备时,他们的书签、浏览记录及其他偏好设置不会一起同步到其他设备。创建新的受监管用户后,您可以随时通过任意设备在 <ph name="BEGIN_MANAGE_LINK" /><ph name="DISPLAY_LINK" /><ph name="END_MANAGE_LINK" /> 上管理这些用户的设置。 - -如需更多信息,请访问我们的<ph name="BEGIN_LINK" />帮助中心<ph name="END_LINK" />。</translation> <translation id="3031417829280473749">女特工</translation> <translation id="3031557471081358569">选择要导入的内容:</translation> <translation id="3031601332414921114">继续打印</translation> @@ -1373,7 +1366,6 @@ <translation id="3085412380278336437">该网站可能会使用您的摄像头</translation> <translation id="3085752524577180175">SOCKS 主机</translation> <translation id="3088325635286126843">重命名(&R)...</translation> -<translation id="3089231390674410424">您的凭据似乎有问题。请确保您已成功登录,然后重试。</translation> <translation id="3090193911106258841">正在存取音频和视频输入</translation> <translation id="3090819949319990166">无法将外部 crx 文件复制到 <ph name="TEMP_CRX_FILE" />。</translation> <translation id="3090871774332213558">“<ph name="DEVICE_NAME" />”已配对</translation> @@ -1388,7 +1380,6 @@ <translation id="3121793941267913344">重置这台<ph name="IDS_SHORT_PRODUCT_NAME" />设备</translation> <translation id="3122464029669770682">CPU</translation> <translation id="3122496702278727796">无法创建数据目录</translation> -<translation id="3123569374670379335">(受监管)</translation> <translation id="3124111068741548686">USER处理函数</translation> <translation id="3126026824346185272">Ctrl</translation> <translation id="3127156390846601284">此操作会删除所显示的全部网站在您设备上存储的所有数据。要继续吗?</translation> @@ -1423,8 +1414,6 @@ <translation id="3160842278951476457"><ph name="ISSUED_BY" /> [<ph name="ISSUED_TO" />](由硬件支持)</translation> <translation id="316125635462764134">卸载应用</translation> <translation id="3161522574479303604">所有语言</translation> -<translation id="316307797510303346">控制和查看此用户通过 <ph name="CUSTODIAN_EMAIL" /> 访问的网站。 - 您的帐号登录详细信息已过期。</translation> <translation id="3165390001037658081">有些运营商可能会屏蔽此功能。</translation> <translation id="316854673539778496">要将您的所有扩展程序同步到您的所有设备上,请登录您的帐号并开启同步功能。</translation> <translation id="3170072451822350649">您也可以跳过登录步骤,<ph name="LINK_START" />以访客身份浏览<ph name="LINK_END" />。</translation> @@ -1438,6 +1427,7 @@ <translation id="3190558889382726167">密码已保存</translation> <translation id="3192947282887913208">音频文件</translation> <translation id="3194737229810486521"><ph name="URL" /> 想在您的设备上永久存储数据</translation> +<translation id="3197054279257119376">正在加载“Termina”组件。</translation> <translation id="3199127022143353223">服务器</translation> <translation id="3202131003361292969">路径</translation> <translation id="3202173864863109533">此标签页已静音。</translation> @@ -1456,7 +1446,6 @@ <translation id="3229922550070982305">播放/暂停</translation> <translation id="3232318083971127729">值:</translation> <translation id="3236289833370040187">所有权将被转移到 <ph name="DESTINATION_DOMAIN" />。</translation> -<translation id="3237784613213365159">“<ph name="NEW_PROFILE_NAME" />”现已成为受监管用户</translation> <translation id="323803881985677942">打开扩展程序选项</translation> <translation id="3241680850019875542">选择要打包的扩展程序的根目录。要更新某个扩展程序,还需选择要再次使用的私有密钥文件。</translation> <translation id="3242765319725186192">预共享密钥:</translation> @@ -1560,6 +1549,7 @@ <translation id="3405664148539009465">自定义字体</translation> <translation id="3405763860805964263">…</translation> <translation id="3406605057700382950">显示书签栏(&S)</translation> +<translation id="3407837288045706722">要了解更多与隐私、安全和数据收集相关的设置,请参阅<ph name="BEGIN_LINK" />同步和个性化<ph name="END_LINK" /></translation> <translation id="3412265149091626468">跳到所选部分</translation> <translation id="3413122095806433232">CA 证书颁发者:<ph name="LOCATION" /></translation> <translation id="3414856743105198592">格式化可移动设备会删除其中的所有数据。您要继续吗?</translation> @@ -1637,6 +1627,7 @@ <translation id="3504135463003295723">群组名称:</translation> <translation id="3505030558724226696">撤消对设备的访问权限</translation> <translation id="3507421388498836150">“<ph name="EXTENSION_NAME" />”目前拥有的权限</translation> +<translation id="3507547268929739059">从 Chromebook 中移除 Linux 应用</translation> <translation id="3507888235492474624">重新扫描蓝牙设备</translation> <translation id="3508920295779105875">选择其他文件夹...</translation> <translation id="3510797500218907545">WiMAX</translation> @@ -1817,7 +1808,6 @@ <translation id="3778152852029592020">已取消下载。</translation> <translation id="3778740492972734840">开发者工具(&D)</translation> <translation id="3778868487658107119">您可以向它询问各种问题,指示它处理各种事务。它是专门为您配置的 Google 助手,随时为您提供帮助。</translation> -<translation id="3780663724044634171">请选择用于管理受监管用户的帐号。</translation> <translation id="378312418865624974">读取此计算机的专属标识符</translation> <translation id="3783640748446814672">alt</translation> <translation id="3785308913036335955">显示应用快捷方式</translation> @@ -1831,6 +1821,7 @@ <translation id="379422718204375917">使用 Smart Lock 登录您的帐号</translation> <translation id="3796648294839530037">收藏的网络:</translation> <translation id="3797900183766075808">使用<ph name="SEARCH_ENGINE" />搜索“<ph name="SEARCH_TERMS" />”(&S)</translation> +<translation id="3798133693323981089">自动填充搜索字词和网址</translation> <translation id="3798449238516105146">版本</translation> <translation id="3799201711591988491">{COUNT,plural, =0{全部打开(&O)}=1{打开 1 个网址(&O)}other{打开全部(# 个)网址(&O)}}</translation> <translation id="3800806661949714323">显示全部(推荐)</translation> @@ -2006,6 +1997,7 @@ <translation id="4065876735068446555">您正在使用的网络 (<ph name="NETWORK_ID" />) 可能需要您访问其登录页面。</translation> <translation id="4068506536726151626">此网页包含来自以下网站的元素,这些网站正在追踪您的位置:</translation> <translation id="4068776064906523561">已保存的指纹</translation> +<translation id="407173827865827707">点击时</translation> <translation id="4071770069230198275"><ph name="PROFILE_NAME" />:登录错误</translation> <translation id="4074900173531346617">电子邮件签名人证书</translation> <translation id="407520071244661467">缩放</translation> @@ -2037,6 +2029,7 @@ <translation id="4109135793348361820">将窗口移至<ph name="USER_NAME" />(<ph name="USER_EMAIL" />)</translation> <translation id="4110559665646603267">将光标移到应用栏</translation> <translation id="4110895898888439383">以高反差模式浏览网页</translation> +<translation id="4112774766611964959">此操作会卸载“<ph name="APP_NAME" />”,并会从您的 <ph name="DEVICE_TYPE" /> 中移除所有 Linux 数据和应用。确定要执行此操作吗?</translation> <translation id="4114360727879906392">上一个窗口</translation> <translation id="4115002065223188701">检测不到网络</translation> <translation id="4115080753528843955">有些内容服务会使用独一无二的标识符来授予对受保护内容的访问权限</translation> @@ -2091,6 +2084,7 @@ <translation id="42137655013211669">服务器禁止访问此资源。</translation> <translation id="4215350869199060536">糟糕,名称中包含非法符号!</translation> <translation id="4215448920900139318">正在备份 <ph name="FILE_COUNT" /></translation> +<translation id="4225397296022057997">在所有网站上</translation> <translation id="4235200303672858594">整个屏幕</translation> <translation id="4235813040357936597">为<ph name="PROFILE_NAME" />添加帐号</translation> <translation id="4235965441080806197">取消登录</translation> @@ -2158,6 +2152,7 @@ <translation id="4345703751611431217">软件不兼容:了解详情</translation> <translation id="4348766275249686434">收集各项错误</translation> <translation id="4350019051035968019">该设备无法注册到您的帐号所属的网域,因为它已标记为受其他网域管理。</translation> +<translation id="4354266305752237763">保护您和您的设备不受危险网站的侵害(安全浏览)</translation> <translation id="4356334633973342967">或指定您自己的驱动程序:</translation> <translation id="4358353773267946514"><ph name="LANGUAGE_1" />、<ph name="LANGUAGE_2" /></translation> <translation id="4359408040881008151">安装此扩展程序是因为某个/些扩展程序需要安装它才能正常使用。</translation> @@ -2166,6 +2161,7 @@ <translation id="4364567974334641491"><ph name="APP_NAME" /> 正在共享窗口。</translation> <translation id="4364830672918311045">显示通知</translation> <translation id="4365673000813822030">糟糕,同步已停止。</translation> +<translation id="4370373819607756384">您可在<ph name="BEGIN_LINK" />语言<ph name="END_LINK" />中控制此设置</translation> <translation id="4370975561335139969">您输入的电子邮件地址和密码不匹配。</translation> <translation id="437184764829821926">高级字体设置</translation> <translation id="4372884569765913867">1x1</translation> @@ -2220,6 +2216,7 @@ <translation id="4462159676511157176">自定义域名服务器</translation> <translation id="4467100756425880649">Chrome 网上应用店扩展程序列表</translation> <translation id="4467101674048705704">展开“<ph name="FOLDER_NAME" />”</translation> +<translation id="447252321002412580">帮助我们改进 Chrome 的功能和性能</translation> <translation id="4474155171896946103">为所有标签页添加书签...</translation> <translation id="4475552974751346499">搜索下载内容</translation> <translation id="4476590490540813026">运动员</translation> @@ -2242,6 +2239,7 @@ <translation id="4514542542275172126">设置新的受监管用户</translation> <translation id="451515744433878153">移除</translation> <translation id="4518677423782794009">Chrome 是否出现以下异常情况:崩溃、启动页或工具栏异常、您无法关闭不想看到的广告,或您的浏览设置遭到篡改?或许您可以通过运行 Chrome 清理工具来解决该问题。</translation> +<translation id="4518928191942891293">正在启动“Termina VM”内的容器。</translation> <translation id="4520385623207007473">正在使用的 Cookie</translation> <translation id="452039078290142656">来自<ph name="VENDOR_NAME" />的未知设备</translation> <translation id="4522570452068850558">详细信息</translation> @@ -2290,6 +2288,7 @@ <translation id="4589268276914962177">打开新终端</translation> <translation id="4590324241397107707">数据库存储</translation> <translation id="4593021220803146968">转到 <ph name="URL" />(&G)</translation> +<translation id="459505086032485258">显示 Google 服务设置</translation> <translation id="4595560905247879544">只有管理员(<ph name="CUSTODIAN_NAME" />)可以修改应用和扩展程序。</translation> <translation id="4596295440756783523">您有证书可标识以下服务器</translation> <translation id="4598556348158889687">存储空间管理</translation> @@ -2509,6 +2508,7 @@ <translation id="4917385247580444890">强</translation> <translation id="4918021164741308375"><ph name="ORIGIN" /> 希望与“<ph name="EXTENSION_NAME" />”扩展程序通信</translation> <translation id="4918086044614829423">接受</translation> +<translation id="4920350943031252905">在您的 Chromebook 上运行 Linux 工具、编辑器和 IDE。</translation> <translation id="4920887663447894854">系统已阻止以下网站跟踪您在此网页上的位置:</translation> <translation id="492299503953721473">移除 Android 应用</translation> <translation id="4923279099980110923">我愿意提供帮助</translation> @@ -2534,7 +2534,6 @@ <translation id="4964455510556214366">排列方式</translation> <translation id="4964673849688379040">正在检查…</translation> <translation id="4965808351167763748">确定要将此设备设为运行 Hangouts Meet 吗?</translation> -<translation id="4967749818080339523">选择帐号</translation> <translation id="496888482094675990">通过“文件”应用,您可以快速存取自己保存在Google云端硬盘、外部存储设备和Chrome操作系统设备上的文件。</translation> <translation id="4969785127455456148">专辑</translation> <translation id="4971412780836297815">完成后打开</translation> @@ -2673,6 +2672,7 @@ <translation id="5186650237607254032">更新配对手机的屏幕锁定设置,以便您在附近时系统即停用该功能。这样一来,您不仅能够更快速地为手机解锁,还能在 <ph name="DEVICE_TYPE" /> 上畅享更好的 Smart Lock 体验。</translation> <translation id="5187295959347858724">您现在已登录 <ph name="SHORT_PRODUCT_NAME" />。系统正在将您的书签、浏览记录和其他设置与您的 Google 帐号同步。</translation> <translation id="5187826826541650604"><ph name="KEY_NAME" /> (<ph name="DEVICE" />)</translation> +<translation id="5196721203029902230">与 Google 通信,以便改进浏览服务和 Chrome</translation> <translation id="5204967432542742771">输入密码</translation> <translation id="5206215183583316675">要删除“<ph name="CERTIFICATE_NAME" />”吗?</translation> <translation id="520621735928254154">导入证书时出现错误</translation> @@ -2710,6 +2710,7 @@ <translation id="5254368820972107711">显示将被移除的文件</translation> <translation id="52550593576409946">无法启动自助服务终端应用。</translation> <translation id="5255315797444241226">您输入的密码不正确。</translation> +<translation id="5256861893479663409">在所有网站上</translation> <translation id="5260508466980570042">抱歉,您的电子邮件地址或密码无法进行验证,请重试。</translation> <translation id="5261683757250193089">在 Chrome 网上应用店中打开</translation> <translation id="5262311848634918433"><ph name="MARKUP_1" />可随时随地访问文件,即使处于离线状态也没关系。<ph name="MARKUP_2" />Google 云端硬盘上的文件是最新的,并可通过任意设备访问。<ph name="MARKUP_3" /><ph name="MARKUP_4" />可确保文件安全。<ph name="MARKUP_5" />无论您的设备出现什么状况,您的文件都会安全地存储在 Google 云端硬盘上。<ph name="MARKUP_6" /><ph name="MARKUP_7" />文件集中存储,方便您与他人在同一个地方共享、创建和协作处理<ph name="MARKUP_8" />文件。<ph name="MARKUP_9" /></translation> @@ -2929,6 +2930,8 @@ <translation id="555746285996217175">锁定/电源</translation> <translation id="5557991081552967863">休眠期间保持 Wi-Fi 连接</translation> <translation id="5558129378926964177">放大(&I)</translation> +<translation id="5558446705802335921">检查您访问的网站以及您下载的文件中是否存在有害行为或内容(例如网上诱骗或恶意软件)</translation> +<translation id="5559719557406102971">正在启动“Termina VM”。</translation> <translation id="55601339223879446">调整您的桌面在显示屏内的边界</translation> <translation id="5562781907504170924">此标签页已连接到蓝牙设备。</translation> <translation id="5565871407246142825">信用卡</translation> @@ -3133,6 +3136,7 @@ <translation id="5863445608433396414">启用调试功能</translation> <translation id="5864471791310927901">DHCP 查找失败</translation> <translation id="586567932979200359">您正在通过磁盘映像运行 <ph name="PRODUCT_NAME" />。您只需在计算机上安装该软件,即可在没有磁盘映像的情况下运行它,并可确保使用最新版本。</translation> +<translation id="5865733239029070421">自动将使用情况统计信息和崩溃报告发送至 Google</translation> <translation id="5866557323934807206">清除这些设置以便日后访问</translation> <translation id="5866840822086176774">非常强</translation> <translation id="5867841422488265304">搜索或输入网址</translation> @@ -3183,6 +3187,7 @@ <translation id="5957613098218939406">更多选项</translation> <translation id="5958529069007801266">受监管用户</translation> <translation id="5959471481388474538">网络不可用</translation> +<translation id="595959584676692139">如果您想使用该扩展程序,请先重新加载网页</translation> <translation id="5963026469094486319">获取主题背景</translation> <translation id="5963453369025043595"><ph name="NUM_HANDLES" /> 个(峰值:<ph name="NUM_KILOBYTES_LIVE" />)</translation> <translation id="5965661248935608907">它还能够控制您点击“主页”按钮后或通过多功能框进行搜索时系统显示的页面。</translation> @@ -3356,10 +3361,10 @@ <translation id="6237816943013845465">可让您调整屏幕分辨率</translation> <translation id="6238923052227198598">始终将最新记事显示在锁定屏幕上</translation> <translation id="6239558157302047471">重新加载框架(&F)</translation> +<translation id="6240004034869232531">正在卸载…</translation> <translation id="6241530762627360640">获取与您的系统配对的蓝牙设备的相关信息,以及发现附近的蓝牙设备。</translation> <translation id="6243280677745499710">当前设置的壁纸</translation> <translation id="6243774244933267674">服务器不可用</translation> -<translation id="6246413617632217567">无法导入该受监管用户。请检查您的硬盘空间和权限,然后重试。</translation> <translation id="6247708409970142803"><ph name="PERCENTAGE" />%</translation> <translation id="6247802389331535091">系统:<ph name="ARC_PROCESS_NAME" /></translation> <translation id="624789221780392884">有可用的更新</translation> @@ -3557,7 +3562,6 @@ <translation id="654039047105555694"><ph name="BEGIN_BOLD" />注意:<ph name="END_BOLD" />除非您有意这么做或被要求这样做,否则请不要随意启用这项功能,因为收集数据可能会降低性能。</translation> <translation id="654233263479157500">使用网络服务帮助解决导航错误</translation> <translation id="6544215763872433504">Google 为您开发的网络浏览器</translation> -<translation id="6545325945815270297">通过 <ph name="BEGIN_LINK" />Chrome 信息中心<ph name="END_LINK" />管理已同步的数据和设备。</translation> <translation id="6545665334409411530">重复速度</translation> <translation id="6545834809683560467">在地址栏或应用启动器搜索框中输入搜索字词和网址时,借助联想查询服务自动补齐相关内容</translation> <translation id="6546686722964485737">加入 WiMAX 网络</translation> @@ -3572,7 +3576,6 @@ <translation id="6555810572223193255">目前无法进行清理</translation> <translation id="6556866813142980365">重做</translation> <translation id="6558280019477628686">出错了。系统可能尚未删除某些项。</translation> -<translation id="6559580823502247193">(已在此设备中)</translation> <translation id="6561726789132298588">Enter</translation> <translation id="656293578423618167">该文件的路径或名称过长。请以较短的名称保存或保存到其他位置。</translation> <translation id="656398493051028875">正在删除“<ph name="FILENAME" />”…</translation> @@ -3594,6 +3597,7 @@ <translation id="6596745167571172521">停用大写锁定</translation> <translation id="6596816719288285829">IP 地址</translation> <translation id="6597017209724497268">个样本的平均值</translation> +<translation id="6597332018579308636">允许访问</translation> <translation id="659934686219830168">在您离开此页面后,同步就会开始</translation> <translation id="6602353599068390226">将窗口移至另一显示屏</translation> <translation id="6602956230557165253">使用左右箭头键进行导航。</translation> @@ -3660,6 +3664,7 @@ <translation id="6690751852586194791">选择要添加到此设备的受监管用户。</translation> <translation id="6691331417640343772">通过 Google 信息中心管理已同步的数据</translation> <translation id="6691936601825168937">前进(&F)</translation> +<translation id="6697492270171225480">找不到相应网页时,显示有关类似网页的建议</translation> <translation id="6698810901424468597">读取和更改您在<ph name="WEBSITE_1" />和<ph name="WEBSITE_2" />上的数据</translation> <translation id="6700480081846086223">投射 <ph name="HOST_NAME" /></translation> <translation id="6701535245008341853">无法获取个人资料。</translation> @@ -3767,7 +3772,6 @@ <translation id="6862635236584086457">系统会自动在线备份保存在此文件夹中的所有文件</translation> <translation id="6865313869410766144">自动填充表单数据</translation> <translation id="686664946474413495">色温</translation> -<translation id="6867678160199975333">切换到<ph name="NEW_PROFILE_NAME" /></translation> <translation id="6870888490422746447">选择要分享给哪个应用:</translation> <translation id="6871644448911473373">OCSP 响应程序:<ph name="LOCATION" /></translation> <translation id="6872781471649843364">您输入的密码被服务器拒绝了。</translation> @@ -3861,7 +3865,6 @@ <translation id="7018275672629230621">读取和更改您的浏览记录</translation> <translation id="7019805045859631636">快</translation> <translation id="7022562585984256452">您的主页已设置。</translation> -<translation id="7025036625303002400">您似乎已有一个同名的受监管用户。</translation> <translation id="7025190659207909717">移动数据服务管理</translation> <translation id="7025325401470358758">下一窗格</translation> <translation id="7027125358315426638">数据库名称:</translation> @@ -3910,7 +3913,7 @@ <translation id="7092106376816104">弹出式窗口例外情况</translation> <translation id="7093434536568905704">GTK+</translation> <translation id="7093866338626856921">与具有下列名称的设备交换数据:<ph name="HOSTNAMES" /></translation> -<translation id="7096108453481049031">无法导入该受监管用户。请检查您的网络连接,稍后重试。</translation> +<translation id="7096406577040705016">开启/关闭全屏放大镜</translation> <translation id="7098447629416471489">其他已保存的搜索引擎将显示在这里</translation> <translation id="7099337801055912064">无法加载过大的 PPD。大小上限为 250 KB。</translation> <translation id="7100897339030255923">已选择 <ph name="COUNT" /> 项</translation> @@ -3957,7 +3960,6 @@ <translation id="7168109975831002660">最小字号</translation> <translation id="7170041865419449892">超出范围</translation> <translation id="7171559745792467651">安装您的其他设备中的应用</translation> -<translation id="7173917244679555">您好像已经在管理使用该名称的用户。您要将<ph name="BEGIN_LINK" /><ph name="PROFILE_NAME" /><ph name="END_LINK" />导入该设备吗?</translation> <translation id="7175037578838465313">配置“<ph name="NAME" />”</translation> <translation id="7175353351958621980">加载来源:</translation> <translation id="7180611975245234373">刷新</translation> @@ -4122,7 +4124,6 @@ <translation id="7444726222535375658">开始使用 Hangouts Meet</translation> <translation id="7444983668544353857">停用<ph name="NETWORKDEVICE" /></translation> <translation id="7445682342344043969">已拦截弹出式窗口</translation> -<translation id="744859430125590922">通过<ph name="CUSTODIAN_EMAIL" />帐号控制和查看此用户访问的网站。</translation> <translation id="7453008956351770337">选择此打印机即表示您允许以下扩展程序访问您的打印机:</translation> <translation id="7453467225369441013">您会从大多数网站退出,但不会退出自己的 Google 帐号。</translation> <translation id="7456142309650173560">开发者版本</translation> @@ -4294,7 +4295,6 @@ <translation id="7717845620320228976">检查是否有更新</translation> <translation id="7719367874908701697">网页缩放</translation> <translation id="771953673318695590">QA</translation> -<translation id="7720375555307821262">要监管这位用户,请<ph name="BEGIN_LINK" />登录 Chrome<ph name="END_LINK" />。</translation> <translation id="7721179060400456005">允许窗口跨多个显示屏进行显示</translation> <translation id="7722040605881499779">要更新,所需空间为:<ph name="NECESSARY_SPACE" /></translation> <translation id="7724603315864178912">剪切</translation> @@ -4366,6 +4366,24 @@ <ph name="LINE_BREAK2" /> 请少选些照片试试。</translation> <translation id="782590969421016895">使用当前网页</translation> +<translation id="7826790948326204519"><ph name="BEGIN_H3" />调试功能<ph name="END_H3" /> + <ph name="BR" /> + 您可在 Chrome 操作系统设备上启用调试功能,以便在相应设备上安装并测试自定义代码。启用这些功能后,您可以:<ph name="BR" /> + <ph name="BEGIN_LIST" /> + <ph name="LIST_ITEM" />取消根文件系统验证,以便修改操作系统文件 + <ph name="LIST_ITEM" />允许使用标准测试密钥以 SSH 方式访问设备,以便使用 <ph name="BEGIN_CODE" />cros flash<ph name="END_CODE" /> 等工具访问设备 + <ph name="LIST_ITEM" />允许从 U 盘启动设备,以便通过 U 盘安装操作系统映像 + <ph name="LIST_ITEM" />将 Dev 和系统根登录密码均设为自定义值,以便手动以 SSH 方式访问设备 + <ph name="END_LIST" /> + <ph name="BR" /> + 如果您启用了此项设置,那么即使在企业管理的设备上执行了 Powerwash 或数据擦除操作,大部分调试功能仍将保持启用状态。要完全停用所有调试功能,请执行 Chrome 操作系统恢复过程 (https://support.google.com/chromebook/answer/1080595)。 + <ph name="BR" /> + <ph name="BR" /> + 如需详细了解调试功能,请访问:<ph name="BR" /> + https://www.chromium.org/chromium-os/how-tos-and-troubleshooting/debugging-features + <ph name="BR" /> + <ph name="BR" /> + <ph name="BEGIN_BOLD" />注意<ph name="END_BOLD" />:在恢复过程中,系统将会重新启动。</translation> <translation id="7829298379596169484">正在存取音频输入</translation> <translation id="7831491651892296503">配置网络时出错</translation> <translation id="7831754656372780761">“<ph name="TAB_TITLE" />”<ph name="EMOJI_MUTING" /></translation> @@ -4430,6 +4448,7 @@ <translation id="7912080627461681647">您已在服务器上更改密码。请先退出,然后重新登录。</translation> <translation id="7912883689016444961">配置移动网络</translation> <translation id="7915471803647590281">请先告诉我们所发生的情况,然后再发送反馈。</translation> +<translation id="7916556741383518510">点击时</translation> <translation id="792514962475806987">停靠的放大镜的缩放级别:</translation> <translation id="7925247922861151263">AAA 检查失败</translation> <translation id="7925285046818567682">正在等待 <ph name="HOST_NAME" /> 的响应...</translation> @@ -4470,6 +4489,7 @@ <translation id="7978412674231730200">私有密钥</translation> <translation id="7979036127916589816">同步错误</translation> <translation id="7980084013673500153">资源 ID:<ph name="ASSET_ID" /></translation> +<translation id="7981313251711023384">预加载网页,以便实现更快速的浏览和搜索</translation> <translation id="7982083145464587921">请重新启动您的设备以修复此错误。</translation> <translation id="7982283708762922719">高度</translation> <translation id="7982789257301363584">网络</translation> @@ -4875,6 +4895,7 @@ <translation id="8651585100578802546">强制重新加载此页</translation> <translation id="8652400352452647993">打包扩展程序错误</translation> <translation id="8652487083013326477">页码范围单选按钮</translation> +<translation id="8653292045957015650">开启/关闭停靠的放大镜</translation> <translation id="8654151524613148204">很抱歉,文件过大,计算机无法处理。</translation> <translation id="8655295600908251630">渠道</translation> <translation id="8655319619291175901">糟糕,出了点问题。</translation> @@ -4966,6 +4987,7 @@ <translation id="8757803915342932642">Google Cloud Devices上的设备</translation> <translation id="8759408218731716181">无法设置多帐号登录</translation> <translation id="8759753423332885148">了解详情。</translation> +<translation id="8762207669047572135">允许访问</translation> <translation id="8767621466733104912">自动为所有用户更新 Chrome</translation> <translation id="8770406935328356739">扩展程序根目录</translation> <translation id="8770507190024617908">管理用户</translation> @@ -5095,7 +5117,9 @@ <translation id="8976520271376534479">已禁止在此网页上运行 Flash。</translation> <translation id="8977811652087512276">密码不正确或文件已损坏</translation> <translation id="8978154919215542464">开启 - 同步所有内容</translation> +<translation id="897939795688207351">在 <ph name="ORIGIN" /> 上</translation> <translation id="8980951173413349704"><ph name="WINDOW_TITLE" /> - 已崩溃</translation> +<translation id="8983677657449185470">帮助我们改进安全浏览服务</translation> <translation id="8986362086234534611">不保存</translation> <translation id="8986494364107987395">将使用情况统计信息和崩溃报告自动发送给 Google</translation> <translation id="8987927404178983737">月</translation> @@ -5104,6 +5128,7 @@ <translation id="8995603266996330174">由 <ph name="DOMAIN" /> 管理</translation> <translation id="8996526648899750015">添加帐号…</translation> <translation id="8997135628821231"><ph name="ISSUED_BY" /> [<ph name="ISSUED_TO" />] (<ph name="DEVICE" />)</translation> +<translation id="8998788483361403036">正在创建磁盘映像。</translation> <translation id="9003647077635673607">允许在所有网站上运行脚本</translation> <translation id="9003677638446136377">再次检查</translation> <translation id="9003704114456258138">频率</translation> @@ -5124,7 +5149,6 @@ <translation id="9024331582947483881">全屏</translation> <translation id="9025098623496448965">确定,返回登录屏幕</translation> <translation id="9026731007018893674">下载</translation> -<translation id="9027146684281895941">监管此人,以通过您的 Google 帐号控制和查看其访问的网站。</translation> <translation id="9027459031423301635">在新标签页中打开链接(&T)</translation> <translation id="9027603907212475920">设置同步...</translation> <translation id="9030515284705930323">贵单位还没有为您的帐号启用 Google Play 商店。如需更多信息,请与管理员联系。</translation> @@ -5140,6 +5164,7 @@ <translation id="9042893549633094279">隐私设置和安全性</translation> <translation id="904451693890288097">请输入“<ph name="DEVICE_NAME" />”的配对密钥:</translation> <translation id="9044646465488564462">无法连接到网络:<ph name="DETAILS" /></translation> +<translation id="9045430190527754450">将您尝试访问的网页的网址发送至 Google</translation> <translation id="9046895021617826162">连接失败</translation> <translation id="9050666287014529139">密码</translation> <translation id="9052208328806230490">您已使用帐号 <ph name="EMAIL" /> 将您的打印机注册为<ph name="CLOUD_PRINT_NAME" /></translation>
diff --git a/chrome/app/resources/generated_resources_zh-TW.xtb b/chrome/app/resources/generated_resources_zh-TW.xtb index c3baeee3..81c6d9ac 100644 --- a/chrome/app/resources/generated_resources_zh-TW.xtb +++ b/chrome/app/resources/generated_resources_zh-TW.xtb
@@ -42,10 +42,11 @@ <translation id="1056898198331236512">警告</translation> <translation id="1058262162121953039">PUK</translation> <translation id="1062407476771304334">取代</translation> -<translation id="1062866675591297858">前往<ph name="BEGIN_LINK" />受監管的使用者資訊主頁<ph name="END_LINK" />管理你的受監管使用者。</translation> <translation id="1064835277883315402">加入私人網路</translation> <translation id="1064912851688322329">中斷你「Google 帳戶」的連線</translation> <translation id="1067048845568873861">建立時間</translation> +<translation id="1067291318998134776">Linux (測試版)</translation> +<translation id="1067922213147265141">其他 Google 服務</translation> <translation id="1070066693520972135">WEP</translation> <translation id="1070377999570795893">電腦中的其他程式新增了一個擴充功能,可能會使 Chrome 的運作方式發生變更。 @@ -63,7 +64,6 @@ <translation id="1091767800771861448">按下 ESCAPE 鍵可略過 (僅限非官方版本)。</translation> <translation id="1093457606523402488">可偵測到的網路:</translation> <translation id="1094607894174825014">在以下裝置上要求的讀取或寫入作業使用了無效的偏移:「<ph name="DEVICE_NAME" />」。</translation> -<translation id="1097507499312291972"><ph name="BEGIN_SIGN_IN_LINK" />登入<ph name="END_SIGN_IN_LINK" />即可控制及檢視這個使用者所造訪的網站。</translation> <translation id="109758035718544977">開啟多個網站音訊</translation> <translation id="1097658378307015415">請在登入前以訪客身分進入,啟用網路 <ph name="NETWORK_ID" /></translation> <translation id="1103523840287552314">一律翻譯<ph name="LANGUAGE" /></translation> @@ -184,6 +184,7 @@ <translation id="1260240842868558614">顯示:</translation> <translation id="126710816202626562">翻譯語言:</translation> <translation id="126768002343224824">16x</translation> +<translation id="1271317946095246719">將網址列和搜尋框中的搜尋查詢和部分 Cookie 傳送給你的預設搜尋引擎</translation> <translation id="1272079795634619415">停止</translation> <translation id="1272978324304772054">裝置註冊的網域中沒有這個使用者帳戶。如果你要使用其他網域進行註冊,必須先完成裝置修復作業。</translation> <translation id="1274977772557788323">Adobe Flash Player 儲存設定</translation> @@ -241,7 +242,6 @@ <translation id="1361655923249334273">未使用</translation> <translation id="1363028406613469049">追蹤</translation> <translation id="1367951781824006909">選擇檔案</translation> -<translation id="136802136832547685">沒有受監管的使用者可以新增至這部裝置。</translation> <translation id="1368265273904755308">回報問題</translation> <translation id="1370646789215800222">是否移除使用者?</translation> <translation id="1372681413396468867">{NUM_ITEMS,plural, =1{將移除 1 個項目}other{將移除 # 個項目}}</translation> @@ -469,7 +469,6 @@ <translation id="1692799361700686467">系統允許使用多個網站的 Cookie。</translation> <translation id="169515659049020177">Shift</translation> <translation id="1698122934742150150">僅適用於目前的無痕模式工作階段</translation> -<translation id="1700199471143028312">您的管理員禁止您建立受監管的使用者。</translation> <translation id="1701062906490865540">移除這個使用者</translation> <translation id="1706586824377653884">由管理員新增</translation> <translation id="1706625117072057435">縮放等級</translation> @@ -804,6 +803,7 @@ <translation id="2230062665678605299">無法建立資料夾「<ph name="FOLDER_NAME" />」。<ph name="ERROR_MESSAGE" /></translation> <translation id="223106756035922488">按一下即可瀏覽今日 doodle</translation> <translation id="2231238007119540260">如果你刪除了伺服器憑證,系統便會還原對該伺服器的定期安全性檢查,並要求使用有效的憑證。</translation> +<translation id="2232379019872353004">將部分系統資訊和網頁內容傳送給 Google</translation> <translation id="2232876851878324699">檔案含有一個憑證,但無法匯入:</translation> <translation id="2233502537820838181">更多資訊(&M)</translation> <translation id="2238379619048995541">頻率狀態資料</translation> @@ -889,6 +889,7 @@ <translation id="2359808026110333948">繼續</translation> <translation id="236141728043665931">一律封鎖存取麥克風</translation> <translation id="2365507699358342471">這個網站可以讀取已複製到剪貼簿的文字和圖片。</translation> +<translation id="2366463953911599217">錯誤:無法解除安裝「<ph name="APP_NAME" />」。</translation> <translation id="2367199180085172140">新增檔案共用</translation> <translation id="2367972762794486313">顯示應用程式</translation> <translation id="2371076942591664043">完成後開啟(&D)</translation> @@ -940,6 +941,7 @@ <translation id="2462724976360937186">憑證授權單位金鑰識別碼</translation> <translation id="2462752602710430187">已新增「<ph name="PRINTER_NAME" />」</translation> <translation id="2464089476039395325">HTTP Proxy</translation> +<translation id="2468205691404969808">使用 Cookie 記住你的偏好設定 (即使你沒有造訪這些網頁)</translation> <translation id="2468902267404883140">無法連上你的手機。請確定你使用的是相容的 Android 手機並已開機,且手機在適當距離範圍內。<a>瞭解詳情</a></translation> <translation id="2470702053775288986">已停用不支援的擴充功能</translation> <translation id="2473195200299095979">翻譯這個網頁</translation> @@ -1035,7 +1037,6 @@ <translation id="2604255671529671813">網路連線錯誤</translation> <translation id="2606246518223360146">連結資料</translation> <translation id="2607101320794533334">主體公開金鑰資訊</translation> -<translation id="2607459012323956820">管理員仍可前往 <ph name="BEGIN_LINK" /><ph name="DISPLAY_LINK" /><ph name="END_LINK" /> 查看這位受監管使用者的設定和瀏覽記錄。</translation> <translation id="2608770217409477136">使用預設設定</translation> <translation id="2609896558069604090">建立捷徑...</translation> <translation id="2610157865375787051">休眠</translation> @@ -1104,6 +1105,7 @@ <translation id="2686759344028411998">未偵測到任何已載入的模組。</translation> <translation id="2688196195245426394">向伺服器註冊裝置時發生錯誤:<ph name="CLIENT_ERROR" />。</translation> <translation id="2690024944919328218">顯示語言選項</translation> +<translation id="2690824726518456119">正在啟動 Concierge 服務。</translation> <translation id="2691385045260836588">型號</translation> <translation id="2693176596243495071">糟糕!發生不明錯誤,請稍後再試。如果這樣無法解決問題,請與你的管理員聯絡。</translation> <translation id="2694026874607847549">1 個 Cookie</translation> @@ -1328,15 +1330,6 @@ <translation id="3022978424994383087">無法辨識語音內容。</translation> <translation id="3024374909719388945">使用 24 小時制時鐘</translation> <translation id="302781076327338683">略過快取重新載入</translation> -<translation id="3030243755303701754">受監管的使用者可以依照您的指示瀏覽網路。在 Chrome 中,受監管使用者的管理員可以: - - • 允許/禁止特定網站; - • 查看受監管使用者瀏覽過的網站;以及 - • 管理其他設定。 - -建立受監管的使用者時並不會同時建立該使用者的 Google 帳戶,且這類使用者的書籤、瀏覽記錄和其他偏好設定都不會透過 Chrome Sync 在其他裝置上保持同步。建立新的受監管使用者之後,您隨時都可以使用任何裝置前往 <ph name="BEGIN_MANAGE_LINK" /><ph name="DISPLAY_LINK" /><ph name="END_MANAGE_LINK" /> 管理設定。 - -如需進一步資訊,請造訪<ph name="BEGIN_LINK" />說明中心<ph name="END_LINK" />。</translation> <translation id="3031417829280473749">特務 X</translation> <translation id="3031557471081358569">選取要匯入的項目:</translation> <translation id="3031601332414921114">繼續列印</translation> @@ -1377,7 +1370,6 @@ <translation id="3085412380278336437">網站可以使用你的攝影機</translation> <translation id="3085752524577180175">SOCKS 主機</translation> <translation id="3088325635286126843">重新命名(&R)...</translation> -<translation id="3089231390674410424">您的憑證似乎發生問題。請確認您已登入系統,然後再試一次。</translation> <translation id="3090193911106258841">正在存取音訊和視訊輸入</translation> <translation id="3090819949319990166">無法將外部 crx 檔案複製到 <ph name="TEMP_CRX_FILE" />。</translation> <translation id="3090871774332213558">「<ph name="DEVICE_NAME" />」已配對</translation> @@ -1392,7 +1384,6 @@ <translation id="3121793941267913344">重設這個 <ph name="IDS_SHORT_PRODUCT_NAME" /> 裝置</translation> <translation id="3122464029669770682">CPU</translation> <translation id="3122496702278727796">無法建立資料目錄</translation> -<translation id="3123569374670379335">(受監管)</translation> <translation id="3124111068741548686">USER 控制代碼</translation> <translation id="3126026824346185272">Ctrl</translation> <translation id="3127156390846601284">這會將顯示的所有網站儲存在你裝置上的資料全部刪除。你要繼續操作嗎?</translation> @@ -1427,8 +1418,6 @@ <translation id="3160842278951476457"><ph name="ISSUED_BY" /> [<ph name="ISSUED_TO" />] (使用硬體加密金鑰)</translation> <translation id="316125635462764134">移除應用程式</translation> <translation id="3161522574479303604">所有語言</translation> -<translation id="316307797510303346">控制及檢視這位使用透過 <ph name="CUSTODIAN_EMAIL" /> 造訪的網站。 - 您的帳戶登入詳細資料過舊。</translation> <translation id="3165390001037658081">部分電信業者可能會封鎖這項功能。</translation> <translation id="316854673539778496">如要將擴充功能同步到所有裝置,請登入並開啟同步處理功能。</translation> <translation id="3170072451822350649">你也可以略過登入程序,<ph name="LINK_START" />以訪客身分瀏覽<ph name="LINK_END" />。</translation> @@ -1442,6 +1431,7 @@ <translation id="3190558889382726167">密碼已儲存</translation> <translation id="3192947282887913208">音訊檔</translation> <translation id="3194737229810486521"><ph name="URL" /> 要求在你的裝置上永久儲存資料</translation> +<translation id="3197054279257119376">正在載入 Termina 元件。</translation> <translation id="3199127022143353223">伺服器</translation> <translation id="3202131003361292969">路徑</translation> <translation id="3202173864863109533">分頁音訊已關閉。</translation> @@ -1460,7 +1450,6 @@ <translation id="3229922550070982305">播放/暫停</translation> <translation id="3232318083971127729">值:</translation> <translation id="3236289833370040187">擁有權將轉移至 <ph name="DESTINATION_DOMAIN" />。</translation> -<translation id="3237784613213365159">「<ph name="NEW_PROFILE_NAME" />」現已成為受監管的使用者</translation> <translation id="323803881985677942">開啟擴充功能選項</translation> <translation id="3241680850019875542">請選取要封裝的擴充功能根目錄。如要更新擴充功能,請一併選取要重複使用的秘密金鑰。</translation> <translation id="3242765319725186192">預先共用金鑰:</translation> @@ -1566,6 +1555,7 @@ <translation id="3405664148539009465">自訂字型</translation> <translation id="3405763860805964263">...</translation> <translation id="3406605057700382950">顯示書籤列(&S)</translation> +<translation id="3407837288045706722">如需更多與隱私權、安全性和資料收集相關的設定,請參閱<ph name="BEGIN_LINK" />同步處理和個人化<ph name="END_LINK" /></translation> <translation id="3412265149091626468">跳至所選範圍</translation> <translation id="3413122095806433232">CA 發行者:<ph name="LOCATION" /></translation> <translation id="3414856743105198592">將卸除式媒體格式化會清除所有資料,你要繼續嗎?</translation> @@ -1643,6 +1633,7 @@ <translation id="3504135463003295723">群組名稱:</translation> <translation id="3505030558724226696">撤銷裝置存取權</translation> <translation id="3507421388498836150">「<ph name="EXTENSION_NAME" />」目前擁有的權限</translation> +<translation id="3507547268929739059">移除 Chromebook 的 Linux 應用程式</translation> <translation id="3507888235492474624">重新掃描藍牙裝置</translation> <translation id="3508920295779105875">選擇另一個資料夾...</translation> <translation id="3510797500218907545">WiMAX</translation> @@ -1823,7 +1814,6 @@ <translation id="3778152852029592020">下載作業已取消。</translation> <translation id="3778740492972734840">開發人員工具(&D)</translation> <translation id="3778868487658107119">Google 助理可根據你的問題提供解答,或是依指令執行各種操作。它是你專屬的 Google 服務,隨時為你提供協助。</translation> -<translation id="3780663724044634171">請選取用於管理受監管使用者的帳戶。</translation> <translation id="378312418865624974">讀取這台電腦的專屬識別碼</translation> <translation id="3783640748446814672">Alt</translation> <translation id="3785308913036335955">顯示應用程式捷徑</translation> @@ -1837,6 +1827,7 @@ <translation id="379422718204375917">使用 Smart Lock 登入你的帳戶</translation> <translation id="3796648294839530037">慣用的網路:</translation> <translation id="3797900183766075808">透過 <ph name="SEARCH_ENGINE" /> 搜尋「<ph name="SEARCH_TERMS" />」(&S)</translation> +<translation id="3798133693323981089">自動完成搜尋查詢與網址</translation> <translation id="3798449238516105146">版本</translation> <translation id="3799201711591988491">{COUNT,plural, =0{開啟所有書籤(&O)}=1{開啟書籤(&O)}other{開啟全部 # 個書籤(&O)}}</translation> <translation id="3800806661949714323">全部顯示 (建議)</translation> @@ -2012,6 +2003,7 @@ <translation id="4065876735068446555">目前使用的網路 (<ph name="NETWORK_ID" />) 可能會要求您造訪登入網頁。</translation> <translation id="4068506536726151626">這個網頁包含來自下列網站的元素,且這些元素正在追蹤你的位置:</translation> <translation id="4068776064906523561">已儲存的指紋</translation> +<translation id="407173827865827707">點擊時</translation> <translation id="4071770069230198275"><ph name="PROFILE_NAME" />:登入錯誤</translation> <translation id="4074900173531346617">電子郵件簽署者憑證</translation> <translation id="407520071244661467">縮放比例</translation> @@ -2043,6 +2035,7 @@ <translation id="4109135793348361820">將視窗傳送給 <ph name="USER_NAME" /> (<ph name="USER_EMAIL" />)</translation> <translation id="4110559665646603267">將焦點移至檔案櫃</translation> <translation id="4110895898888439383">以高對比模式瀏覽網路</translation> +<translation id="4112774766611964959">這會解除安裝「<ph name="APP_NAME" />」,並且將所有 Linux 資料和應用程式從你的 <ph name="DEVICE_TYPE" /> 上移除。你確定嗎?</translation> <translation id="4114360727879906392">上一個視窗</translation> <translation id="4115002065223188701">偵測不到網路</translation> <translation id="4115080753528843955">部分內容服務會使用唯一識別碼來授予受保護內容的存取權</translation> @@ -2097,6 +2090,7 @@ <translation id="42137655013211669">伺服器禁止存取這個資源。</translation> <translation id="4215350869199060536">糟糕,名稱中有非法符號!</translation> <translation id="4215448920900139318">正在備份 <ph name="FILE_COUNT" /></translation> +<translation id="4225397296022057997">在所有網站上</translation> <translation id="4235200303672858594">整個畫面</translation> <translation id="4235813040357936597">為<ph name="PROFILE_NAME" />新增帳戶</translation> <translation id="4235965441080806197">取消登入</translation> @@ -2164,6 +2158,7 @@ <translation id="4345703751611431217">軟體不相容:瞭解詳情</translation> <translation id="4348766275249686434">收集錯誤資訊</translation> <translation id="4350019051035968019">這台裝置已標示為由其他網域管理,因此無法註冊到你帳戶所屬的網域。</translation> +<translation id="4354266305752237763">保護你和你的裝置不受危險網站攻擊 (安全搜尋)</translation> <translation id="4356334633973342967">或指定你自己的硬碟:</translation> <translation id="4358353773267946514"><ph name="LANGUAGE_1" />、<ph name="LANGUAGE_2" /></translation> <translation id="4359408040881008151">你已安裝相依的擴充功能,因此必須一併安裝這個擴充功能。</translation> @@ -2172,6 +2167,7 @@ <translation id="4364567974334641491"><ph name="APP_NAME" /> 正在共用視窗。</translation> <translation id="4364830672918311045">顯示通知</translation> <translation id="4365673000813822030">糟糕,同步處理已停止運作。</translation> +<translation id="4370373819607756384">你可以在<ph name="BEGIN_LINK" />語言<ph name="END_LINK" />部分控制這項設定</translation> <translation id="4370975561335139969">您所輸入的電子郵件和密碼不相符</translation> <translation id="437184764829821926">進階字型設定</translation> <translation id="4372884569765913867">1x1</translation> @@ -2226,6 +2222,7 @@ <translation id="4462159676511157176">自訂名稱伺服器</translation> <translation id="4467100756425880649">Chrome 線上應用程式商店擴充功能庫</translation> <translation id="4467101674048705704">展開「<ph name="FOLDER_NAME" />」</translation> +<translation id="447252321002412580">協助改善 Chrome 的功能與效能</translation> <translation id="4474155171896946103">將所有分頁加入書籤...</translation> <translation id="4475552974751346499">搜尋下載內容</translation> <translation id="4476590490540813026">運動員</translation> @@ -2248,6 +2245,7 @@ <translation id="4514542542275172126">設定新的受監管使用者</translation> <translation id="451515744433878153">移除</translation> <translation id="4518677423782794009">Chrome 出現異常行為嗎 (例如造成電腦當機、顯示不尋常的起始網頁、工具列或無法關閉的未預期廣告,或是讓您無法正常瀏覽網路)?您可以執行 Chrome 清理工具,藉此修正相關問題。</translation> +<translation id="4518928191942891293">正在啟動 Termina VM 內的容器。</translation> <translation id="4520385623207007473">使用中的 Cookie</translation> <translation id="452039078290142656">由 <ph name="VENDOR_NAME" /> 製造的不明裝置</translation> <translation id="4522570452068850558">詳細資訊</translation> @@ -2296,6 +2294,7 @@ <translation id="4589268276914962177">新增終端機分頁</translation> <translation id="4590324241397107707">資料庫儲存空間</translation> <translation id="4593021220803146968">前往 <ph name="URL" />(&G)</translation> +<translation id="459505086032485258">顯示 Google 服務設定</translation> <translation id="4595560905247879544">只有管理員 (<ph name="CUSTODIAN_NAME" />) 可以修改應用程式和擴充功能。</translation> <translation id="4596295440756783523">您儲存了這些伺服器的識別憑證</translation> <translation id="4598556348158889687">儲存空間管理</translation> @@ -2515,6 +2514,7 @@ <translation id="4917385247580444890">強</translation> <translation id="4918021164741308375"><ph name="ORIGIN" /> 要求與「<ph name="EXTENSION_NAME" />」擴充功能通訊</translation> <translation id="4918086044614829423">接受</translation> +<translation id="4920350943031252905">在你的 Chromebook 上執行 Linux 工具、編輯器和 IDE。</translation> <translation id="4920887663447894854">下列網站已遭封鎖,無法在你瀏覽此網頁時追蹤你的位置:</translation> <translation id="492299503953721473">移除 Android 應用程式</translation> <translation id="4923279099980110923">是,我願意協助</translation> @@ -2540,7 +2540,6 @@ <translation id="4964455510556214366">排列</translation> <translation id="4964673849688379040">檢查中...</translation> <translation id="4965808351167763748">你確定要設定這個裝置以執行 Hangouts Meet 嗎?</translation> -<translation id="4967749818080339523">請選取帳戶</translation> <translation id="496888482094675990">「檔案」應用程式可供快速存取你存放在 Google 雲端硬碟、外部儲存空間或 Chrome 作業系統裝置中的檔案。</translation> <translation id="4969785127455456148">相簿</translation> <translation id="4971412780836297815">完成後開啟</translation> @@ -2679,6 +2678,7 @@ <translation id="5186650237607254032">只要更新手機的螢幕鎖定,一旦進入有效距離範圍內,螢幕鎖定就會關閉。你不僅可以更快解鎖手機,還能在 <ph name="DEVICE_TYPE" /> 上享有更佳 Smart Lock 體驗。</translation> <translation id="5187295959347858724">你已登入 <ph name="SHORT_PRODUCT_NAME" />,系統正在將你的書籤、瀏覽記錄和其他設定與「Google 帳戶」進行同步處理。</translation> <translation id="5187826826541650604"><ph name="KEY_NAME" /> (<ph name="DEVICE" />)</translation> +<translation id="5196721203029902230">與各項 Google 服務連結,讓瀏覽體驗和 Chrome 效能更臻完善</translation> <translation id="5204967432542742771">輸入密碼</translation> <translation id="5206215183583316675">要刪除「<ph name="CERTIFICATE_NAME" />」嗎?</translation> <translation id="520621735928254154">憑證匯入錯誤</translation> @@ -2716,6 +2716,7 @@ <translation id="5254368820972107711">顯示將被移除的檔案</translation> <translation id="52550593576409946">Kiosk 應用程式無法啟動。</translation> <translation id="5255315797444241226">你輸入的通關密語不正確。</translation> +<translation id="5256861893479663409">在所有網站上</translation> <translation id="5260508466980570042">抱歉,系統無法驗證你的電子郵件地址或密碼,請再試一次。</translation> <translation id="5261683757250193089">開啟線上應用程式商店</translation> <translation id="5262311848634918433"><ph name="MARKUP_1" />隨時隨地存取檔案,甚至可離線存取。<ph name="MARKUP_2" /> @@ -2940,6 +2941,8 @@ <translation id="555746285996217175">鎖定/電源</translation> <translation id="5557991081552967863">休眠期間保持開啟 Wi-Fi</translation> <translation id="5558129378926964177">放大(&I)</translation> +<translation id="5558446705802335921">檢查你造訪的網站和下載的檔案是否含有害的行為或內容,例如網路詐騙或惡意軟體</translation> +<translation id="5559719557406102971">正在啟動 Termina VM。</translation> <translation id="55601339223879446">調整顯示畫面中的桌面邊界</translation> <translation id="5562781907504170924">這個分頁已連線至藍牙裝置。</translation> <translation id="5565871407246142825">信用卡</translation> @@ -3144,6 +3147,7 @@ <translation id="5863445608433396414">啟用偵錯功能</translation> <translation id="5864471791310927901">DHCP 查閱失敗</translation> <translation id="586567932979200359">你正在透過磁碟映像執行 <ph name="PRODUCT_NAME" />。你可以直接在電腦上安裝程式,往後無需透過磁碟映像即可直接執行,而且能隨時使用最新的版本。</translation> +<translation id="5865733239029070421">自動將使用統計資料和當機報告傳送給 Google</translation> <translation id="5866557323934807206">清除這些設定 (下次造訪時不使用這些設定)</translation> <translation id="5866840822086176774">極強</translation> <translation id="5867841422488265304">搜尋或輸入網址</translation> @@ -3194,6 +3198,7 @@ <translation id="5957613098218939406">更多選項</translation> <translation id="5958529069007801266">受監管的使用者</translation> <translation id="5959471481388474538">網路無法使用</translation> +<translation id="595959584676692139">重新載入網頁即可使用這個擴充功能</translation> <translation id="5963026469094486319">下載主題</translation> <translation id="5963453369025043595"><ph name="NUM_HANDLES" /> 個 (最多 <ph name="NUM_KILOBYTES_LIVE" /> 個)</translation> <translation id="5965661248935608907">這個擴充功能也會控管你點選 [首頁] 按鈕或使用網址列搜尋時所顯示的網頁。</translation> @@ -3367,10 +3372,10 @@ <translation id="6237816943013845465">讓你調整螢幕解析度</translation> <translation id="6238923052227198598">在鎖定畫面上顯示最新記事</translation> <translation id="6239558157302047471">重新載入頁框(&F)</translation> +<translation id="6240004034869232531">正在解除安裝...</translation> <translation id="6241530762627360640">存取與系統配對的藍牙裝置資訊並搜尋附近的藍牙裝置。</translation> <translation id="6243280677745499710">目前設定的桌布</translation> <translation id="6243774244933267674">無法與伺服器連線</translation> -<translation id="6246413617632217567">無法匯入受監管的使用者。請檢查您的硬碟空間和權限,然後再試一次。</translation> <translation id="6247708409970142803"><ph name="PERCENTAGE" />%</translation> <translation id="6247802389331535091">系統:<ph name="ARC_PROCESS_NAME" /></translation> <translation id="624789221780392884">可進行更新</translation> @@ -3568,7 +3573,6 @@ <translation id="654039047105555694"><ph name="BEGIN_BOLD" />注意:<ph name="END_BOLD" />除非你瞭解這項功能的用途或是收到相關指示,否則請不要啟用這項功能,因為收集資料可能會導致系統效能降低。</translation> <translation id="654233263479157500">使用網路服務來協助解決瀏覽錯誤</translation> <translation id="6544215763872433504">Google 提供的網路瀏覽器,滿足你的需求</translation> -<translation id="6545325945815270297">前往 <ph name="BEGIN_LINK" />Chrome 資訊主頁<ph name="END_LINK" />管理你的同步資料和裝置。</translation> <translation id="6545665334409411530">重複頻率</translation> <translation id="6545834809683560467">使用預測查詢字串服務,讓系統協助完成你在網址列或應用程式啟動器搜尋框中輸入的搜尋字串或網址</translation> <translation id="6546686722964485737">加入 Wimax 網路</translation> @@ -3583,7 +3587,6 @@ <translation id="6555810572223193255">目前無法執行清理作業</translation> <translation id="6556866813142980365">重做</translation> <translation id="6558280019477628686">發生錯誤,系統可能尚未刪除部分項目。</translation> -<translation id="6559580823502247193">(已在這個裝置上)</translation> <translation id="6561726789132298588">Enter 鍵</translation> <translation id="656293578423618167">檔案路徑或檔案名稱過長。請縮短檔案名稱或選擇其他儲存位置。</translation> <translation id="656398493051028875">正在刪除「<ph name="FILENAME" />」...</translation> @@ -3605,6 +3608,7 @@ <translation id="6596745167571172521">停用 Caps Lock 鍵</translation> <translation id="6596816719288285829">IP 位址</translation> <translation id="6597017209724497268">個樣本</translation> +<translation id="6597332018579308636">允許存取</translation> <translation id="659934686219830168">當你離開這個頁面時,系統就會啟用同步處理功能</translation> <translation id="6602353599068390226">將視窗移至其他畫面</translation> <translation id="6602956230557165253">使用向左鍵和向右鍵瀏覽。</translation> @@ -3671,6 +3675,7 @@ <translation id="6690751852586194791">選擇要新增至裝置的受監管使用者。</translation> <translation id="6691331417640343772">管理 Google 資訊主頁中已同步處理的資料</translation> <translation id="6691936601825168937">下一頁(&F)</translation> +<translation id="6697492270171225480">找不到網頁時顯示類似的網頁建議</translation> <translation id="6698810901424468597">讀取及變更你在 <ph name="WEBSITE_1" /> 和 <ph name="WEBSITE_2" /> 網站上的資料</translation> <translation id="6700480081846086223">投放 <ph name="HOST_NAME" /></translation> <translation id="6701535245008341853">無法取得設定檔。</translation> @@ -3778,7 +3783,6 @@ <translation id="6862635236584086457">所有儲存在這個資料夾的檔案都會自動在線上備份</translation> <translation id="6865313869410766144">自動填入表單資料</translation> <translation id="686664946474413495">色溫</translation> -<translation id="6867678160199975333">切換至<ph name="NEW_PROFILE_NAME" /></translation> <translation id="6870888490422746447">選擇要共用的應用程式:</translation> <translation id="6871644448911473373">OCSP 回應程式:<ph name="LOCATION" /></translation> <translation id="6872781471649843364">輸入的密碼遭到伺服器拒絕。</translation> @@ -3872,7 +3876,6 @@ <translation id="7018275672629230621">讀取及變更你的瀏覽記錄</translation> <translation id="7019805045859631636">快</translation> <translation id="7022562585984256452">首頁已設定完成。</translation> -<translation id="7025036625303002400">您先前已新增同名的受監管使用者。</translation> <translation id="7025190659207909717">行動數據服務管理</translation> <translation id="7025325401470358758">下一個窗格</translation> <translation id="7027125358315426638">資料庫名稱:</translation> @@ -3921,7 +3924,7 @@ <translation id="7092106376816104">彈出式視窗例外</translation> <translation id="7093434536568905704">GTK+</translation> <translation id="7093866338626856921">與下列名稱的裝置交換資料:<ph name="HOSTNAMES" /></translation> -<translation id="7096108453481049031">無法匯入受監管的使用者。請檢查您的網路連線,然後再試一次。</translation> +<translation id="7096406577040705016">切換全螢幕放大鏡</translation> <translation id="7098447629416471489">你所儲存的其他搜尋引擎會顯示在這裡</translation> <translation id="7099337801055912064">無法載入大型 PPD。大小上限為 250 KB。</translation> <translation id="7100897339030255923">已選取 <ph name="COUNT" /> 個項目</translation> @@ -3968,7 +3971,6 @@ <translation id="7168109975831002660">最小字體</translation> <translation id="7170041865419449892">超出範圍</translation> <translation id="7171559745792467651">安裝你其他裝置上的應用程式</translation> -<translation id="7173917244679555">您已經在管理使用該名稱的使用者。您要<ph name="BEGIN_LINK" />將「<ph name="PROFILE_NAME" />」匯入這個裝置嗎<ph name="END_LINK" />?</translation> <translation id="7175037578838465313">設定「<ph name="NAME" />」</translation> <translation id="7175353351958621980">載入來源:</translation> <translation id="7180611975245234373">重新整理</translation> @@ -4138,7 +4140,6 @@ <translation id="7444726222535375658">繼續使用 Hangouts Meet</translation> <translation id="7444983668544353857">停用 <ph name="NETWORKDEVICE" /></translation> <translation id="7445682342344043969">已封鎖彈出式視窗</translation> -<translation id="744859430125590922">控制及檢視 <ph name="CUSTODIAN_EMAIL" /> 所造訪的網站。</translation> <translation id="7453008956351770337">選取這部印表機,即表示您同意授權下列擴充功能存取您的印表機:</translation> <translation id="7453467225369441013">你會從大多數網站登出,但不會因此登出 Google 帳戶。</translation> <translation id="7456142309650173560">開發人員版</translation> @@ -4311,7 +4312,6 @@ <translation id="7717845620320228976">檢查更新</translation> <translation id="7719367874908701697">頁面縮放</translation> <translation id="771953673318695590">QA</translation> -<translation id="7720375555307821262">如要監管這位使用者,請<ph name="BEGIN_LINK" />登入 Chrome<ph name="END_LINK" />。</translation> <translation id="7721179060400456005">允許將視窗擴展到其他螢幕上</translation> <translation id="7722040605881499779">更新所需空間:<ph name="NECESSARY_SPACE" /></translation> <translation id="7724603315864178912">剪下</translation> @@ -4383,6 +4383,24 @@ <ph name="LINE_BREAK2" /> 請少選幾張相片。</translation> <translation id="782590969421016895">使用目前的網頁</translation> +<translation id="7826790948326204519"><ph name="BEGIN_H3" />偵錯功能<ph name="END_H3" /> + <ph name="BR" /> + 你只要啟用 Chrome 作業系統裝置的偵錯功能,即可在裝置上安裝並測試自訂程式碼。這項功能可讓你:<ph name="BR" /> + <ph name="BEGIN_LIST" /> + <ph name="LIST_ITEM" />移除 rootfs 驗證,以便修改作業系統檔案 + <ph name="LIST_ITEM" />使用標準測試金鑰啟用裝置的 SSH 存取權,以便使用 <ph name="BEGIN_CODE" />'cros flash'<ph name="END_CODE" /> 這類工具存取裝置 + <ph name="LIST_ITEM" />啟用從 USB 啟動功能,以便從 USB 磁碟機安裝作業系統映像檔 + <ph name="LIST_ITEM" />將開發人員和系統根目錄登入密碼設為自訂值,以便你使用人工方式透過 SSH 存取裝置 + <ph name="END_LIST" /> + <ph name="BR" /> + 啟用後,即使在企業管理的裝置上執行 Powerwash 或清除資料,大多數的偵錯功能仍會維持啟用狀態。如要全面停用所有偵錯功能,請完成 Chrome 作業系統還原程序 (https://support.google.com/chromebook/answer/1080595)。 + <ph name="BR" /> + <ph name="BR" /> + 如要進一步瞭解偵錯功能,請參閱:<ph name="BR" /> + https://www.chromium.org/chromium-os/how-tos-and-troubleshooting/debugging-features + <ph name="BR" /> + <ph name="BR" /> + <ph name="BEGIN_BOLD" />注意:<ph name="END_BOLD" />系統會在過程中重新啟動。</translation> <translation id="7829298379596169484">正在存取音訊輸入</translation> <translation id="7831491651892296503">網路設定錯誤</translation> <translation id="7831754656372780761"><ph name="TAB_TITLE" /> <ph name="EMOJI_MUTING" /></translation> @@ -4447,6 +4465,7 @@ <translation id="7912080627461681647">伺服器上的密碼已變更。請先登出然後重新登入。</translation> <translation id="7912883689016444961">設定行動網路</translation> <translation id="7915471803647590281">請將發生的狀況告訴我們,然後再提供意見。</translation> +<translation id="7916556741383518510">點擊時</translation> <translation id="792514962475806987">停駐縮放比例:</translation> <translation id="7925247922861151263">AAA 檢查失敗</translation> <translation id="7925285046818567682">正在等候 <ph name="HOST_NAME" />...</translation> @@ -4487,6 +4506,7 @@ <translation id="7978412674231730200">秘密金鑰</translation> <translation id="7979036127916589816">同步功能發生錯誤</translation> <translation id="7980084013673500153">資產 ID:<ph name="ASSET_ID" /></translation> +<translation id="7981313251711023384">預先載入網頁,以加快瀏覽及搜尋速度</translation> <translation id="7982083145464587921">請重新啟動裝置以修復這個錯誤。</translation> <translation id="7982283708762922719">高度</translation> <translation id="7982789257301363584">網路</translation> @@ -4892,6 +4912,7 @@ <translation id="8651585100578802546">強制重新載入此網頁</translation> <translation id="8652400352452647993">封裝擴充功能錯誤</translation> <translation id="8652487083013326477">頁面範圍圓形按鈕</translation> +<translation id="8653292045957015650">切換停駐放大鏡</translation> <translation id="8654151524613148204">很抱歉,檔案過大,你的電腦無法處理。</translation> <translation id="8655295600908251630">頻道</translation> <translation id="8655319619291175901">糟糕...發生問題了。</translation> @@ -4983,6 +5004,7 @@ <translation id="8757803915342932642">Google 雲端裝置中的裝置</translation> <translation id="8759408218731716181">無法設定多重登入</translation> <translation id="8759753423332885148">瞭解詳情</translation> +<translation id="8762207669047572135">允許存取</translation> <translation id="8767621466733104912">自動為所有使用者更新 Chrome</translation> <translation id="8770406935328356739">擴充功能根目錄</translation> <translation id="8770507190024617908">管理使用者</translation> @@ -5112,7 +5134,9 @@ <translation id="8976520271376534479">這個網頁的 Flash 已遭封鎖。</translation> <translation id="8977811652087512276">密碼不正確或檔案毀損</translation> <translation id="8978154919215542464">開啟 - 同步處理所有資料</translation> +<translation id="897939795688207351">在 <ph name="ORIGIN" /> 上</translation> <translation id="8980951173413349704"><ph name="WINDOW_TITLE" /> - 已當機</translation> +<translation id="8983677657449185470">協助改善「安全瀏覽」的品質</translation> <translation id="8986362086234534611">清除</translation> <translation id="8986494364107987395">自動傳送使用統計資料及當機報告給 Google</translation> <translation id="8987927404178983737">月</translation> @@ -5121,6 +5145,7 @@ <translation id="8995603266996330174">由 <ph name="DOMAIN" /> 管理</translation> <translation id="8996526648899750015">新增帳戶...</translation> <translation id="8997135628821231"><ph name="ISSUED_BY" /> [<ph name="ISSUED_TO" />] (<ph name="DEVICE" />)</translation> +<translation id="8998788483361403036">正在建立磁碟映像檔</translation> <translation id="9003647077635673607">允許在所有網站上執行</translation> <translation id="9003677638446136377">重新檢查</translation> <translation id="9003704114456258138">頻率</translation> @@ -5141,7 +5166,6 @@ <translation id="9024331582947483881">全螢幕鍵</translation> <translation id="9025098623496448965">確定,返回登入畫面</translation> <translation id="9026731007018893674">下載</translation> -<translation id="9027146684281895941">監管這位使用者,以控制及查看該使用者透過您的 Google 帳戶造訪的網站。</translation> <translation id="9027459031423301635">在新分頁中開啟連結(T)</translation> <translation id="9027603907212475920">設定同步處理...</translation> <translation id="9030515284705930323">貴機構尚未為您的帳戶啟用 Google Play 商店。如需瞭解詳情,請與您的管理員聯絡。</translation> @@ -5157,6 +5181,7 @@ <translation id="9042893549633094279">隱私權和安全性</translation> <translation id="904451693890288097">請輸入「<ph name="DEVICE_NAME" />」的密碼金鑰:</translation> <translation id="9044646465488564462">無法連線至網路:<ph name="DETAILS" /></translation> +<translation id="9045430190527754450">將你嘗試瀏覽的網頁網址傳送給 Google</translation> <translation id="9046895021617826162">連線失敗</translation> <translation id="9050666287014529139">通關密語</translation> <translation id="9052208328806230490">你已透過 <ph name="EMAIL" /> 帳戶並使用 <ph name="CLOUD_PRINT_NAME" /> 為你的印表機註冊</translation>
diff --git a/chrome/browser/BUILD.gn b/chrome/browser/BUILD.gn index 2b1fdb81d..80b379e 100644 --- a/chrome/browser/BUILD.gn +++ b/chrome/browser/BUILD.gn
@@ -4304,6 +4304,7 @@ "../android/java/src/org/chromium/chrome/browser/infobar/AutofillSaveCardInfoBar.java", "../android/java/src/org/chromium/chrome/browser/infobar/ConfirmInfoBar.java", "../android/java/src/org/chromium/chrome/browser/infobar/DataReductionPromoInfoBarDelegate.java", + "../android/java/src/org/chromium/chrome/browser/infobar/DownloadProgressInfoBar.java", "../android/java/src/org/chromium/chrome/browser/infobar/DuplicateDownloadInfoBar.java", "../android/java/src/org/chromium/chrome/browser/infobar/FramebustBlockInfoBar.java", "../android/java/src/org/chromium/chrome/browser/infobar/GeneratedPasswordSavedInfoBarDelegate.java", @@ -4428,6 +4429,7 @@ "../android/java/src/org/chromium/chrome/browser/tab/TabWebContentsDelegateAndroid.java", "../android/java/src/org/chromium/chrome/browser/tabmodel/SingleTabModel.java", "../android/java/src/org/chromium/chrome/browser/tabmodel/TabModelJniBridge.java", + "../android/java/src/org/chromium/chrome/browser/tabmodel/TabModelObserverJniBridge.java", "../android/java/src/org/chromium/chrome/browser/toolbar/ToolbarModel.java", "../android/java/src/org/chromium/chrome/browser/util/ChromeContextUtil.java", "../android/java/src/org/chromium/chrome/browser/util/FeatureUtilities.java",
diff --git a/chrome/browser/about_flags.cc b/chrome/browser/about_flags.cc index 99e57ce5..2375e9f 100644 --- a/chrome/browser/about_flags.cc +++ b/chrome/browser/about_flags.cc
@@ -684,21 +684,6 @@ "3313422"}}; #endif // OS_ANDROID -#if defined(OS_ANDROID) -const FeatureEntry::FeatureParam kCondensedTileLayoutForSmallScreensEnabled[] = - {{"condensed_tile_layout_for_small_screens_enabled", "true"}}; - -const FeatureEntry::FeatureParam kCondensedTileLayoutForLargeScreensEnabled[] = - {{"condensed_tile_layout_for_large_screens_enabled", "true"}}; - -const FeatureEntry::FeatureVariation - kNTPCondensedTileLayoutFeatureVariations[] = { - {"(small screens)", kCondensedTileLayoutForSmallScreensEnabled, - arraysize(kCondensedTileLayoutForSmallScreensEnabled), nullptr}, - {"(large screens)", kCondensedTileLayoutForLargeScreensEnabled, - arraysize(kCondensedTileLayoutForLargeScreensEnabled), nullptr}}; -#endif // OS_ANDROID - const FeatureEntry::Choice kEnableUseZoomForDSFChoices[] = { {flag_descriptions::kEnableUseZoomForDsfChoiceDefault, "", ""}, {flag_descriptions::kEnableUseZoomForDsfChoiceEnabled, @@ -2587,22 +2572,12 @@ ntp_snippets::kNotificationsFeature, kContentSuggestionsNotificationsFeatureVariations, ntp_snippets::kNotificationsFeature.name)}, - {"ntp-condensed-layout", flag_descriptions::kNtpCondensedLayoutName, - flag_descriptions::kNtpCondensedLayoutDescription, kOsAndroid, - FEATURE_VALUE_TYPE(chrome::android::kNTPCondensedLayoutFeature)}, - {"ntp-condensed-tile-layout", - flag_descriptions::kNtpCondensedTileLayoutName, - flag_descriptions::kNtpCondensedTileLayoutDescription, kOsAndroid, - FEATURE_WITH_PARAMS_VALUE_TYPE( - chrome::android::kNTPCondensedTileLayoutFeature, - kNTPCondensedTileLayoutFeatureVariations, - chrome::android::kNTPCondensedTileLayoutFeature.name)}, {"ntp-modern-layout", flag_descriptions::kNtpModernLayoutName, flag_descriptions::kNtpModernLayoutDescription, kOsAndroid, FEATURE_VALUE_TYPE(chrome::android::kNTPModernLayoutFeature)}, - {"ntp-shortcuts", flag_descriptions::kNtpShortcutsName, - flag_descriptions::kNtpShortcutsDescription, kOsAndroid, - FEATURE_VALUE_TYPE(chrome::android::kNTPShortcuts)}, + {"simplified-ntp", flag_descriptions::kSimplifiedNtpName, + flag_descriptions::kSimplifiedNtpDescription, kOsAndroid, + FEATURE_VALUE_TYPE(chrome::android::kSimplifiedNTP)}, {"enable-site-exploration-ui", flag_descriptions::kSiteExplorationUiName, flag_descriptions::kSiteExplorationUiDescription, kOsAndroid, FEATURE_VALUE_TYPE(ntp_tiles::kSiteExplorationUiFeature)},
diff --git a/chrome/browser/android/chrome_feature_list.cc b/chrome/browser/android/chrome_feature_list.cc index 9ae9c6d..a14b35a 100644 --- a/chrome/browser/android/chrome_feature_list.cc +++ b/chrome/browser/android/chrome_feature_list.cc
@@ -90,6 +90,7 @@ &kCustomContextMenu, &kCustomFeedbackUi, &kDontPrefetchLibraries, + &kDownloadProgressInfoBar, &kDownloadHomeShowStorageInfo, &data_reduction_proxy::features::kDataReductionMainMenu, &kFullscreenActivity, @@ -100,11 +101,9 @@ &kModalPermissionDialogView, &kNewPhotoPicker, &kNoCreditCardAbort, - &kNTPCondensedLayoutFeature, - &kNTPCondensedTileLayoutFeature, &kNTPLaunchAfterInactivity, &kNTPModernLayoutFeature, - &kNTPShortcuts, + &kSimplifiedNTP, &kNTPShowGoogleGInOmniboxFeature, &kOmniboxSpareRenderer, &kOmniboxVoiceSearchAlwaysVisible, @@ -267,7 +266,10 @@ base::FEATURE_DISABLED_BY_DEFAULT}; const base::Feature kDownloadAutoResumptionThrottling{ - "DownloadAutoResumptionThrottling", base::FEATURE_ENABLED_BY_DEFAULT}; + "DownloadAutoResumptionThrottling", base::FEATURE_DISABLED_BY_DEFAULT}; + +const base::Feature kDownloadProgressInfoBar{"DownloadProgressInfoBar", + base::FEATURE_ENABLED_BY_DEFAULT}; const base::Feature kDownloadHomeShowStorageInfo{ "DownloadHomeShowStorageInfo", base::FEATURE_DISABLED_BY_DEFAULT}; @@ -306,21 +308,12 @@ const base::Feature kNoCreditCardAbort{"NoCreditCardAbort", base::FEATURE_DISABLED_BY_DEFAULT}; -const base::Feature kNTPCondensedLayoutFeature{ - "NTPCondensedLayout", base::FEATURE_ENABLED_BY_DEFAULT}; - -const base::Feature kNTPCondensedTileLayoutFeature{ - "NTPCondensedTileLayout", base::FEATURE_ENABLED_BY_DEFAULT}; - const base::Feature kNTPModernLayoutFeature{"NTPModernLayout", base::FEATURE_DISABLED_BY_DEFAULT}; const base::Feature kNTPLaunchAfterInactivity{ "NTPLaunchAfterInactivity", base::FEATURE_DISABLED_BY_DEFAULT}; -const base::Feature kNTPShortcuts{"NTPShortcuts", - base::FEATURE_DISABLED_BY_DEFAULT}; - const base::Feature kNTPShowGoogleGInOmniboxFeature{ "NTPShowGoogleGInOmnibox", base::FEATURE_DISABLED_BY_DEFAULT}; @@ -354,6 +347,9 @@ const base::Feature kReaderModeInCCT{"ReaderModeInCCT", base::FEATURE_DISABLED_BY_DEFAULT}; +const base::Feature kSimplifiedNTP{"SimplifiedNTP", + base::FEATURE_DISABLED_BY_DEFAULT}; + const base::Feature kSoleIntegration{"SoleIntegration", base::FEATURE_ENABLED_BY_DEFAULT};
diff --git a/chrome/browser/android/chrome_feature_list.h b/chrome/browser/android/chrome_feature_list.h index 9007eb3..b24bba6e 100644 --- a/chrome/browser/android/chrome_feature_list.h +++ b/chrome/browser/android/chrome_feature_list.h
@@ -45,6 +45,7 @@ extern const base::Feature kCustomFeedbackUi; extern const base::Feature kDontPrefetchLibraries; extern const base::Feature kDownloadAutoResumptionThrottling; +extern const base::Feature kDownloadProgressInfoBar; extern const base::Feature kDownloadHomeShowStorageInfo; extern const base::Feature kFullscreenActivity; extern const base::Feature kHomePageButtonForceEnabled; @@ -56,11 +57,8 @@ extern const base::Feature kSearchEnginePromoNewDevice; extern const base::Feature kNewPhotoPicker; extern const base::Feature kNoCreditCardAbort; -extern const base::Feature kNTPCondensedLayoutFeature; -extern const base::Feature kNTPCondensedTileLayoutFeature; extern const base::Feature kNTPLaunchAfterInactivity; extern const base::Feature kNTPModernLayoutFeature; -extern const base::Feature kNTPShortcuts; extern const base::Feature kNTPShowGoogleGInOmniboxFeature; extern const base::Feature kOmniboxSpareRenderer; extern const base::Feature kOmniboxVoiceSearchAlwaysVisible; @@ -72,6 +70,7 @@ extern const base::Feature kPwaPersistentNotification; extern const base::Feature kQueryInOmnibox; extern const base::Feature kReaderModeInCCT; +extern const base::Feature kSimplifiedNTP; extern const base::Feature kSoleIntegration; extern const base::Feature kSpannableInlineAutocomplete; extern const base::Feature kSpecialLocaleFeature;
diff --git a/chrome/browser/apps/platform_app_navigation_redirector_browsertest.cc b/chrome/browser/apps/platform_app_navigation_redirector_browsertest.cc index fd460ff..72fa54a 100644 --- a/chrome/browser/apps/platform_app_navigation_redirector_browsertest.cc +++ b/chrome/browser/apps/platform_app_navigation_redirector_browsertest.cc
@@ -7,7 +7,6 @@ #include "build/build_config.h" #include "chrome/browser/apps/app_browsertest_util.h" #include "chrome/browser/chrome_notification_types.h" -#include "chrome/browser/prerender/prerender_manager.h" #include "chrome/browser/ui/browser_navigator_params.h" #include "chrome/browser/ui/tabs/tab_strip_model.h" #include "chrome/common/chrome_switches.h" @@ -24,7 +23,6 @@ : public PlatformAppBrowserTest { public: void SetUpCommandLine(base::CommandLine* command_line) override; - void SetUpOnMainThread() override; protected: // Performs the following sequence: @@ -122,12 +120,6 @@ command_line->AppendSwitch(::switches::kDisablePopupBlocking); } -void PlatformAppNavigationRedirectorBrowserTest::SetUpOnMainThread() { - PlatformAppBrowserTest::SetUpOnMainThread(); - prerender::PrerenderManager::SetMode( - prerender::PrerenderManager::PRERENDER_MODE_ENABLED); -} - // TODO(sergeygs): Factor out common functionality from TestXyz, // TestNegativeXyz, and TestMismatchingXyz versions. @@ -436,11 +428,4 @@ "XHR failed", "url_handlers/handlers/steal_xhr_target"); } -// Test that a click on a prerendered link still launches. -IN_PROC_BROWSER_TEST_F(PlatformAppNavigationRedirectorBrowserTest, - PrerenderedClickInTabIntercepted) { - TestNavigationInTab("url_handlers/launching_pages/prerender_link.html", - "url_handlers/handlers/simple", "Handler launched"); -} - } // namespace extensions
diff --git a/chrome/browser/chromeos/BUILD.gn b/chrome/browser/chromeos/BUILD.gn index a841b14..1cb4bcd0 100644 --- a/chrome/browser/chromeos/BUILD.gn +++ b/chrome/browser/chromeos/BUILD.gn
@@ -21,7 +21,6 @@ configs += [ "//build/config/compiler:wexit_time_destructors" ] public_deps = [ - "//ash/resources", "//ash/strings", "//chrome:extra_resources", "//chrome:resources", @@ -73,6 +72,7 @@ "//chromeos:cryptohome_proto", "//chromeos:cryptohome_signkey_proto", "//chromeos/assistant:buildflags", + "//chromeos/components/drivefs", "//chromeos/components/proximity_auth", "//chromeos/components/proximity_auth/logging", "//chromeos/components/tether", @@ -2179,7 +2179,6 @@ ":attestation_proto", ":test_support", "//ash", - "//ash/resources", "//base", "//chrome/common", "//chromeos/components/tether:test_support",
diff --git a/chrome/browser/chromeos/accessibility/select_to_speak_browsertest.cc b/chrome/browser/chromeos/accessibility/select_to_speak_browsertest.cc index 88e96011..52675668 100644 --- a/chrome/browser/chromeos/accessibility/select_to_speak_browsertest.cc +++ b/chrome/browser/chromeos/accessibility/select_to_speak_browsertest.cc
@@ -12,7 +12,6 @@ #include "ash/shell.h" #include "ash/system/tray/system_tray.h" #include "base/bind.h" -#include "base/command_line.h" #include "base/memory/weak_ptr.h" #include "base/strings/pattern.h" #include "chrome/browser/chromeos/accessibility/accessibility_manager.h" @@ -53,13 +52,6 @@ SelectToSpeakTest() : weak_ptr_factory_(this) {} ~SelectToSpeakTest() override {} - void SetUpCommandLine(base::CommandLine* command_line) override { - // TODO(katie): Remove this flag once the feature to add a STS button - // in the shelf is launched. - command_line->AppendSwitch( - chromeos::switches::kEnableExperimentalAccessibilityFeatures); - } - void SetUpOnMainThread() override { ASSERT_FALSE(AccessibilityManager::Get()->IsSelectToSpeakEnabled());
diff --git a/chrome/browser/chromeos/chrome_browser_main_chromeos.cc b/chrome/browser/chromeos/chrome_browser_main_chromeos.cc index bd8ee0d2..63f5e9bf 100644 --- a/chrome/browser/chromeos/chrome_browser_main_chromeos.cc +++ b/chrome/browser/chromeos/chrome_browser_main_chromeos.cc
@@ -115,6 +115,7 @@ #include "chromeos/cert_loader.h" #include "chromeos/chromeos_paths.h" #include "chromeos/chromeos_switches.h" +#include "chromeos/components/drivefs/drive_file_stream_service_provider_delegate.h" #include "chromeos/cryptohome/async_method_caller.h" #include "chromeos/cryptohome/cryptohome_parameters.h" #include "chromeos/cryptohome/homedir_methods.h" @@ -124,6 +125,7 @@ #include "chromeos/dbus/power_policy_controller.h" #include "chromeos/dbus/services/chrome_features_service_provider.h" #include "chromeos/dbus/services/cros_dbus_service.h" +#include "chromeos/dbus/services/drive_file_stream_service_provider.h" #include "chromeos/dbus/services/liveness_service_provider.h" #include "chromeos/dbus/services/proxy_resolution_service_provider.h" #include "chromeos/dbus/services/virtual_file_request_service_provider.h" @@ -402,6 +404,14 @@ std::make_unique<VmApplicationsServiceProvider>( std::make_unique<VmApplicationsServiceProviderDelegate>()))); + drive_file_stream_service_ = CrosDBusService::Create( + drivefs::kDriveFileStreamServiceName, + dbus::ObjectPath(drivefs::kDriveFileStreamServicePath), + CrosDBusService::CreateServiceProviderList( + std::make_unique<DriveFileStreamServiceProvider>( + std::make_unique< + drivefs::DriveFileStreamServiceProviderDelegate>()))); + // Initialize PowerDataCollector after DBusThreadManager is initialized. PowerDataCollector::Initialize(); @@ -446,6 +456,7 @@ component_updater_service_.reset(); finch_features_service_.reset(); vm_applications_service_.reset(); + drive_file_stream_service_.reset(); PowerDataCollector::Shutdown(); if (GetAshConfig() != ash::Config::MASH) PowerPolicyController::Shutdown(); @@ -469,6 +480,7 @@ std::unique_ptr<CrosDBusService> component_updater_service_; std::unique_ptr<CrosDBusService> finch_features_service_; std::unique_ptr<CrosDBusService> vm_applications_service_; + std::unique_ptr<CrosDBusService> drive_file_stream_service_; DISALLOW_COPY_AND_ASSIGN(DBusServices); };
diff --git a/chrome/browser/chromeos/file_manager/audio_player_browsertest.cc b/chrome/browser/chromeos/file_manager/audio_player_browsertest.cc index 2b5ee921..1640ba6 100644 --- a/chrome/browser/chromeos/file_manager/audio_player_browsertest.cc +++ b/chrome/browser/chromeos/file_manager/audio_player_browsertest.cc
@@ -4,22 +4,11 @@ #include "chrome/browser/chromeos/file_manager/file_manager_browsertest_base.h" -#include "media/base/media_switches.h" - namespace file_manager { -static constexpr bool kUseFakeAudioLayer = true; - template <GuestMode MODE> class AudioPlayerBrowserTestBase : public FileManagerBrowserTestBase { public: - void SetUpCommandLine(base::CommandLine* command_line) override { - if (kUseFakeAudioLayer) - command_line->AppendSwitch(switches::kDisableAudioOutput); - - FileManagerBrowserTestBase::SetUpCommandLine(command_line); - } - GuestMode GetGuestMode() const override { return MODE; } const char* GetTestCaseName() const override {
diff --git a/chrome/browser/chromeos/file_manager/file_manager_browsertest.cc b/chrome/browser/chromeos/file_manager/file_manager_browsertest.cc index fe99ad0..dfcdd19 100644 --- a/chrome/browser/chromeos/file_manager/file_manager_browsertest.cc +++ b/chrome/browser/chromeos/file_manager/file_manager_browsertest.cc
@@ -148,14 +148,8 @@ TestParameter(NOT_IN_GUEST_MODE, "createNewFolderDownloads"), TestParameter(NOT_IN_GUEST_MODE, "createNewFolderDrive"))); -// Fails on official build. http://crbug.com/429294 -#if defined(DISABLE_SLOW_FILESAPP_TESTS) || defined(OFFICIAL_BUILD) -#define MAYBE_KeyboardOperations DISABLED_KeyboardOperations -#else -#define MAYBE_KeyboardOperations KeyboardOperations -#endif WRAPPED_INSTANTIATE_TEST_CASE_P( - MAYBE_KeyboardOperations, + KeyboardOperations, FileManagerBrowserTest, ::testing::Values( TestParameter(IN_GUEST_MODE, "keyboardDeleteDownloads"),
diff --git a/chrome/browser/chromeos/file_manager/file_manager_browsertest_base.cc b/chrome/browser/chromeos/file_manager/file_manager_browsertest_base.cc index 55d82bd..142dea94 100644 --- a/chrome/browser/chromeos/file_manager/file_manager_browsertest_base.cc +++ b/chrome/browser/chromeos/file_manager/file_manager_browsertest_base.cc
@@ -37,6 +37,7 @@ #include "extensions/browser/notification_types.h" #include "google_apis/drive/drive_api_parser.h" #include "google_apis/drive/test_util.h" +#include "media/base/media_switches.h" #include "net/test/embedded_test_server/embedded_test_server.h" #include "storage/browser/fileapi/external_mount_points.h" #include "ui/message_center/public/cpp/notification.h" @@ -212,7 +213,7 @@ using SendMessage = content::Source<extensions::TestSendMessageFunction>; message.function = SendMessage(source).ptr(); using WillReply = content::Details<std::pair<std::string, bool*>>; - *WillReply(details).ptr()->second = true; // http:/crbug.com/668680 + *WillReply(details).ptr()->second = true; // crbug.com/668680 CHECK(!test_complete_) << "LATE MESSAGE: " << message.message; } @@ -537,6 +538,9 @@ void FileManagerBrowserTestBase::SetUpCommandLine( base::CommandLine* command_line) { + // Use a fake audio stream crbug.com/835626 + command_line->AppendSwitch(switches::kDisableAudioOutput); + if (IsGuestModeTest()) { command_line->AppendSwitch(chromeos::switches::kGuestSession); command_line->AppendSwitchNative(chromeos::switches::kLoginUser, "");
diff --git a/chrome/browser/chromeos/file_manager/video_player_browsertest.cc b/chrome/browser/chromeos/file_manager/video_player_browsertest.cc index 2321ff2..318415c 100644 --- a/chrome/browser/chromeos/file_manager/video_player_browsertest.cc +++ b/chrome/browser/chromeos/file_manager/video_player_browsertest.cc
@@ -5,19 +5,13 @@ #include "chrome/browser/chromeos/file_manager/file_manager_browsertest_base.h" #include "chromeos/chromeos_switches.h" -#include "media/base/media_switches.h" namespace file_manager { -static constexpr bool kUseFakeAudioLayer = true; - template <GuestMode MODE> class VideoPlayerBrowserTestBase : public FileManagerBrowserTestBase { public: void SetUpCommandLine(base::CommandLine* command_line) override { - if (kUseFakeAudioLayer) - command_line->AppendSwitch(switches::kDisableAudioOutput); - command_line->AppendSwitch( chromeos::switches::kEnableVideoPlayerChromecastSupport);
diff --git a/chrome/browser/chromeos/login/crash_restore_browsertest.cc b/chrome/browser/chromeos/login/crash_restore_browsertest.cc index 37094aa..2159562 100644 --- a/chrome/browser/chromeos/login/crash_restore_browsertest.cc +++ b/chrome/browser/chromeos/login/crash_restore_browsertest.cc
@@ -2,15 +2,27 @@ // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. +#include <memory> #include <string> +#include <utility> #include <vector> #include "base/command_line.h" +#include "base/files/file_util.h" +#include "base/json/json_writer.h" #include "base/macros.h" +#include "base/memory/ptr_util.h" #include "base/memory/ref_counted.h" +#include "base/path_service.h" #include "base/run_loop.h" +#include "base/strings/string_number_conversions.h" +#include "base/values.h" #include "chrome/browser/chromeos/login/session/user_session_manager.h" #include "chrome/browser/chromeos/login/session/user_session_manager_test_api.h" +#include "chrome/browser/chromeos/profiles/profile_helper.h" +#include "chrome/common/chrome_constants.h" +#include "chrome/common/chrome_paths.h" +#include "chrome/common/pref_names.h" #include "chrome/test/base/in_process_browser_test.h" #include "chromeos/chromeos_switches.h" #include "chromeos/cryptohome/cryptohome_parameters.h" @@ -131,11 +143,76 @@ CrashRestoreComplexTest() {} ~CrashRestoreComplexTest() override {} + bool SetUpUserDataDirectory() override { + RegisterUsers(); + CreateUserProfiles(); + return true; + } + void SetUpInProcessBrowserTestFixture() override { CrashRestoreSimpleTest::SetUpInProcessBrowserTestFixture(); session_manager_client_->StartSession(cryptohome_id2_); session_manager_client_->StartSession(cryptohome_id3_); } + + // Register test users so that UserManager knows them and make kUserId3 as the + // last active user. + void RegisterUsers() { + base::DictionaryValue local_state; + + const char* kTestUserIds[] = {kUserId1, kUserId2, kUserId3}; + + auto users_list = std::make_unique<base::ListValue>(); + for (auto* user_id : kTestUserIds) + users_list->AppendString(user_id); + + local_state.SetList("LoggedInUsers", std::move(users_list)); + local_state.SetString("LastActiveUser", kUserId3); + + auto known_users_list = std::make_unique<base::ListValue>(); + int gaia_id = 10000; + for (auto* user_id : kTestUserIds) { + auto user_dict = std::make_unique<base::DictionaryValue>(); + user_dict->SetString("account_type", "google"); + user_dict->SetString("email", user_id); + user_dict->SetString("gaia_id", base::IntToString(gaia_id++)); + known_users_list->Append(std::move(user_dict)); + } + local_state.SetList("KnownUsers", std::move(known_users_list)); + + std::string local_state_json; + ASSERT_TRUE(base::JSONWriter::Write(local_state, &local_state_json)); + + base::FilePath local_state_file; + ASSERT_TRUE( + base::PathService::Get(chrome::DIR_USER_DATA, &local_state_file)); + local_state_file = local_state_file.Append(chrome::kLocalStateFilename); + ASSERT_NE(-1, base::WriteFile(local_state_file, local_state_json.data(), + local_state_json.size())); + } + + // Creates user profiles with open user sessions to simulate crashes. + void CreateUserProfiles() { + base::DictionaryValue prefs; + prefs.SetString(prefs::kSessionExitType, "Crashed"); + std::string prefs_json; + ASSERT_TRUE(base::JSONWriter::Write(prefs, &prefs_json)); + + base::FilePath user_data_dir; + ASSERT_TRUE(base::PathService::Get(chrome::DIR_USER_DATA, &user_data_dir)); + + const char* kTestUserIds[] = {kUserId1, kUserId2, kUserId3}; + for (auto* user_id : kTestUserIds) { + const std::string user_id_hash = + ProfileHelper::GetUserIdHashByUserIdForTesting(user_id); + const base::FilePath user_profile_path = + user_data_dir.Append(ProfileHelper::GetUserProfileDir(user_id_hash)); + ASSERT_TRUE(base::CreateDirectory(user_profile_path)); + + ASSERT_NE(-1, base::WriteFile(user_profile_path.Append("Preferences"), + prefs_json.data(), prefs_json.size())); + } + } }; IN_PROC_BROWSER_TEST_F(CrashRestoreComplexTest, RestoreSessionForThreeUsers) { @@ -165,11 +242,11 @@ EXPECT_EQ(account_id3_, users[0]->GetAccountId()); EXPECT_EQ(CryptohomeClient::GetStubSanitizedUsername(cryptohome_id3_), users[0]->username_hash()); - EXPECT_EQ(account_id2_, users[1]->GetAccountId()); - EXPECT_EQ(CryptohomeClient::GetStubSanitizedUsername(cryptohome_id2_), - users[1]->username_hash()); - EXPECT_EQ(account_id1_, users[2]->GetAccountId()); + EXPECT_EQ(account_id1_, users[1]->GetAccountId()); EXPECT_EQ(CryptohomeClient::GetStubSanitizedUsername(cryptohome_id1_), + users[1]->username_hash()); + EXPECT_EQ(account_id2_, users[2]->GetAccountId()); + EXPECT_EQ(CryptohomeClient::GetStubSanitizedUsername(cryptohome_id2_), users[2]->username_hash()); auto* session_manager = session_manager::SessionManager::Get();
diff --git a/chrome/browser/chromeos/power/ml/adaptive_screen_brightness_manager.cc b/chrome/browser/chromeos/power/ml/adaptive_screen_brightness_manager.cc index 952ff0b..d1a387f 100644 --- a/chrome/browser/chromeos/power/ml/adaptive_screen_brightness_manager.cc +++ b/chrome/browser/chromeos/power/ml/adaptive_screen_brightness_manager.cc
@@ -52,9 +52,6 @@ constexpr int kNumUserInputEventsBuckets = kUserInputEventsDuration / base::TimeDelta::FromMinutes(1); -// Log data every 10 minutes. -constexpr base::TimeDelta kLoggingInterval = base::TimeDelta::FromMinutes(10); - // Returns the focused visible browser unless no visible browser is focused, // then returns the topmost visible browser. // Returns nullopt if no suitable browsers are found. @@ -106,6 +103,7 @@ } // namespace constexpr base::TimeDelta AdaptiveScreenBrightnessManager::kInactivityDuration; +constexpr base::TimeDelta AdaptiveScreenBrightnessManager::kLoggingInterval; AdaptiveScreenBrightnessManager::AdaptiveScreenBrightnessManager( std::unique_ptr<AdaptiveScreenBrightnessUkmLogger> ukm_logger, @@ -268,6 +266,7 @@ default: reason_ = ScreenBrightnessEvent::Event::OTHER; } + previous_screen_brightness_percent_ = screen_brightness_percent_; screen_brightness_percent_ = change.percent(); LogEvent(); } @@ -311,6 +310,7 @@ void AdaptiveScreenBrightnessManager::OnTimerFired() { reason_ = ScreenBrightnessEvent::Event::PERIODIC; + previous_screen_brightness_percent_ = screen_brightness_percent_; LogEvent(); } @@ -326,6 +326,7 @@ void AdaptiveScreenBrightnessManager::OnReceiveScreenBrightnessPercent( const base::Optional<double> screen_brightness_percent) { if (screen_brightness_percent.has_value()) { + previous_screen_brightness_percent_ = screen_brightness_percent_; screen_brightness_percent_ = *screen_brightness_percent; } } @@ -350,6 +351,9 @@ if (!screen_brightness_percent_.has_value()) { return; } + + const base::TimeDelta time_since_boot = boot_clock_->GetTimeSinceBoot(); + ScreenBrightnessEvent screen_brightness; ScreenBrightnessEvent::Event* const event = screen_brightness.mutable_event(); event->set_brightness(*screen_brightness_percent_); @@ -357,6 +361,10 @@ event->set_reason(*reason_); reason_ = base::nullopt; } + if (last_event_time_since_boot_.has_value()) { + event->set_time_since_last_event_sec( + (time_since_boot - *last_event_time_since_boot_).InSeconds()); + } ScreenBrightnessEvent::Features* const features = screen_brightness.mutable_features(); @@ -373,7 +381,6 @@ static_cast<ScreenBrightnessEvent_Features_ActivityData_DayOfWeek>( exploded.day_of_week)); - const base::TimeDelta time_since_boot = boot_clock_->GetTimeSinceBoot(); activity_data->set_num_recent_mouse_events( mouse_counter_->GetTotal(time_since_boot)); activity_data->set_num_recent_key_events( @@ -433,6 +440,11 @@ *temperature); } + if (previous_screen_brightness_percent_.has_value()) { + features->mutable_env_data()->set_previous_brightness( + *previous_screen_brightness_percent_); + } + ScreenBrightnessEvent::Features::AccessibilityData* const accessibility_data = features->mutable_accessibility_data(); @@ -472,6 +484,8 @@ // Log to metrics. ukm_logger_->LogActivity(screen_brightness, tab_data.first, tab_data.second); + + last_event_time_since_boot_ = time_since_boot; } } // namespace ml
diff --git a/chrome/browser/chromeos/power/ml/adaptive_screen_brightness_manager.h b/chrome/browser/chromeos/power/ml/adaptive_screen_brightness_manager.h index 0ba2efe..ff0b08f 100644 --- a/chrome/browser/chromeos/power/ml/adaptive_screen_brightness_manager.h +++ b/chrome/browser/chromeos/power/ml/adaptive_screen_brightness_manager.h
@@ -51,6 +51,10 @@ static constexpr base::TimeDelta kInactivityDuration = base::TimeDelta::FromSeconds(20); + // Interval at which data should be logged. + static constexpr base::TimeDelta kLoggingInterval = + base::TimeDelta::FromMinutes(10); + AdaptiveScreenBrightnessManager( std::unique_ptr<AdaptiveScreenBrightnessUkmLogger> ukm_logger, ui::UserActivityDetector* detector, @@ -142,7 +146,14 @@ // Battery percent. This is in the range [0.0, 100.0]. base::Optional<float> battery_percent_; + // Both |screen_brightness_percent_| and |previous_screen_brightness_percent_| + // are values reported directly by powerd. They are percentages as double but + // are in the range of [0, 100]. When we convert these values to the fields in + // ScreenBrightnessEvent, we cast them to ints. base::Optional<double> screen_brightness_percent_; + base::Optional<double> previous_screen_brightness_percent_; + base::Optional<base::TimeDelta> last_event_time_since_boot_; + // The time (since boot) of the most recent active event. This is the end of // the most recent period of activity. base::Optional<base::TimeDelta> last_activity_time_since_boot_;
diff --git a/chrome/browser/chromeos/power/ml/adaptive_screen_brightness_manager_unittest.cc b/chrome/browser/chromeos/power/ml/adaptive_screen_brightness_manager_unittest.cc index 6da665dd..165ea02 100644 --- a/chrome/browser/chromeos/power/ml/adaptive_screen_brightness_manager_unittest.cc +++ b/chrome/browser/chromeos/power/ml/adaptive_screen_brightness_manager_unittest.cc
@@ -48,6 +48,8 @@ const int kInactivityDurationSecs = AdaptiveScreenBrightnessManager::kInactivityDuration.InSeconds(); +const int kLoggingIntervalSecs = + AdaptiveScreenBrightnessManager::kLoggingInterval.InSeconds(); // Testing ukm logger. class TestingAdaptiveScreenBrightnessUkmLogger @@ -233,7 +235,7 @@ ReportLidEvent(chromeos::PowerManagerClient::LidState::OPEN); ReportTabletModeEvent(chromeos::PowerManagerClient::TabletMode::UNSUPPORTED); - FireTimer(); + FastForwardTimeBySecs(kLoggingIntervalSecs); const std::vector<LogActivityInfo>& info = ukm_logger()->log_activity_info(); ASSERT_EQ(1U, info.size()); @@ -244,50 +246,105 @@ EXPECT_TRUE(features.activity_data().is_video_playing()); EXPECT_EQ(ScreenBrightnessEvent::Features::EnvData::LAPTOP, features.env_data().device_mode()); + EXPECT_EQ(75, features.env_data().previous_brightness()); const ScreenBrightnessEvent::Event& event = info[0].screen_brightness_event.event(); EXPECT_EQ(75, event.brightness()); + EXPECT_EQ(ScreenBrightnessEvent::Event::PERIODIC, event.reason()); + EXPECT_FALSE(event.has_time_since_last_event_sec()); +} + +TEST_F(AdaptiveScreenBrightnessManagerTest, + PeriodicLoggingBrightnessUninitialized) { + ReportPowerChangeEvent(power_manager::PowerSupplyProperties::AC, 23.0f); + ReportVideoStart(); + ReportLidEvent(chromeos::PowerManagerClient::LidState::OPEN); + ReportTabletModeEvent(chromeos::PowerManagerClient::TabletMode::UNSUPPORTED); + + FastForwardTimeBySecs(kLoggingIntervalSecs); + + const std::vector<LogActivityInfo>& info = ukm_logger()->log_activity_info(); + EXPECT_TRUE(info.empty()); +} + +TEST_F(AdaptiveScreenBrightnessManagerTest, PeriodicTimerTest) { + ReportPowerChangeEvent(power_manager::PowerSupplyProperties::AC, 23.0f); + ReportVideoStart(); + ReportLidEvent(chromeos::PowerManagerClient::LidState::OPEN); + ReportTabletModeEvent(chromeos::PowerManagerClient::TabletMode::UNSUPPORTED); + + FastForwardTimeBySecs(kLoggingIntervalSecs - 10); + + const std::vector<LogActivityInfo>& info = ukm_logger()->log_activity_info(); + EXPECT_TRUE(info.empty()); } TEST_F(AdaptiveScreenBrightnessManagerTest, BrightnessChange) { ReportBrightnessChangeEvent( - 30.0f, power_manager:: - BacklightBrightnessChange_Cause_EXTERNAL_POWER_DISCONNECTED); + 30.0f, power_manager::BacklightBrightnessChange_Cause_USER_REQUEST); + FastForwardTimeBySecs(2); ReportBrightnessChangeEvent( - 40.0f, power_manager::BacklightBrightnessChange_Cause_USER_REQUEST); + 40.0f, power_manager:: + BacklightBrightnessChange_Cause_EXTERNAL_POWER_DISCONNECTED); + FastForwardTimeBySecs(6); ReportBrightnessChangeEvent( 20.0f, power_manager::BacklightBrightnessChange_Cause_USER_REQUEST); const std::vector<LogActivityInfo>& info = ukm_logger()->log_activity_info(); ASSERT_EQ(3U, info.size()); + const ScreenBrightnessEvent::Event& event = info[0].screen_brightness_event.event(); EXPECT_EQ(30, event.brightness()); - EXPECT_EQ(ScreenBrightnessEvent::Event::EXTERNAL_POWER_DISCONNECTED, - event.reason()); + EXPECT_EQ(ScreenBrightnessEvent::Event::OTHER, event.reason()); + EXPECT_FALSE(event.has_time_since_last_event_sec()); + // Brightness wasn't initialized so there's no previous brightness level. + EXPECT_FALSE(info[0] + .screen_brightness_event.features() + .env_data() + .has_previous_brightness()); + const ScreenBrightnessEvent::Event& event1 = info[1].screen_brightness_event.event(); EXPECT_EQ(40, event1.brightness()); - EXPECT_EQ(ScreenBrightnessEvent::Event::USER_UP, event1.reason()); + EXPECT_EQ(ScreenBrightnessEvent::Event::EXTERNAL_POWER_DISCONNECTED, + event1.reason()); + EXPECT_EQ(2, event1.time_since_last_event_sec()); + EXPECT_EQ(30, info[1] + .screen_brightness_event.features() + .env_data() + .previous_brightness()); + const ScreenBrightnessEvent::Event& event2 = info[2].screen_brightness_event.event(); EXPECT_EQ(20, event2.brightness()); EXPECT_EQ(ScreenBrightnessEvent::Event::USER_DOWN, event2.reason()); + EXPECT_EQ(6, event2.time_since_last_event_sec()); + EXPECT_EQ(40, info[2] + .screen_brightness_event.features() + .env_data() + .previous_brightness()); } TEST_F(AdaptiveScreenBrightnessManagerTest, NoUserEvents) { InitializeBrightness(75.0f); - FastForwardTimeBySecs(2); - FireTimer(); + FastForwardTimeBySecs(kLoggingIntervalSecs); const std::vector<LogActivityInfo>& info = ukm_logger()->log_activity_info(); ASSERT_EQ(1U, info.size()); const ScreenBrightnessEvent::Features& features = info[0].screen_brightness_event.features(); - EXPECT_EQ(0, features.activity_data().last_activity_time_sec()); - EXPECT_EQ(0, features.activity_data().recent_time_active_sec()); + EXPECT_FALSE(features.activity_data().has_last_activity_time_sec()); + EXPECT_FALSE(features.activity_data().has_recent_time_active_sec()); + EXPECT_EQ(75, features.env_data().previous_brightness()); + + const ScreenBrightnessEvent::Event& event = + info[0].screen_brightness_event.event(); + EXPECT_EQ(75, event.brightness()); + EXPECT_FALSE(event.has_time_since_last_event_sec()); + EXPECT_EQ(ScreenBrightnessEvent::Event::PERIODIC, event.reason()); EXPECT_EQ(ukm::kInvalidSourceId, info[0].tab_id); } @@ -297,30 +354,35 @@ FastForwardTimeBySecs(1); ReportUserActivity(nullptr); - FastForwardTimeBySecs(2); - FireTimer(); + FastForwardTimeBySecs(kLoggingIntervalSecs); const std::vector<LogActivityInfo>& info = ukm_logger()->log_activity_info(); ASSERT_EQ(1U, info.size()); const ScreenBrightnessEvent::Features& features = info[0].screen_brightness_event.features(); - EXPECT_EQ(0, features.activity_data().last_activity_time_sec()); - EXPECT_EQ(0, features.activity_data().recent_time_active_sec()); + EXPECT_FALSE(features.activity_data().has_last_activity_time_sec()); + EXPECT_FALSE(features.activity_data().has_recent_time_active_sec()); + EXPECT_EQ(75, features.env_data().previous_brightness()); + + const ScreenBrightnessEvent::Event& event = + info[0].screen_brightness_event.event(); + EXPECT_EQ(75, event.brightness()); + EXPECT_FALSE(event.has_time_since_last_event_sec()); + EXPECT_EQ(ScreenBrightnessEvent::Event::PERIODIC, event.reason()); } TEST_F(AdaptiveScreenBrightnessManagerTest, OneUserEvent) { InitializeBrightness(75.0f); - FastForwardTimeBySecs(1); ReportUserActivity(&kMouseEvent); - FastForwardTimeBySecs(2); - FireTimer(); + FastForwardTimeBySecs(kLoggingIntervalSecs); const std::vector<LogActivityInfo>& info = ukm_logger()->log_activity_info(); ASSERT_EQ(1U, info.size()); const ScreenBrightnessEvent::Features& features = info[0].screen_brightness_event.features(); - EXPECT_EQ(2, features.activity_data().last_activity_time_sec()); + EXPECT_EQ(kLoggingIntervalSecs, + features.activity_data().last_activity_time_sec()); EXPECT_EQ(0, features.activity_data().recent_time_active_sec()); } @@ -333,14 +395,15 @@ FastForwardTimeBySecs(5); ReportUserActivity(&kMouseEvent); - FastForwardTimeBySecs(2); - FireTimer(); + FastForwardTimeBySecs(kLoggingIntervalSecs); const std::vector<LogActivityInfo>& info = ukm_logger()->log_activity_info(); ASSERT_EQ(1U, info.size()); const ScreenBrightnessEvent::Features& features = info[0].screen_brightness_event.features(); - EXPECT_EQ(2, features.activity_data().last_activity_time_sec()); + // Timer starts from the beginning, so subtract 6 seconds. + EXPECT_EQ(kLoggingIntervalSecs - 6, + features.activity_data().last_activity_time_sec()); EXPECT_EQ(5, features.activity_data().recent_time_active_sec()); } @@ -353,14 +416,14 @@ FastForwardTimeBySecs(kInactivityDurationSecs + 5); ReportUserActivity(&kMouseEvent); - FastForwardTimeBySecs(2); - FireTimer(); + FastForwardTimeBySecs(kLoggingIntervalSecs); const std::vector<LogActivityInfo>& info = ukm_logger()->log_activity_info(); ASSERT_EQ(1U, info.size()); const ScreenBrightnessEvent::Features& features = info[0].screen_brightness_event.features(); - EXPECT_EQ(2, features.activity_data().last_activity_time_sec()); + EXPECT_EQ(kLoggingIntervalSecs - kInactivityDurationSecs - 6, + features.activity_data().last_activity_time_sec()); EXPECT_EQ(0, features.activity_data().recent_time_active_sec()); }
diff --git a/chrome/browser/chromeos/power/ml/adaptive_screen_brightness_ukm_logger_impl.cc b/chrome/browser/chromeos/power/ml/adaptive_screen_brightness_ukm_logger_impl.cc index 84770398..e46062a 100644 --- a/chrome/browser/chromeos/power/ml/adaptive_screen_brightness_ukm_logger_impl.cc +++ b/chrome/browser/chromeos/power/ml/adaptive_screen_brightness_ukm_logger_impl.cc
@@ -32,6 +32,10 @@ constexpr UserActivityUkmLoggerImpl::Bucket kRecentTimeActiveBuckets[] = {{60, 1}, {600, 60}, {1200, 300}, {3600, 600}, {18000, 1800}}; +constexpr UserActivityUkmLoggerImpl::Bucket kTimeSinceLastEventBuckets[] = { + {60, 1}, + {600, 60}}; + } // namespace AdaptiveScreenBrightnessUkmLoggerImpl:: @@ -63,28 +67,28 @@ ukm_screen_brightness.SetNumRecentMouseEvents( UserActivityUkmLoggerImpl::Bucketize( activity_data.num_recent_mouse_events(), kUserInputEventBuckets, - arraysize(kUserInputEventBuckets))); + base::size(kUserInputEventBuckets))); } if (activity_data.has_num_recent_key_events()) { ukm_screen_brightness.SetNumRecentKeyEvents( UserActivityUkmLoggerImpl::Bucketize( activity_data.num_recent_key_events(), kUserInputEventBuckets, - arraysize(kUserInputEventBuckets))); + base::size(kUserInputEventBuckets))); } if (activity_data.has_num_recent_stylus_events()) { ukm_screen_brightness.SetNumRecentStylusEvents( UserActivityUkmLoggerImpl::Bucketize( activity_data.num_recent_stylus_events(), kUserInputEventBuckets, - arraysize(kUserInputEventBuckets))); + base::size(kUserInputEventBuckets))); } if (activity_data.has_num_recent_touch_events()) { ukm_screen_brightness.SetNumRecentTouchEvents( UserActivityUkmLoggerImpl::Bucketize( activity_data.num_recent_touch_events(), kUserInputEventBuckets, - arraysize(kUserInputEventBuckets))); + base::size(kUserInputEventBuckets))); } if (activity_data.has_last_activity_time_sec()) { @@ -96,7 +100,7 @@ ukm_screen_brightness.SetRecentTimeActiveSec( UserActivityUkmLoggerImpl::Bucketize( activity_data.recent_time_active_sec(), kRecentTimeActiveBuckets, - arraysize(kRecentTimeActiveBuckets))); + base::size(kRecentTimeActiveBuckets))); } if (activity_data.has_is_video_playing()) { @@ -113,7 +117,7 @@ ukm_screen_brightness.SetBatteryPercent( UserActivityUkmLoggerImpl::Bucketize( std::floor(env_data.battery_percent()), kBatteryPercentBuckets, - arraysize(kBatteryPercentBuckets))); + base::size(kBatteryPercentBuckets))); } if (env_data.has_device_mode()) { @@ -125,6 +129,10 @@ env_data.night_light_temperature_percent()); } + if (env_data.has_previous_brightness()) { + ukm_screen_brightness.SetPreviousBrightness(env_data.previous_brightness()); + } + const ScreenBrightnessEvent_Features_AccessibilityData accessibility_data = features.accessibility_data(); @@ -202,6 +210,13 @@ ukm_screen_brightness.SetReason(event.reason()); } + if (event.has_time_since_last_event_sec()) { + ukm_screen_brightness.SetTimeSinceLastEventSec( + UserActivityUkmLoggerImpl::Bucketize( + event.time_since_last_event_sec(), kTimeSinceLastEventBuckets, + base::size(kTimeSinceLastEventBuckets))); + } + ukm::UkmRecorder* const ukm_recorder = ukm::UkmRecorder::Get(); ukm_screen_brightness.Record(ukm_recorder);
diff --git a/chrome/browser/chromeos/power/ml/adaptive_screen_brightness_ukm_logger_impl_unittest.cc b/chrome/browser/chromeos/power/ml/adaptive_screen_brightness_ukm_logger_impl_unittest.cc index 27c1cb9..7bff2eb 100644 --- a/chrome/browser/chromeos/power/ml/adaptive_screen_brightness_ukm_logger_impl_unittest.cc +++ b/chrome/browser/chromeos/power/ml/adaptive_screen_brightness_ukm_logger_impl_unittest.cc
@@ -62,6 +62,7 @@ env_data->set_battery_percent(96.0); env_data->set_device_mode(ScreenBrightnessEvent::Features::EnvData::LAPTOP); env_data->set_night_light_temperature_percent(40); + env_data->set_previous_brightness(10); ScreenBrightnessEvent::Features::AccessibilityData* const accessibility_data = features->mutable_accessibility_data(); @@ -83,6 +84,7 @@ screen_brightness_event.mutable_event(); event->set_brightness(31); event->set_reason(ScreenBrightnessEvent::Event::USER_UP); + event->set_time_since_last_event_sec(9); LogActivity(screen_brightness_event, 5 /* tab_id */, true /* has_form_entry */); @@ -109,15 +111,17 @@ {ukm::builders::ScreenBrightness::kIsSwitchAccessEnabledName, 1}, {ukm::builders::ScreenBrightness::kIsVideoPlayingName, 1}, {ukm::builders::ScreenBrightness::kIsVirtualKeyboardEnabledName, 1}, + {ukm::builders::ScreenBrightness::kLastActivityTimeSecName, 22}, + {ukm::builders::ScreenBrightness::kNightLightTemperaturePercentName, 40}, {ukm::builders::ScreenBrightness::kNumRecentKeyEventsName, 0}, {ukm::builders::ScreenBrightness::kNumRecentMouseEventsName, 12}, {ukm::builders::ScreenBrightness::kNumRecentStylusEventsName, 34}, {ukm::builders::ScreenBrightness::kNumRecentTouchEventsName, 56}, - {ukm::builders::ScreenBrightness::kNightLightTemperaturePercentName, 40}, - {ukm::builders::ScreenBrightness::kLastActivityTimeSecName, 22}, + {ukm::builders::ScreenBrightness::kOnBatteryName, 1}, + {ukm::builders::ScreenBrightness::kPreviousBrightnessName, 10}, {ukm::builders::ScreenBrightness::kReasonName, 1}, {ukm::builders::ScreenBrightness::kRecentTimeActiveSecName, 33}, - {ukm::builders::ScreenBrightness::kOnBatteryName, 1}, + {ukm::builders::ScreenBrightness::kTimeSinceLastEventSecName, 9}, }; ukm_entry_checker_.ExpectNewEntry(ukm::builders::ScreenBrightness::kEntryName,
diff --git a/chrome/browser/chromeos/power/ml/screen_brightness_event.proto b/chrome/browser/chromeos/power/ml/screen_brightness_event.proto index 75bd453b..91ad7da7 100644 --- a/chrome/browser/chromeos/power/ml/screen_brightness_event.proto +++ b/chrome/browser/chromeos/power/ml/screen_brightness_event.proto
@@ -92,6 +92,12 @@ // Night light temperature percentage if night light mode is enabled. On // a scale from 0 to 100. optional int32 night_light_temperature_percent = 4; + + // The brightness of the screen prior to the time at which the current + // event was logged. If an event is logged periodically, it will be the + // same as |Event.brightness|. It is only unset if event is logged due to + // brightness change but there is no initial brightness recorded. + optional int32 previous_brightness = 5; } optional DeviceSpec device_spec = 1; @@ -147,6 +153,9 @@ optional int32 brightness = 1; optional Reason reason = 2; optional ModelOutcome model_outcome = 3; + // Time in seconds since the last event was logged. Unset if there wasn't an + // earlier event. + optional int32 time_since_last_event_sec = 4; } optional Features features = 1; optional Event event = 2;
diff --git a/chrome/browser/extensions/api/developer_private/developer_private_api.cc b/chrome/browser/extensions/api/developer_private/developer_private_api.cc index 6278f43..caa5806 100644 --- a/chrome/browser/extensions/api/developer_private/developer_private_api.cc +++ b/chrome/browser/extensions/api/developer_private/developer_private_api.cc
@@ -430,14 +430,13 @@ void DeveloperPrivateEventRouter::OnExtensionCommandAdded( const std::string& extension_id, const Command& added_command) { - BroadcastItemStateChanged(developer::EVENT_TYPE_PREFS_CHANGED, - extension_id); + BroadcastItemStateChanged(developer::EVENT_TYPE_COMMAND_ADDED, extension_id); } void DeveloperPrivateEventRouter::OnExtensionCommandRemoved( const std::string& extension_id, const Command& removed_command) { - BroadcastItemStateChanged(developer::EVENT_TYPE_PREFS_CHANGED, + BroadcastItemStateChanged(developer::EVENT_TYPE_COMMAND_REMOVED, extension_id); }
diff --git a/chrome/browser/flag_descriptions.cc b/chrome/browser/flag_descriptions.cc index 4ef8aae9..38f1910 100644 --- a/chrome/browser/flag_descriptions.cc +++ b/chrome/browser/flag_descriptions.cc
@@ -2208,26 +2208,10 @@ const char kNoCreditCardAbortDescription[] = "Whether or not the No Credit Card Abort is enabled."; -const char kNtpCondensedLayoutName[] = "Condensed NTP layout"; -const char kNtpCondensedLayoutDescription[] = - "Show a condensed layout on the New Tab Page."; - -const char kNtpCondensedTileLayoutName[] = "Condensed NTP tile layout"; -const char kNtpCondensedTileLayoutDescription[] = - "Show a condensed tile layout on the New Tab Page."; - const char kNtpModernLayoutName[] = "Modern NTP layout"; const char kNtpModernLayoutDescription[] = "Show a modern layout on the New Tab Page."; -const char kNtpShortcutsName[] = "NTP Shortcuts"; -const char kNtpShortcutsDescription[] = - "Show shortcuts for bookmarks and downloads on the New Tab Page."; - -const char kSiteExplorationUiName[] = "Site Exploration UI"; -const char kSiteExplorationUiDescription[] = - "Show site suggestions in the Exploration UI"; - const char kNtpGoogleGInOmniboxName[] = "Google G in New Tab Page omnibox"; const char kNtpGoogleGInOmniboxDescription[] = "Show a Google G in the omnibox on the New Tab Page."; @@ -2376,6 +2360,13 @@ "A new type of inline autocomplete for the omnibox that works with " "keyboards that compose text."; +const char kSimplifiedNtpName[] = "Simplified NTP"; +const char kSimplifiedNtpDescription[] = "Show a simplified New Tab Page."; + +const char kSiteExplorationUiName[] = "Site Exploration UI"; +const char kSiteExplorationUiDescription[] = + "Show site suggestions in the Exploration UI"; + const char kUpdateMenuBadgeName[] = "Force show update menu badge"; const char kUpdateMenuBadgeDescription[] = "When enabled, an update badge will be shown on the app menu button.";
diff --git a/chrome/browser/flag_descriptions.h b/chrome/browser/flag_descriptions.h index f6d0f353..c6461aee5 100644 --- a/chrome/browser/flag_descriptions.h +++ b/chrome/browser/flag_descriptions.h
@@ -1342,21 +1342,9 @@ extern const char kNoCreditCardAbort[]; extern const char kNoCreditCardAbortDescription[]; -extern const char kNtpCondensedLayoutName[]; -extern const char kNtpCondensedLayoutDescription[]; - -extern const char kNtpCondensedTileLayoutName[]; -extern const char kNtpCondensedTileLayoutDescription[]; - extern const char kNtpModernLayoutName[]; extern const char kNtpModernLayoutDescription[]; -extern const char kNtpShortcutsName[]; -extern const char kNtpShortcutsDescription[]; - -extern const char kSiteExplorationUiName[]; -extern const char kSiteExplorationUiDescription[]; - extern const char kNtpGoogleGInOmniboxName[]; extern const char kNtpGoogleGInOmniboxDescription[]; @@ -1439,6 +1427,12 @@ extern const char kSetMarketUrlForTestingName[]; extern const char kSetMarketUrlForTestingDescription[]; +extern const char kSimplifiedNtpName[]; +extern const char kSimplifiedNtpDescription[]; + +extern const char kSiteExplorationUiName[]; +extern const char kSiteExplorationUiDescription[]; + extern const char kSpannableInlineAutocompleteName[]; extern const char kSpannableInlineAutocompleteDescription[];
diff --git a/chrome/browser/ntp_snippets/content_suggestions_service_factory.cc b/chrome/browser/ntp_snippets/content_suggestions_service_factory.cc index 65787da2..f1ca016 100644 --- a/chrome/browser/ntp_snippets/content_suggestions_service_factory.cc +++ b/chrome/browser/ntp_snippets/content_suggestions_service_factory.cc
@@ -119,10 +119,10 @@ #if defined(OS_ANDROID) using content::DownloadManager; -using ntp_snippets::AreNtpShortcutsEnabled; using ntp_snippets::BreakingNewsGCMAppHandler; using ntp_snippets::GetPushUpdatesSubscriptionEndpoint; using ntp_snippets::GetPushUpdatesUnsubscriptionEndpoint; +using ntp_snippets::IsSimplifiedNtpEnabled; using ntp_snippets::SubscriptionManagerImpl; #endif // OS_ANDROID @@ -459,7 +459,7 @@ std::unique_ptr<CategoryRanker> category_ranker = ntp_snippets::BuildSelectedCategoryRanker( pref_service, base::DefaultClock::GetInstance(), - AreNtpShortcutsEnabled()); + IsSimplifiedNtpEnabled()); auto* service = new ContentSuggestionsService( State::ENABLED, identity_manager, history_service, large_icon_service,
diff --git a/chrome/browser/ntp_snippets/dependent_features.cc b/chrome/browser/ntp_snippets/dependent_features.cc index 5ac907f..74503cc1 100644 --- a/chrome/browser/ntp_snippets/dependent_features.cc +++ b/chrome/browser/ntp_snippets/dependent_features.cc
@@ -16,23 +16,23 @@ namespace ntp_snippets { -// All platforms proxy for whether NTP shortcuts are enabled. -bool AreNtpShortcutsEnabled() { +// All platforms proxy for whether the simplified NTP is enabled. +bool IsSimplifiedNtpEnabled() { #if defined(OS_ANDROID) - return base::FeatureList::IsEnabled(chrome::android::kNTPShortcuts); + return base::FeatureList::IsEnabled(chrome::android::kSimplifiedNTP); #else return false; #endif // OS_ANDROID } bool AreAssetDownloadsEnabled() { - return !AreNtpShortcutsEnabled() && + return !IsSimplifiedNtpEnabled() && base::FeatureList::IsEnabled( features::kAssetDownloadSuggestionsFeature); } bool AreOfflinePageDownloadsEnabled() { - return !AreNtpShortcutsEnabled() && + return !IsSimplifiedNtpEnabled() && base::FeatureList::IsEnabled( features::kOfflinePageDownloadSuggestionsFeature); } @@ -41,13 +41,13 @@ } bool IsBookmarkProviderEnabled() { - return !AreNtpShortcutsEnabled() && + return !IsSimplifiedNtpEnabled() && base::FeatureList::IsEnabled( ntp_snippets::kBookmarkSuggestionsFeature); } bool IsForeignSessionsProviderEnabled() { - return !AreNtpShortcutsEnabled() && + return !IsSimplifiedNtpEnabled() && base::FeatureList::IsEnabled( ntp_snippets::kForeignSessionsSuggestionsFeature); }
diff --git a/chrome/browser/ntp_snippets/dependent_features.h b/chrome/browser/ntp_snippets/dependent_features.h index 38a8b22..9c83962 100644 --- a/chrome/browser/ntp_snippets/dependent_features.h +++ b/chrome/browser/ntp_snippets/dependent_features.h
@@ -9,7 +9,7 @@ namespace ntp_snippets { -bool AreNtpShortcutsEnabled(); +bool IsSimplifiedNtpEnabled(); bool AreAssetDownloadsEnabled(); bool AreOfflinePageDownloadsEnabled();
diff --git a/chrome/browser/permissions/permission_request_manager_browsertest.cc b/chrome/browser/permissions/permission_request_manager_browsertest.cc index 4249d77..d8c471f 100644 --- a/chrome/browser/permissions/permission_request_manager_browsertest.cc +++ b/chrome/browser/permissions/permission_request_manager_browsertest.cc
@@ -480,10 +480,10 @@ // Drag out into a dragging window. E.g. see steps in [BrowserWindowController // detachTabsToNewWindow:..]. std::vector<TabStripModelDelegate::NewStripContents> contentses(1); - contentses.back().web_contents = strip->GetWebContentsAt(0); - strip->DetachWebContentsAt(0).release(); + contentses.back().add_types = TabStripModel::ADD_ACTIVE; + contentses.back().web_contents = strip->DetachWebContentsAt(0); Browser* dragging_browser = strip->delegate()->CreateNewStripWithContents( - contentses, gfx::Rect(100, 100, 640, 480), false); + std::move(contentses), gfx::Rect(100, 100, 640, 480), false); // Attach the tab back to the original window. E.g. See steps in // [BrowserWindowController moveTabViews:..].
diff --git a/chrome/browser/renderer_host/site_per_process_text_input_browsertest.cc b/chrome/browser/renderer_host/site_per_process_text_input_browsertest.cc index 25e404eb..073daef 100644 --- a/chrome/browser/renderer_host/site_per_process_text_input_browsertest.cc +++ b/chrome/browser/renderer_host/site_per_process_text_input_browsertest.cc
@@ -1226,45 +1226,66 @@ // the ctor). Therefore, we put the test here to use ChromeContentBrowserClient // which does not have the same singleton constraint. #if defined(OS_MACOSX) -// An observer of number of open windows. -class WindowCountObserver { +class ShowDefinitionForWordObserver + : content::RenderWidgetHostViewCocoaObserver { public: - explicit WindowCountObserver(size_t lower_limit) : limit_(lower_limit) {} - ~WindowCountObserver() {} + explicit ShowDefinitionForWordObserver(content::WebContents* web_contents) + : content::RenderWidgetHostViewCocoaObserver(web_contents) {} - // Keep polling the count of open windows until the number exceeds |limit_|. - void WaitForLimitOrMore() { - size_t current_count = content::GetOpenNSWindowsCount(); - if (current_count >= limit_) - return; + ~ShowDefinitionForWordObserver() override {} - message_loop_runner_ = new content::MessageLoopRunner(); - message_loop_runner_->Run(); - content::BrowserThread::PostTask( - content::BrowserThread::UI, FROM_HERE, - base::Bind(&WindowCountObserver::CheckWindowCount, - base::Unretained(this))); + const std::string& WaitForWordLookUp() { + if (did_receive_string_) + return word_; + + run_loop_.reset(new base::RunLoop()); + run_loop_->Run(); + return word_; } private: - void CheckWindowCount() { - size_t current_count = content::GetOpenNSWindowsCount(); - if (current_count >= limit_) { - message_loop_runner_->Quit(); - return; - } - content::BrowserThread::PostTask( - content::BrowserThread::UI, FROM_HERE, - base::Bind(&WindowCountObserver::CheckWindowCount, - base::Unretained(this))); + void OnShowDefinitionForAttributedString( + const std::string& for_word) override { + did_receive_string_ = true; + word_ = for_word; + if (run_loop_) + run_loop_->Quit(); } - size_t limit_; - scoped_refptr<content::MessageLoopRunner> message_loop_runner_; + bool did_receive_string_ = false; + std::string word_; + std::unique_ptr<base::RunLoop> run_loop_; - DISALLOW_COPY_AND_ASSIGN(WindowCountObserver); + DISALLOW_COPY_AND_ASSIGN(ShowDefinitionForWordObserver); }; +// This test verifies that requests for dictionary lookup based on selection +// range are routed to the focused RenderWidgetHost. +IN_PROC_BROWSER_TEST_F(SitePerProcessTextInputManagerTest, + LookUpStringForRangeRoutesToFocusedWidget) { + CreateIframePage("a(b)"); + std::vector<content::RenderFrameHost*> frames{GetFrame(IndexVector{}), + GetFrame(IndexVector{0})}; + std::string expected_words[] = {"word1", "word2"}; + + // For each frame, add <input>, set its value to expected word, select it, ask + // for dictionary and verify the word returned from renderer matches. + for (size_t i = 0; i < frames.size(); ++i) { + AddInputFieldToFrame(frames[i], "text", expected_words[i].c_str(), true); + // Focusing the <input> automatically selects the text. + ASSERT_TRUE( + ExecuteScript(frames[i], "document.querySelector('input').focus();")); + ShowDefinitionForWordObserver word_lookup_observer(active_contents()); + // Request for the dictionary lookup and intercept the word on its way back. + // The request is always on the tab's view which is a + // RenderWidgetHostViewMac. + content::AskForLookUpDictionaryForRange( + active_contents()->GetRenderWidgetHostView(), + gfx::Range(0, expected_words[i].size())); + EXPECT_EQ(expected_words[i], word_lookup_observer.WaitForWordLookUp()); + } +} + // The original TextInputClientMessageFilter is added during the initialization // phase of RenderProcessHost. The only chance we have to add the test filter // (so that it can receive the TextInputClientMac incoming IPC messages) is @@ -1344,85 +1365,6 @@ DISALLOW_COPY_AND_ASSIGN(SitePerProcessCustomTextInputManagerFilteringTest); }; -// This test verifies that requests for dictionary lookup based on selection -// range are routed to the focused RenderWidgetHost. -// Test is flaky: http://crbug.com/710842 -IN_PROC_BROWSER_TEST_F(SitePerProcessCustomTextInputManagerFilteringTest, - DISABLED_LookUpStringForRangeRoutesToFocusedWidget) { - std::unique_ptr<content::WebContents> new_contents = - content::WebContents::Create(content::WebContents::CreateParams( - active_contents()->GetBrowserContext(), nullptr)); - content::WebContents* raw_new_contents = new_contents.get(); - browser()->tab_strip_model()->InsertWebContentsAt(1, std::move(new_contents), - TabStripModel::ADD_ACTIVE); - EXPECT_EQ(active_contents(), raw_new_contents); - - // Starting the test body. - CreateIframePage("a(b)"); - std::vector<content::RenderFrameHost*> frames{GetFrame(IndexVector{}), - GetFrame(IndexVector{0})}; - std::vector<content::RenderWidgetHostView*> views; - for (auto* frame : frames) - views.push_back(frame->GetView()); - std::vector<std::string> values{"main frame", "child frame"}; - - // Adding some field with text to each frame so that we can later query for - // dictionary lookup. - for (size_t i = 0; i < frames.size(); ++i) - AddInputFieldToFrame(frames[i], "text", values[i], true); - - std::string result; - // Recording window count now so that our WindowCountObserver will detect the - // popup window. - size_t current_window_count = content::GetOpenNSWindowsCount(); - - // Ensure we have both focus and selected text inside the main frame. - EXPECT_TRUE( - ExecuteScript(frames[0], "document.querySelector('input').focus();")); - - // Request for the dictionary lookup and intercept the word on its way back. - // The request is always on the tab's view which is a RenderWidgetHostViewMac. - content::AskForLookUpDictionaryForRange(views[0], gfx::Range(0, 4)); - - // Wait until the result comes back. - auto root_filter = - GetTextInputClientMessageFilterForProcess(frames[0]->GetProcess()); - EXPECT_TRUE(root_filter); - root_filter->WaitForStringFromRange(); - - EXPECT_EQ("main", root_filter->string_from_range()); - - // Wait for the popup to appear to make sure TextInputClientMac has consumed - // the reply handler for the previous request. - WindowCountObserver(current_window_count).WaitForLimitOrMore(); - - // Ensure we have both focus and selected text inside the child frame. - EXPECT_TRUE( - ExecuteScript(frames[1], "document.querySelector('input').focus();")); - - // Record window count again for the popup observer. - current_window_count = content::GetOpenNSWindowsCount(); - - // Make another request. - content::AskForLookUpDictionaryForRange(views[0], gfx::Range(0, 5)); - - // Wait until the result comes back. - auto child_filter = - GetTextInputClientMessageFilterForProcess(frames[1]->GetProcess()); - child_filter->WaitForStringFromRange(); - - EXPECT_EQ("child", child_filter->string_from_range()); - - // Wait for the popup to appear to make sure TextInputClientMac has consumed - // the reply handler for the previous request. - WindowCountObserver(current_window_count).WaitForLimitOrMore(); - // Test ends here. The rest is cleanup. - - // Closing this WebContents while we still hold on to our TestBrowserClient. - EXPECT_TRUE(browser()->tab_strip_model()->CloseWebContentsAt( - 1, TabStripModel::CLOSE_USER_GESTURE)); -} - // This test verifies that when a word lookup result comes from the renderer // after the target RenderWidgetHost has been deleted, the browser will not // crash. This test covers the case where the target RenderWidgetHost is that of
diff --git a/chrome/browser/resources/chromeos/chromevox/cvox2/background/automation_predicate.js b/chrome/browser/resources/chromeos/chromevox/cvox2/background/automation_predicate.js index c3deff6..676fd96 100644 --- a/chrome/browser/resources/chromeos/chromevox/cvox2/background/automation_predicate.js +++ b/chrome/browser/resources/chromeos/chromevox/cvox2/background/automation_predicate.js
@@ -360,8 +360,6 @@ AutomationPredicate.root = function(node) { switch (node.role) { case Role.WINDOW: - case Role.MENU: - case Role.MENU_BAR: return true; case Role.DIALOG: // The below logic handles nested dialogs properly in the desktop tree
diff --git a/chrome/browser/resources/chromeos/chromevox/strings/chromevox_strings_es-419.xtb b/chrome/browser/resources/chromeos/chromevox/strings/chromevox_strings_es-419.xtb index 3ea8054..b1f58b7 100644 --- a/chrome/browser/resources/chromeos/chromevox/strings/chromevox_strings_es-419.xtb +++ b/chrome/browser/resources/chromeos/chromevox/strings/chromevox_strings_es-419.xtb
@@ -89,6 +89,7 @@ <translation id="1810107444790159527">Cuadro de lista</translation> <translation id="1828385960365606039">Mayo</translation> <translation id="1834891354138622109">Columna</translation> +<translation id="1845944666972354496">Presiona dos veces para activar</translation> <translation id="1865601187525349519">Fin del texto</translation> <translation id="1876229593313240038">doc</translation> <translation id="188130072164734898">Di la fecha y la hora actuales.</translation> @@ -120,6 +121,7 @@ <translation id="2179452035581866348">ChromeVox usa sonidos para otorgarte información fundamental y adicional. Puedes usar estos sonidos para navegar con mayor velocidad al aprender qué significa cada sonido. Cuando te sientas más cómodo, puedes desactivar las descripciones detalladas de voz y confiar en los sonidos para obtener información fundamental sobre la página. A continuación, encontrarás una lista completa de sonidos y sus significados.</translation> <translation id="2188751878842439466">{COUNT,plural, =1{paréntesis de cierre}other{# paréntesis de cierre}}</translation> <translation id="2199994615414171367">Expresión matemática anterior</translation> +<translation id="2203046366315513658">Reducir el valor</translation> <translation id="2220529011494928058">Informar un problema</translation> <translation id="2223693656926968778">Tomar medidas sobre el elemento actual</translation> <translation id="225732394367814946">Hablar más rápido</translation> @@ -158,6 +160,7 @@ <translation id="2637227747952042642">Math</translation> <translation id="2639750663247012216">Tecla modificadora de ChromeVox</translation> <translation id="2644542693584024604">error ortográfico</translation> +<translation id="2673280813984708147">está editando</translation> <translation id="267442004702508783">actualizar</translation> <translation id="2684412629217766642">Cierra el instructivo de ChromeVox</translation> <translation id="2697408785920771974">autoinl</translation> @@ -209,6 +212,7 @@ <translation id="3060756054951570867">menú <ph name="TITLE" /> abierto</translation> <translation id="3078345202707391975">Siguiente encabezado de nivel 2</translation> <translation id="3078740164268491126">tabla</translation> +<translation id="3082249673510793544">Desplazarse hacia atrás</translation> <translation id="3082557070674409251">Se hizo clic.</translation> <translation id="3084806535845658316">sin reproducción oral de escritura</translation> <translation id="3086746722712840547">nota</translation> @@ -396,6 +400,7 @@ <translation id="4372705107434148843">Detener voz</translation> <translation id="4373197658375206385">No hay ningún elemento anterior que no sea un vínculo.</translation> <translation id="4376316291247992553">Ver gráficos como idioma braille</translation> +<translation id="4378308539633073595">Desplazarse hacia adelante</translation> <translation id="4391478986194775161">cntntinfo</translation> <translation id="443163561286008705">restablecer</translation> <translation id="4457472090507035117">Seleccionar voz actual:</translation> @@ -403,6 +408,7 @@ <translation id="4476183483923481720">Nueva línea</translation> <translation id="4482330759234983253">Tabla anterior</translation> <translation id="4491109536499578614">Imagen</translation> +<translation id="4517854969512651305">Incrementar el valor</translation> <translation id="4529987814483543472">Mapa de teclado clásico</translation> <translation id="4532633738839459153">{COUNT,plural, =1{barra}other{# barras}}</translation> <translation id="4547556996012970016">Siguiente encabezado de nivel 5</translation> @@ -418,6 +424,7 @@ <translation id="461613135510474570">Frase</translation> <translation id="463135993322337640">Presiona ChromeVox o, n para conocer las novedades</translation> <translation id="4647836961514597010">Selector de color</translation> +<translation id="4652110509054054146">Usa Búsqueda+flecha hacia la izquierda o derecha para ir al inicio o fin, Búsqueda+Ctrl+flecha hacia la izquierda o derecha para ir al inicio o fin de control y Búsqueda+flecha hacia arriba o abajo para ir a la página anterior o siguiente respectivamente.</translation> <translation id="4660783501463101648">Se quitó la combinación de teclas para cambiar a la versión clásica de ChromeVox.</translation> <translation id="4661075872484491155">tree</translation> <translation id="4668929960204016307">,</translation>
diff --git a/chrome/browser/resources/chromeos/chromevox/strings/chromevox_strings_et.xtb b/chrome/browser/resources/chromeos/chromevox/strings/chromevox_strings_et.xtb index 85c69045..979324c 100644 --- a/chrome/browser/resources/chromeos/chromevox/strings/chromevox_strings_et.xtb +++ b/chrome/browser/resources/chromeos/chromevox/strings/chromevox_strings_et.xtb
@@ -89,6 +89,7 @@ <translation id="1810107444790159527">Loendiboks</translation> <translation id="1828385960365606039">Mai</translation> <translation id="1834891354138622109">Veerg</translation> +<translation id="1845944666972354496">Topeltpuudutage aktiveerimiseks</translation> <translation id="1865601187525349519">Teksti lõpp</translation> <translation id="1876229593313240038">doc</translation> <translation id="188130072164734898">Esitage praegune kellaaeg ja kuupäev.</translation> @@ -120,6 +121,7 @@ <translation id="2179452035581866348">ChromeVox kasutab olulise ja lisateabe andmiseks helisid. Õppige helide tähendus selgeks, et nende abil kiiremini navigeerida. Kui olete teemaga tutvunud, saate üksikasjalikud suulised kirjeldused välja lülitada ja kasutada neid ainult lehe kohta olulise teabe hankimiseks. Siin on helide ja nende tähenduste täielik loend.</translation> <translation id="2188751878842439466">{COUNT,plural, =1{parem ümarsulg}other{# paremat ümarsulgu}}</translation> <translation id="2199994615414171367">Eelmine valem</translation> +<translation id="2203046366315513658">Väärtuse vähendamine</translation> <translation id="2220529011494928058">Probleemist teatamine</translation> <translation id="2223693656926968778">Toiming praeguse üksusega</translation> <translation id="225732394367814946">Suurenda kõne kiirust</translation> @@ -158,6 +160,7 @@ <translation id="2637227747952042642">Matemaatika</translation> <translation id="2639750663247012216">ChromeVoxi muuteklahv</translation> <translation id="2644542693584024604">kirjaviga</translation> +<translation id="2673280813984708147">muudab</translation> <translation id="267442004702508783">värskendab</translation> <translation id="2684412629217766642">Sule ChromeVoxi õpetus</translation> <translation id="2697408785920771974">autoinl</translation> @@ -209,6 +212,7 @@ <translation id="3060756054951570867">Menüü <ph name="TITLE" /> on avatud</translation> <translation id="3078345202707391975">Järgmine 2. taseme pealkiri</translation> <translation id="3078740164268491126">tabel</translation> +<translation id="3082249673510793544">Tagasikerimine</translation> <translation id="3082557070674409251">Klõpsatud</translation> <translation id="3084806535845658316">teksti sisestamise kaja on välja lülitatud</translation> <translation id="3086746722712840547">märge</translation> @@ -396,6 +400,7 @@ <translation id="4372705107434148843">Kõne lõpetam</translation> <translation id="4373197658375206385">Kõik eelmised üksused on lingid.</translation> <translation id="4376316291247992553">Graafika kuvatakse punktkirjas</translation> +<translation id="4378308539633073595">Edasikerimine</translation> <translation id="4391478986194775161">cntntinfo</translation> <translation id="443163561286008705">lähtesta</translation> <translation id="4457472090507035117">Valige praegune hääl:</translation> @@ -403,6 +408,7 @@ <translation id="4476183483923481720">uus rida</translation> <translation id="4482330759234983253">Eelmine tabel</translation> <translation id="4491109536499578614">Image</translation> +<translation id="4517854969512651305">Väärtuse suurendamine</translation> <translation id="4529987814483543472">Klassikaline klahvitabel</translation> <translation id="4532633738839459153">{COUNT,plural, =1{kaldkriips}other{# kaldkriipsu}}</translation> <translation id="4547556996012970016">Järgmine 5. taseme pealkiri</translation> @@ -418,6 +424,7 @@ <translation id="461613135510474570">Lause</translation> <translation id="463135993322337640">Vajutage ChromeVoxi nuppe O ja N, et tutvuda uute funktsioonidega</translation> <translation id="4647836961514597010">Värvivalija</translation> +<translation id="4652110509054054146">Kasutage klahvi Home/End jaoks klahvikombinatsiooni Otsing + vasaknool/paremnool, otsetee Juhtklahv + Home/End jaoks klahvikombinatsiooni Otsing + Juhtklahv + vasaknool/paremnool, klahvi Lehe võrra üles/alla jaoks klahvikombinatsiooni Otsing + ülesnool/allanool.</translation> <translation id="4660783501463101648">Klassikaline versioon on eemaldatud. Klassikalise ChromeVoxi aktiveerimise lüliti on klaviatuurilt eemaldatud.</translation> <translation id="4661075872484491155">tree</translation> <translation id="4668929960204016307">,</translation>
diff --git a/chrome/browser/resources/chromeos/chromevox/strings/chromevox_strings_fr.xtb b/chrome/browser/resources/chromeos/chromevox/strings/chromevox_strings_fr.xtb index 54adb2e0..2999e85 100644 --- a/chrome/browser/resources/chromeos/chromevox/strings/chromevox_strings_fr.xtb +++ b/chrome/browser/resources/chromeos/chromevox/strings/chromevox_strings_fr.xtb
@@ -424,7 +424,7 @@ <translation id="461613135510474570">Navigation par phrase</translation> <translation id="463135993322337640">Appuyez sur ChromeVox o, n pour découvrir les nouveautés</translation> <translation id="4647836961514597010">Palette couleurs</translation> -<translation id="4652110509054054146">Utilisez la touche de recherche et la flèche de gauche ou la flèche de droite pour accéder à l'accueil ou terminer la session, ou la touche de recherche, Contrôle, flèche de gauche ou flèche de droite pour accéder à l'accueil du contrôle ou terminer la session, ou la touche de recherche, flèche vers le haut ou flèche vers le bas pour accéder à la page précédente ou à la page suivante.</translation> +<translation id="4652110509054054146">Utilisez la touche de recherche et la flèche de gauche ou de droite pour la touche Accueil ou Fin, ou la touche de recherche, Contrôle, flèche de gauche ou de droite pour la combinaison Contrôle Accueil ou Contrôle Fin, ou la touche de recherche, flèche vers le haut ou flèche le bas pour la touche Page précédente ou Page suivante.</translation> <translation id="4660783501463101648">Version classique supprimée. Il est désormais impossible de basculer vers la version classique de ChromeVox par le biais de la touche du clavier initialement prévue à cet effet.</translation> <translation id="4661075872484491155">tree</translation> <translation id="4668929960204016307">,</translation>
diff --git a/chrome/browser/resources/chromeos/chromevox/strings/chromevox_strings_it.xtb b/chrome/browser/resources/chromeos/chromevox/strings/chromevox_strings_it.xtb index 9b2f98a..91e397aa 100644 --- a/chrome/browser/resources/chromeos/chromevox/strings/chromevox_strings_it.xtb +++ b/chrome/browser/resources/chromeos/chromevox/strings/chromevox_strings_it.xtb
@@ -89,6 +89,7 @@ <translation id="1810107444790159527">Casella di riepilogo</translation> <translation id="1828385960365606039">Maggio</translation> <translation id="1834891354138622109">Colonna</translation> +<translation id="1845944666972354496">Tocca due volte per attivare</translation> <translation id="1865601187525349519">Fine del testo</translation> <translation id="1876229593313240038">doc</translation> <translation id="188130072164734898">Leggi data e ora correnti.</translation> @@ -119,6 +120,7 @@ <translation id="2179452035581866348">ChromeVox utilizza i suoni per darti informazioni essenziali e supplementari. Puoi utilizzare questi suoni per navigare più rapidamente imparando il significato di ogni suono. Una volta che prendi dimestichezza, puoi disattivare le descrizioni dettagliate e basarti solo sulle informazioni essenziali riguardanti la pagina. Ecco un elenco completo dei suoni e del loro significato.</translation> <translation id="2188751878842439466">{COUNT,plural, =1{parentesi tonda di chiusura}other{# parentesi tonde di chiusura}}</translation> <translation id="2199994615414171367">Espressione matematica precedente</translation> +<translation id="2203046366315513658">Riduci il valore</translation> <translation id="2220529011494928058">Segnala un problema</translation> <translation id="2223693656926968778">Agisci su voce corrente</translation> <translation id="225732394367814946">Aumenta velocità comandi vocali</translation> @@ -157,6 +159,7 @@ <translation id="2637227747952042642">Elemento matematico</translation> <translation id="2639750663247012216">Tasto di modifica di ChromeVox</translation> <translation id="2644542693584024604">misspelled</translation> +<translation id="2673280813984708147">sta modificando</translation> <translation id="267442004702508783">aggiorna</translation> <translation id="2684412629217766642">Chiudi tutorial di ChromeVox</translation> <translation id="2697408785920771974">autoinl</translation> @@ -208,6 +211,7 @@ <translation id="3060756054951570867">Menu <ph name="TITLE" /> aperto</translation> <translation id="3078345202707391975">Intestazione livello 2 successiva</translation> <translation id="3078740164268491126">tabella</translation> +<translation id="3082249673510793544">Scorri indietro</translation> <translation id="3082557070674409251">Selezionato</translation> <translation id="3084806535845658316">eco digitazione non impostata</translation> <translation id="3086746722712840547">nota</translation> @@ -395,6 +399,7 @@ <translation id="4372705107434148843">Interrompi i comandi vocali</translation> <translation id="4373197658375206385">Nessun elemento precedente che non sia un link.</translation> <translation id="4376316291247992553">Visualizza immagini in formato braille</translation> +<translation id="4378308539633073595">Scorri in avanti</translation> <translation id="4391478986194775161">cntntinfo</translation> <translation id="443163561286008705">reset</translation> <translation id="4457472090507035117">Seleziona la voce corrente:</translation> @@ -402,6 +407,7 @@ <translation id="4476183483923481720">nuova riga</translation> <translation id="4482330759234983253">Tabella precedente</translation> <translation id="4491109536499578614">Immagine</translation> +<translation id="4517854969512651305">Aumenta il valore</translation> <translation id="4529987814483543472">Mappa di chiavi classica</translation> <translation id="4532633738839459153">{COUNT,plural, =1{barra}other{# barre}}</translation> <translation id="4547556996012970016">Intestazione livello 5 successiva</translation> @@ -417,6 +423,7 @@ <translation id="461613135510474570">Frase</translation> <translation id="463135993322337640">Premi i tasti O e N con ChromeVox per scoprire le novità</translation> <translation id="4647836961514597010">Selettore colori</translation> +<translation id="4652110509054054146">Utilizza il tasto per la ricerca con le frecce destra e sinistra per aprire la home page oppure Fine, comando per la ricerca, frecce destra e sinistra per esplorare la Home page oppure Fine, tasto per la ricerca e freccia verso l'alto o verso il basso per muoverti verso l'alto o verso il basso nella pagina.</translation> <translation id="4660783501463101648">Rimozione di Classic. La funzione di attivazione/disattivazione della tastiera per passare nuovamente a ChromeVox Classic è stata rimossa.</translation> <translation id="4661075872484491155">tree</translation> <translation id="4668929960204016307">,</translation>
diff --git a/chrome/browser/resources/chromeos/chromevox/strings/chromevox_strings_ko.xtb b/chrome/browser/resources/chromeos/chromevox/strings/chromevox_strings_ko.xtb index 9f46312d..4c8a5d9d 100644 --- a/chrome/browser/resources/chromeos/chromevox/strings/chromevox_strings_ko.xtb +++ b/chrome/browser/resources/chromeos/chromevox/strings/chromevox_strings_ko.xtb
@@ -89,6 +89,7 @@ <translation id="1810107444790159527">목록 상자</translation> <translation id="1828385960365606039">5월</translation> <translation id="1834891354138622109">열</translation> +<translation id="1845944666972354496">활성화하려면 두 번 탭하세요.</translation> <translation id="1865601187525349519">텍스트의 끝</translation> <translation id="1876229593313240038">doc</translation> <translation id="188130072164734898">현재 날짜와 시간을 말합니다.</translation> @@ -120,6 +121,7 @@ <translation id="2179452035581866348">ChromeVox는 사운드를 사용하여 필수 및 부가 정보를 제공합니다. 각 사운드가 무엇을 의미하는지 배우면 이러한 사운드를 사용하여 더 신속하게 탐색할 수 있습니다. 더 익숙해지면 상세한 음성 설명을 사용 중지하고 사운드로 페이지의 필수 정보를 파악할 수 있습니다. 다음은 사운드 전체 목록과 그 의미입니다.</translation> <translation id="2188751878842439466">{COUNT,plural, =1{닫는 괄호}other{닫는 괄호 #개}}</translation> <translation id="2199994615414171367">이전 수식</translation> +<translation id="2203046366315513658">값 줄이기</translation> <translation id="2220529011494928058">문제 신고</translation> <translation id="2223693656926968778">현재 항목에서 작업 수행</translation> <translation id="225732394367814946">말하기 속도 증가</translation> @@ -158,6 +160,7 @@ <translation id="2637227747952042642">Math</translation> <translation id="2639750663247012216">ChromeVox 특수키</translation> <translation id="2644542693584024604">misspelled</translation> +<translation id="2673280813984708147">수정 중</translation> <translation id="267442004702508783">새로고침</translation> <translation id="2684412629217766642">ChromeVox 가이드 종료</translation> <translation id="2697408785920771974">autoinl</translation> @@ -209,6 +212,7 @@ <translation id="3060756054951570867"><ph name="TITLE" /> 메뉴 열림</translation> <translation id="3078345202707391975">다음 수준 2 제목</translation> <translation id="3078740164268491126">표</translation> +<translation id="3082249673510793544">뒤로 스크롤</translation> <translation id="3082557070674409251">클릭함</translation> <translation id="3084806535845658316">입력 에코 없음</translation> <translation id="3086746722712840547">note</translation> @@ -396,6 +400,7 @@ <translation id="4372705107434148843">음성 중지</translation> <translation id="4373197658375206385">링크가 아닌 이전 항목이 없습니다.</translation> <translation id="4376316291247992553">그래픽을 점자로 인식하기</translation> +<translation id="4378308539633073595">앞으로 스크롤</translation> <translation id="4391478986194775161">cntntinfo</translation> <translation id="443163561286008705">reset</translation> <translation id="4457472090507035117">현재 음성 선택:</translation> @@ -403,6 +408,7 @@ <translation id="4476183483923481720">새로운 행</translation> <translation id="4482330759234983253">이전 표</translation> <translation id="4491109536499578614">이미지</translation> +<translation id="4517854969512651305">값 늘리기</translation> <translation id="4529987814483543472">기본 키맵</translation> <translation id="4532633738839459153">{COUNT,plural, =1{슬래시}other{슬래시 #개}}</translation> <translation id="4547556996012970016">다음 수준 5 제목</translation> @@ -418,6 +424,7 @@ <translation id="461613135510474570">문장</translation> <translation id="463135993322337640">ChromeVox o, n을 눌러 새로운 기능을 살펴보세요</translation> <translation id="4647836961514597010">색상선택 도구</translation> +<translation id="4652110509054054146">Search와 왼쪽 또는 오른쪽 키가 Home 또는 End 키, Search와 Control 왼쪽 또는 오른쪽 키가 Control Home 또는 End 키, Search와 위쪽 또는 아래쪽 키가 Page Up 또는 Down 키 역할을 합니다.</translation> <translation id="4660783501463101648">기본 버전이 삭제되었습니다. ChromeVox 기본 버전으로 다시 전환하기 위한 키보드 토글이 삭제되었습니다.</translation> <translation id="4661075872484491155">tree</translation> <translation id="4668929960204016307">,</translation>
diff --git a/chrome/browser/resources/chromeos/chromevox/strings/chromevox_strings_sw.xtb b/chrome/browser/resources/chromeos/chromevox/strings/chromevox_strings_sw.xtb index 2c8a4cc..6f25768 100644 --- a/chrome/browser/resources/chromeos/chromevox/strings/chromevox_strings_sw.xtb +++ b/chrome/browser/resources/chromeos/chromevox/strings/chromevox_strings_sw.xtb
@@ -423,7 +423,7 @@ <translation id="461613135510474570">Sentensi</translation> <translation id="463135993322337640">Bonyeza ChromeVox o, n ili upate matoleo mapya</translation> <translation id="4647836961514597010">Kiteua rangi</translation> -<translation id="4652110509054054146">Tumia kitufe cha Kutafuta + kishale cha Kushoto au Kulia badala ya kitufe cha Home au End; kitufe cha Kutafuta + Control ya Kulia au Kushoto badala ya Control + Home au Control + End; kitufe cha Kutafuta + kishale cha Juu au Chini badala ya Page Up au Down</translation> +<translation id="4652110509054054146">Tumia vitufe vya Kutafuta Kushoto au Kulia badala ya Mwanzo au Mwisho, vitufe vya Kutafuta Control Kulia au Kushoto badala ya Control Home au Mwisho, vitufe vya Kutafuta Juu au Chini badala ya Page Up au Down</translation> <translation id="4660783501463101648">Kibodi ya kawaida imeondolewa. Kipengele cha kugeuza kibodi ili kurudi kwenye kibodi ya Kawaida ya ChromeVox kimeondolewa.</translation> <translation id="4661075872484491155">mti</translation> <translation id="4668929960204016307">,</translation>
diff --git a/chrome/browser/resources/chromeos/chromevox/strings/chromevox_strings_ta.xtb b/chrome/browser/resources/chromeos/chromevox/strings/chromevox_strings_ta.xtb index 4a57933..0730e52f 100644 --- a/chrome/browser/resources/chromeos/chromevox/strings/chromevox_strings_ta.xtb +++ b/chrome/browser/resources/chromeos/chromevox/strings/chromevox_strings_ta.xtb
@@ -89,6 +89,7 @@ <translation id="1810107444790159527">பட்டியல் பெட்டி</translation> <translation id="1828385960365606039">மே</translation> <translation id="1834891354138622109">நெடுவரிசை</translation> +<translation id="1845944666972354496">செயல்படுத்த, இருமுறை தட்டவும்</translation> <translation id="1865601187525349519">உரையின் இறுதி</translation> <translation id="1876229593313240038">doc</translation> <translation id="188130072164734898">தற்போதைய நேரம் மற்றும் தேதியைக் கூறவும்.</translation> @@ -120,6 +121,7 @@ <translation id="2179452035581866348">ChromeVox உங்களுக்கு முக்கியமான மற்றும் கூடுதல் தகவலை வழங்க, ஒலிகளைப் பயன்படுத்துகிறது. ஒவ்வொரு ஒலியும் எதைக் குறிக்கிறது என்பதைக் கற்றுக்கொள்வதன் மூலம், மிகவும் வேகமாக வழிசெலுத்த இந்த ஒலிகளைப் பயன்படுத்தலாம். நீங்கள் நன்றாகத் தெரிந்துகொண்டதும், ஆடியோவாக வழங்கப்படும் நீண்ட விளக்கங்களை முடக்கிவிட்டு, பக்கத்தைப் பற்றிய அத்தியாவசியத் தகவலுக்கு அவற்றைப் பயன்படுத்தலாம். ஒலிகளின் முழுப் பட்டியலும் அவை குறிப்பவற்றையும் இங்கே காணலாம்.</translation> <translation id="2188751878842439466">{COUNT,plural, =1{மூடு அடைப்புக்குறி}other{# மூடு அடைப்புக்குறிகள்}}</translation> <translation id="2199994615414171367">முந்தைய கணிதம்</translation> +<translation id="2203046366315513658">மதிப்பைக் குறைக்கும்</translation> <translation id="2220529011494928058">சிக்கல் குறித்துப் புகார் செய்</translation> <translation id="2223693656926968778">நடப்பு உருப்படியில் நடவடிக்கை எடு</translation> <translation id="225732394367814946">பேச்சு விகிதத்தை அதிகரி</translation> @@ -158,6 +160,7 @@ <translation id="2637227747952042642">கணிதம்</translation> <translation id="2639750663247012216">ChromeVox மாற்றி</translation> <translation id="2644542693584024604">தவறான வார்த்தைகள்</translation> +<translation id="2673280813984708147">திருத்துகிறார்</translation> <translation id="267442004702508783">புதுப்பிக்கும்</translation> <translation id="2684412629217766642">ChromeVox பயிற்சியை மூடு</translation> <translation id="2697408785920771974">autoinl</translation> @@ -209,6 +212,7 @@ <translation id="3060756054951570867"><ph name="TITLE" /> மெனு திறக்கப்பட்டது</translation> <translation id="3078345202707391975">அடுத்த 2 ஆம் படிநிலை தலைப்பு</translation> <translation id="3078740164268491126">அட்டவணை</translation> +<translation id="3082249673510793544">பின்செல்</translation> <translation id="3082557070674409251">கிளிக் செய்யப்பட்டது</translation> <translation id="3084806535845658316">தட்டச்சிடும் எதிரொலி இல்லை</translation> <translation id="3086746722712840547">குறிப்பு</translation> @@ -396,6 +400,7 @@ <translation id="4372705107434148843">பேசுவதை நிறுத்தும்</translation> <translation id="4373197658375206385">இணைப்பாக இல்லாத முந்தைய உருப்படி இல்லை.</translation> <translation id="4376316291247992553">பிரெய்லி காட்சியில் கிராஃபிக்கைக் காட்டும்</translation> +<translation id="4378308539633073595">முன்செல்</translation> <translation id="4391478986194775161">cntntinfo</translation> <translation id="443163561286008705">reset</translation> <translation id="4457472090507035117">தற்போதைய குரலைத் தேர்ந்தெடுக்கவும்:</translation> @@ -403,6 +408,7 @@ <translation id="4476183483923481720">புதிய வரி</translation> <translation id="4482330759234983253">முந்தைய அட்டவணை</translation> <translation id="4491109536499578614">படம்</translation> +<translation id="4517854969512651305">மதிப்பை அதிகரிக்கும்</translation> <translation id="4529987814483543472">கிளாஸிக் விசைவரைபடம்</translation> <translation id="4532633738839459153">{COUNT,plural, =1{சாய்கோடு}other{# சாய்கோடுகள்}}</translation> <translation id="4547556996012970016">அடுத்த 5 ஆம் படிநிலை தலைப்பு</translation> @@ -418,6 +424,7 @@ <translation id="461613135510474570">வாக்கியம்</translation> <translation id="463135993322337640">புதிய அம்சங்களைப் பார்க்க, ChromeVox o, n ஆகியவற்றை அழுத்தவும்</translation> <translation id="4647836961514597010">வண்ணத் தேர்வி</translation> +<translation id="4652110509054054146">Home அல்லது Endக்காக, Search Left அல்லது Rightஐயும் Control Home அல்லது Endக்காக, Search Control Left அல்லது Rightஐயும் Page Up அல்லது Downக்காக, Search Up அல்லது Downஐயும் பயன்படுத்தவும்.</translation> <translation id="4660783501463101648">கிளாசிக் அகற்றப்பட்டது. ChromeVox கிளாசிக்கிற்கு மீண்டும் மாறுவதற்கான விசைப்பலகை நிலைமாற்றி அகற்றப்பட்டது.</translation> <translation id="4661075872484491155">tree</translation> <translation id="4668929960204016307">,</translation>
diff --git a/chrome/browser/resources/chromeos/chromevox/strings/chromevox_strings_zh-CN.xtb b/chrome/browser/resources/chromeos/chromevox/strings/chromevox_strings_zh-CN.xtb index 011e3e2..af1e556 100644 --- a/chrome/browser/resources/chromeos/chromevox/strings/chromevox_strings_zh-CN.xtb +++ b/chrome/browser/resources/chromeos/chromevox/strings/chromevox_strings_zh-CN.xtb
@@ -89,6 +89,7 @@ <translation id="1810107444790159527">列表框</translation> <translation id="1828385960365606039">5月</translation> <translation id="1834891354138622109">列</translation> +<translation id="1845944666972354496">连续点按两次即可激活</translation> <translation id="1865601187525349519">文本末尾</translation> <translation id="1876229593313240038">文档</translation> <translation id="188130072164734898">说出当前的日期和时间。</translation> @@ -119,6 +120,7 @@ <translation id="2179452035581866348">ChromeVox 会使用提示音为您提供基本信息和其他信息。您只需先了解一下每种提示音有何含义,即可使用这些提示音更快速地进行浏览。待熟练掌握这些提示音之后,您便可关闭语音提示中的详细说明,改为依靠这些提示音获取有关相应网页的基本信息。下面是各种提示音及其含义的完整列表。</translation> <translation id="2188751878842439466">{COUNT,plural, =1{1个右圆括号}other{#个右圆括号}}</translation> <translation id="2199994615414171367">上一个数学元素</translation> +<translation id="2203046366315513658">将值减小</translation> <translation id="2220529011494928058">报告问题</translation> <translation id="2223693656926968778">对当前项执行操作</translation> <translation id="225732394367814946">加快语速</translation> @@ -157,6 +159,7 @@ <translation id="2637227747952042642">数学对象</translation> <translation id="2639750663247012216">ChromeVox辅助键</translation> <translation id="2644542693584024604">拼写错误</translation> +<translation id="2673280813984708147">正在修改</translation> <translation id="267442004702508783">刷新</translation> <translation id="2684412629217766642">关闭 ChromeVox 教程</translation> <translation id="2697408785920771974">autoinl</translation> @@ -208,6 +211,7 @@ <translation id="3060756054951570867">已打开“<ph name="TITLE" />”菜单</translation> <translation id="3078345202707391975">下一个2级标题</translation> <translation id="3078740164268491126">表格</translation> +<translation id="3082249673510793544">向后滚动</translation> <translation id="3082557070674409251">已点击</translation> <translation id="3084806535845658316">无输入回显</translation> <translation id="3086746722712840547">备注</translation> @@ -395,6 +399,7 @@ <translation id="4372705107434148843">关闭语音</translation> <translation id="4373197658375206385">不存在上一个非链接项。</translation> <translation id="4376316291247992553">以盲文的形式查看图形</translation> +<translation id="4378308539633073595">向前滚动</translation> <translation id="4391478986194775161">cntntinfo</translation> <translation id="443163561286008705">重置</translation> <translation id="4457472090507035117">请选择当前的声音:</translation> @@ -402,6 +407,7 @@ <translation id="4476183483923481720">换行</translation> <translation id="4482330759234983253">上一个表格</translation> <translation id="4491109536499578614">图片</translation> +<translation id="4517854969512651305">将值增大</translation> <translation id="4529987814483543472">传统键映射</translation> <translation id="4532633738839459153">{COUNT,plural, =1{1个斜线符号}other{#个斜线符号}}</translation> <translation id="4547556996012970016">下一个5级标题</translation> @@ -417,6 +423,7 @@ <translation id="461613135510474570">逐句</translation> <translation id="463135993322337640">按 ChromeVox 的 O 键、N 键,即可了解最新功能</translation> <translation id="4647836961514597010">颜色选择器</translation> +<translation id="4652110509054054146">您可以使用搜索键 + 向左箭头或搜索键 + 向右箭头来代替 Home 键或 End 键,使用搜索键 + Ctrl + 向左箭头或搜索键 + Ctrl + 向右箭头来代替 Ctrl + Home 或 Ctrl + End,使用搜索键 + 向上箭头或搜索键 + 向下箭头来代替 PageUp 键或 PageDown 键。</translation> <translation id="4660783501463101648">移除了 Classic。现已无法再通过键盘切换回 ChromeVox Classic。</translation> <translation id="4661075872484491155">tree</translation> <translation id="4668929960204016307">,</translation>
diff --git a/chrome/browser/resources/chromeos/chromevox/strings/chromevox_strings_zh-TW.xtb b/chrome/browser/resources/chromeos/chromevox/strings/chromevox_strings_zh-TW.xtb index 0d1a513f4..cf66861 100644 --- a/chrome/browser/resources/chromeos/chromevox/strings/chromevox_strings_zh-TW.xtb +++ b/chrome/browser/resources/chromeos/chromevox/strings/chromevox_strings_zh-TW.xtb
@@ -89,6 +89,7 @@ <translation id="1810107444790159527">清單方塊</translation> <translation id="1828385960365606039">5 月</translation> <translation id="1834891354138622109">欄</translation> +<translation id="1845944666972354496">輕觸兩下即可啟用</translation> <translation id="1865601187525349519">文字結束</translation> <translation id="1876229593313240038">文件</translation> <translation id="188130072164734898">說出目前的時間和日期。</translation> @@ -120,6 +121,7 @@ <translation id="2179452035581866348">ChromeVox 會使用音效提供必要資訊和額外資訊。只要瞭解各種音效所代表的意義,即可善用這些音效加快瀏覽速度。熟悉這種操作模式後,你可以選擇關閉詳細語音說明,完全靠音效就能掌握關於網頁的各項必要資訊。完整的音效及其意義清單如下。</translation> <translation id="2188751878842439466">{COUNT,plural, =1{右括弧}other{# 個右括弧}}</translation> <translation id="2199994615414171367">上一個數學元素</translation> +<translation id="2203046366315513658">調降值</translation> <translation id="2220529011494928058">回報問題</translation> <translation id="2223693656926968778">對目前的項目進行操作</translation> <translation id="225732394367814946">加快說話速度</translation> @@ -158,6 +160,7 @@ <translation id="2637227747952042642">數學</translation> <translation id="2639750663247012216">ChromeVox 輔助鍵</translation> <translation id="2644542693584024604">拼字錯誤</translation> +<translation id="2673280813984708147">正在編輯</translation> <translation id="267442004702508783">重新整理</translation> <translation id="2684412629217766642">關閉 ChromeVox 教學課程</translation> <translation id="2697408785920771974">autoinl</translation> @@ -209,6 +212,7 @@ <translation id="3060756054951570867">「<ph name="TITLE" />」選單已開啟</translation> <translation id="3078345202707391975">下一個第 2 階標題</translation> <translation id="3078740164268491126">表格</translation> +<translation id="3082249673510793544">向後捲動</translation> <translation id="3082557070674409251">按了一下</translation> <translation id="3084806535845658316">無輸入語音回應</translation> <translation id="3086746722712840547">附註</translation> @@ -396,6 +400,7 @@ <translation id="4372705107434148843">停止語音</translation> <translation id="4373197658375206385">沒有上一個非連結項目。</translation> <translation id="4376316291247992553">以點字模式檢視圖形</translation> +<translation id="4378308539633073595">向前捲動</translation> <translation id="4391478986194775161">cntntinfo</translation> <translation id="443163561286008705">重設</translation> <translation id="4457472090507035117">選取目前的語音:</translation> @@ -403,6 +408,7 @@ <translation id="4476183483923481720">換行</translation> <translation id="4482330759234983253">上一個表格</translation> <translation id="4491109536499578614">圖片</translation> +<translation id="4517854969512651305">調升值</translation> <translation id="4529987814483543472">傳統按鍵對應配置</translation> <translation id="4532633738839459153">{COUNT,plural, =1{斜線}other{# 個斜線}}</translation> <translation id="4547556996012970016">下一個第 5 階標題</translation> @@ -418,6 +424,7 @@ <translation id="461613135510474570">句子</translation> <translation id="463135993322337640">按下 ChromeVox 的 O 鍵、N 鍵,即可瞭解最新功能</translation> <translation id="4647836961514597010">顏色選擇器</translation> +<translation id="4652110509054054146">使用搜尋鍵加向左鍵或向右鍵取代 Home 鍵或 End 鍵,使用搜尋鍵加 Control 鍵加向左鍵或向右鍵取代 Control 鍵加 Home 鍵或 End 鍵,使用搜尋鍵加向上鍵或向下鍵取代 Page Up 鍵或 Page Down 鍵。</translation> <translation id="4660783501463101648">移除 ChromeVox 傳統模式切換功能:現已無法透過鍵盤切換回 ChromeVox 傳統模式。</translation> <translation id="4661075872484491155">tree</translation> <translation id="4668929960204016307">,</translation>
diff --git a/chrome/browser/resources/chromeos/login/oobe_a11y_option.html b/chrome/browser/resources/chromeos/login/oobe_a11y_option.html index f5b51957..bf19afe 100644 --- a/chrome/browser/resources/chromeos/login/oobe_a11y_option.html +++ b/chrome/browser/resources/chromeos/login/oobe_a11y_option.html
@@ -4,7 +4,6 @@ <dom-module id="oobe-a11y-option"> <template> - <link rel="stylesheet" href="oobe_toggle_button.css"> <link rel="stylesheet" href="oobe_flex_layout.css"> <link rel="stylesheet" href="oobe_a11y_option.css"> <div id="elementBox" class="layout horizontal">
diff --git a/chrome/browser/resources/chromeos/login/oobe_eula.css b/chrome/browser/resources/chromeos/login/oobe_eula.css index a385b27..10d03476 100644 --- a/chrome/browser/resources/chromeos/login/oobe_eula.css +++ b/chrome/browser/resources/chromeos/login/oobe_eula.css
@@ -38,7 +38,8 @@ margin-top: 23px; /* = 36 - font size */ } -paper-toggle-button { +cr-toggle { + align-self: center; width: 36px; }
diff --git a/chrome/browser/resources/chromeos/login/oobe_eula.html b/chrome/browser/resources/chromeos/login/oobe_eula.html index 844078c5..d5dc0ca 100644 --- a/chrome/browser/resources/chromeos/login/oobe_eula.html +++ b/chrome/browser/resources/chromeos/login/oobe_eula.html
@@ -2,6 +2,7 @@ Use of this source code is governed by a BSD-style license that can be found in the LICENSE file. --> +<link rel="import" href="chrome://resources/cr_elements/cr_toggle/cr_toggle.html"> <link rel="import" href="chrome://resources/polymer/v1_0/iron-icon/iron-icon.html"> <link rel="import" href="chrome://resources/polymer/v1_0/iron-iconset-svg/iron-iconset-svg.html"> <link rel="import" href="chrome://resources/polymer/v1_0/paper-styles/color.html"> @@ -38,7 +39,6 @@ <dom-module id="oobe-eula-md"> <template> - <link rel="stylesheet" href="oobe_toggle_button.css"> <link rel="stylesheet" href="chrome://resources/css/throbber.css"> <link rel="stylesheet" href="oobe_eula.css"> <link rel="stylesheet" href="oobe_dialog_parameters.css"> @@ -71,9 +71,9 @@ i18n-content="eulaSystemInstallationSettings"> </a> <div id="logging" class="layout horizontal"> - <paper-toggle-button id="usageStats" checked="{{usageStatsChecked}}" + <cr-toggle id="usageStats" checked="{{usageStatsChecked}}" on-change="onUsageChanged_" aria-labelledby="usageStatsLabel"> - </paper-toggle-button> + </cr-toggle> <div id="usageStatsLabelContainer"> <span id="usageStatsLabel" i18n-content="checkboxLogging"></span> <a id="" href="#" i18n-content="learnMore"
diff --git a/chrome/browser/resources/chromeos/login/oobe_toggle_button.css b/chrome/browser/resources/chromeos/login/oobe_toggle_button.css deleted file mode 100644 index cedacb00..0000000 --- a/chrome/browser/resources/chromeos/login/oobe_toggle_button.css +++ /dev/null
@@ -1,32 +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. */ - - -/* This is common style file for all OOBE paper-toggle buttons. */ - -:root { - --oobe-toggle-button-size: { - box-shadow: 0 1px 3px 0 rgba(0, 0, 0, 0.4); - height: 16px; - top: -2px; - width: 16px; - }; - --oobe-toggle-bar-size: { - height: 12px; - left: 4px; - width: 24px; - }; - --paper-toggle-button-checked-bar-color: var(--google-blue-500); - --paper-toggle-button-checked-bar: var(--oobe-toggle-bar-size); - --paper-toggle-button-checked-button: { - @apply(--oobe-toggle-button-size); - transform: translate(14px, 0); - }; - --paper-toggle-button-checked-button-color: var(--google-blue-500); - --paper-toggle-button-checked-ink-color: var(--google-blue-500); - --paper-toggle-button-label-spacing: 0; - --paper-toggle-button-unchecked-bar: var(--oobe-toggle-bar-size); - --paper-toggle-button-unchecked-button: - var(--oobe-toggle-button-size); -}
diff --git a/chrome/browser/resources/chromeos/multidevice_setup/button_bar.html b/chrome/browser/resources/chromeos/multidevice_setup/button_bar.html index 7fa9359..067d2fb1 100644 --- a/chrome/browser/resources/chromeos/multidevice_setup/button_bar.html +++ b/chrome/browser/resources/chromeos/multidevice_setup/button_bar.html
@@ -2,28 +2,28 @@ <link rel="import" href="chrome://resources/cr_elements/paper_button_style_css.html"> <link rel="import" href="chrome://resources/cr_elements/shared_style_css.html"> +<link rel="import" href="chrome://resources/polymer/v1_0/iron-flex-layout/iron-flex-layout-classes.html"> <link rel="import" href="chrome://resources/polymer/v1_0/paper-button/paper-button.html"> <dom-module id="button-bar"> <template> - <style include="paper-button-style cr-shared-style"> + <style include="iron-flex paper-button-style cr-shared-style"> :host { - display: flex; - justify-content: flex-end; + @apply(--layout-horizontal) } + paper-button { text-transform: none; } </style> - <paper-button - id="backward" + <paper-button id="backward" on-click="onBackwardButtonClicked_" class="cancel-button" hidden$="[[!backwardButtonText]]"> [[backwardButtonText]] </paper-button> - <paper-button - id="forward" + <div class="flex"></div> + <paper-button id="forward" on-click="onForwardButtonClicked_" class="action-button" hidden$="[[!forwardButtonText]]">
diff --git a/chrome/browser/resources/chromeos/multidevice_setup/multidevice_setup.html b/chrome/browser/resources/chromeos/multidevice_setup/multidevice_setup.html index 2944ff6..bae66a1 100644 --- a/chrome/browser/resources/chromeos/multidevice_setup/multidevice_setup.html +++ b/chrome/browser/resources/chromeos/multidevice_setup/multidevice_setup.html
@@ -10,19 +10,27 @@ <dom-module id="multidevice-setup"> <template> - <iron-pages - attr-for-selected="is" + <style> + :host { + @apply(--layout-vertical); + @apply(--layout-start-justified); + padding: 60px 64px 32px 64px; + } + + button-bar { + margin-top: 50px; + } + </style> + <iron-pages attr-for-selected="is" selected="[[visiblePageName_]]" selected-item="{{visiblePage_}}"> <setup-failed-page></setup-failed-page> <setup-succeeded-page></setup-succeeded-page> - <start-setup-page - devices="[[devices_]]" + <start-setup-page devices="[[devices_]]" selected-device-id="{{selectedDeviceId_}}"> </start-setup-page> </iron-pages> - <button-bar - forward-button-text="[[visiblePage_.forwardButtonText]]" + <button-bar forward-button-text="[[visiblePage_.forwardButtonText]]" backward-button-text="[[visiblePage_.backwardButtonText]]"> </button-bar> </template>
diff --git a/chrome/browser/resources/chromeos/multidevice_setup/multidevice_setup_resources.grd b/chrome/browser/resources/chromeos/multidevice_setup/multidevice_setup_resources.grd index e90fdd8..7e2237d 100644 --- a/chrome/browser/resources/chromeos/multidevice_setup/multidevice_setup_resources.grd +++ b/chrome/browser/resources/chromeos/multidevice_setup/multidevice_setup_resources.grd
@@ -35,6 +35,9 @@ <structure name="IDR_MULTIDEVICE_SETUP_MULTIDEVICE_SETUP_JS" file="multidevice_setup.js" type="chrome_html" /> + <structure name="IDR_MULTIDEVICE_SETUP_MULTIDEVICE_SETUP_SHARED_CSS_HTML" + file="multidevice_setup_shared_css.html" + type="chrome_html" /> <structure name="IDR_MULTIDEVICE_SETUP_SETUP_FAILED_PAGE_HTML" file="setup_failed_page.html" type="chrome_html" />
diff --git a/chrome/browser/resources/chromeos/multidevice_setup/multidevice_setup_shared_css.html b/chrome/browser/resources/chromeos/multidevice_setup/multidevice_setup_shared_css.html new file mode 100644 index 0000000..200fe26 --- /dev/null +++ b/chrome/browser/resources/chromeos/multidevice_setup/multidevice_setup_shared_css.html
@@ -0,0 +1,14 @@ +<link rel="import" href="chrome://resources/html/polymer.html"> + +<dom-module id="multidevice-setup-shared"> + <template> + <style> + .page-content-text { + color: rgb(95, 99, 104); + font-family: Roboto-Regular, Roboto, sans-serif; + font-size: 13px; + line-height: 1.4; + } + </style> + </template> +</dom-module>
diff --git a/chrome/browser/resources/chromeos/multidevice_setup/start_setup_page.html b/chrome/browser/resources/chromeos/multidevice_setup/start_setup_page.html index f53e8fef..a3ea2cd 100644 --- a/chrome/browser/resources/chromeos/multidevice_setup/start_setup_page.html +++ b/chrome/browser/resources/chromeos/multidevice_setup/start_setup_page.html
@@ -2,22 +2,26 @@ <link rel="import" href="chrome://resources/html/cr.html"> <link rel="import" href="chrome://resources/html/md_select_css.html"> +<link rel="import" href="multidevice_setup_shared_css.html"> <link rel="import" href="ui_page.html"> <link rel="import" href="ui_page_container_behavior.html"> <dom-module id="start-setup-page"> <template> - <style include="md-select"></style> + <style include="md-select multidevice-setup-shared"></style> <ui-page header-text="[[headerText]]" icon-name="google-g"> <span slot="message" inner-h-t-m-l="[[messageHtml]]"></span> <div slot="additional-content"> - <p>[[getDeviceSelectionHeader_(devices)]]</p> + <p class="page-content-text"> + [[getDeviceSelectionHeader_(devices)]] + </p> <div hidden$="[[!doesDeviceListHaveOneElement_(devices)]]"> - <p>[[getFirstDeviceNameInList_(devices)]]</p> + <p class="page-content-text"> + [[getFirstDeviceNameInList_(devices)]] + </p> </div> <div hidden$="[[!doesDeviceListHaveMultipleElements_(devices)]]"> - <select - id="deviceDropdown" + <select id="deviceDropdown" class="md-select" on-change="onDeviceDropdownSelectionChanged_"> <template is="dom-repeat" items="[[devices]]"> @@ -27,7 +31,7 @@ </template> </select> </div> - </div> + </span> </ui-page> </template> <script src="start_setup_page.js"></script>
diff --git a/chrome/browser/resources/chromeos/multidevice_setup/ui_page.html b/chrome/browser/resources/chromeos/multidevice_setup/ui_page.html index d2c2716..c1fc80d 100644 --- a/chrome/browser/resources/chromeos/multidevice_setup/ui_page.html +++ b/chrome/browser/resources/chromeos/multidevice_setup/ui_page.html
@@ -1,19 +1,42 @@ <link rel="import" href="chrome://resources/html/polymer.html"> +<link rel="import" href="chrome://resources/polymer/v1_0/iron-flex-layout/iron-flex-layout-classes.html"> <link rel="import" href="chrome://resources/polymer/v1_0/iron-icon/iron-icon.html"> <link rel="import" href="icons.html"> +<link rel="import" href="multidevice_setup_shared_css.html"> <dom-module id="ui-page"> <template> - <style> + <style include="iron-flex iron-flex-alignment multidevice-setup-shared"> iron-icon { height: 32px; width: 32px; } + + #header-container { + height: 64px; + } + + h1 { + color: rgb(33, 33, 36); + font-size: 28px; + margin: 0; + padding: 0; + } + + #message-container { + height: 50px; + } </style> <iron-icon icon="[[computeIconIdentifier_(iconName)]]"></iron-icon> - <div>[[title]]</div> - <slot name="message"></slot> + <div id="header-container" + class="layout vertical end-justified"> + <h1>[[headerText]]</h1> + </div> + <div id="message-container" + class="layout vertical end-justified page-content-text"> + <slot name="message"></slot> + </div> <slot name="additional-content"></slot> <slot name="page-specific-image"></slot> </template>
diff --git a/chrome/browser/resources/md_extensions/manager.js b/chrome/browser/resources/md_extensions/manager.js index b4d2653..46e6ea45 100644 --- a/chrome/browser/resources/md_extensions/manager.js +++ b/chrome/browser/resources/md_extensions/manager.js
@@ -242,12 +242,19 @@ case EventType.ERRORS_REMOVED: case EventType.PREFS_CHANGED: case EventType.WARNINGS_CHANGED: + case EventType.COMMAND_ADDED: + case EventType.COMMAND_REMOVED: // |extensionInfo| can be undefined in the case of an extension // being unloaded right before uninstallation. There's nothing to do // here. if (!eventData.extensionInfo) break; + if (this.delegate.shouldIgnoreUpdate( + eventData.extensionInfo.id, eventData.event_type)) { + break; + } + const listId = this.getListId_(eventData.extensionInfo); const currentIndex = this[listId].findIndex( item => item.id == eventData.extensionInfo.id);
diff --git a/chrome/browser/resources/md_extensions/service.js b/chrome/browser/resources/md_extensions/service.js index e1db642..af65784 100644 --- a/chrome/browser/resources/md_extensions/service.js +++ b/chrome/browser/resources/md_extensions/service.js
@@ -17,6 +17,9 @@ constructor() { /** @private {boolean} */ this.isDeleting_ = false; + + /** @private {!Set<string>} */ + this.eventsToIgnoreOnce_ = new Set(); } getProfileConfiguration() { @@ -29,6 +32,23 @@ return chrome.developerPrivate.onItemStateChanged; } + /** + * @param {string} extensionId + * @param {!chrome.developerPrivate.EventType} eventType + * @return {boolean} + */ + shouldIgnoreUpdate(extensionId, eventType) { + return this.eventsToIgnoreOnce_.delete(`${extensionId}_${eventType}`); + } + + /** + * @param {string} extensionId + * @param {!chrome.developerPrivate.EventType} eventType + */ + ignoreNextEvent(extensionId, eventType) { + this.eventsToIgnoreOnce_.add(`${extensionId}_${eventType}`); + } + getProfileStateChangedTarget() { return chrome.developerPrivate.onProfileStateChanged; } @@ -79,6 +99,11 @@ /** @override */ updateExtensionCommandScope(extensionId, commandName, scope) { + // The COMMAND_REMOVED event needs to be ignored since it is sent before + // the command is added back with the updated scope but can be handled + // after the COMMAND_ADDED event. + this.ignoreNextEvent( + extensionId, chrome.developerPrivate.EventType.COMMAND_REMOVED); chrome.developerPrivate.updateExtensionCommand({ extensionId: extensionId, commandName: commandName,
diff --git a/chrome/browser/resources/settings/BUILD.gn b/chrome/browser/resources/settings/BUILD.gn index 5c4e81dd..e423e26 100644 --- a/chrome/browser/resources/settings/BUILD.gn +++ b/chrome/browser/resources/settings/BUILD.gn
@@ -106,6 +106,7 @@ ":focus_row_behavior", ":global_scroll_target_behavior", ":lifetime_browser_proxy", + ":list_property_update_behavior", ":page_visibility", ":route", ":search_settings", @@ -133,6 +134,9 @@ ] } +js_library("list_property_update_behavior") { +} + js_library("lifetime_browser_proxy") { deps = [ "//ui/webui/resources/js:cr",
diff --git a/chrome/browser/resources/settings/list_property_update_behavior.html b/chrome/browser/resources/settings/list_property_update_behavior.html new file mode 100644 index 0000000..d6bed49 --- /dev/null +++ b/chrome/browser/resources/settings/list_property_update_behavior.html
@@ -0,0 +1 @@ +<script src="list_property_update_behavior.js"></script>
diff --git a/chrome/browser/resources/settings/list_property_update_behavior.js b/chrome/browser/resources/settings/list_property_update_behavior.js new file mode 100644 index 0000000..560687898 --- /dev/null +++ b/chrome/browser/resources/settings/list_property_update_behavior.js
@@ -0,0 +1,45 @@ +// 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. + +/** + * @fileoverview |ListPropertyUpdateBehavior| is used to update an existing + * polymer list property given the list after all the edits were made while + * maintaining the reference to the original list. This allows + * dom-repeat/iron-list elements bound to this list property to not fully + * re-rendered from scratch. + * + * The minimal splices needed to transform the original list to the edited list + * are calculated using |Polymer.ArraySplice.calculateSplices|. All the edits + * are then applied to the original list. Once completed, a single notification + * containing information about all the edits is sent to the polyer object. + */ + +/** @polymerBehavior */ +const ListPropertyUpdateBehavior = { + /** + * @param {string} propertyName + * @param {function(!Object): string} itemUidGetter + * @param {!Array<!Object>} updatedList + */ + updateList: function(propertyName, itemUidGetter, updatedList) { + const list = this[propertyName]; + const splices = Polymer.ArraySplice.calculateSplices( + updatedList.map(itemUidGetter), list.map(itemUidGetter)); + splices.forEach(splice => { + const index = splice.index; + const deleteCount = splice.removed.length; + // Transform splices to the expected format of notifySplices(). + // Convert !Array<string> to !Array<!Object>. + splice.removed = list.slice(index, index + deleteCount); + splice.object = list; + splice.type = 'splice'; + + const added = updatedList.slice(index, index + splice.addedCount); + const spliceParams = [index, deleteCount].concat(added); + list.splice.apply(list, spliceParams); + }); + if (splices.length > 0) + this.notifySplices(propertyName, splices); + }, +};
diff --git a/chrome/browser/resources/settings/passwords_and_forms_page/BUILD.gn b/chrome/browser/resources/settings/passwords_and_forms_page/BUILD.gn index 64d9716..c016ee4b 100644 --- a/chrome/browser/resources/settings/passwords_and_forms_page/BUILD.gn +++ b/chrome/browser/resources/settings/passwords_and_forms_page/BUILD.gn
@@ -82,6 +82,7 @@ ":password_list_item", ":password_manager_proxy", "..:global_scroll_target_behavior", + "..:list_property_update_behavior", "//ui/webui/resources/cr_elements/cr_action_menu:cr_action_menu", "//ui/webui/resources/cr_elements/cr_toast:cr_toast", "//ui/webui/resources/js:assert",
diff --git a/chrome/browser/resources/settings/passwords_and_forms_page/password_list_item.js b/chrome/browser/resources/settings/passwords_and_forms_page/password_list_item.js index 9a317f0..862c1dd4 100644 --- a/chrome/browser/resources/settings/passwords_and_forms_page/password_list_item.js +++ b/chrome/browser/resources/settings/passwords_and_forms_page/password_list_item.js
@@ -32,10 +32,7 @@ /** * Get the aria label for the More Actions button on this row. - * @param {{ - * entry: !chrome.passwordsPrivate.PasswordUiEntry, - * password: string - * }} item This row's item. + * @param {!PasswordManagerProxy.UiEntryWithPassword} item This row's item. * @private */ getMoreActionsLabel_: function(item) {
diff --git a/chrome/browser/resources/settings/passwords_and_forms_page/passwords_section.html b/chrome/browser/resources/settings/passwords_and_forms_page/passwords_section.html index 8f022bb9..c597480 100644 --- a/chrome/browser/resources/settings/passwords_and_forms_page/passwords_section.html +++ b/chrome/browser/resources/settings/passwords_and_forms_page/passwords_section.html
@@ -12,6 +12,7 @@ <link rel="import" href="../controls/settings_toggle_button.html"> <link rel="import" href="../controls/extension_controlled_indicator.html"> <link rel="import" href="../global_scroll_target_behavior.html"> +<link rel="import" href="../list_property_update_behavior.html"> <link rel="import" href="../prefs/prefs.html"> <link rel="import" href="../settings_shared_css.html"> <link rel="import" href="password_edit_dialog.html"> @@ -103,7 +104,7 @@ </div> <div class="list-frame"> <div id="savedPasswordsHeading" class="list-item column-header" - hidden$="[[!hasSome_(savedPasswords)]]"> + hidden$="[[!hasSome_(savedPasswords, savedPasswords.splices)]]"> <div class="website-column">$i18n{editPasswordWebsiteLabel}</div> <div class="username-column"> $i18n{editPasswordUsernameLabel} @@ -113,7 +114,7 @@ </div> </div> <iron-list id="passwordList" preserve-focus - items="[[getFilteredPasswords_(savedPasswords, filter)]]" + items="[[getFilteredPasswords_(filter, savedPasswords.splices)]]" class="cr-separators list-with-header" scroll-target="[[subpageScrollTarget]]" risk-selection> <template> @@ -124,7 +125,7 @@ </template> </iron-list> <div id="noPasswordsLabel" class="list-item" - hidden$="[[hasSome_(savedPasswords)]]"> + hidden$="[[hasSome_(savedPasswords, savedPasswords.splices)]]"> $i18n{noPasswordsFound} </div> </div>
diff --git a/chrome/browser/resources/settings/passwords_and_forms_page/passwords_section.js b/chrome/browser/resources/settings/passwords_and_forms_page/passwords_section.js index 79ac459..b58fe7e 100644 --- a/chrome/browser/resources/settings/passwords_and_forms_page/passwords_section.js +++ b/chrome/browser/resources/settings/passwords_and_forms_page/passwords_section.js
@@ -8,7 +8,7 @@ * save any passwords. */ -/** @typedef {!{model: !{item: !chrome.passwordsPrivate.PasswordUiEntry}}} */ +/** @typedef {!{model: !{item: !PasswordManagerProxy.UiEntryWithPassword}}} */ let PasswordUiEntryEvent; /** @typedef {!{model: !{item: !chrome.passwordsPrivate.ExceptionEntry}}} */ @@ -22,6 +22,7 @@ behaviors: [ I18nBehavior, + ListPropertyUpdateBehavior, Polymer.IronA11yKeysBehavior, settings.GlobalScrollTargetBehavior, ], @@ -35,15 +36,21 @@ /** * An array of passwords to display. - * @type {!Array<!PasswordManagerProxy.PasswordUiEntry>} + * @type {!Array<!PasswordManagerProxy.UiEntryWithPassword>} */ - savedPasswords: Array, + savedPasswords: { + type: Array, + value: [], + }, /** * An array of sites to display. * @type {!Array<!PasswordManagerProxy.ExceptionEntry>} */ - passwordExceptions: Array, + passwordExceptions: { + type: Array, + value: [], + }, /** * Duration of the undo toast in ms @@ -76,7 +83,7 @@ /** @private */ showExportPasswords_: { type: Boolean, - computed: 'showExportPasswordsAndReady_(savedPasswords)' + computed: 'showExportPasswordsAndReady_(savedPasswords.splices)' }, /** @private */ @@ -97,7 +104,7 @@ value: '', }, - /** @private {!PasswordManagerProxy.PasswordUiEntry} */ + /** @private {!PasswordManagerProxy.UiEntryWithPassword} */ lastFocused_: Object, }, @@ -144,14 +151,13 @@ /** @override */ attached: function() { // Create listener functions. - const setSavedPasswordsListener = list => { - this.savedPasswords = list.map(entry => { - return { - entry: entry, - password: '', - }; - }); - }; + const setSavedPasswordsListener = list => this.updateList( + 'savedPasswords', + item => `${item.entry.index}_${item.entry.loginPair.urls.shown}`, + list.map(entry => ({ + entry: entry, + password: '', + }))); const setPasswordExceptionsListener = list => { this.passwordExceptions = list; @@ -218,19 +224,17 @@ }, /** - * @param {!Array<!PasswordManagerProxy.UiEntryWithPassword>} savedPasswords * @param {string} filter * @return {!Array<!PasswordManagerProxy.UiEntryWithPassword>} * @private */ - getFilteredPasswords_: function(savedPasswords, filter) { + getFilteredPasswords_: function(filter) { if (!filter) - return savedPasswords; + return this.savedPasswords.slice(); - return savedPasswords.filter(p => { - return [p.entry.loginPair.urls.shown, p.entry.loginPair.username].some( - term => term.toLowerCase().includes(filter.toLowerCase())); - }); + return this.savedPasswords.filter( + p => [p.entry.loginPair.urls.shown, p.entry.loginPair.username].some( + term => term.toLowerCase().includes(filter.toLowerCase()))); }, /** @@ -239,9 +243,8 @@ * @private */ passwordExceptionFilter_: function(filter) { - return function(exception) { - return exception.urls.shown.toLowerCase().includes(filter.toLowerCase()); - }; + return exception => exception.urls.shown.toLowerCase().includes( + filter.toLowerCase()); }, /** @@ -365,14 +368,11 @@ return toggleValue ? this.i18n('toggleOn') : this.i18n('toggleOff'); }, - /** - * @private - * @param {!Array<!PasswordManagerProxy.PasswordUiEntry>} savedPasswords - */ - showExportPasswordsAndReady_: function(savedPasswords) { + /** @private */ + showExportPasswordsAndReady_: function() { return loadTimeData.valueExists('showExportPasswords') && loadTimeData.getBoolean('showExportPasswords') && - savedPasswords.length > 0; + this.savedPasswords.length > 0; }, /**
diff --git a/chrome/browser/resources/settings/settings_resources.grd b/chrome/browser/resources/settings/settings_resources.grd index 1dbacd3..ff02025 100644 --- a/chrome/browser/resources/settings/settings_resources.grd +++ b/chrome/browser/resources/settings/settings_resources.grd
@@ -295,6 +295,12 @@ <structure name="IDR_SETTINGS_GLOBAL_SCROLL_TARGET_BEHAVIOR_JS" file="global_scroll_target_behavior.js" type="chrome_html" /> + <structure name="IDR_SETTINGS_LIST_PROPERTY_UPDATE_BEHAVIOR_HTML" + file="list_property_update_behavior.html" + type="chrome_html" /> + <structure name="IDR_SETTINGS_LIST_PROPERTY_UPDATE_BEHAVIOR_JS" + file="list_property_update_behavior.js" + type="chrome_html" /> <structure name="IDR_SETTINGS_FOCUS_ROW_BEHAVIOR_HTML" file="focus_row_behavior.html" type="chrome_html" />
diff --git a/chrome/browser/resources/settings/site_settings/BUILD.gn b/chrome/browser/resources/settings/site_settings/BUILD.gn index e54d2e8..d33f304 100644 --- a/chrome/browser/resources/settings/site_settings/BUILD.gn +++ b/chrome/browser/resources/settings/site_settings/BUILD.gn
@@ -124,6 +124,7 @@ ":local_data_browser_proxy", ":site_settings_behavior", "..:global_scroll_target_behavior", + "..:list_property_update_behavior", "../settings_page:settings_subpage_search", "//ui/webui/resources/js:assert", "//ui/webui/resources/js:cr",
diff --git a/chrome/browser/resources/settings/site_settings/protocol_handlers.html b/chrome/browser/resources/settings/site_settings/protocol_handlers.html index d513605..12b5f5d 100644 --- a/chrome/browser/resources/settings/site_settings/protocol_handlers.html +++ b/chrome/browser/resources/settings/site_settings/protocol_handlers.html
@@ -24,7 +24,8 @@ } </style> <div class="settings-box first two-line"> - <div id="categoryLabel" class="start"> + <div id="categoryLabel" class="start" on-click="categoryLabelClicked_" + actionable> [[computeHandlersDescription_(categoryEnabled)]] </div> <cr-toggle id="toggle" checked="{{categoryEnabled}}"
diff --git a/chrome/browser/resources/settings/site_settings/protocol_handlers.js b/chrome/browser/resources/settings/site_settings/protocol_handlers.js index 904fc75..49e6a3ed 100644 --- a/chrome/browser/resources/settings/site_settings/protocol_handlers.js +++ b/chrome/browser/resources/settings/site_settings/protocol_handlers.js
@@ -110,6 +110,11 @@ }, // </if> + /** @private */ + categoryLabelClicked_: function() { + this.$.toggle.click(); + }, + /** * Obtains the description for the main toggle. * @return {string} The description to use.
diff --git a/chrome/browser/resources/settings/site_settings/site_data.html b/chrome/browser/resources/settings/site_settings/site_data.html index 8779e1c..3067889 100644 --- a/chrome/browser/resources/settings/site_settings/site_data.html +++ b/chrome/browser/resources/settings/site_settings/site_data.html
@@ -11,6 +11,7 @@ <link rel="import" href="chrome://resources/polymer/v1_0/paper-icon-button/paper-icon-button-light.html"> <link rel="import" href="chrome://resources/polymer/v1_0/paper-spinner/paper-spinner-lite.html"> <link rel="import" href="../global_scroll_target_behavior.html"> +<link rel="import" href="../list_property_update_behavior.html"> <link rel="import" href="../settings_page/settings_subpage_search.html"> <link rel="import" href="../settings_shared_css.html"> <link rel="import" href="cookie_info.html"> @@ -50,7 +51,7 @@ [[computeRemoveLabel_(filter)]] </paper-button> </div> - <iron-list id="list" items="[[sites]]" + <iron-list id="list" items="[[sites]]" preserve-focus scroll-target="[[subpageScrollTarget]]"> <template> <div class="settings-box two-line site-item" first$="[[!index]]"
diff --git a/chrome/browser/resources/settings/site_settings/site_data.js b/chrome/browser/resources/settings/site_settings/site_data.js index 4dbf87f..3c3a6796 100644 --- a/chrome/browser/resources/settings/site_settings/site_data.js +++ b/chrome/browser/resources/settings/site_settings/site_data.js
@@ -40,6 +40,7 @@ behaviors: [ I18nBehavior, + ListPropertyUpdateBehavior, settings.GlobalScrollTargetBehavior, WebUIListenerBehavior, ], @@ -145,8 +146,8 @@ */ updateSiteList_: function() { this.isLoading_ = true; - this.browserProxy_.getDisplayList(this.filter).then((listInfo) => { - this.sites = listInfo.items; + this.browserProxy_.getDisplayList(this.filter).then(listInfo => { + this.updateList('sites', item => item.site, listInfo.items); this.isLoading_ = false; this.fire('site-data-list-complete'); });
diff --git a/chrome/browser/ui/BUILD.gn b/chrome/browser/ui/BUILD.gn index 234552a..a3eaf7b5 100644 --- a/chrome/browser/ui/BUILD.gn +++ b/chrome/browser/ui/BUILD.gn
@@ -1129,6 +1129,8 @@ "android/infobars/confirm_infobar.h", "android/infobars/data_reduction_promo_infobar.cc", "android/infobars/data_reduction_promo_infobar.h", + "android/infobars/download_progress_infobar.cc", + "android/infobars/download_progress_infobar.h", "android/infobars/duplicate_download_infobar.cc", "android/infobars/duplicate_download_infobar.h", "android/infobars/framebust_block_infobar.cc", @@ -1195,6 +1197,10 @@ "android/tab_model/tab_model_list.cc", "android/tab_model/tab_model_list.h", "android/tab_model/tab_model_list_observer.h", + "android/tab_model/tab_model_observer.cc", + "android/tab_model/tab_model_observer.h", + "android/tab_model/tab_model_observer_jni_bridge.cc", + "android/tab_model/tab_model_observer_jni_bridge.h", "android/toolbar/toolbar_model_android.cc", "android/toolbar/toolbar_model_android.h", "android/usb_chooser_dialog_android.cc", @@ -1477,6 +1483,7 @@ "tabs/tab_network_state.h", "tabs/tab_strip_model.cc", "tabs/tab_strip_model.h", + "tabs/tab_strip_model_delegate.cc", "tabs/tab_strip_model_delegate.h", "tabs/tab_strip_model_observer.cc", "tabs/tab_strip_model_observer.h",
diff --git a/chrome/browser/ui/android/infobars/download_progress_infobar.cc b/chrome/browser/ui/android/infobars/download_progress_infobar.cc new file mode 100644 index 0000000..646e50f --- /dev/null +++ b/chrome/browser/ui/android/infobars/download_progress_infobar.cc
@@ -0,0 +1,94 @@ +// 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 "chrome/browser/ui/android/infobars/download_progress_infobar.h" + +#include <memory> +#include <utility> + +#include "chrome/browser/android/tab_android.h" +#include "chrome/browser/infobars/infobar_service.h" +#include "components/infobars/core/infobar_delegate.h" +#include "content/public/browser/web_contents.h" +#include "jni/DownloadProgressInfoBar_jni.h" +#include "ui/android/window_android.h" + +using base::android::JavaParamRef; +using base::android::ScopedJavaLocalRef; + +class DownloadProgressInfoBarDelegate : public infobars::InfoBarDelegate { + public: + DownloadProgressInfoBarDelegate(const JavaParamRef<jobject>& jclient, + const JavaParamRef<jobject>& jdata) { + JNIEnv* env = base::android::AttachCurrentThread(); + client_.Reset(env, jclient); + data_.Reset(env, jdata); + } + + ~DownloadProgressInfoBarDelegate() override = default; + + infobars::InfoBarDelegate::InfoBarIdentifier GetIdentifier() const override { + return InfoBarDelegate::InfoBarIdentifier:: + DOWNLOAD_PROGRESS_INFOBAR_ANDROID; + } + + bool EqualsDelegate(infobars::InfoBarDelegate* delegate) const override { + return delegate->GetIdentifier() == GetIdentifier(); + } + + base::android::ScopedJavaGlobalRef<jobject> data() { return data_; } + + base::android::ScopedJavaGlobalRef<jobject> client() { return client_; } + + private: + base::android::ScopedJavaGlobalRef<jobject> client_; + base::android::ScopedJavaGlobalRef<jobject> data_; + + DISALLOW_COPY_AND_ASSIGN(DownloadProgressInfoBarDelegate); +}; + +DownloadProgressInfoBar::DownloadProgressInfoBar( + std::unique_ptr<DownloadProgressInfoBarDelegate> delegate) + : InfoBarAndroid(std::move(delegate)) {} + +DownloadProgressInfoBar::~DownloadProgressInfoBar() = default; + +infobars::InfoBarDelegate* DownloadProgressInfoBar::GetDelegate() { + return delegate(); +} + +ScopedJavaLocalRef<jobject> DownloadProgressInfoBar::CreateRenderInfoBar( + JNIEnv* env) { + DownloadProgressInfoBarDelegate* delegate = + static_cast<DownloadProgressInfoBarDelegate*>(GetDelegate()); + + return Java_DownloadProgressInfoBar_create(env, delegate->client(), + delegate->data()); +} + +void DownloadProgressInfoBar::ProcessButton(int action) {} + +base::android::ScopedJavaLocalRef<jobject> DownloadProgressInfoBar::GetTab( + JNIEnv* env, + const JavaParamRef<jobject>& obj) { + content::WebContents* web_contents = + InfoBarService::WebContentsFromInfoBar(this); + if (!web_contents) + return nullptr; + + TabAndroid* tab_android = TabAndroid::FromWebContents(web_contents); + return tab_android ? tab_android->GetJavaObject() : nullptr; +} + +void JNI_DownloadProgressInfoBar_Create(JNIEnv* env, + const JavaParamRef<jclass>& j_caller, + const JavaParamRef<jobject>& j_client, + const JavaParamRef<jobject>& j_tab, + const JavaParamRef<jobject>& j_data) { + InfoBarService* service = InfoBarService::FromWebContents( + TabAndroid::GetNativeTab(env, j_tab)->web_contents()); + + service->AddInfoBar(std::make_unique<DownloadProgressInfoBar>( + std::make_unique<DownloadProgressInfoBarDelegate>(j_client, j_data))); +}
diff --git a/chrome/browser/ui/android/infobars/download_progress_infobar.h b/chrome/browser/ui/android/infobars/download_progress_infobar.h new file mode 100644 index 0000000..b54c416 --- /dev/null +++ b/chrome/browser/ui/android/infobars/download_progress_infobar.h
@@ -0,0 +1,38 @@ +// 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_ANDROID_INFOBARS_DOWNLOAD_PROGRESS_INFOBAR_H_ +#define CHROME_BROWSER_UI_ANDROID_INFOBARS_DOWNLOAD_PROGRESS_INFOBAR_H_ + +#include "base/android/jni_android.h" +#include "base/android/scoped_java_ref.h" +#include "base/macros.h" +#include "chrome/browser/ui/android/infobars/infobar_android.h" +#include "components/infobars/core/infobar_delegate.h" + +class DownloadProgressInfoBarDelegate; + +class DownloadProgressInfoBar : public InfoBarAndroid { + public: + explicit DownloadProgressInfoBar( + std::unique_ptr<DownloadProgressInfoBarDelegate> delegate); + ~DownloadProgressInfoBar() override; + + base::android::ScopedJavaLocalRef<jobject> GetTab( + JNIEnv* env, + const base::android::JavaParamRef<jobject>& obj); + + protected: + infobars::InfoBarDelegate* GetDelegate(); + + // InfoBarAndroid overrides. + void ProcessButton(int action) override; + base::android::ScopedJavaLocalRef<jobject> CreateRenderInfoBar( + JNIEnv* env) override; + + private: + DISALLOW_COPY_AND_ASSIGN(DownloadProgressInfoBar); +}; + +#endif // CHROME_BROWSER_UI_ANDROID_INFOBARS_DOWNLOAD_PROGRESS_INFOBAR_H_
diff --git a/chrome/browser/ui/android/tab_model/tab_model.h b/chrome/browser/ui/android/tab_model/tab_model.h index 5ca0a31f..5be70637 100644 --- a/chrome/browser/ui/android/tab_model/tab_model.h +++ b/chrome/browser/ui/android/tab_model/tab_model.h
@@ -30,12 +30,45 @@ class Profile; class TabAndroid; +class TabModelObserver; // Abstract representation of a Tab Model for Android. Since Android does // not use Browser/BrowserList, this is required to allow Chrome to interact // with Android's Tabs and Tab Model. class TabModel : public content::NotificationObserver { public: + // TODO(chrisha): Clean up these enums so that the Java ones are generated + // from them. + // https://chromium.googlesource.com/chromium/src/+/lkcr/docs/android_accessing_cpp_enums_in_java.md + + // Various ways tabs can be launched. See TabModel.java. + enum class TabLaunchType { + FROM_LINK, + FROM_EXTERNAL_APP, + FROM_CHROME_UI, + FROM_RESTORE, + FROM_LONGPRESS_FOREGROUND, + FROM_LONGPRESS_BACKGROUND, + FROM_REPARENTING, + FROM_LAUNCHER_SHORTCUT, + FROM_SPECULATIVE_BACKGROUND_CREATION, + FROM_BROWSER_ACTIONS, + + // Must be last. + SIZE + }; + + // Various ways tabs can be selected. See TabModel.java. + enum class TabSelectionType { + FROM_CLOSE, + FROM_EXIT, + FROM_NEW, + FROM_USER, + + // Must be last. + SIZE + }; + virtual Profile* GetProfile() const; virtual bool IsOffTheRecord() const; virtual sync_sessions::SyncedWindowDelegate* GetSyncedWindowDelegate() const; @@ -68,6 +101,12 @@ // tab model selector. virtual bool IsCurrentModel() const = 0; + // Adds an observer to this TabModel. + virtual void AddObserver(TabModelObserver* observer) = 0; + + // Removes an observer from this TabModel. + virtual void RemoveObserver(TabModelObserver* observer) = 0; + protected: explicit TabModel(Profile* profile, bool is_tabbed_activity); ~TabModel() override;
diff --git a/chrome/browser/ui/android/tab_model/tab_model_jni_bridge.cc b/chrome/browser/ui/android/tab_model/tab_model_jni_bridge.cc index 987e09c1..a096541 100644 --- a/chrome/browser/ui/android/tab_model/tab_model_jni_bridge.cc +++ b/chrome/browser/ui/android/tab_model/tab_model_jni_bridge.cc
@@ -18,6 +18,7 @@ #include "chrome/browser/profiles/profile_manager.h" #include "chrome/browser/tab_contents/tab_util.h" #include "chrome/browser/ui/android/tab_model/tab_model_list.h" +#include "chrome/browser/ui/android/tab_model/tab_model_observer_jni_bridge.h" #include "content/public/browser/web_contents.h" #include "jni/TabModelJniBridge_jni.h" @@ -150,6 +151,24 @@ return Java_TabModelJniBridge_isCurrentModel(env, java_object_.get(env)); } +void TabModelJniBridge::AddObserver(TabModelObserver* observer) { + // If a first observer is being added then instantiate an observer bridge. + if (!observer_bridge_) { + JNIEnv* env = AttachCurrentThread(); + observer_bridge_ = + std::make_unique<TabModelObserverJniBridge>(env, java_object_.get(env)); + } + observer_bridge_->AddObserver(observer); +} + +void TabModelJniBridge::RemoveObserver(TabModelObserver* observer) { + observer_bridge_->RemoveObserver(observer); + + // Tear down the bridge if there are no observers left. + if (!observer_bridge_->might_have_observers()) + observer_bridge_.reset(); +} + void TabModelJniBridge::BroadcastSessionRestoreComplete( JNIEnv* env, const JavaParamRef<jobject>& obj) {
diff --git a/chrome/browser/ui/android/tab_model/tab_model_jni_bridge.h b/chrome/browser/ui/android/tab_model/tab_model_jni_bridge.h index 9391fa1..e32c92d 100644 --- a/chrome/browser/ui/android/tab_model/tab_model_jni_bridge.h +++ b/chrome/browser/ui/android/tab_model/tab_model_jni_bridge.h
@@ -16,6 +16,7 @@ #include "chrome/browser/ui/android/tab_model/tab_model.h" class TabAndroid; +class TabModelObserverJniBridge; namespace content { class WebContents; @@ -63,6 +64,9 @@ // tab model selector. bool IsCurrentModel() const override; + void AddObserver(TabModelObserver* observer) override; + void RemoveObserver(TabModelObserver* observer) override; + // Instructs the TabModel to broadcast a notification that all tabs are now // loaded from storage. void BroadcastSessionRestoreComplete( @@ -72,6 +76,11 @@ protected: JavaObjectWeakGlobalRef java_object_; + // The observer bridge. This exists as long as there are registered observers. + // It corresponds to a Java observer that is registered with the corresponding + // Java TabModelJniBridge. + std::unique_ptr<TabModelObserverJniBridge> observer_bridge_; + private: DISALLOW_COPY_AND_ASSIGN(TabModelJniBridge); };
diff --git a/chrome/browser/ui/android/tab_model/tab_model_list_unittest.cc b/chrome/browser/ui/android/tab_model/tab_model_list_unittest.cc index 8fcf599..59db338 100644 --- a/chrome/browser/ui/android/tab_model/tab_model_list_unittest.cc +++ b/chrome/browser/ui/android/tab_model/tab_model_list_unittest.cc
@@ -33,6 +33,8 @@ TabAndroid* GetTabAt(int index) const override { return nullptr; } void SetActiveIndex(int index) override {} void CloseTabAt(int index) override {} + void AddObserver(TabModelObserver* observer) override {} + void RemoveObserver(TabModelObserver* observer) override {} // A fake value for the current number of tabs. int tab_count_;
diff --git a/chrome/browser/ui/android/tab_model/tab_model_observer.cc b/chrome/browser/ui/android/tab_model/tab_model_observer.cc new file mode 100644 index 0000000..ff696beb --- /dev/null +++ b/chrome/browser/ui/android/tab_model/tab_model_observer.cc
@@ -0,0 +1,41 @@ +// 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 "chrome/browser/ui/android/tab_model/tab_model_observer.h" + +#include "chrome/browser/android/tab_android.h" + +TabModelObserver::TabModelObserver() {} + +TabModelObserver::~TabModelObserver() {} + +void TabModelObserver::DidSelectTab(TabAndroid* tab, + TabModel::TabSelectionType type) {} + +void TabModelObserver::WillCloseTab(TabAndroid* tab, bool animate) {} + +void TabModelObserver::DidCloseTab(int tab_id, bool incognito) {} + +void TabModelObserver::WillAddTab(TabAndroid* tab, + TabModel::TabLaunchType type) {} + +void TabModelObserver::DidAddTab(TabAndroid* tab, + TabModel::TabLaunchType type) {} + +void TabModelObserver::DidMoveTab(TabAndroid* tab, + int new_index, + int old_index) {} + +void TabModelObserver::TabPendingClosure(TabAndroid* tab) {} + +void TabModelObserver::TabClosureUndone(TabAndroid* tab) {} + +void TabModelObserver::TabClosureCommitted(TabAndroid* tab) {} + +void TabModelObserver::AllTabsPendingClosure( + const std::vector<TabAndroid*>& tabs) {} + +void TabModelObserver::AllTabsClosureCommitted() {} + +void TabModelObserver::TabRemoved(TabAndroid* tab) {}
diff --git a/chrome/browser/ui/android/tab_model/tab_model_observer.h b/chrome/browser/ui/android/tab_model/tab_model_observer.h new file mode 100644 index 0000000..98440ad --- /dev/null +++ b/chrome/browser/ui/android/tab_model/tab_model_observer.h
@@ -0,0 +1,68 @@ +// 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_ANDROID_TAB_MODEL_TAB_MODEL_OBSERVER_H_ +#define CHROME_BROWSER_UI_ANDROID_TAB_MODEL_TAB_MODEL_OBSERVER_H_ + +#include <vector> + +#include "base/macros.h" +#include "chrome/browser/ui/android/tab_model/tab_model.h" + +class TabAndroid; + +// An interface to be notified about changes to a TabModel. Notifications are +// routed to instances of this class via TabModelObserverJniBridge. See +// TabModelObserver.java for more details about individual notifications. +class TabModelObserver { + public: + TabModelObserver(); + virtual ~TabModelObserver(); + + // Called when a |tab| is selected. + virtual void DidSelectTab(TabAndroid* tab, TabModel::TabSelectionType type); + + // Called when a |tab| starts closing. + virtual void WillCloseTab(TabAndroid* tab, bool animate); + + // Called right after a |tab| has been destroyed. + virtual void DidCloseTab(int tab_id, bool incognito); + + // Called before a |tab| is added to the TabModel. + virtual void WillAddTab(TabAndroid* tab, TabModel::TabLaunchType type); + + // Called after a |tab| has been added to the TabModel. + virtual void DidAddTab(TabAndroid* tab, TabModel::TabLaunchType type); + + // Called after a |tab| has been moved from one position in the TabModel to + // another. + virtual void DidMoveTab(TabAndroid* tab, int new_index, int old_index); + + // Called when a tab is pending closure (ie, the user has just closed it, but + // it can still be undone). At this point the |tab| has been removed from the + // TabModel. + virtual void TabPendingClosure(TabAndroid* tab); + + // Called when a |tab| closure is undone. + virtual void TabClosureUndone(TabAndroid* tab); + + // Called when a |tab| closure is committed and can't be undone anymore. + virtual void TabClosureCommitted(TabAndroid* tab); + + // Called when all |tabs| are pending closure. + virtual void AllTabsPendingClosure(const std::vector<TabAndroid*>& tabs); + + // Called when an all tabs closure has been committed and can't be undone + // anymore. + virtual void AllTabsClosureCommitted(); + + // Called after a tab has been removed. At this point the tab is no longer in + // the TabModel. + virtual void TabRemoved(TabAndroid* tab); + + private: + DISALLOW_COPY_AND_ASSIGN(TabModelObserver); +}; + +#endif // CHROME_BROWSER_UI_ANDROID_TAB_MODEL_TAB_MODEL_OBSERVER_H_
diff --git a/chrome/browser/ui/android/tab_model/tab_model_observer_jni_bridge.cc b/chrome/browser/ui/android/tab_model/tab_model_observer_jni_bridge.cc new file mode 100644 index 0000000..3789b73 --- /dev/null +++ b/chrome/browser/ui/android/tab_model/tab_model_observer_jni_bridge.cc
@@ -0,0 +1,205 @@ +// 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 "chrome/browser/ui/android/tab_model/tab_model_observer_jni_bridge.h" + +#include "chrome/browser/android/tab_android.h" +#include "chrome/browser/ui/android/tab_model/tab_model.h" +#include "chrome/browser/ui/android/tab_model/tab_model_jni_bridge.h" +#include "chrome/browser/ui/android/tab_model/tab_model_observer.h" +#include "jni/TabModelObserverJniBridge_jni.h" + +using base::android::AttachCurrentThread; +using base::android::JavaParamRef; +using base::android::JavaRef; +using base::android::ScopedJavaLocalRef; + +namespace { + +// Gets the size of the provided enum. +int GetTabModelStaticIntField(JNIEnv* env, const char* field_name) { + jclass clazz = + env->FindClass("org/chromium/chrome/browser/tabmodel/TabModel"); + jfieldID field_id = env->GetStaticFieldID(clazz, field_name, "I"); + jint value = env->GetStaticIntField(clazz, field_id); + return value; +} + +void EnsureEnumSizesConsistent(JNIEnv* env) { + DCHECK_EQ(static_cast<int>(TabModel::TabLaunchType::SIZE), + GetTabModelStaticIntField(env, "TabLaunchTypeSize")); + DCHECK_EQ(static_cast<int>(TabModel::TabSelectionType::SIZE), + GetTabModelStaticIntField(env, "TabSelectionTypeSize")); +} + +// Converts from a Java TabModel.TabLaunchType to a C++ TabModel::TabLaunchType. +TabModel::TabLaunchType GetTabLaunchType(JNIEnv* env, int type) { + return static_cast<TabModel::TabLaunchType>(type); +} + +// Converts from a Java TabModel.TabSelectionType to a C++ +// TabModel::TabSelectionType. +TabModel::TabSelectionType GetTabSelectionType(JNIEnv* env, int type) { + return static_cast<TabModel::TabSelectionType>(type); +} + +} // namespace + +TabModelObserverJniBridge::TabModelObserverJniBridge( + JNIEnv* env, + const JavaRef<jobject>& tab_model) { + // TODO(chrisha): Clean up these enums so that the Java ones are generated + // from them. + // https://chromium.googlesource.com/chromium/src/+/lkcr/docs/android_accessing_cpp_enums_in_java.md + EnsureEnumSizesConsistent(env); + + // Create the Java object. This immediately adds it as an observer on the + // corresponding TabModel. + java_object_.Reset(Java_TabModelObserverJniBridge_create( + env, reinterpret_cast<uintptr_t>(this), tab_model)); +} + +TabModelObserverJniBridge::~TabModelObserverJniBridge() { + JNIEnv* env = AttachCurrentThread(); + Java_TabModelObserverJniBridge_detachFromTabModel(env, java_object_); +} + +void TabModelObserverJniBridge::DidSelectTab(JNIEnv* env, + const JavaParamRef<jobject>& jobj, + const JavaParamRef<jobject>& jtab, + int jtype, + int last_id) { + TabAndroid* tab = TabAndroid::GetNativeTab(env, jtab); + CHECK(tab); + TabModel::TabSelectionType type = GetTabSelectionType(env, jtype); + for (auto& observer : observers_) + observer.DidSelectTab(tab, type); +} + +void TabModelObserverJniBridge::WillCloseTab(JNIEnv* env, + const JavaParamRef<jobject>& jobj, + const JavaParamRef<jobject>& jtab, + bool animate) { + TabAndroid* tab = TabAndroid::GetNativeTab(env, jtab); + CHECK(tab); + for (auto& observer : observers_) + observer.WillCloseTab(tab, animate); +} + +void TabModelObserverJniBridge::DidCloseTab(JNIEnv* env, + const JavaParamRef<jobject>& jobj, + int tab_id, + bool incognito) { + for (auto& observer : observers_) + observer.DidCloseTab(tab_id, incognito); +} + +void TabModelObserverJniBridge::WillAddTab(JNIEnv* env, + const JavaParamRef<jobject>& jobj, + const JavaParamRef<jobject>& jtab, + int jtype) { + TabAndroid* tab = TabAndroid::GetNativeTab(env, jtab); + CHECK(tab); + TabModel::TabLaunchType type = GetTabLaunchType(env, jtype); + for (auto& observer : observers_) + observer.WillAddTab(tab, type); +} + +void TabModelObserverJniBridge::DidAddTab(JNIEnv* env, + const JavaParamRef<jobject>& jobj, + const JavaParamRef<jobject>& jtab, + int jtype) { + TabAndroid* tab = TabAndroid::GetNativeTab(env, jtab); + CHECK(tab); + TabModel::TabLaunchType type = GetTabLaunchType(env, jtype); + for (auto& observer : observers_) + observer.DidAddTab(tab, type); +} + +void TabModelObserverJniBridge::DidMoveTab(JNIEnv* env, + const JavaParamRef<jobject>& jobj, + const JavaParamRef<jobject>& jtab, + int new_index, + int cur_index) { + TabAndroid* tab = TabAndroid::GetNativeTab(env, jtab); + CHECK(tab); + for (auto& observer : observers_) + observer.DidMoveTab(tab, new_index, cur_index); +} + +void TabModelObserverJniBridge::TabPendingClosure( + JNIEnv* env, + const JavaParamRef<jobject>& jobj, + const JavaParamRef<jobject>& jtab) { + TabAndroid* tab = TabAndroid::GetNativeTab(env, jtab); + CHECK(tab); + for (auto& observer : observers_) + observer.TabPendingClosure(tab); +} + +void TabModelObserverJniBridge::TabClosureUndone( + JNIEnv* env, + const JavaParamRef<jobject>& jobj, + const JavaParamRef<jobject>& jtab) { + TabAndroid* tab = TabAndroid::GetNativeTab(env, jtab); + CHECK(tab); + for (auto& observer : observers_) + observer.TabClosureUndone(tab); +} + +void TabModelObserverJniBridge::TabClosureCommitted( + JNIEnv* env, + const JavaParamRef<jobject>& jobj, + const JavaParamRef<jobject>& jtab) { + TabAndroid* tab = TabAndroid::GetNativeTab(env, jtab); + CHECK(tab); + for (auto& observer : observers_) + observer.TabClosureCommitted(tab); +} + +void TabModelObserverJniBridge::AllTabsPendingClosure( + JNIEnv* env, + const JavaParamRef<jobject>& jobj, + const JavaParamRef<jobjectArray>& jtabs) { + std::vector<TabAndroid*> tabs; + + // |jtabs| is actually a Tab[]. Iterate over the array and convert it to + // a vector of TabAndroid*. + jint size = env->GetArrayLength(jtabs.obj()); + tabs.reserve(size); + for (jint i = 0; i < size; ++i) { + jobject jtab = env->GetObjectArrayElement(jtabs.obj(), 0); + TabAndroid* tab = + TabAndroid::GetNativeTab(env, JavaParamRef<jobject>(env, jtab)); + CHECK(tab); + tabs.push_back(tab); + } + + for (auto& observer : observers_) + observer.AllTabsPendingClosure(tabs); +} + +void TabModelObserverJniBridge::AllTabsClosureCommitted( + JNIEnv* env, + const JavaParamRef<jobject>& jobj) { + for (auto& observer : observers_) + observer.AllTabsClosureCommitted(); +} + +void TabModelObserverJniBridge::TabRemoved(JNIEnv* env, + const JavaParamRef<jobject>& jobj, + const JavaParamRef<jobject>& jtab) { + TabAndroid* tab = TabAndroid::GetNativeTab(env, jtab); + CHECK(tab); + for (auto& observer : observers_) + observer.TabRemoved(tab); +} + +void TabModelObserverJniBridge::AddObserver(TabModelObserver* observer) { + observers_.AddObserver(observer); +} + +void TabModelObserverJniBridge::RemoveObserver(TabModelObserver* observer) { + observers_.RemoveObserver(observer); +}
diff --git a/chrome/browser/ui/android/tab_model/tab_model_observer_jni_bridge.h b/chrome/browser/ui/android/tab_model/tab_model_observer_jni_bridge.h new file mode 100644 index 0000000..8925c0f --- /dev/null +++ b/chrome/browser/ui/android/tab_model/tab_model_observer_jni_bridge.h
@@ -0,0 +1,107 @@ +// 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_ANDROID_TAB_MODEL_TAB_MODEL_OBSERVER_JNI_BRIDGE_H_ +#define CHROME_BROWSER_UI_ANDROID_TAB_MODEL_TAB_MODEL_OBSERVER_JNI_BRIDGE_H_ + +#include <jni.h> + +#include <utility> +#include <vector> + +#include "base/android/jni_weak_ref.h" +#include "base/android/scoped_java_ref.h" +#include "base/macros.h" +#include "base/observer_list.h" +#include "chrome/browser/ui/android/tab_model/tab_model_observer.h" + +// Bridges calls between the C++ and the Java TabModelObservers. Functions in +// this class do little more than translating between Java TabModelObserver +// notifications to native TabModelObserver notifications. +class TabModelObserverJniBridge { + public: + TabModelObserverJniBridge(JNIEnv* env, + const base::android::JavaRef<jobject>& tab_model); + + ~TabModelObserverJniBridge(); + + void Destroy(JNIEnv* env, const base::android::JavaParamRef<jobject>& obj); + + // The following functions are called by JNI. + + void DidSelectTab(JNIEnv* env, + const base::android::JavaParamRef<jobject>& jobj, + const base::android::JavaParamRef<jobject>& jtab, + int type, + int last_id); + + void WillCloseTab(JNIEnv* env, + const base::android::JavaParamRef<jobject>& jobj, + const base::android::JavaParamRef<jobject>& jtab, + bool animate); + + void DidCloseTab(JNIEnv* env, + const base::android::JavaParamRef<jobject>& jobj, + int tab_id, + bool incognito); + + void WillAddTab(JNIEnv* env, + const base::android::JavaParamRef<jobject>& jobj, + const base::android::JavaParamRef<jobject>& jtab, + int type); + + void DidAddTab(JNIEnv* env, + const base::android::JavaParamRef<jobject>& jobj, + const base::android::JavaParamRef<jobject>& jtab, + int type); + + void DidMoveTab(JNIEnv* env, + const base::android::JavaParamRef<jobject>& jobj, + const base::android::JavaParamRef<jobject>& jtab, + int new_index, + int cur_index); + + void TabPendingClosure(JNIEnv* env, + const base::android::JavaParamRef<jobject>& jobj, + const base::android::JavaParamRef<jobject>& jtab); + + void TabClosureUndone(JNIEnv* env, + const base::android::JavaParamRef<jobject>& jobj, + const base::android::JavaParamRef<jobject>& jtab); + + void TabClosureCommitted(JNIEnv* env, + const base::android::JavaParamRef<jobject>& jobj, + const base::android::JavaParamRef<jobject>& jtab); + + void AllTabsPendingClosure( + JNIEnv* env, + const base::android::JavaParamRef<jobject>& jobj, + const base::android::JavaParamRef<jobjectArray>& jtabs); + + void AllTabsClosureCommitted( + JNIEnv* env, + const base::android::JavaParamRef<jobject>& jobj); + + void TabRemoved(JNIEnv* env, + const base::android::JavaParamRef<jobject>& jobj, + const base::android::JavaParamRef<jobject>& jtab); + + void AddObserver(TabModelObserver* observer); + void RemoveObserver(TabModelObserver* observer); + + bool might_have_observers() const { + return observers_.might_have_observers(); + } + + private: + // This object's Java counterpart. This objects controls its lifetime. + base::android::ScopedJavaGlobalRef<jobject> java_object_; + + // Observers attached to this bridge. + base::ObserverList<TabModelObserver> observers_; + + DISALLOW_COPY_AND_ASSIGN(TabModelObserverJniBridge); +}; + +#endif // CHROME_BROWSER_UI_ANDROID_TAB_MODEL_TAB_MODEL_OBSERVER_JNI_BRIDGE_H_
diff --git a/chrome/browser/ui/android/tab_model/tab_model_unittest.cc b/chrome/browser/ui/android/tab_model/tab_model_unittest.cc index e8869b1..3a067f4 100644 --- a/chrome/browser/ui/android/tab_model/tab_model_unittest.cc +++ b/chrome/browser/ui/android/tab_model/tab_model_unittest.cc
@@ -46,6 +46,8 @@ TabAndroid* GetTabAt(int index) const override { return NULL; } void SetActiveIndex(int index) override {} void CloseTabAt(int index) override {} + void AddObserver(TabModelObserver* observer) override {} + void RemoveObserver(TabModelObserver* observer) override {} }; } // namespace
diff --git a/chrome/browser/ui/app_list/DEPS b/chrome/browser/ui/app_list/DEPS index 226b2da1..53de606b 100644 --- a/chrome/browser/ui/app_list/DEPS +++ b/chrome/browser/ui/app_list/DEPS
@@ -6,10 +6,3 @@ "+ash/public", ] - -specific_include_rules = { - # TODO(733662): Remove when app_list is migrated. - "crostini_app_model_builder\.cc": [ - "+ash/resources/grit/ash_resources.h", - ], -}
diff --git a/chrome/browser/ui/app_list/crostini/crostini_app_model_builder.cc b/chrome/browser/ui/app_list/crostini/crostini_app_model_builder.cc index 446fb5d..cd9517b 100644 --- a/chrome/browser/ui/app_list/crostini/crostini_app_model_builder.cc +++ b/chrome/browser/ui/app_list/crostini/crostini_app_model_builder.cc
@@ -4,7 +4,6 @@ #include "chrome/browser/ui/app_list/crostini/crostini_app_model_builder.h" -#include "ash/resources/grit/ash_resources.h" #include "chrome/browser/chromeos/crostini/crostini_manager.h" #include "chrome/browser/chromeos/crostini/crostini_pref_names.h" #include "chrome/browser/chromeos/crostini/crostini_registry_service_factory.h" @@ -12,11 +11,9 @@ #include "chrome/browser/profiles/profile.h" #include "chrome/browser/ui/app_list/app_list_controller_delegate.h" #include "chrome/browser/ui/app_list/crostini/crostini_app_item.h" -#include "chrome/grit/chrome_unscaled_resources.h" #include "components/crx_file/id_util.h" #include "components/prefs/pref_change_registrar.h" #include "ui/base/l10n/l10n_util.h" -#include "ui/base/resource/resource_bundle.h" CrostiniAppModelBuilder::CrostiniAppModelBuilder( AppListControllerDelegate* controller)
diff --git a/chrome/browser/ui/browser.cc b/chrome/browser/ui/browser.cc index 0cd103c..465c11c 100644 --- a/chrome/browser/ui/browser.cc +++ b/chrome/browser/ui/browser.cc
@@ -2242,16 +2242,6 @@ // changed_flags. } - if (changed_flags & content::INVALIDATE_TYPE_TITLE && !source->IsLoading()) { - // To correctly calculate whether the title changed while not loading - // we need to process the update synchronously. This state only matters for - // the TabStripModel, so we notify the TabStripModel now and notify others - // asynchronously. - tab_strip_model_->UpdateWebContentsStateAt( - tab_strip_model_->GetIndexOfWebContents(source), - TabChangeType::kTitleNotLoading); - } - // If the only updates were synchronously handled above, we're done. if (changed_flags == 0) return;
diff --git a/chrome/browser/ui/browser_tab_strip_model_delegate.cc b/chrome/browser/ui/browser_tab_strip_model_delegate.cc index d675ac8b..823a189 100644 --- a/chrome/browser/ui/browser_tab_strip_model_delegate.cc +++ b/chrome/browser/ui/browser_tab_strip_model_delegate.cc
@@ -50,7 +50,7 @@ } Browser* BrowserTabStripModelDelegate::CreateNewStripWithContents( - const std::vector<NewStripContents>& contentses, + std::vector<NewStripContents> contentses, const gfx::Rect& window_bounds, bool maximize) { DCHECK(browser_->CanSupportWindowFeature(Browser::FEATURE_TABSTRIP)); @@ -64,21 +64,21 @@ TabStripModel* new_model = browser->tab_strip_model(); for (size_t i = 0; i < contentses.size(); ++i) { - NewStripContents item = contentses[i]; + NewStripContents item = std::move(contentses[i]); // Enforce that there is an active tab in the strip at all times by forcing // the first web contents to be marked as active. if (i == 0) item.add_types |= TabStripModel::ADD_ACTIVE; - new_model->InsertWebContentsAt(static_cast<int>(i), - base::WrapUnique(item.web_contents), - item.add_types); + content::WebContents* raw_web_contents = item.web_contents.get(); + new_model->InsertWebContentsAt( + static_cast<int>(i), std::move(item.web_contents), item.add_types); // Make sure the loading state is updated correctly, otherwise the throbber // won't start if the page is loading. // TODO(beng): find a better way of doing this. - static_cast<content::WebContentsDelegate*>(browser)-> - LoadingStateChanged(item.web_contents, true); + static_cast<content::WebContentsDelegate*>(browser)->LoadingStateChanged( + raw_web_contents, true); } return browser;
diff --git a/chrome/browser/ui/browser_tab_strip_model_delegate.h b/chrome/browser/ui/browser_tab_strip_model_delegate.h index 2bc775c..2106d58 100644 --- a/chrome/browser/ui/browser_tab_strip_model_delegate.h +++ b/chrome/browser/ui/browser_tab_strip_model_delegate.h
@@ -22,10 +22,9 @@ private: // Overridden from TabStripModelDelegate: void AddTabAt(const GURL& url, int index, bool foreground) override; - Browser* CreateNewStripWithContents( - const std::vector<NewStripContents>& contentses, - const gfx::Rect& window_bounds, - bool maximize) override; + Browser* CreateNewStripWithContents(std::vector<NewStripContents> contentses, + const gfx::Rect& window_bounds, + bool maximize) override; void WillAddWebContents(content::WebContents* contents) override; int GetDragActions() const override; bool CanDuplicateContentsAt(int index) override;
diff --git a/chrome/browser/ui/cocoa/browser_window_controller.mm b/chrome/browser/ui/cocoa/browser_window_controller.mm index 3d17573..ff1bffe 100644 --- a/chrome/browser/ui/cocoa/browser_window_controller.mm +++ b/chrome/browser/ui/cocoa/browser_window_controller.mm
@@ -1220,29 +1220,17 @@ bool isActive = (index == model->active_index()); TabStripModelDelegate::NewStripContents item; - item.web_contents = model->GetWebContentsAt(index); + item.web_contents = model->DetachWebContentsAt(index); item.add_types = (isActive ? TabStripModel::ADD_ACTIVE : TabStripModel::ADD_NONE) | (isPinned ? TabStripModel::ADD_PINNED : TabStripModel::ADD_NONE); - contentses.push_back(item); - } - - for (TabView* tabView in tabViews) { - int index = [tabStripController_ modelIndexForTabView:tabView]; - // Detach it from the source window, which just updates the model without - // deleting the tab contents. This needs to come before creating the new - // Browser because it clears the WebContents' delegate, which gets hooked - // up during creation of the new window. - - // TODO(erikchen): While it might be nice to fix ownership semantics here, - // realistically the code is going to be deleted in the not-too-distant - // future. - model->DetachWebContentsAt(index).release(); + contentses.push_back(std::move(item)); } // Create a new window with the dragged tabs in its model. - Browser* newBrowser = browser_->tab_strip_model()->delegate()-> - CreateNewStripWithContents(contentses, browserRect, false); + Browser* newBrowser = + browser_->tab_strip_model()->delegate()->CreateNewStripWithContents( + std::move(contentses), browserRect, false); // Get the new controller by asking the new window for its delegate. BrowserWindowController* controller = [BrowserWindowController @@ -1480,15 +1468,11 @@ if (change != TabChangeType::kLoadingOnly) windowShim_->UpdateTitleBar(); - // Update the bookmark bar if this is the currently selected tab and if it - // isn't just the title which changed. This for transitions between the NTP - // (showing its floating bookmark bar) and normal web pages (showing no - // bookmark bar). + // Update the bookmark bar if this is the currently selected tab. This for + // transitions between the NTP (showing its floating bookmark bar) and normal + // web pages (showing no bookmark bar). // TODO(viettrungluu): perhaps update to not terminate running animations? - if (change != TabChangeType::kTitleNotLoading) { - windowShim_->BookmarkBarStateChanged( - BookmarkBar::DONT_ANIMATE_STATE_CHANGE); - } + windowShim_->BookmarkBarStateChanged(BookmarkBar::DONT_ANIMATE_STATE_CHANGE); } - (void)onTabDetachedWithContents:(WebContents*)contents {
diff --git a/chrome/browser/ui/cocoa/tabs/tab_controller.h b/chrome/browser/ui/cocoa/tabs/tab_controller.h index 5a584d9..5fdc644 100644 --- a/chrome/browser/ui/cocoa/tabs/tab_controller.h +++ b/chrome/browser/ui/cocoa/tabs/tab_controller.h
@@ -86,9 +86,6 @@ // Sets the current tab alert state and updates the views. - (void)setAlertState:(TabAlertState)alertState; -// Notifies the tab that its title changed outside of loading. -- (void)titleChangedNotLoading; - // Sets the tab to display that it needs attention from the user. - (void)setNeedsAttention:(bool)attention;
diff --git a/chrome/browser/ui/cocoa/tabs/tab_controller.mm b/chrome/browser/ui/cocoa/tabs/tab_controller.mm index 0c1473b..ca5ac8d4 100644 --- a/chrome/browser/ui/cocoa/tabs/tab_controller.mm +++ b/chrome/browser/ui/cocoa/tabs/tab_controller.mm
@@ -76,9 +76,8 @@ base::scoped_nsobject<MenuControllerCocoa> contextMenuController_; enum AttentionType : int { - kPinnedTabTitleChange = 1 << 0, // The title of a pinned tab changed. - kBlockedWebContents = 1 << 1, // The WebContents is marked as blocked. - kTabWantsAttentionStatus = 1 << 2, // SetTabNeedsAttention() was called. + kBlockedWebContents = 1 << 0, // The WebContents is marked as blocked. + kTabWantsAttentionStatus = 1 << 1, // SetTabNeedsAttention() was called. }; } @@ -261,12 +260,11 @@ // a re-draw. - (void)internalSetSelected:(BOOL)selected { TabView* tabView = [self tabView]; - if ([self active]) { + if ([self active]) [tabView setState:NSOnState]; - self.currentAttentionTypes &= ~AttentionType::kPinnedTabTitleChange; - } else { + else [tabView setState:selected ? NSMixedState : NSOffState]; - } + // The attention indicator must always be updated, as it needs to disappear // if a tab is blocked and is brought forward. It is updated at the end of // -updateVisibility. @@ -546,11 +544,6 @@ self.currentAttentionTypes &= ~AttentionType::kBlockedWebContents; } -- (void)titleChangedNotLoading { - if ([self pinned] && ![self active]) - self.currentAttentionTypes |= AttentionType::kPinnedTabTitleChange; -} - - (void)setNeedsAttention:(bool)attention { if (attention) self.currentAttentionTypes |= AttentionType::kTabWantsAttentionStatus;
diff --git a/chrome/browser/ui/cocoa/tabs/tab_strip_controller.mm b/chrome/browser/ui/cocoa/tabs/tab_strip_controller.mm index 5c097de..e268ba9 100644 --- a/chrome/browser/ui/cocoa/tabs/tab_strip_controller.mm +++ b/chrome/browser/ui/cocoa/tabs/tab_strip_controller.mm
@@ -1649,12 +1649,6 @@ TabController* tabController = [tabArray_ objectAtIndex:index]; - if (change == TabChangeType::kTitleNotLoading) { - [tabController titleChangedNotLoading]; - // We'll receive another notification of the change asynchronously. - return; - } - if (change != TabChangeType::kLoadingOnly) [self setTabTitle:tabController withContents:contents];
diff --git a/chrome/browser/ui/omnibox/chrome_omnibox_client.cc b/chrome/browser/ui/omnibox/chrome_omnibox_client.cc index 041d5954..0049134e 100644 --- a/chrome/browser/ui/omnibox/chrome_omnibox_client.cc +++ b/chrome/browser/ui/omnibox/chrome_omnibox_client.cc
@@ -355,22 +355,8 @@ FaviconFetchedCallback on_favicon_fetched) { const GURL& favicon_url = GetTemplateURLService()->GetDefaultSearchProvider()->favicon_url(); - if (!favicon_url.is_valid()) - return gfx::Image(); - - auto* favicon_service = FaviconServiceFactory::GetForProfile( - profile_, ServiceAccessType::EXPLICIT_ACCESS); - pending_default_search_provider_favicon_callback_ = - std::move(on_favicon_fetched); - favicon_service->GetFaviconImage( - favicon_url, - base::BindRepeating( - &ChromeOmniboxClient::OnDefaultSearchProviderFaviconFetched, - weak_factory_.GetWeakPtr()), - &default_search_provider_favicon_task_tracker_); - - // TODO(tommycli): Implement a synchronous caching layer to prevent flicker. - return gfx::Image(); + return favicon_cache_.GetFaviconForIconUrl(favicon_url, + std::move(on_favicon_fetched)); } void ChromeOmniboxClient::OnCurrentMatchChanged( @@ -499,13 +485,3 @@ const SkBitmap& bitmap) { callback.Run(result_index, bitmap); } - -void ChromeOmniboxClient::OnDefaultSearchProviderFaviconFetched( - const favicon_base::FaviconImageResult& result) { - if (pending_default_search_provider_favicon_callback_.is_null() || - result.image.IsEmpty()) { - return; - } - std::move(pending_default_search_provider_favicon_callback_) - .Run(result.image); -}
diff --git a/chrome/browser/ui/omnibox/chrome_omnibox_client.h b/chrome/browser/ui/omnibox/chrome_omnibox_client.h index 0603ce2..3e32bf27 100644 --- a/chrome/browser/ui/omnibox/chrome_omnibox_client.h +++ b/chrome/browser/ui/omnibox/chrome_omnibox_client.h
@@ -10,12 +10,9 @@ #include "base/compiler_specific.h" #include "base/macros.h" -#include "base/memory/weak_ptr.h" -#include "base/task/cancelable_task_tracker.h" #include "chrome/browser/autocomplete/chrome_autocomplete_scheme_classifier.h" #include "chrome/browser/bitmap_fetcher/bitmap_fetcher_service.h" #include "chrome/common/search/instant_types.h" -#include "components/favicon_base/favicon_types.h" #include "components/omnibox/browser/favicon_cache.h" #include "components/omnibox/browser/omnibox_client.h" @@ -93,20 +90,12 @@ int result_index, const SkBitmap& bitmap); - void OnDefaultSearchProviderFaviconFetched( - const favicon_base::FaviconImageResult& result); - ChromeOmniboxEditController* controller_; Profile* profile_; ChromeAutocompleteSchemeClassifier scheme_classifier_; std::vector<BitmapFetcherService::RequestId> request_ids_; FaviconCache favicon_cache_; - base::CancelableTaskTracker default_search_provider_favicon_task_tracker_; - FaviconFetchedCallback pending_default_search_provider_favicon_callback_; - - base::WeakPtrFactory<ChromeOmniboxClient> weak_factory_{this}; - DISALLOW_COPY_AND_ASSIGN(ChromeOmniboxClient); };
diff --git a/chrome/browser/ui/tabs/tab_change_type.h b/chrome/browser/ui/tabs/tab_change_type.h index f4ad317..b309c49f 100644 --- a/chrome/browser/ui/tabs/tab_change_type.h +++ b/chrome/browser/ui/tabs/tab_change_type.h
@@ -12,13 +12,6 @@ // Only the loading state changed. kLoadingOnly, - - // Only the title changed and page isn't loading. This is used to set the - // attention state for background pinned tabs. This has to be one - // notification since the title changed and loading state updates are - // normally broadcast asynchronously, making it hard to tell if the page was - // definitely done loading when the title changed. - kTitleNotLoading }; #endif // CHROME_BROWSER_UI_TABS_TAB_CHANGE_TYPE_H_
diff --git a/chrome/browser/ui/tabs/tab_strip_model_delegate.cc b/chrome/browser/ui/tabs/tab_strip_model_delegate.cc new file mode 100644 index 0000000..d47170c --- /dev/null +++ b/chrome/browser/ui/tabs/tab_strip_model_delegate.cc
@@ -0,0 +1,12 @@ +// 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 "chrome/browser/ui/tabs/tab_strip_model_delegate.h" + +#include "content/public/browser/web_contents.h" + +TabStripModelDelegate::NewStripContents::NewStripContents() = default; +TabStripModelDelegate::NewStripContents::~NewStripContents() = default; +TabStripModelDelegate::NewStripContents::NewStripContents(NewStripContents&&) = + default;
diff --git a/chrome/browser/ui/tabs/tab_strip_model_delegate.h b/chrome/browser/ui/tabs/tab_strip_model_delegate.h index 50e8b93..5e9509f 100644 --- a/chrome/browser/ui/tabs/tab_strip_model_delegate.h +++ b/chrome/browser/ui/tabs/tab_strip_model_delegate.h
@@ -5,8 +5,11 @@ #ifndef CHROME_BROWSER_UI_TABS_TAB_STRIP_MODEL_DELEGATE_H_ #define CHROME_BROWSER_UI_TABS_TAB_STRIP_MODEL_DELEGATE_H_ +#include <memory> #include <vector> +#include "base/macros.h" + class Browser; class GURL; @@ -59,13 +62,19 @@ // about the Browser type. At least fix so that this returns a // TabStripModelDelegate, or perhaps even move this code elsewhere. struct NewStripContents { + NewStripContents(); + ~NewStripContents(); + NewStripContents(NewStripContents&&); // The WebContents to add. - content::WebContents* web_contents; + std::unique_ptr<content::WebContents> web_contents; // A bitmask of TabStripModel::AddTabTypes to apply to the added contents. - int add_types; + int add_types = 0; + + private: + DISALLOW_COPY_AND_ASSIGN(NewStripContents); }; virtual Browser* CreateNewStripWithContents( - const std::vector<NewStripContents>& contentses, + std::vector<NewStripContents> contentses, const gfx::Rect& window_bounds, bool maximize) = 0;
diff --git a/chrome/browser/ui/tabs/test_tab_strip_model_delegate.cc b/chrome/browser/ui/tabs/test_tab_strip_model_delegate.cc index 8260b6c..74d61edb 100644 --- a/chrome/browser/ui/tabs/test_tab_strip_model_delegate.cc +++ b/chrome/browser/ui/tabs/test_tab_strip_model_delegate.cc
@@ -19,7 +19,7 @@ } Browser* TestTabStripModelDelegate::CreateNewStripWithContents( - const std::vector<NewStripContents>& contentses, + std::vector<NewStripContents> contentses, const gfx::Rect& window_bounds, bool maximize) { return NULL;
diff --git a/chrome/browser/ui/tabs/test_tab_strip_model_delegate.h b/chrome/browser/ui/tabs/test_tab_strip_model_delegate.h index 2ca1e07f..5cd220ce 100644 --- a/chrome/browser/ui/tabs/test_tab_strip_model_delegate.h +++ b/chrome/browser/ui/tabs/test_tab_strip_model_delegate.h
@@ -17,10 +17,9 @@ // Overridden from TabStripModelDelegate: void AddTabAt(const GURL& url, int index, bool foregroud) override; - Browser* CreateNewStripWithContents( - const std::vector<NewStripContents>& contentses, - const gfx::Rect& window_bounds, - bool maximize) override; + Browser* CreateNewStripWithContents(std::vector<NewStripContents> contentses, + const gfx::Rect& window_bounds, + bool maximize) override; void WillAddWebContents(content::WebContents* contents) override; int GetDragActions() const override; bool CanDuplicateContentsAt(int index) override;
diff --git a/chrome/browser/ui/views/bookmarks/bookmark_bar_view.cc b/chrome/browser/ui/views/bookmarks/bookmark_bar_view.cc index b61bc00..a04c5b4 100644 --- a/chrome/browser/ui/views/bookmarks/bookmark_bar_view.cc +++ b/chrome/browser/ui/views/bookmarks/bookmark_bar_view.cc
@@ -120,9 +120,6 @@ using views::MenuButton; using views::View; -// How inset the bookmarks bar is when displayed on the new tab page. -static const int kNewTabHorizontalPadding = 2; - // Maximum size of buttons on the bookmark bar. static const int kMaxButtonWidth = 150; @@ -130,7 +127,7 @@ static const int kDetachedTopMargin = 1; // When attached, we use 0 and let the // toolbar above serve as the margin. static const int kBottomMargin = 4; -static const int kHorizontalMargin = 4; +static const int kHorizontalMargin = 8; // Padding between buttons. static const int kButtonPadding = 8; @@ -169,17 +166,15 @@ } int GetInkDropCornerRadius() { - return ui::MaterialDesignController::IsNewerMaterialUi() ? 4 : 2; + return ChromeLayoutProvider::Get()->GetCornerRadiusMetric( + views::EMPHASIS_MEDIUM); } gfx::Insets GetInkDropInsets() { - // Ink drop ripple/highlight for bookmark buttons should be inset 1px - // vertically so that they do not touch the bookmark bar borders. - // TODO(estade): currently this is used as DIP rather than pixels. This - // should be fixed: see https://crbug.com/706228 - return ui::MaterialDesignController::IsTouchOptimizedUiEnabled() - ? gfx::Insets(3, 3) - : gfx::Insets(1, 0); + // Refresh insets aren't required as a larger 28dp (vs 24) inkdrop is used for + // the toolbar buttons we're trying to match here. + constexpr int kInsets[] = {2, 2, 3, 0}; + return gfx::Insets(kInsets[ui::MaterialDesignController::GetMode()]); } SkColor GetBookmarkButtonInkDropBaseColor(const ui::ThemeProvider* tp) { @@ -865,7 +860,6 @@ int height = GetPreferredHeight(); if (IsDetached()) { double current_state = 1 - size_animation_.GetCurrentValue(); - width += 2 * static_cast<int>(kNewTabHorizontalPadding * current_state); height += static_cast<int>( (GetLayoutConstant(BOOKMARK_BAR_NTP_HEIGHT) - height) * current_state); } @@ -909,9 +903,7 @@ if (IsDetached()) { double current_state = 1 - size_animation_.GetCurrentValue(); - x += static_cast<int>(kNewTabHorizontalPadding * current_state); y += (View::height() - preferred_height) / 2; - width -= static_cast<int>(kNewTabHorizontalPadding * current_state); separator_margin -= static_cast<int>(kSeparatorMargin * current_state); } else { // For the attached appearance, pin the content to the bottom of the bar @@ -929,7 +921,7 @@ apps_page_shortcut_->GetPreferredSize() : gfx::Size(); int max_x = kHorizontalMargin + width - overflow_pref.width() - - kButtonPadding - bookmarks_separator_pref.width(); + bookmarks_separator_pref.width(); if (other_bookmarks_button_->visible()) max_x -= other_bookmarks_pref.width() + kButtonPadding;
diff --git a/chrome/browser/ui/views/frame/browser_view.cc b/chrome/browser/ui/views/frame/browser_view.cc index 88c651c..18c97e9f 100644 --- a/chrome/browser/ui/views/frame/browser_view.cc +++ b/chrome/browser/ui/views/frame/browser_view.cc
@@ -141,6 +141,7 @@ #include "ui/views/controls/button/menu_button.h" #include "ui/views/controls/textfield/textfield.h" #include "ui/views/controls/webview/webview.h" +#include "ui/views/event_monitor.h" #include "ui/views/focus/external_focus_tracker.h" #include "ui/views/layout/grid_layout.h" #include "ui/views/widget/native_widget.h" @@ -2415,12 +2416,16 @@ if (GetLocationBarView()->Contains(focus_manager->GetFocusedView())) focus_manager->ClearFocus(); -#if defined(USE_AURA) if (FullscreenControlHost::IsFullscreenExitUIEnabled()) { +#if defined(USE_AURA) frame_->GetNativeView()->AddPreTargetHandler( GetFullscreenControlHost(), ui::EventTarget::Priority::kSystem); - } +#else + fullscreen_control_host_event_monitor_ = + views::EventMonitor::CreateWindowMonitor(GetFullscreenControlHost(), + GetNativeWindow()); #endif + } } else { // Hide the fullscreen bubble as soon as possible, since the mode toggle can // take enough time for the user to notice. @@ -2432,6 +2437,8 @@ auto* native_view = frame_->GetNativeView(); if (native_view) native_view->RemovePreTargetHandler(fullscreen_control_host_.get()); +#else + fullscreen_control_host_event_monitor_.reset(); #endif } }
diff --git a/chrome/browser/ui/views/frame/browser_view.h b/chrome/browser/ui/views/frame/browser_view.h index 80e99ce..323642d 100644 --- a/chrome/browser/ui/views/frame/browser_view.h +++ b/chrome/browser/ui/views/frame/browser_view.h
@@ -78,6 +78,7 @@ } namespace views { +class EventMonitor; class ExternalFocusTracker; class WebView; } @@ -743,6 +744,10 @@ std::unique_ptr<FullscreenControlHost> fullscreen_control_host_; +#if !defined(USE_AURA) + std::unique_ptr<views::EventMonitor> fullscreen_control_host_event_monitor_; +#endif + struct ResizeSession { // The time when user started resizing the window. base::TimeTicks begin_timestamp;
diff --git a/chrome/browser/ui/views/fullscreen_control/fullscreen_control_host.cc b/chrome/browser/ui/views/fullscreen_control/fullscreen_control_host.cc index 92e1959..39e33a8 100644 --- a/chrome/browser/ui/views/fullscreen_control/fullscreen_control_host.cc +++ b/chrome/browser/ui/views/fullscreen_control/fullscreen_control_host.cc
@@ -78,9 +78,11 @@ // static bool FullscreenControlHost::IsFullscreenExitUIEnabled() { #if defined(OS_MACOSX) - // Exit UI is unnecessary, since Mac reveals the top chrome when the cursor - // moves to the top of the screen. - return false; + // On Mac we only use FullscreenControlHost as a visual feedback for + // press-and-hold ESC to exit fullscreen. + // IsExitUiNeeded() will guard that mouse and touch inputs won't trigger the + // UI. + return true; #else return chrome::GetChannel() == version_info::Channel::CANARY || chrome::GetChannel() == version_info::Channel::DEV || @@ -217,8 +219,14 @@ } bool FullscreenControlHost::IsExitUiNeeded() { +#if defined(OS_MACOSX) + // Exit UI is unnecessary, since Mac uses the OS fullscreen such that window + // menu and controls reveal when the cursor is moved to the top. + return false; +#else return exclusive_access_context_->IsFullscreen() && exclusive_access_context_->ShouldHideUIForFullscreen(); +#endif } float FullscreenControlHost::CalculateCursorBufferHeight() const {
diff --git a/chrome/browser/ui/views/location_bar/location_bar_view.cc b/chrome/browser/ui/views/location_bar/location_bar_view.cc index 0e6a3e6d..a506f72 100644 --- a/chrome/browser/ui/views/location_bar/location_bar_view.cc +++ b/chrome/browser/ui/views/location_bar/location_bar_view.cc
@@ -856,7 +856,6 @@ void LocationBarView::OnLocationIconFetched(const gfx::Image& image) { location_icon_view_->SetImage(image.AsImageSkia()); - location_icon_view_->Update(); } bool LocationBarView::RefreshContentSettingViews() { @@ -1207,10 +1206,9 @@ void LocationBarView::OnChanged() { RefreshLocationIcon(); location_icon_view_->set_show_tooltip(!GetOmniboxView()->IsEditingOrEmpty()); - clear_all_button_->SetVisible( - GetToolbarModel()->input_in_progress() && - (InTouchableMode() || - LocationBarView::IsVirtualKeyboardVisible(GetWidget()))); + clear_all_button_->SetVisible(GetToolbarModel()->input_in_progress() && + !omnibox_view_->text().empty() && + IsVirtualKeyboardVisible(GetWidget())); Layout(); SchedulePaint(); }
diff --git a/chrome/browser/ui/views/tabs/browser_tab_strip_controller.cc b/chrome/browser/ui/views/tabs/browser_tab_strip_controller.cc index b2d7df5..522350b7 100644 --- a/chrome/browser/ui/views/tabs/browser_tab_strip_controller.cc +++ b/chrome/browser/ui/views/tabs/browser_tab_strip_controller.cc
@@ -433,12 +433,6 @@ void BrowserTabStripController::TabChangedAt(WebContents* contents, int model_index, TabChangeType change_type) { - if (change_type == TabChangeType::kTitleNotLoading) { - tabstrip_->TabTitleChangedNotLoading(model_index); - // We'll receive another notification of the change asynchronously. - return; - } - SetTabDataAt(contents, model_index); }
diff --git a/chrome/browser/ui/views/tabs/tab.cc b/chrome/browser/ui/views/tabs/tab.cc index c43aac9..a01419a0 100644 --- a/chrome/browser/ui/views/tabs/tab.cc +++ b/chrome/browser/ui/views/tabs/tab.cc
@@ -427,10 +427,7 @@ void Tab::ActiveStateChanged() { if (IsActive()) { - // Cancel the pinned tab title change attention indicator when a tab - // becomes activated. Clear the blocked WebContents for active tabs because - // it's distracting. - icon_->SetAttention(TabIcon::AttentionType::kPinnedTabTitleChange, false); + // Clear the blocked WebContents for active tabs because it's distracting. icon_->SetAttention(TabIcon::AttentionType::kBlockedWebContents, false); } OnButtonColorMaybeChanged(); @@ -516,13 +513,6 @@ pulse_animation_.Stop(); } -void Tab::TabTitleChangedNotLoading() { - // When the title changes on a pinned background page that has completed - // loading, assume it's doing so to get the user's attention. - if (data_.pinned && !IsActive()) - icon_->SetAttention(TabIcon::AttentionType::kPinnedTabTitleChange, true); -} - void Tab::SetTabNeedsAttention(bool attention) { icon_->SetAttention(TabIcon::AttentionType::kTabWantsAttentionStatus, attention);
diff --git a/chrome/browser/ui/views/tabs/tab.h b/chrome/browser/ui/views/tabs/tab.h index 962d61a..83c5f5f 100644 --- a/chrome/browser/ui/views/tabs/tab.h +++ b/chrome/browser/ui/views/tabs/tab.h
@@ -109,9 +109,6 @@ void StartPulse(); void StopPulse(); - // Notifies the tab that its title changed outside of loading. - void TabTitleChangedNotLoading(); - // Sets the visibility of the indicator shown when the tab needs to indicate // to the user that it needs their attention. void SetTabNeedsAttention(bool attention);
diff --git a/chrome/browser/ui/views/tabs/tab_drag_controller.cc b/chrome/browser/ui/views/tabs/tab_drag_controller.cc index 08720da..6126355 100644 --- a/chrome/browser/ui/views/tabs/tab_drag_controller.cc +++ b/chrome/browser/ui/views/tabs/tab_drag_controller.cc
@@ -181,6 +181,8 @@ TabDragController::TabDragData::~TabDragData() { } +TabDragController::TabDragData::TabDragData(TabDragData&&) = default; + /////////////////////////////////////////////////////////////////////////////// // TabDragController, public: @@ -325,7 +327,7 @@ } bool TabDragController::IsDraggingTab(content::WebContents* contents) { - for (auto drag_data : drag_data_) { + for (auto& drag_data : drag_data_) { if (drag_data.contents == contents) return true; } @@ -916,7 +918,7 @@ add_types |= TabStripModel::ADD_PINNED; GetModel(attached_tabstrip_) ->InsertWebContentsAt( - index + i, base::WrapUnique(drag_data_[i].contents), add_types); + index + i, std::move(drag_data_[i].owned_contents), add_types); // If a sad tab is showing, the SadTabView needs to be updated. SadTabHelper* sad_tab_helper = @@ -983,10 +985,7 @@ // Hide the tab so that the user doesn't see it animate closed. drag_data_[i].attached_tab->SetVisible(false); drag_data_[i].attached_tab->set_detached(); - - // TODO(erikchen): Fix ownership semantics for this class once all - // TabStripModel APIs have been migrated to use proper ownership semantics. - attached_model->DetachWebContentsAt(index).release(); + drag_data_[i].owned_contents = attached_model->DetachWebContentsAt(index); // Detaching may end up deleting the tab, drop references to it. drag_data_[i].attached_tab = NULL; @@ -1480,7 +1479,7 @@ // source TabStrip. GetModel(source_tabstrip_) ->InsertWebContentsAt(data->source_model_index, - base::WrapUnique(data->contents), + std::move(data->owned_contents), (data->pinned ? TabStripModel::ADD_PINNED : 0)); } } @@ -1516,15 +1515,17 @@ std::vector<TabStripModelDelegate::NewStripContents> contentses; for (size_t i = 0; i < drag_data_.size(); ++i) { TabStripModelDelegate::NewStripContents item; - item.web_contents = drag_data_[i].contents; + item.web_contents = std::move(drag_data_[i].owned_contents); item.add_types = drag_data_[i].pinned ? TabStripModel::ADD_PINNED : TabStripModel::ADD_NONE; - contentses.push_back(item); + contentses.push_back(std::move(item)); } Browser* new_browser = - GetModel(source_tabstrip_)->delegate()->CreateNewStripWithContents( - contentses, window_bounds, widget->IsMaximized()); + GetModel(source_tabstrip_) + ->delegate() + ->CreateNewStripWithContents(std::move(contentses), window_bounds, + widget->IsMaximized()); ResetSelection(new_browser->tab_strip_model()); new_browser->window()->Show(); }
diff --git a/chrome/browser/ui/views/tabs/tab_drag_controller.h b/chrome/browser/ui/views/tabs/tab_drag_controller.h index f4f890c..feae9ff 100644 --- a/chrome/browser/ui/views/tabs/tab_drag_controller.h +++ b/chrome/browser/ui/views/tabs/tab_drag_controller.h
@@ -195,10 +195,16 @@ struct TabDragData { TabDragData(); ~TabDragData(); + TabDragData(TabDragData&&); // The WebContents being dragged. content::WebContents* contents; + // There is a brief period of time when a tab is being moved from one tab + // strip to another [after Detach but before Attach] that the TabDragData + // owns the WebContents. + std::unique_ptr<content::WebContents> owned_contents; + // This is the index of the tab in |source_tabstrip_| when the drag // began. This is used to restore the previous state if the drag is aborted. int source_model_index; @@ -208,6 +214,9 @@ // Is the tab pinned? bool pinned; + + private: + DISALLOW_COPY_AND_ASSIGN(TabDragData); }; typedef std::vector<TabDragData> DragData;
diff --git a/chrome/browser/ui/views/tabs/tab_icon.h b/chrome/browser/ui/views/tabs/tab_icon.h index 6d74c25..27937c11 100644 --- a/chrome/browser/ui/views/tabs/tab_icon.h +++ b/chrome/browser/ui/views/tabs/tab_icon.h
@@ -28,9 +28,8 @@ // representation, but the state of each of these is tracked separately and // the indicator is shown as long as one is enabled. enum class AttentionType { - kPinnedTabTitleChange = 1 << 0, // The title of a pinned tab changed. - kBlockedWebContents = 1 << 1, // The WebContents is marked as blocked. - kTabWantsAttentionStatus = 1 << 2, // Tab::SetTabNeedsAttention() called. + kBlockedWebContents = 1 << 0, // The WebContents is marked as blocked. + kTabWantsAttentionStatus = 1 << 1, // Tab::SetTabNeedsAttention() called. }; TabIcon();
diff --git a/chrome/browser/ui/views/tabs/tab_strip.cc b/chrome/browser/ui/views/tabs/tab_strip.cc index 7b460a478..04328dba 100644 --- a/chrome/browser/ui/views/tabs/tab_strip.cc +++ b/chrome/browser/ui/views/tabs/tab_strip.cc
@@ -709,10 +709,6 @@ ->NotifyAccessibilityEvent(ax::mojom::Event::kSelection, true); } -void TabStrip::TabTitleChangedNotLoading(int model_index) { - tab_at(model_index)->TabTitleChangedNotLoading(); -} - void TabStrip::SetTabNeedsAttention(int model_index, bool attention) { tab_at(model_index)->SetTabNeedsAttention(attention); } @@ -1774,6 +1770,8 @@ res.first->second.erase(res.second); if (res.first->second.empty()) tabs_closing_map_.erase(res.first); + if (tab == last_hovered_tab_) + last_hovered_tab_ = nullptr; } void TabStrip::UpdateTabsClosingMap(int index, int delta) {
diff --git a/chrome/browser/ui/views/tabs/tab_strip.h b/chrome/browser/ui/views/tabs/tab_strip.h index a5f5a05..1a908f81 100644 --- a/chrome/browser/ui/views/tabs/tab_strip.h +++ b/chrome/browser/ui/views/tabs/tab_strip.h
@@ -168,10 +168,6 @@ void SetSelection(const ui::ListSelectionModel& old_selection, const ui::ListSelectionModel& new_selection); - // Invoked when the title of a tab changes and the tab isn't loading. This is - // used by pinned tabs to indicate they need attention. - void TabTitleChangedNotLoading(int model_index); - // Invoked when a tab needs to show UI that it needs the user's attention. void SetTabNeedsAttention(int model_index, bool attention);
diff --git a/chrome/browser/ui/views/tabs/tab_strip_unittest.cc b/chrome/browser/ui/views/tabs/tab_strip_unittest.cc index e6c76303..51633ab5 100644 --- a/chrome/browser/ui/views/tabs/tab_strip_unittest.cc +++ b/chrome/browser/ui/views/tabs/tab_strip_unittest.cc
@@ -613,29 +613,6 @@ EXPECT_LE(tab_strip_->new_tab_button_bounds().right(), kTabStripWidth); } -TEST_P(TabStripTest, AttentionIndicatorHidesOnSelect) { - for (int i = 0; i < 2; ++i) - controller_->AddTab(i, (i == 0)); - - // Two tabs, both pinned. - TabRendererData pinned_data; - pinned_data.pinned = true; - tab_strip_->SetTabData(0, pinned_data); - tab_strip_->SetTabData(1, pinned_data); - - EXPECT_FALSE(IsShowingAttentionIndicator(0)); - EXPECT_FALSE(IsShowingAttentionIndicator(1)); - - // Change the title of the second tab (first tab is selected). - tab_strip_->TabTitleChangedNotLoading(1); - // Indicator should be shown. - EXPECT_TRUE(IsShowingAttentionIndicator(1)); - // Select the second tab. - controller_->SelectTab(1); - // Indicator should hide. - EXPECT_FALSE(IsShowingAttentionIndicator(1)); -} - // The active tab should always be at least as wide as its minimum width. // http://crbug.com/587688 TEST_P(TabStripTest, ActiveTabWidthWhenTabsAreTiny) {
diff --git a/chrome/browser/ui/views/toolbar/toolbar_view.cc b/chrome/browser/ui/views/toolbar/toolbar_view.cc index ce136f2..3840b63 100644 --- a/chrome/browser/ui/views/toolbar/toolbar_view.cc +++ b/chrome/browser/ui/views/toolbar/toolbar_view.cc
@@ -96,9 +96,7 @@ // In the touch-optimized UI, we don't use any horizontal paddings; the back // button starts from the beginning of the view, and the app menu button ends // at the end of the view. - using Md = ui::MaterialDesignController; - constexpr int kPaddings[] = {4, 8, 0, 8}; - return kPaddings[Md::GetMode()]; + return ui::MaterialDesignController::IsTouchOptimizedUiEnabled() ? 0 : 8; } } // namespace
diff --git a/chrome/browser/ui/webui/policy_tool_ui_browsertest.cc b/chrome/browser/ui/webui/policy_tool_ui_browsertest.cc index 57ba15e1..2f1ea81 100644 --- a/chrome/browser/ui/webui/policy_tool_ui_browsertest.cc +++ b/chrome/browser/ui/webui/policy_tool_ui_browsertest.cc
@@ -640,6 +640,8 @@ IN_PROC_BROWSER_TEST_F(PolicyToolUITest, DeleteSession) { CreateMultipleSessionFiles(3); ui_test_utils::NavigateToURL(browser(), GURL("chrome://policy-tool")); + // Wait until the page data is filled. + content::RunAllTasksUntilIdle(); EXPECT_EQ("2", ExtractSinglePolicyValue("SessionId")); // Check that a non-current session is deleted correctly.
diff --git a/chrome/browser/vr/ui_input_manager_unittest.cc b/chrome/browser/vr/ui_input_manager_unittest.cc index 5cc0b89..f6e5e57 100644 --- a/chrome/browser/vr/ui_input_manager_unittest.cc +++ b/chrome/browser/vr/ui_input_manager_unittest.cc
@@ -50,6 +50,16 @@ MOCK_METHOD1(OnMove, void(const gfx::PointF& position)); MOCK_METHOD1(OnButtonDown, void(const gfx::PointF& position)); MOCK_METHOD1(OnButtonUp, void(const gfx::PointF& position)); + MOCK_METHOD2(OnScrollBegin, + void(std::unique_ptr<blink::WebGestureEvent>, + const gfx::PointF&)); + MOCK_METHOD2(OnScrollUpdate, + void(std::unique_ptr<blink::WebGestureEvent>, + const gfx::PointF&)); + MOCK_METHOD2(OnScrollEnd, + void(std::unique_ptr<blink::WebGestureEvent>, + const gfx::PointF&)); + MOCK_METHOD0(MockedOnScrollBegin, void()); MOCK_METHOD1(OnFocusChanged, void(bool)); MOCK_METHOD1(OnInputEdited, void(const EditedText&)); MOCK_METHOD1(OnInputCommitted, void(const EditedText&)); @@ -79,6 +89,8 @@ input_manager_ = std::make_unique<UiInputManager>(scene_.get()); } + void TearDown() override { gesture_list_.clear(); } + StrictMock<MockRect>* CreateAndAddMockElement(float z_position) { auto element = std::make_unique<StrictMock<MockRect>>(); StrictMock<MockRect>* p_element = element.get(); @@ -116,6 +128,12 @@ &reticle_model_, &gesture_list_); } + void AddGesture(blink::WebGestureEvent::Type type) { + auto gesture = std::make_unique<blink::WebGestureEvent>(); + gesture->SetType(type); + gesture_list_.push_back(std::move(gesture)); + } + protected: std::unique_ptr<UiScene> scene_; std::unique_ptr<UiInputManager> input_manager_; @@ -333,6 +351,65 @@ HandleInput(kForwardVector, kUp); } +// Test scrolling while on an element, moving to another element, and stopping +// scrolling. Upon stop, the former element should have received the scrolling +// events, and the new element should receive the new scrolling events. +TEST_F(UiInputManagerTest, ScrollEndOnAnotherElement) { + StrictMock<MockRect>* p_front_element = CreateAndAddMockElement(-5.0f); + p_front_element->set_scrollable(true); + StrictMock<MockRect>* p_back_element = CreateAndAddMockElement(5.0f); + p_back_element->set_scrollable(true); + + // Scroll on an element. + AddGesture(blink::WebGestureEvent::kGestureScrollBegin); + EXPECT_CALL(*p_front_element, OnScrollBegin(_, _)); + HandleInput(kForwardVector, kUp); + EXPECT_TRUE(gesture_list_.empty()); + AddGesture(blink::WebGestureEvent::kGestureScrollUpdate); + EXPECT_CALL(*p_front_element, OnScrollUpdate(_, _)); + HandleInput(kForwardVector, kUp); + EXPECT_TRUE(gesture_list_.empty()); + + // Move away. + AddGesture(blink::WebGestureEvent::kGestureScrollUpdate); + EXPECT_CALL(*p_front_element, OnScrollUpdate(_, _)); + HandleInput(kBackwardVector, kUp); + EXPECT_TRUE(gesture_list_.empty()); + + // Release scroll. + AddGesture(blink::WebGestureEvent::kGestureScrollEnd); + EXPECT_CALL(*p_front_element, OnScrollEnd(_, _)); + EXPECT_CALL(*p_back_element, OnHoverEnter(_)); + HandleInput(kBackwardVector, kUp); + EXPECT_TRUE(gesture_list_.empty()); + + // Start scrolling on a new element. + AddGesture(blink::WebGestureEvent::kGestureScrollBegin); + EXPECT_CALL(*p_back_element, OnScrollBegin(_, _)); + HandleInput(kBackwardVector, kUp); + EXPECT_TRUE(gesture_list_.empty()); +} + +// Test that scrolling events are transfered to the parent if the child is not +// scrollable. +TEST_F(UiInputManagerTest, ScrollBeginOnChild) { + StrictMock<MockRect>* p_element = CreateAndAddMockElement(-5.0f); + p_element->set_scrollable(true); + auto child = std::make_unique<StrictMock<MockRect>>(); + auto* p_child = child.get(); + child->SetTranslate(0.0f, 0.0f, -5.0f); + child->set_hit_testable(true); + child->set_focusable(true); + p_element->AddChild(std::move(child)); + + AddGesture(blink::WebGestureEvent::kGestureScrollBegin); + EXPECT_CALL(*p_element, OnScrollBegin(_, _)); + EXPECT_CALL(*p_child, OnScrollBegin(_, _)).Times(0); + HandleInput(kForwardVector, kUp); + ASSERT_EQ(p_child->id(), reticle_model_.target_element_id); + EXPECT_TRUE(gesture_list_.empty()); +} + // Test that input is tolerant of disappearing elements. TEST_F(UiInputManagerTest, ElementDeletion) { StrictMock<MockRect>* p_element = CreateAndAddMockElement(-5.f);
diff --git a/chrome/chrome_paks.gni b/chrome/chrome_paks.gni index 9c2c9cbd..fde31eb0 100644 --- a/chrome/chrome_paks.gni +++ b/chrome/chrome_paks.gni
@@ -59,12 +59,10 @@ if (is_chromeos) { sources += [ "$root_gen_dir/ash/components/resources/ash_components_resources_${percent}_percent.pak", - "$root_gen_dir/ash/resources/ash_resources_${percent}_percent.pak", "$root_gen_dir/ui/chromeos/resources/ui_chromeos_resources_${percent}_percent.pak", ] deps += [ "//ash/components/resources", - "//ash/resources", "//ui/chromeos/resources", ] }
diff --git a/chrome/common/extensions/api/developer_private.idl b/chrome/common/extensions/api/developer_private.idl index 0e56d217..68c2ff2 100644 --- a/chrome/common/extensions/api/developer_private.idl +++ b/chrome/common/extensions/api/developer_private.idl
@@ -357,7 +357,9 @@ ERROR_ADDED, ERRORS_REMOVED, PREFS_CHANGED, - WARNINGS_CHANGED + WARNINGS_CHANGED, + COMMAND_ADDED, + COMMAND_REMOVED }; dictionary PackDirectoryResponse {
diff --git a/chrome/test/BUILD.gn b/chrome/test/BUILD.gn index 24c485d..b20e8bee 100644 --- a/chrome/test/BUILD.gn +++ b/chrome/test/BUILD.gn
@@ -3250,7 +3250,6 @@ deps += [ "//ash:test_support_with_content", "//ash/public/cpp/resources:ash_public_unscaled_resources", - "//ash/resources", "//ash/strings", ] } @@ -4882,7 +4881,6 @@ "//ash:interactive_ui_test_support", "//ash/app_list/presenter:test_support", "//ash/public/interfaces:test_interfaces", - "//ash/resources", "//chrome/browser/media/router:test_support", "//chromeos", "//mojo/edk",
diff --git a/chrome/test/android/javatests/src/org/chromium/chrome/test/util/browser/suggestions/ContentSuggestionsTestUtils.java b/chrome/test/android/javatests/src/org/chromium/chrome/test/util/browser/suggestions/ContentSuggestionsTestUtils.java index adc157a..6ce20ac 100644 --- a/chrome/test/android/javatests/src/org/chromium/chrome/test/util/browser/suggestions/ContentSuggestionsTestUtils.java +++ b/chrome/test/android/javatests/src/org/chromium/chrome/test/util/browser/suggestions/ContentSuggestionsTestUtils.java
@@ -173,11 +173,6 @@ } @Override - public void visitSpacingItem() { - describeItem("SPACING"); - } - - @Override public void visitNoSuggestionsItem() { describeItem("NO_SUGGESTIONS"); }
diff --git a/chrome/test/chromedriver/test/run_all_tests.py b/chrome/test/chromedriver/test/run_all_tests.py index 9e2410e4..020d40dd 100755 --- a/chrome/test/chromedriver/test/run_all_tests.py +++ b/chrome/test/chromedriver/test/run_all_tests.py
@@ -241,7 +241,8 @@ chrome_version_name='v%s' % version_name) code2 = RunJavaTests(chromedriver, chrome=chrome_path, chrome_version=version, - chrome_version_name='v%s' % version_name) + chrome_version_name='v%s' % version_name, + verbose=True) code = code or code1 or code2 _KillChromes() shutil.rmtree(temp_dir)
diff --git a/chrome/test/chromedriver/test/test_expectations b/chrome/test/chromedriver/test/test_expectations index 2737ef63..30a2e9e6 100644 --- a/chrome/test/chromedriver/test/test_expectations +++ b/chrome/test/chromedriver/test/test_expectations
@@ -250,38 +250,10 @@ ] _OS_NEGATIVE_FILTER['android:chrome_stable'] = ( _OS_NEGATIVE_FILTER['android:chrome'] + [ - # https://bugs.chromium.org/p/chromedriver/issues/detail?id=2025 - 'PageLoadingTest.testShouldBeAbleToGetAFragmentOnTheCurrentPage', - # https://bugs.chromium.org/p/chromedriver/issues/detail?id=2076 - 'CorrectEventFiringTest.testShouldReportTheXAndYCoordinatesWhenClicking', - # https://bugs.chromium.org/p/chromedriver/issues/detail?id=2077 - 'CorrectEventFiringTest.testShouldEmitClickEventWhenClickingOnATextInputElement', ] ) _OS_NEGATIVE_FILTER['android:chrome_beta'] = ( _OS_NEGATIVE_FILTER['android:chrome'] + [ - # https://bugs.chromium.org/p/chromedriver/issues/detail?id=2286 - 'CorrectEventFiringTest.*', - 'FormHandlingTest.testShouldSubmitAFormUsingTheEnterKey', - 'FormHandlingTest.testShouldSubmitAFormUsingTheNewlineLiteral', - 'JavascriptEnabledDriverTest.testShouldBeAbleToFindElementAfterJavascriptCausesANewPageToLoad', - 'JavascriptEnabledDriverTest.testShouldBeAbleToDetermineTheLocationOfAnElement', - 'JavascriptEnabledDriverTest.testShouldBeAbleToSwitchToFocusedElement', - 'JavascriptEnabledDriverTest.testIfNoElementHasFocusTheActiveElementIsTheBody', - 'JavascriptEnabledDriverTest.testShouldWaitForLoadsToCompleteAfterJavascriptCausesANewPageToLoad', - 'TypingTest.testShouldBeAbleToUseArrowKeys', - 'TypingTest.testShouldReportKeyCodeOfArrowKeysUpDownEvents', - 'TypingTest.testShouldBeAbleToMixUpperAndLowerCaseLetters', - 'BasicMouseInterfaceTest.testDoubleClickThenGet', - 'MiscTest.testShouldReturnTheSourceOfAPage', - 'MiscTest.testClickingShouldNotTrampleWOrHInGlobalScope', - 'MiscTest.testShouldReportTheCurrentUrlCorrectly', - 'MiscTest.testStimulatesStrangeOnloadInteractionInFirefox', - 'ElementAttributeTest.testShouldCorrectlyReportValueOfColspan', - # https://bugs.chromium.org/p/chromedriver/issues/detail?id=2376 - 'ImplicitWaitTest.*', - # https://bugs.chromium.org/p/chromedriver/issues/detail?id=2401 - 'JavascriptEnabledDriverTest.testIssue80ClickShouldGenerateClickEvent', ] ) _OS_NEGATIVE_FILTER['android:chromium'] = (
diff --git a/chrome/test/data/android/render_tests/ContextualSuggestionsTest.suggestion_image_loading.Nexus_5-19.png b/chrome/test/data/android/render_tests/ContextualSuggestionsTest.suggestion_image_loading.Nexus_5-19.png index 7092380..937fdd9 100644 --- a/chrome/test/data/android/render_tests/ContextualSuggestionsTest.suggestion_image_loading.Nexus_5-19.png +++ b/chrome/test/data/android/render_tests/ContextualSuggestionsTest.suggestion_image_loading.Nexus_5-19.png Binary files differ
diff --git a/chrome/test/data/android/render_tests/NewTabPageTest.modern-simplified_new_tab_page.Nexus_5-19.png b/chrome/test/data/android/render_tests/NewTabPageTest.modern-simplified_new_tab_page.Nexus_5-19.png new file mode 100644 index 0000000..78d10f57 --- /dev/null +++ b/chrome/test/data/android/render_tests/NewTabPageTest.modern-simplified_new_tab_page.Nexus_5-19.png Binary files differ
diff --git a/chrome/test/data/android/render_tests/NewTabPageTest.simplified_new_tab_page.Nexus_5-19.png b/chrome/test/data/android/render_tests/NewTabPageTest.simplified_new_tab_page.Nexus_5-19.png new file mode 100644 index 0000000..7c2c34de --- /dev/null +++ b/chrome/test/data/android/render_tests/NewTabPageTest.simplified_new_tab_page.Nexus_5-19.png Binary files differ
diff --git a/chrome/test/data/extensions/api_test/window_update/sizing/test.js b/chrome/test/data/extensions/api_test/window_update/sizing/test.js index bdc59e7..c29ec0c 100644 --- a/chrome/test/data/extensions/api_test/window_update/sizing/test.js +++ b/chrome/test/data/extensions/api_test/window_update/sizing/test.js
@@ -6,7 +6,7 @@ var finalTop = 400; var finalLeft = 10; -var finalWidth = 476 +var finalWidth = 480; var finalHeight = 301; var chromeWindow = null;
diff --git a/chrome/test/data/extensions/platform_apps/url_handlers/launching_pages/navigate.js b/chrome/test/data/extensions/platform_apps/url_handlers/launching_pages/navigate.js index 4e41a9e..94a3cb7a 100644 --- a/chrome/test/data/extensions/platform_apps/url_handlers/launching_pages/navigate.js +++ b/chrome/test/data/extensions/platform_apps/url_handlers/launching_pages/navigate.js
@@ -6,10 +6,9 @@ var target_dir = '/extensions/platform_apps/url_handlers/common/'; var link = document.getElementById('link'); var mismatching_link = document.getElementById('mismatching_link'); - var prerender_link = document.getElementById('prerender_link'); var form = document.getElementById('form'); - if (link || mismatching_link || prerender_link || form) { + if (link || mismatching_link || form) { var clickEvent = document.createEvent('MouseEvents'); clickEvent.initMouseEvent('click', true, true, window, 0, 0, 0, 0, 0, false, false, @@ -31,19 +30,6 @@ mismatching_link.dispatchEvent(clickEvent); } - if (prerender_link) { - console.log("Prerendering a link"); - prerender_link.href = target_dir + "target.html"; - var prerender = document.createElement("link"); - prerender.rel = "prerender"; - prerender.href = prerender_link.href; - prerender.addEventListener("webkitprerenderstop", function() { - console.log("Prerender aborted. Clicking link"); - prerender_link.dispatchEvent(clickEvent); - }); - document.body.appendChild(prerender); - } - if (form) { console.log("Submitting a form"); form.action = target_dir + 'target.html';
diff --git a/chrome/test/data/extensions/platform_apps/url_handlers/launching_pages/prerender_link.html b/chrome/test/data/extensions/platform_apps/url_handlers/launching_pages/prerender_link.html deleted file mode 100644 index ddbbff7..0000000 --- a/chrome/test/data/extensions/platform_apps/url_handlers/launching_pages/prerender_link.html +++ /dev/null
@@ -1,12 +0,0 @@ -<!-- - * Copyright 2014 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. ---> -<html> -<body> -I'm a page that prerenders and then click a regular link. -<div><a id="prerender_link">Prerendered link</a></div> -<script src="navigate.js"></script> -</body> -</html>
diff --git a/chrome/test/data/webui/extensions/test_service.js b/chrome/test/data/webui/extensions/test_service.js index 3bf0e78..097a556e 100644 --- a/chrome/test/data/webui/extensions/test_service.js +++ b/chrome/test/data/webui/extensions/test_service.js
@@ -15,6 +15,7 @@ 'reloadItem', 'setProfileInDevMode', 'setShortcutHandlingSuspended', + 'shouldIgnoreUpdate', 'updateAllExtensions', 'updateExtensionCommandKeybinding', 'updateExtensionCommandScope', @@ -78,6 +79,11 @@ } /** @override */ + shouldIgnoreUpdate(extensionId, eventType) { + this.methodCalled('shouldIgnoreUpdate', [extensionId, eventType]); + } + + /** @override */ updateExtensionCommandKeybinding(item, commandName, keybinding) { this.methodCalled( 'updateExtensionCommandKeybinding', [item, commandName, keybinding]);
diff --git a/chrome/test/data/webui/settings/settings_passwords_section_browsertest.js b/chrome/test/data/webui/settings/settings_passwords_section_browsertest.js index 998beb7..58c8ab3 100644 --- a/chrome/test/data/webui/settings/settings_passwords_section_browsertest.js +++ b/chrome/test/data/webui/settings/settings_passwords_section_browsertest.js
@@ -114,7 +114,7 @@ * @private */ function flushPasswordSection(passwordsSection) { - passwordsSection.$.passwordList.notifyResize(); + passwordsSection.notifySplices('savedPasswords'); Polymer.dom.flush(); }
diff --git a/chromecast/BUILD.gn b/chromecast/BUILD.gn index 8c9091df..6700b48 100644 --- a/chromecast/BUILD.gn +++ b/chromecast/BUILD.gn
@@ -206,8 +206,10 @@ if (target_os == "linux") { if (is_cast_desktop_build) { # Disable PartitionAllocReturnNullTest.RepeatedReturnNullDirect (b/67975693) - gtest_excludes += - [ "PartitionAllocReturnNullTest.RepeatedReturnNullDirect" ] + gtest_excludes += [ + "PartitionAllocReturnNullTest.RepeatedReturnNullDirect", + "PartitionReallocReturnNullTest.RepeatedReturnNullDirect", + ] } else { # Disable ProcessMetricsTest.GetNumberOfThreads (b/15610509) # Disable ProcessUtilTest.* (need to define OS_ANDROID)
diff --git a/chromecast/browser/BUILD.gn b/chromecast/browser/BUILD.gn index 753238e..ba38784e 100644 --- a/chromecast/browser/BUILD.gn +++ b/chromecast/browser/BUILD.gn
@@ -104,11 +104,10 @@ "//chromecast/base:cast_sys_info", "//chromecast/base:cast_version", "//chromecast/browser:resources", - "//chromecast/browser/bluetooth/public/interfaces", + "//chromecast/browser/bluetooth/public/mojom", "//chromecast/common", - "//chromecast/common:interfaces", "//chromecast/common/media", - "//chromecast/common/media:interfaces", + "//chromecast/common/mojom", "//chromecast/graphics", "//chromecast/media", "//chromecast/media:libcast_media",
diff --git a/chromecast/browser/application_media_capabilities.h b/chromecast/browser/application_media_capabilities.h index a117b89a..b19f8382 100644 --- a/chromecast/browser/application_media_capabilities.h +++ b/chromecast/browser/application_media_capabilities.h
@@ -6,7 +6,7 @@ #define CHROMECAST_BROWSER_APPLICATION_MEDIA_CAPABILITIES_H_ #include "base/macros.h" -#include "chromecast/common/application_media_capabilities.mojom.h" +#include "chromecast/common/mojom/application_media_capabilities.mojom.h" #include "mojo/public/cpp/bindings/binding_set.h" #include "mojo/public/cpp/bindings/interface_ptr_set.h"
diff --git a/chromecast/browser/bluetooth/cast_bluetooth_chooser.h b/chromecast/browser/bluetooth/cast_bluetooth_chooser.h index f3d0fdd..60cbd02 100644 --- a/chromecast/browser/bluetooth/cast_bluetooth_chooser.h +++ b/chromecast/browser/bluetooth/cast_bluetooth_chooser.h
@@ -8,7 +8,7 @@ #include <string> #include <unordered_set> -#include "chromecast/browser/bluetooth/public/interfaces/web_bluetooth.mojom.h" +#include "chromecast/browser/bluetooth/public/mojom/web_bluetooth.mojom.h" #include "content/public/browser/bluetooth_chooser.h" #include "mojo/public/cpp/bindings/binding.h" #include "mojo/public/cpp/bindings/interface_request.h" @@ -62,4 +62,4 @@ } // namespace chromecast -#endif // CHROMECAST_BROWSER_BLUETOOTH_CAST_BLUETOOTH_CHOOSER_H_ \ No newline at end of file +#endif // CHROMECAST_BROWSER_BLUETOOTH_CAST_BLUETOOTH_CHOOSER_H_
diff --git a/chromecast/browser/bluetooth/public/interfaces/BUILD.gn b/chromecast/browser/bluetooth/public/mojom/BUILD.gn similarity index 94% rename from chromecast/browser/bluetooth/public/interfaces/BUILD.gn rename to chromecast/browser/bluetooth/public/mojom/BUILD.gn index f0dab053..5340c0d 100644 --- a/chromecast/browser/bluetooth/public/interfaces/BUILD.gn +++ b/chromecast/browser/bluetooth/public/mojom/BUILD.gn
@@ -6,7 +6,7 @@ # TODO(slan): This likely falls in the class of interfaces that are provided by # the browser. We should consider putting these in a common location. -mojom("interfaces") { +mojom("mojom") { sources = [ "web_bluetooth.mojom", ]
diff --git a/chromecast/browser/bluetooth/public/interfaces/OWNERS b/chromecast/browser/bluetooth/public/mojom/OWNERS similarity index 100% rename from chromecast/browser/bluetooth/public/interfaces/OWNERS rename to chromecast/browser/bluetooth/public/mojom/OWNERS
diff --git a/chromecast/browser/bluetooth/public/interfaces/web_bluetooth.mojom b/chromecast/browser/bluetooth/public/mojom/web_bluetooth.mojom similarity index 100% rename from chromecast/browser/bluetooth/public/interfaces/web_bluetooth.mojom rename to chromecast/browser/bluetooth/public/mojom/web_bluetooth.mojom
diff --git a/chromecast/browser/media/media_caps_impl.h b/chromecast/browser/media/media_caps_impl.h index c5c8a88..5ba384c 100644 --- a/chromecast/browser/media/media_caps_impl.h +++ b/chromecast/browser/media/media_caps_impl.h
@@ -8,7 +8,7 @@ #include <vector> #include "base/macros.h" -#include "chromecast/common/media/media_caps.mojom.h" +#include "chromecast/common/mojom/media_caps.mojom.h" #include "mojo/public/cpp/bindings/binding_set.h" #include "mojo/public/cpp/bindings/interface_ptr_set.h" #include "ui/gfx/geometry/size.h"
diff --git a/chromecast/browser/memory_pressure_controller_impl.h b/chromecast/browser/memory_pressure_controller_impl.h index d2fce503..bfeeb22 100644 --- a/chromecast/browser/memory_pressure_controller_impl.h +++ b/chromecast/browser/memory_pressure_controller_impl.h
@@ -7,7 +7,7 @@ #include "base/macros.h" #include "base/memory/memory_pressure_listener.h" -#include "chromecast/common/memory_pressure.mojom.h" +#include "chromecast/common/mojom/memory_pressure.mojom.h" #include "mojo/public/cpp/bindings/binding_set.h" #include "mojo/public/cpp/bindings/interface_ptr_set.h"
diff --git a/chromecast/common/BUILD.gn b/chromecast/common/BUILD.gn index 96d9ce4d..92ad341c 100644 --- a/chromecast/common/BUILD.gn +++ b/chromecast/common/BUILD.gn
@@ -30,6 +30,10 @@ sources += [ "cast_extensions_client.cc", "cast_extensions_client.h", + "extensions_api/cast_aliases.cc", + "extensions_api/cast_aliases.h", + "extensions_api/cast_api_permissions.cc", + "extensions_api/cast_api_permissions.h", "extensions_api/cast_extension_messages.cc", "extensions_api/cast_extension_messages.h", ] @@ -48,13 +52,3 @@ ] } } - -mojom("interfaces") { - sources = [ - "application_media_capabilities.mojom", - ] - - if (!is_android) { - sources += [ "memory_pressure.mojom" ] - } -}
diff --git a/chromecast/common/cast_extensions_client.cc b/chromecast/common/cast_extensions_client.cc index fd643130..a2b8a3e 100644 --- a/chromecast/common/cast_extensions_client.cc +++ b/chromecast/common/cast_extensions_client.cc
@@ -10,7 +10,9 @@ #include "base/lazy_instance.h" #include "base/logging.h" #include "base/macros.h" +#include "chromecast/common/extensions_api/cast_aliases.h" #include "chromecast/common/extensions_api/cast_api_features.h" +#include "chromecast/common/extensions_api/cast_api_permissions.h" #include "chromecast/common/extensions_api/cast_behavior_features.h" #include "chromecast/common/extensions_api/cast_manifest_features.h" #include "chromecast/common/extensions_api/cast_permission_features.h" @@ -93,6 +95,8 @@ ManifestHandler::FinalizeRegistration(); // TODO(jamescook): Do we need to whitelist any extensions? + PermissionsInfo::GetInstance()->AddProvider(cast_api_permissions_, + GetCastPermissionAliases()); PermissionsInfo::GetInstance()->AddProvider(extensions_api_permissions_, GetExtensionsPermissionAliases()); }
diff --git a/chromecast/common/cast_extensions_client.h b/chromecast/common/cast_extensions_client.h index 33cb442e..732d50d3 100644 --- a/chromecast/common/cast_extensions_client.h +++ b/chromecast/common/cast_extensions_client.h
@@ -7,6 +7,7 @@ #include "base/compiler_specific.h" #include "base/macros.h" +#include "chromecast/common/extensions_api/cast_api_permissions.h" #include "extensions/common/extensions_client.h" #include "extensions/common/permissions/extensions_api_permissions.h" #include "url/gurl.h" @@ -48,6 +49,7 @@ std::string GetUserAgent() const override; private: + const CastAPIPermissions cast_api_permissions_; const ExtensionsAPIPermissions extensions_api_permissions_; ScriptingWhitelist scripting_whitelist_;
diff --git a/chromecast/common/extensions_api/cast_aliases.cc b/chromecast/common/extensions_api/cast_aliases.cc new file mode 100644 index 0000000..ef2b41f --- /dev/null +++ b/chromecast/common/extensions_api/cast_aliases.cc
@@ -0,0 +1,15 @@ +// 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. + +#include "chromecast/common/extensions_api/cast_aliases.h" + +namespace extensions { + +std::vector<Alias> GetCastPermissionAliases() { + // In alias constructor, first value is the alias name; second value is the + // real name. See also alias.h. + return {Alias("windows", "tabs")}; +} + +} // namespace extensions
diff --git a/chromecast/common/extensions_api/cast_aliases.h b/chromecast/common/extensions_api/cast_aliases.h new file mode 100644 index 0000000..bd4804a --- /dev/null +++ b/chromecast/common/extensions_api/cast_aliases.h
@@ -0,0 +1,18 @@ +// 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 CHROMECAST_COMMON_EXTENSIONS_API_CAST_ALIASES_H_ +#define CHROMECAST_COMMON_EXTENSIONS_API_CAST_ALIASES_H_ + +#include <vector> + +#include "extensions/common/alias.h" + +namespace extensions { + +std::vector<Alias> GetCastPermissionAliases(); + +} // namespace extensions + +#endif // CHROMECAST_COMMON_EXTENSIONS_API_CAST_ALIASES_H_
diff --git a/chromecast/common/extensions_api/cast_api_permissions.cc b/chromecast/common/extensions_api/cast_api_permissions.cc new file mode 100644 index 0000000..5616d2c --- /dev/null +++ b/chromecast/common/extensions_api/cast_api_permissions.cc
@@ -0,0 +1,76 @@ +// Copyright (c) 2013 The Chromium Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +#include "chromecast/common/extensions_api/cast_api_permissions.h" + +#include <stddef.h> + +#include <memory> + +#include "base/macros.h" +#include "base/memory/ptr_util.h" +#include "extensions/common/permissions/api_permission.h" +#include "extensions/common/permissions/api_permission_set.h" +#include "extensions/common/permissions/media_galleries_permission.h" +#include "extensions/common/permissions/permissions_info.h" +#include "extensions/common/permissions/settings_override_permission.h" + +namespace extensions { + +namespace { + +template <typename T> +APIPermission* CreateAPIPermission(const APIPermissionInfo* permission) { + return new T(permission); +} + +} // namespace + +std::vector<std::unique_ptr<APIPermissionInfo>> +CastAPIPermissions::GetAllPermissions() const { + // WARNING: If you are modifying a permission message in this list, be sure to + // add the corresponding permission message rule to + // CastPermissionMessageProvider::GetPermissionMessages as well. + APIPermissionInfo::InitInfo permissions_to_register[] = { + // Register permissions for all extension types. + {APIPermission::kIdentity, "identity"}, + {APIPermission::kExperimental, "experimental", + APIPermissionInfo::kFlagCannotBeOptional}, + {APIPermission::kNotifications, "notifications"}, + + // Register extension permissions. + {APIPermission::kAccessibilityFeaturesModify, + "accessibilityFeatures.modify"}, + {APIPermission::kAccessibilityFeaturesRead, "accessibilityFeatures.read"}, + {APIPermission::kAccessibilityPrivate, "accessibilityPrivate", + APIPermissionInfo::kFlagCannotBeOptional}, + {APIPermission::kBookmark, "bookmarks"}, + {APIPermission::kBrailleDisplayPrivate, "brailleDisplayPrivate", + APIPermissionInfo::kFlagCannotBeOptional}, + {APIPermission::kHistory, "history"}, + {APIPermission::kTab, "tabs"}, + {APIPermission::kTts, "tts", APIPermissionInfo::kFlagCannotBeOptional}, + {APIPermission::kTtsEngine, "ttsEngine", + APIPermissionInfo::kFlagCannotBeOptional}, + + // Register private permissions. + {APIPermission::kCommandsAccessibility, "commands.accessibility", + APIPermissionInfo::kFlagCannotBeOptional}, + {APIPermission::kCommandLinePrivate, "commandLinePrivate", + APIPermissionInfo::kFlagCannotBeOptional}, + {APIPermission::kIdentityPrivate, "identityPrivate", + APIPermissionInfo::kFlagCannotBeOptional}, + {APIPermission::kVirtualKeyboardPrivate, "virtualKeyboardPrivate", + APIPermissionInfo::kFlagCannotBeOptional}, + }; + + std::vector<std::unique_ptr<APIPermissionInfo>> permissions; + + for (size_t i = 0; i < arraysize(permissions_to_register); ++i) + permissions.push_back( + base::WrapUnique(new APIPermissionInfo(permissions_to_register[i]))); + return permissions; +} + +} // namespace extensions
diff --git a/chromecast/common/extensions_api/cast_api_permissions.h b/chromecast/common/extensions_api/cast_api_permissions.h new file mode 100644 index 0000000..3d35bb1 --- /dev/null +++ b/chromecast/common/extensions_api/cast_api_permissions.h
@@ -0,0 +1,24 @@ +// Copyright (c) 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 CHROMECAST_COMMON_EXTENSIONS_API_CAST_API_PERMISSIONS_H_ +#define CHROMECAST_COMMON_EXTENSIONS_API_CAST_API_PERMISSIONS_H_ + +#include <vector> + +#include "base/compiler_specific.h" +#include "extensions/common/permissions/permissions_provider.h" + +namespace extensions { + +// Registers the permissions used in Cast with the PermissionsInfo global. +class CastAPIPermissions : public PermissionsProvider { + public: + std::vector<std::unique_ptr<APIPermissionInfo>> GetAllPermissions() + const override; +}; + +} // namespace extensions + +#endif // CHROMECAST_COMMON_EXTENSIONS_API_CAST_API_PERMISSIONS_H_
diff --git a/chromecast/common/media/BUILD.gn b/chromecast/common/media/BUILD.gn index 90be8ed..2b42534 100644 --- a/chromecast/common/media/BUILD.gn +++ b/chromecast/common/media/BUILD.gn
@@ -24,9 +24,3 @@ public_configs = [ "//chromecast:playready_config" ] } } - -mojom("interfaces") { - sources = [ - "media_caps.mojom", - ] -}
diff --git a/chromecast/common/mojom/BUILD.gn b/chromecast/common/mojom/BUILD.gn new file mode 100644 index 0000000..d8a9b21 --- /dev/null +++ b/chromecast/common/mojom/BUILD.gn
@@ -0,0 +1,13 @@ +# 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("//mojo/public/tools/bindings/mojom.gni") + +mojom("mojom") { + sources = [ + "application_media_capabilities.mojom", + "media_caps.mojom", + "memory_pressure.mojom", + ] +}
diff --git a/chromecast/browser/bluetooth/public/interfaces/OWNERS b/chromecast/common/mojom/OWNERS similarity index 100% copy from chromecast/browser/bluetooth/public/interfaces/OWNERS copy to chromecast/common/mojom/OWNERS
diff --git a/chromecast/common/application_media_capabilities.mojom b/chromecast/common/mojom/application_media_capabilities.mojom similarity index 100% rename from chromecast/common/application_media_capabilities.mojom rename to chromecast/common/mojom/application_media_capabilities.mojom
diff --git a/chromecast/common/media/media_caps.mojom b/chromecast/common/mojom/media_caps.mojom similarity index 100% rename from chromecast/common/media/media_caps.mojom rename to chromecast/common/mojom/media_caps.mojom
diff --git a/chromecast/common/memory_pressure.mojom b/chromecast/common/mojom/memory_pressure.mojom similarity index 100% rename from chromecast/common/memory_pressure.mojom rename to chromecast/common/mojom/memory_pressure.mojom
diff --git a/chromecast/renderer/BUILD.gn b/chromecast/renderer/BUILD.gn index e7c83e7..74c8037 100644 --- a/chromecast/renderer/BUILD.gn +++ b/chromecast/renderer/BUILD.gn
@@ -48,8 +48,8 @@ "//base", "//chromecast:chromecast_buildflags", "//chromecast/base", - "//chromecast/common:interfaces", "//chromecast/common/media", + "//chromecast/common/mojom", "//chromecast/media", "//components/network_hints/renderer", "//content/public/common", @@ -72,7 +72,7 @@ ] deps += [ - "//chromecast/common:interfaces", + "//chromecast/common/mojom", "//mojo/public/cpp/bindings", ] } @@ -88,8 +88,8 @@ ] deps += [ - "//chromecast/common/extensions_api:api", "//chromecast/common", + "//chromecast/common/extensions_api:api", "//extensions/common", "//extensions/renderer", "//gin:gin",
diff --git a/chromecast/renderer/cast_content_renderer_client.h b/chromecast/renderer/cast_content_renderer_client.h index df02db98..5195053 100644 --- a/chromecast/renderer/cast_content_renderer_client.h +++ b/chromecast/renderer/cast_content_renderer_client.h
@@ -11,7 +11,7 @@ #include "base/macros.h" #include "build/build_config.h" #include "chromecast/chromecast_buildflags.h" -#include "chromecast/common/application_media_capabilities.mojom.h" +#include "chromecast/common/mojom/application_media_capabilities.mojom.h" #include "content/public/renderer/content_renderer_client.h" #include "media/base/audio_codecs.h" #include "mojo/public/cpp/bindings/binding.h"
diff --git a/chromecast/renderer/media/BUILD.gn b/chromecast/renderer/media/BUILD.gn index 5d8f5580..799c41c 100644 --- a/chromecast/renderer/media/BUILD.gn +++ b/chromecast/renderer/media/BUILD.gn
@@ -15,7 +15,7 @@ deps = [ "//base", "//chromecast:chromecast_buildflags", - "//chromecast/common/media:interfaces", + "//chromecast/common/mojom", "//chromecast/media", "//chromecast/media/cdm", "//chromecast/public:public",
diff --git a/chromecast/renderer/media/media_caps_observer_impl.h b/chromecast/renderer/media/media_caps_observer_impl.h index 4f16cfe0..7d42939e 100644 --- a/chromecast/renderer/media/media_caps_observer_impl.h +++ b/chromecast/renderer/media/media_caps_observer_impl.h
@@ -8,7 +8,7 @@ #include <memory> #include "base/macros.h" -#include "chromecast/common/media/media_caps.mojom.h" +#include "chromecast/common/mojom/media_caps.mojom.h" #include "chromecast/media/base/supported_codec_profile_levels_memo.h" #include "mojo/public/cpp/bindings/binding.h" #include "ui/gfx/geometry/size.h"
diff --git a/chromecast/renderer/memory_pressure_observer_impl.h b/chromecast/renderer/memory_pressure_observer_impl.h index 2acca5c0..fb71957 100644 --- a/chromecast/renderer/memory_pressure_observer_impl.h +++ b/chromecast/renderer/memory_pressure_observer_impl.h
@@ -6,7 +6,7 @@ #define CHROMECAST_RENDERER_MEMORY_PRESSURE_OBSERVER_IMPL_H_ #include "base/macros.h" -#include "chromecast/common/memory_pressure.mojom.h" +#include "chromecast/common/mojom/memory_pressure.mojom.h" #include "mojo/public/cpp/bindings/binding.h" namespace chromecast {
diff --git a/chromeos/BUILD.gn b/chromeos/BUILD.gn index 194e160..6774ff1 100644 --- a/chromeos/BUILD.gn +++ b/chromeos/BUILD.gn
@@ -269,6 +269,8 @@ "dbus/services/chrome_features_service_provider.h", "dbus/services/cros_dbus_service.cc", "dbus/services/cros_dbus_service.h", + "dbus/services/drive_file_stream_service_provider.cc", + "dbus/services/drive_file_stream_service_provider.h", "dbus/services/liveness_service_provider.cc", "dbus/services/liveness_service_provider.h", "dbus/services/proxy_resolution_service_provider.cc", @@ -547,6 +549,7 @@ sources = [ "dbus/services/org.chromium.ChromeFeaturesService.conf", "dbus/services/org.chromium.DisplayService.conf", + "dbus/services/org.chromium.DriveFileStreamService.conf", "dbus/services/org.chromium.KioskAppService.conf", "dbus/services/org.chromium.LibCrosService.conf", "dbus/services/org.chromium.LivenessService.conf",
diff --git a/chromeos/components/drivefs/BUILD.gn b/chromeos/components/drivefs/BUILD.gn index 6b24f78..42adf7c 100644 --- a/chromeos/components/drivefs/BUILD.gn +++ b/chromeos/components/drivefs/BUILD.gn
@@ -6,6 +6,8 @@ component("drivefs") { sources = [ + "drive_file_stream_service_provider_delegate.cc", + "drive_file_stream_service_provider_delegate.h", "drivefs_host.cc", "drivefs_host.h", "pending_connection_manager.cc", @@ -16,6 +18,7 @@ "//chromeos", "//chromeos/components/drivefs/mojom", "//components/account_id", + "//dbus", "//mojo/edk", "//mojo/public/cpp/bindings", ]
diff --git a/chromeos/components/drivefs/drive_file_stream_service_provider_delegate.cc b/chromeos/components/drivefs/drive_file_stream_service_provider_delegate.cc new file mode 100644 index 0000000..f53fe31 --- /dev/null +++ b/chromeos/components/drivefs/drive_file_stream_service_provider_delegate.cc
@@ -0,0 +1,25 @@ +// 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 "chromeos/components/drivefs/drive_file_stream_service_provider_delegate.h" + +#include <utility> + +#include "chromeos/components/drivefs/pending_connection_manager.h" + +namespace drivefs { + +DriveFileStreamServiceProviderDelegate:: + DriveFileStreamServiceProviderDelegate() = default; +DriveFileStreamServiceProviderDelegate:: + ~DriveFileStreamServiceProviderDelegate() = default; + +bool DriveFileStreamServiceProviderDelegate::OpenIpcChannel( + const std::string& identity, + base::ScopedFD ipc_channel) { + return PendingConnectionManager::Get().OpenIpcChannel(identity, + std::move(ipc_channel)); +} + +} // namespace drivefs
diff --git a/chromeos/components/drivefs/drive_file_stream_service_provider_delegate.h b/chromeos/components/drivefs/drive_file_stream_service_provider_delegate.h new file mode 100644 index 0000000..06e162e --- /dev/null +++ b/chromeos/components/drivefs/drive_file_stream_service_provider_delegate.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 CHROMEOS_COMPONENTS_DRIVEFS_DRIVE_FILE_STREAM_SERVICE_PROVIDER_DELEGATE_H_ +#define CHROMEOS_COMPONENTS_DRIVEFS_DRIVE_FILE_STREAM_SERVICE_PROVIDER_DELEGATE_H_ + +#include <string> + +#include "base/compiler_specific.h" +#include "base/component_export.h" +#include "base/files/scoped_file.h" +#include "base/macros.h" +#include "chromeos/dbus/services/drive_file_stream_service_provider.h" + +namespace drivefs { + +// DriveFileStreamServiceProvider::Delegate implementation. +class COMPONENT_EXPORT(DRIVEFS) DriveFileStreamServiceProviderDelegate + : public chromeos::DriveFileStreamServiceProvider::Delegate { + public: + DriveFileStreamServiceProviderDelegate(); + ~DriveFileStreamServiceProviderDelegate() override; + + // DriveFileStreamServiceProvider::Delegate overrides: + bool OpenIpcChannel(const std::string& identity, + base::ScopedFD ipc_channel) override; + + private: + DISALLOW_COPY_AND_ASSIGN(DriveFileStreamServiceProviderDelegate); +}; + +} // namespace drivefs + +#endif // CHROMEOS_COMPONENTS_DRIVEFS_DRIVE_FILE_STREAM_SERVICE_PROVIDER_DELEGATE_H_
diff --git a/chromeos/dbus/services/drive_file_stream_service_provider.cc b/chromeos/dbus/services/drive_file_stream_service_provider.cc new file mode 100644 index 0000000..038134aa --- /dev/null +++ b/chromeos/dbus/services/drive_file_stream_service_provider.cc
@@ -0,0 +1,59 @@ +// 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 "chromeos/dbus/services/drive_file_stream_service_provider.h" + +#include <utility> + +#include "base/bind.h" +#include "dbus/message.h" +#include "third_party/cros_system_api/dbus/service_constants.h" + +namespace chromeos { + +DriveFileStreamServiceProvider::DriveFileStreamServiceProvider( + std::unique_ptr<Delegate> delegate) + : delegate_(std::move(delegate)), weak_ptr_factory_(this) {} + +DriveFileStreamServiceProvider::~DriveFileStreamServiceProvider() = default; + +void DriveFileStreamServiceProvider::Start( + scoped_refptr<dbus::ExportedObject> exported_object) { + exported_object->ExportMethod( + drivefs::kDriveFileStreamInterface, + drivefs::kDriveFileStreamOpenIpcChannelMethod, + base::BindRepeating(&DriveFileStreamServiceProvider::HandleOpenIpcChannel, + weak_ptr_factory_.GetWeakPtr()), + base::BindRepeating([](const std::string& interface_name, + const std::string& method_name, bool success) { + LOG_IF(ERROR, !success) + << "Failed to export " << interface_name << "." << method_name; + })); +} + +void DriveFileStreamServiceProvider::HandleOpenIpcChannel( + dbus::MethodCall* method_call, + dbus::ExportedObject::ResponseSender response_sender) { + std::string id; + base::ScopedFD fd; + dbus::MessageReader reader(method_call); + if (!reader.PopString(&id)) { + response_sender.Run(dbus::ErrorResponse::FromMethodCall( + method_call, DBUS_ERROR_INVALID_ARGS, "First argument is not string.")); + return; + } + if (!reader.PopFileDescriptor(&fd)) { + response_sender.Run(dbus::ErrorResponse::FromMethodCall( + method_call, DBUS_ERROR_INVALID_ARGS, "Second argument is not FD.")); + return; + } + if (!delegate_->OpenIpcChannel(id, std::move(fd))) { + response_sender.Run(dbus::ErrorResponse::FromMethodCall( + method_call, DBUS_ERROR_FAILED, "Failed to open IPC")); + return; + } + response_sender.Run(dbus::Response::FromMethodCall(method_call)); +} + +} // namespace chromeos
diff --git a/chromeos/dbus/services/drive_file_stream_service_provider.h b/chromeos/dbus/services/drive_file_stream_service_provider.h new file mode 100644 index 0000000..fc622bd --- /dev/null +++ b/chromeos/dbus/services/drive_file_stream_service_provider.h
@@ -0,0 +1,69 @@ +// 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 CHROMEOS_DBUS_SERVICES_DRIVE_FILE_STREAM_SERVICE_PROVIDER_H_ +#define CHROMEOS_DBUS_SERVICES_DRIVE_FILE_STREAM_SERVICE_PROVIDER_H_ + +#include <stdint.h> + +#include <memory> +#include <string> + +#include "base/compiler_specific.h" +#include "base/files/scoped_file.h" +#include "base/macros.h" +#include "base/memory/ref_counted.h" +#include "base/memory/weak_ptr.h" +#include "chromeos/chromeos_export.h" +#include "chromeos/dbus/services/cros_dbus_service.h" +#include "dbus/exported_object.h" + +namespace dbus { +class MethodCall; +} + +namespace chromeos { + +// DriveFileStreamServiceProvider exposes D-Bus methods which will be +// called by the DriveFileStream service - new implementation of Drive +// cloud storage support for ChromeOS. It allows establishing IPC between +// system service and the browser delegating auth and UI interactions +// to the browser. +class CHROMEOS_EXPORT DriveFileStreamServiceProvider + : public CrosDBusService::ServiceProviderInterface { + public: + class Delegate { + public: + virtual ~Delegate() {} + + // Establishes direct IPC link between the instance of + // DriveFileStreamService and Chrome. + virtual bool OpenIpcChannel(const std::string& identity, + base::ScopedFD ipc_channel) = 0; + }; + + explicit DriveFileStreamServiceProvider(std::unique_ptr<Delegate> delegate); + ~DriveFileStreamServiceProvider() override; + + // CrosDBusService::ServiceProviderInterface overrides: + void Start(scoped_refptr<dbus::ExportedObject> exported_object) override; + + private: + // Called on UI thread to handle incoming D-Bus method calls. + void HandleOpenIpcChannel( + dbus::MethodCall* method_call, + dbus::ExportedObject::ResponseSender response_sender); + + const std::unique_ptr<Delegate> delegate_; + + // Keep this last so that all weak pointers will be invalidated at the + // beginning of destruction. + base::WeakPtrFactory<DriveFileStreamServiceProvider> weak_ptr_factory_; + + DISALLOW_COPY_AND_ASSIGN(DriveFileStreamServiceProvider); +}; + +} // namespace chromeos + +#endif // CHROMEOS_DBUS_SERVICES_DRIVE_FILE_STREAM_SERVICE_PROVIDER_H_
diff --git a/chromeos/dbus/services/org.chromium.DriveFileStreamService.conf b/chromeos/dbus/services/org.chromium.DriveFileStreamService.conf new file mode 100644 index 0000000..01b8e48 --- /dev/null +++ b/chromeos/dbus/services/org.chromium.DriveFileStreamService.conf
@@ -0,0 +1,17 @@ +<!DOCTYPE busconfig PUBLIC "-//freedesktop//DTD D-BUS Bus Configuration 1.0//EN" + "http://www.freedesktop.org/standards/dbus/1.0/busconfig.dtd"> +<!-- + 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. +--> +<busconfig> + <policy user="chronos"> + <allow own="org.chromium.DriveFileStream"/> + </policy> + + <policy user="fuse-drivefs"> + <allow send_destination="org.chromium.DriveFileStream" + send_interface="org.chromium.DriveFileStream"/> + </policy> +</busconfig>
diff --git a/components/arc/arc_features.cc b/components/arc/arc_features.cc index 02e5403..355a78b 100644 --- a/components/arc/arc_features.cc +++ b/components/arc/arc_features.cc
@@ -24,7 +24,7 @@ // Controls ARC USB host integration. // When enabled, Android apps will be able to use usb host features. const base::Feature kUsbHostFeature{"ArcUsbHost", - base::FEATURE_DISABLED_BY_DEFAULT}; + base::FEATURE_ENABLED_BY_DEFAULT}; // Controls ARC VPN integration. // When enabled, Chrome traffic will be routed through VPNs connected in
diff --git a/components/google/core/browser/google_util.cc b/components/google/core/browser/google_util.cc index 2820e03..5d712f7 100644 --- a/components/google/core/browser/google_util.cc +++ b/components/google/core/browser/google_util.cc
@@ -175,7 +175,8 @@ // TODO(igorcov): This needs a fix for case when the host has a trailing dot, // like "google.com./". https://crbug.com/720295. const size_t last_dot = google_hostname.find_last_of('.'); - DCHECK_NE(std::string::npos, last_dot); + if (last_dot == std::string::npos) + return std::string(); base::StringPiece country_code = google_hostname.substr(last_dot + 1); // Assume the com TLD implies the US. if (country_code == "com")
diff --git a/components/google/core/browser/google_util.h b/components/google/core/browser/google_util.h index de1f15d6..77ded28 100644 --- a/components/google/core/browser/google_util.h +++ b/components/google/core/browser/google_util.h
@@ -36,6 +36,7 @@ const std::string& application_locale); // Returns the Google country code string for the given Google homepage URL. +// Returns an empty string if |google_homepage_url| contains no country code. std::string GetGoogleCountryCode(const GURL& google_homepage_url); // Returns the Google search URL for the given Google homepage URL.
diff --git a/components/infobars/core/infobar_delegate.h b/components/infobars/core/infobar_delegate.h index 6e72ea8..7e7857c 100644 --- a/components/infobars/core/infobar_delegate.h +++ b/components/infobars/core/infobar_delegate.h
@@ -150,6 +150,7 @@ NEAR_OOM_INFOBAR_ANDROID = 79, INSTALLABLE_AMBIENT_BADGE_INFOBAR_DELEGATE = 80, PAGE_LOAD_CAPPING_INFOBAR_DELEGATE = 81, + DOWNLOAD_PROGRESS_INFOBAR_ANDROID = 82, }; // Describes navigation events, used to decide whether infobars should be
diff --git a/components/network_session_configurator/common/network_features.cc b/components/network_session_configurator/common/network_features.cc index 107293de..bdcd109 100644 --- a/components/network_session_configurator/common/network_features.cc +++ b/components/network_session_configurator/common/network_features.cc
@@ -4,12 +4,19 @@ #include "components/network_session_configurator/common/network_features.h" +#include "build/build_config.h" + namespace features { const base::Feature kTokenBinding{"token-binding", base::FEATURE_DISABLED_BY_DEFAULT}; +#if defined(OS_ANDROID) +// TODO(nharper): Disable kChannelID on all platforms in M69. const base::Feature kChannelID{"channel-id", base::FEATURE_ENABLED_BY_DEFAULT}; +#else +const base::Feature kChannelID{"channel-id", base::FEATURE_DISABLED_BY_DEFAULT}; +#endif // defined(OS_ANDROID) const base::Feature kDnsOverHttps{"dns-over-https", base::FEATURE_DISABLED_BY_DEFAULT};
diff --git a/components/offline_pages/core/offline_page_feature.cc b/components/offline_pages/core/offline_page_feature.cc index 5e237d6..f25efba9 100644 --- a/components/offline_pages/core/offline_page_feature.cc +++ b/components/offline_pages/core/offline_page_feature.cc
@@ -64,7 +64,7 @@ "OfflinePagesDescriptiveFailStatus", base::FEATURE_DISABLED_BY_DEFAULT}; const base::Feature kOfflinePagesDescriptivePendingStatusFeature{ - "OfflinePagesDescriptivePendingStatus", base::FEATURE_DISABLED_BY_DEFAULT}; + "OfflinePagesDescriptivePendingStatus", base::FEATURE_ENABLED_BY_DEFAULT}; const base::Feature kOfflinePagesInDownloadHomeOpenInCctFeature{ "OfflinePagesInDownloadHomeOpenInCct", base::FEATURE_DISABLED_BY_DEFAULT};
diff --git a/components/offline_pages/core/offline_page_feature_unittest.cc b/components/offline_pages/core/offline_page_feature_unittest.cc index 7828ab1..e68635d 100644 --- a/components/offline_pages/core/offline_page_feature_unittest.cc +++ b/components/offline_pages/core/offline_page_feature_unittest.cc
@@ -136,14 +136,14 @@ } TEST(OfflinePageFeatureTest, OfflinePagesDescriptivePendingStatus) { - // Disabled by default. - EXPECT_FALSE(offline_pages::IsOfflinePagesDescriptivePendingStatusEnabled()); + // Enabled by default. + EXPECT_TRUE(offline_pages::IsOfflinePagesDescriptivePendingStatusEnabled()); // Check if helper method works correctly when the features is enabled. base::test::ScopedFeatureList scoped_feature_list; - scoped_feature_list.InitAndEnableFeature( + scoped_feature_list.InitAndDisableFeature( kOfflinePagesDescriptivePendingStatusFeature); - EXPECT_TRUE(offline_pages::IsOfflinePagesDescriptivePendingStatusEnabled()); + EXPECT_FALSE(offline_pages::IsOfflinePagesDescriptivePendingStatusEnabled()); } TEST(OfflinePageFeatureTest, AlternateDinoPage) {
diff --git a/components/omnibox/browser/favicon_cache.cc b/components/omnibox/browser/favicon_cache.cc index 937e294..a682ff0f 100644 --- a/components/omnibox/browser/favicon_cache.cc +++ b/components/omnibox/browser/favicon_cache.cc
@@ -4,6 +4,8 @@ #include "components/omnibox/browser/favicon_cache.h" +#include <tuple> + #include "base/containers/mru_cache.h" #include "components/favicon/core/favicon_service.h" #include "components/history/core/browser/history_service.h" @@ -22,12 +24,17 @@ // static const int FaviconCache::kEmptyFaviconCacheLifetimeInSeconds = 60; +bool FaviconCache::Request::operator<(const Request& rhs) const { + // Compare |type| first, and if equal, compare |url|. + return std::tie(type, url) < std::tie(rhs.type, rhs.url); +} + FaviconCache::FaviconCache(favicon::FaviconService* favicon_service, history::HistoryService* history_service) : favicon_service_(favicon_service), history_observer_(this), mru_cache_(GetFaviconCacheSize()), - pages_without_favicons_(GetFaviconCacheSize()), + responses_without_favicons_(GetFaviconCacheSize()), weak_factory_(this) { if (history_service) history_observer_.Add(history_service); @@ -38,54 +45,79 @@ gfx::Image FaviconCache::GetFaviconForPageUrl( const GURL& page_url, FaviconFetchedCallback on_favicon_fetched) { + return GetFaviconInternal({RequestType::BY_PAGE_URL, page_url}, + std::move(on_favicon_fetched)); +} + +gfx::Image FaviconCache::GetFaviconForIconUrl( + const GURL& icon_url, + FaviconFetchedCallback on_favicon_fetched) { + return GetFaviconInternal({RequestType::BY_ICON_URL, icon_url}, + std::move(on_favicon_fetched)); +} + +gfx::Image FaviconCache::GetFaviconInternal( + const Request& request, + FaviconFetchedCallback on_favicon_fetched) { if (!favicon_service_) return gfx::Image(); - if (page_url.is_empty() || !page_url.is_valid()) + if (request.url.is_empty() || !request.url.is_valid()) return gfx::Image(); // Early exit if we have a cached favicon ready. - auto cache_iterator = mru_cache_.Get(page_url); + auto cache_iterator = mru_cache_.Get(request); if (cache_iterator != mru_cache_.end()) return cache_iterator->second; - // Early exit if we've already established that the page lacks a favicon. + // Early exit if we've already established that we don't have the favicon. AgeOutOldCachedEmptyFavicons(); - if (pages_without_favicons_.Peek(page_url) != pages_without_favicons_.end()) + if (responses_without_favicons_.Peek(request) != + responses_without_favicons_.end()) { return gfx::Image(); + } // We have an outstanding request for this page. Add one more waiting callback // and return an empty gfx::Image. - auto it = pending_requests_.find(page_url); + auto it = pending_requests_.find(request); if (it != pending_requests_.end()) { it->second.push_back(std::move(on_favicon_fetched)); return gfx::Image(); } - // TODO(tommycli): Investigate using the version of this method that specifies - // the desired size. - favicon_service_->GetFaviconImageForPageURL( - page_url, - base::BindRepeating(&FaviconCache::OnFaviconFetched, - weak_factory_.GetWeakPtr(), page_url), - &task_tracker_); - pending_requests_[page_url].push_back(std::move(on_favicon_fetched)); + if (request.type == RequestType::BY_PAGE_URL) { + favicon_service_->GetFaviconImageForPageURL( + request.url, + base::BindRepeating(&FaviconCache::OnFaviconFetched, + weak_factory_.GetWeakPtr(), request), + &task_tracker_); + } else if (request.type == RequestType::BY_ICON_URL) { + favicon_service_->GetFaviconImage( + request.url, + base::BindRepeating(&FaviconCache::OnFaviconFetched, + weak_factory_.GetWeakPtr(), request), + &task_tracker_); + } else { + NOTREACHED(); + } + + pending_requests_[request].push_back(std::move(on_favicon_fetched)); return gfx::Image(); } void FaviconCache::OnFaviconFetched( - const GURL& page_url, + const Request& request, const favicon_base::FaviconImageResult& result) { if (result.image.IsEmpty()) { - pages_without_favicons_.Put(page_url, GetTimeNow()); - pending_requests_.erase(page_url); + responses_without_favicons_.Put(request, GetTimeNow()); + pending_requests_.erase(request); return; } - mru_cache_.Put(page_url, result.image); + mru_cache_.Put(request, result.image); - auto it = pending_requests_.find(page_url); + auto it = pending_requests_.find(request); DCHECK(it != pending_requests_.end()); for (auto& callback : it->second) { std::move(callback).Run(result.image); @@ -98,9 +130,10 @@ const history::URLRow& row, const history::RedirectList& redirects, base::Time visit_time) { - auto it = pages_without_favicons_.Peek(row.url()); - if (it != pages_without_favicons_.end()) - pages_without_favicons_.Erase(it); + auto it = + responses_without_favicons_.Peek({RequestType::BY_PAGE_URL, row.url()}); + if (it != responses_without_favicons_.end()) + responses_without_favicons_.Erase(it); } void FaviconCache::AgeOutOldCachedEmptyFavicons() { @@ -109,10 +142,10 @@ base::TimeDelta max_duration = base::TimeDelta::FromSeconds(kEmptyFaviconCacheLifetimeInSeconds); base::TimeTicks age_cutoff = GetTimeNow() - max_duration; - auto eldest = pages_without_favicons_.rbegin(); - while (eldest != pages_without_favicons_.rend() && + auto eldest = responses_without_favicons_.rbegin(); + while (eldest != responses_without_favicons_.rend() && eldest->second <= age_cutoff) { - eldest = pages_without_favicons_.Erase(eldest); + eldest = responses_without_favicons_.Erase(eldest); } } @@ -135,7 +168,7 @@ } for (const history::URLRow& row : deleted_rows) { - auto it = mru_cache_.Peek(row.url()); + auto it = mru_cache_.Peek({RequestType::BY_PAGE_URL, row.url()}); if (it != mru_cache_.end()) mru_cache_.Erase(it); }
diff --git a/components/omnibox/browser/favicon_cache.h b/components/omnibox/browser/favicon_cache.h index 35ede6b7..177c851 100644 --- a/components/omnibox/browser/favicon_cache.h +++ b/components/omnibox/browser/favicon_cache.h
@@ -33,28 +33,71 @@ typedef base::OnceCallback<void(const gfx::Image& favicon)> FaviconFetchedCallback; -// This caches favicons for pages. We cache a small number of them so we can -// synchronously deliver them to the UI to prevent flicker as the user types. +// This caches favicons by both page URL and icon URL. We cache a small number +// of them so we can synchronously deliver them to the UI to prevent flicker as +// the user types. +// // It also stores and times out null results from when we cannot fetch a favicon -// from the history database. +// from the history database. Null results timeout after a while. class FaviconCache : public history::HistoryServiceObserver { public: FaviconCache(favicon::FaviconService* favicon_service, history::HistoryService* history_service); ~FaviconCache() override; + // These methods fetch favicons by the |page_url| or |icon_url| respectively. + // If the correct favicon is already cached, these methods return the image + // synchronously. + // + // If the correct favicon is not cached, we return an empty gfx::Image and + // forward the request to FaviconService. |on_favicon_fetched| is stored in a + // pending callback list, and subsequent identical requests are added to the + // same pending list without issuing duplicate calls to FaviconService. + // + // If FaviconService responds with a non-empty image, we fulfill all the + // matching |on_favicon_fetched| callbacks in the pending list, and cache the + // result so that future matching requests can be fulfilled synchronously. + // + // If FaviconService responds with an empty image (because the correct favicon + // isn't in our database), we simply erase all the pending callbacks, and also + // cache the result. + // + // Therefore, |on_favicon_fetched| may or may not be called asynchrously + // later, but will never be called with an empty result. It will also never + // be called synchronously. gfx::Image GetFaviconForPageUrl(const GURL& page_url, FaviconFetchedCallback on_favicon_fetched); + gfx::Image GetFaviconForIconUrl(const GURL& icon_url, + FaviconFetchedCallback on_favicon_fetched); private: FRIEND_TEST_ALL_PREFIXES(FaviconCacheTest, ClearIconsWithHistoryDeletions); FRIEND_TEST_ALL_PREFIXES(FaviconCacheTest, ExpireNullFaviconsByHistory); FRIEND_TEST_ALL_PREFIXES(FaviconCacheTest, ExpireNullFaviconsByTime); + enum class RequestType { + BY_PAGE_URL, + BY_ICON_URL, + }; + + struct Request { + RequestType type; + GURL url; + + // This operator is defined to support using Request as a key of std::map. + bool operator<(const Request& rhs) const; + }; + // Chosen arbitrarily. Declared in the class for testing. static const int kEmptyFaviconCacheLifetimeInSeconds; - void OnFaviconFetched(const GURL& page_url, + // Internal method backing GetFaviconForPageUrl and GetFaviconForIconUrl. + gfx::Image GetFaviconInternal(const Request& request, + FaviconFetchedCallback on_favicon_fetched); + + // This is the callback passed to the underyling FaviconService. When this + // is called, all the pending requests that match |request| will be called. + void OnFaviconFetched(const Request& request, const favicon_base::FaviconImageResult& result); void AgeOutOldCachedEmptyFavicons(); @@ -80,14 +123,14 @@ ScopedObserver<history::HistoryService, FaviconCache> history_observer_; base::CancelableTaskTracker task_tracker_; - std::map<GURL, std::list<FaviconFetchedCallback>> pending_requests_; + std::map<Request, std::list<FaviconFetchedCallback>> pending_requests_; - base::MRUCache<GURL, gfx::Image> mru_cache_; + base::MRUCache<Request, gfx::Image> mru_cache_; - // Keep pages with empty favicons in a separate list, to prevent a page with - // an empty favicon from ever evicting an existing favicon. The value is used - // to age out entries that are too old. - base::MRUCache<GURL, base::TimeTicks> pages_without_favicons_; + // Keep responses with empty favicons in a separate list, to prevent a + // response with an empty favicon from ever evicting an existing favicon. + // The value is used to age out entries that are too old. + base::MRUCache<Request, base::TimeTicks> responses_without_favicons_; base::WeakPtrFactory<FaviconCache> weak_factory_;
diff --git a/components/omnibox/browser/favicon_cache_unittest.cc b/components/omnibox/browser/favicon_cache_unittest.cc index 1a7998fe..53603ba1 100644 --- a/components/omnibox/browser/favicon_cache_unittest.cc +++ b/components/omnibox/browser/favicon_cache_unittest.cc
@@ -63,12 +63,13 @@ protected: const GURL kUrlA = GURL("http://www.a.com/"); const GURL kUrlB = GURL("http://www.b.com/"); + const GURL kIconUrl = GURL("http://a.com/favicon.ico"); FaviconCacheTest() : cache_(&favicon_service_) {} testing::NiceMock<favicon::MockFaviconService> favicon_service_; - void ExpectFaviconServiceCalls(int a_site_calls, int b_site_calls) { + void ExpectFaviconServiceForPageUrlCalls(int a_site_calls, int b_site_calls) { if (a_site_calls > 0) { EXPECT_CALL( favicon_service_, @@ -90,6 +91,12 @@ } } + void ExpectFaviconServiceForIconUrlCalls(int calls) { + EXPECT_CALL(favicon_service_, + GetFaviconImage(kIconUrl, _ /* callback */, _ /* tracker */)) + .Times(calls); + } + favicon_base::FaviconImageCallback favicon_service_a_site_response_; favicon_base::FaviconImageCallback favicon_service_b_site_response_; @@ -97,7 +104,8 @@ }; TEST_F(FaviconCacheTest, Basic) { - ExpectFaviconServiceCalls(1, 0); + ExpectFaviconServiceForPageUrlCalls(1, 0); + ExpectFaviconServiceForIconUrlCalls(0); int response_count = 0; gfx::Image result = cache_.GetFaviconForPageUrl( @@ -117,8 +125,20 @@ EXPECT_EQ(1, response_count); } +TEST_F(FaviconCacheTest, GetFaviconForIconUrl) { + // Verify that the service receives a request by the icon URL. + ExpectFaviconServiceForPageUrlCalls(0, 0); + ExpectFaviconServiceForIconUrlCalls(1); + + // Since the other tests are comprehensive, we don't simulate or verify the + // actual result. + gfx::Image result = + cache_.GetFaviconForIconUrl(kIconUrl, base::BindOnce(&Fail)); + EXPECT_TRUE(result.IsEmpty()); +} + TEST_F(FaviconCacheTest, MultipleRequestsAreCoalesced) { - ExpectFaviconServiceCalls(1, 0); + ExpectFaviconServiceForPageUrlCalls(1, 0); int response_count = 0; for (int i = 0; i < 10; ++i) { @@ -132,7 +152,7 @@ } TEST_F(FaviconCacheTest, SeparateOriginsAreCachedSeparately) { - ExpectFaviconServiceCalls(1, 1); + ExpectFaviconServiceForPageUrlCalls(1, 1); int a_site_response_count = 0; int b_site_response_count = 0; @@ -177,7 +197,7 @@ } TEST_F(FaviconCacheTest, ClearIconsWithHistoryDeletions) { - ExpectFaviconServiceCalls(3, 2); + ExpectFaviconServiceForPageUrlCalls(3, 2); EXPECT_TRUE( cache_.GetFaviconForPageUrl(kUrlA, base::BindOnce(&VerifyFetchedFavicon)) @@ -222,7 +242,7 @@ } TEST_F(FaviconCacheTest, CacheNullFavicons) { - ExpectFaviconServiceCalls(1, 0); + ExpectFaviconServiceForPageUrlCalls(1, 0); EXPECT_TRUE( cache_.GetFaviconForPageUrl(kUrlA, base::BindOnce(&Fail)).IsEmpty()); @@ -235,7 +255,7 @@ } TEST_F(FaviconCacheTest, ExpireNullFaviconsByHistory) { - ExpectFaviconServiceCalls(2, 0); + ExpectFaviconServiceForPageUrlCalls(2, 0); EXPECT_TRUE( cache_.GetFaviconForPageUrl(kUrlA, base::BindOnce(&Fail)).IsEmpty()); @@ -256,7 +276,7 @@ } TEST_F(FaviconCacheTest, ExpireNullFaviconsByTime) { - ExpectFaviconServiceCalls(2, 1); + ExpectFaviconServiceForPageUrlCalls(2, 1); EXPECT_TRUE( cache_.GetFaviconForPageUrl(kUrlA, base::BindOnce(&Fail)).IsEmpty()); @@ -285,7 +305,7 @@ EXPECT_TRUE( cache_.GetFaviconForPageUrl(kUrlB, base::BindOnce(&Fail)).IsEmpty()); - // Our call to |ExpectFaviconServiceCalls(expected A calls, expected B calls)| - // above should verify that we re-request the icon for kUrlA only (because - // the empty result has been aged out). + // Our call to |ExpectFaviconServiceForPageUrlCalls(expected A calls, expected + // B calls)| above should verify that we re-request the icon for kUrlA only + // (because the empty result has been aged out). }
diff --git a/components/omnibox/browser/omnibox_client.h b/components/omnibox/browser/omnibox_client.h index 2b6d15598..f3f151b 100644 --- a/components/omnibox/browser/omnibox_client.h +++ b/components/omnibox/browser/omnibox_client.h
@@ -130,7 +130,7 @@ // embedders do. These methods return the favicon synchronously if possible. // Otherwise, they return an empty gfx::Image and |on_favicon_fetched| may or // may not be called asynchronously later. |on_favicon_fetched| will never be - // run synchronously. + // run synchronously, and will never be run with an empty result. virtual gfx::Image GetFaviconForPageUrl( const GURL& page_url, FaviconFetchedCallback on_favicon_fetched);
diff --git a/components/policy/resources/policy_templates.json b/components/policy/resources/policy_templates.json index 532151e..fada153 100644 --- a/components/policy/resources/policy_templates.json +++ b/components/policy/resources/policy_templates.json
@@ -9159,13 +9159,13 @@ }, 'example_value': True, 'id': 281, - 'caption': '''Enable Touch to Search''', + 'caption': '''Enable Tap to Search''', 'tags': [], - 'desc': '''Enables the availability of Touch to Search in <ph name="PRODUCT_NAME">$1<ex>Google Chrome</ex></ph>'s content view. + 'desc': '''Enables the availability of Tap to Search in <ph name="PRODUCT_NAME">$1<ex>Google Chrome</ex></ph>'s content view. - If you enable this setting, Touch to Search will be available to the user and they can choose to turn the feature on or off. + If you enable this setting, Tap to Search will be available to the user and they can choose to turn the feature on or off. - If you disable this setting, Touch to Search will be disabled completely. + If you disable this setting, Tap to Search will be disabled completely. If this policy is left not set, it is equivalent to being enabled, see description above.''', },
diff --git a/components/policy/resources/policy_templates_am.xtb b/components/policy/resources/policy_templates_am.xtb index 9f016dc37..d984476 100644 --- a/components/policy/resources/policy_templates_am.xtb +++ b/components/policy/resources/policy_templates_am.xtb
@@ -1028,11 +1028,6 @@ ይህ መመሪያ እንዳልተዋቀረ ከተተወ SPDY የሚገኝ ይሆናል።</translation> <translation id="3890999316834333174">የፈጣን መክፈት መመሪያዎች</translation> <translation id="3891357445869647828">ጃቫስክሪፕትን አንቃ</translation> -<translation id="3891953007921334498">የገንቢ መሣሪያዎቹን እና የJavaScript መሥሪያውን ያሰናክላል። - - ይህን ቅንብር ካነቁ የገንቢ መሣሪያዎች ሊደረሰባቸው አይችልም፣ እና የድር ጣቢያ ክፍሎች ከአሁን በኋላ ሊመረመሩ አይችሉም። የየገንቢ መሣሪያውን ወይም የJavaScript መሥሪያውን የሚከፍቱ ማንኛውም የቁልፍ ሰሌዳ አቋረጮች እና ምናሌ ወይም የአግባበ ምናሌ ግቤቶች ይሰናከላሉ። - - ይህን አማራጭ እንዲሰናከል ማዋቀር ወይም እንዳልተዋቀረ መተው የገንቢ መሣሪያዎችን እና የJavaScript መሥሪያን ተጠቃሚው እንዲጠቀምባቸው ያደርጋቸዋል።</translation> <translation id="3895557476567727016">ፋይሎችን ለማውረድ <ph name="PRODUCT_NAME" /> የሚጠቀምበትን ነባሪ ማውጫ ያዋቅራል። ይህን መመሪያ ካላዋቀሩት <ph name="PRODUCT_NAME" /> ፋይሎችን የሚያወርድበትን ነባሪ ማውጫ ይለውጣል። ይህ መመሪያ የግዴታ አይደለም፣ ስለዚህ ተጠቃሚው ማውጫውን ለመለወጥ ይችላል።
diff --git a/components/policy/resources/policy_templates_ar.xtb b/components/policy/resources/policy_templates_ar.xtb index 366929d..f19865b4 100644 --- a/components/policy/resources/policy_templates_ar.xtb +++ b/components/policy/resources/policy_templates_ar.xtb
@@ -990,11 +990,6 @@ إذا تم ترك هذه السياسة بدون تعيين، فسيكون SPDY متاحًا.</translation> <translation id="3890999316834333174">سياسات إلغاء القفل السريع</translation> <translation id="3891357445869647828">تفعيل جافا سكريبت</translation> -<translation id="3891953007921334498">لإيقاف أدوات مطوّري البرامج ووحدة تحكم جافا سكريبت. - - إذا تم تفعيل هذا الإعداد، فلا يمكن الدخول إلى أدوات مطوّري البرامج كما لا يمكن فحص عناصر موقع الويب بعد الآن. سيتم إيقاف أي من اختصارات لوحة المفاتيح وإدخالات القائمة وإدخالات قائمة السياقات التي تفتح أدوات مطوّري البرامج أو وحدة تحكم جافا سكريبت. - - سيؤدي تعيين هذا الخيار على "إيقاف" أو تركه بدون تعيين إلى السماح للمستخدم باستخدام أدوات مطوّري البرامج ووحدة تحكم جافا سكريبت.</translation> <translation id="3895557476567727016">تهيئ الدليل التلقائي الذي سيستخدمه <ph name="PRODUCT_NAME" /> لتنزيل الملفات. في حال تعيين هذه السياسة، سيتم تغيير الدليل التلقائي الذي ينزل <ph name="PRODUCT_NAME" /> الملفات إليه. وهذه السياسة غير إلزامية، لذلك سيتمكن المستخدم من تغيير الدليل.
diff --git a/components/policy/resources/policy_templates_bg.xtb b/components/policy/resources/policy_templates_bg.xtb index ec0cab3..de25637 100644 --- a/components/policy/resources/policy_templates_bg.xtb +++ b/components/policy/resources/policy_templates_bg.xtb
@@ -998,11 +998,6 @@ При деактивиране или незадаване на правилото използването на протокола ще бъде разрешено.</translation> <translation id="3890999316834333174">Правила за бързо отключване</translation> <translation id="3891357445869647828">Активиране на JavaScript</translation> -<translation id="3891953007921334498">Деактивира инструментите за програмисти и конзолата на JavaScript. - -Ако активирате тази настройка, няма да имате достъп до съответните инструменти и елементите на уебсайтовете вече няма да могат да бъдат проверявани. Ще се деактивират всички клавишни комбинации и записи в менюта или в контекстни менюта за отваряне на инструментите за програмисти или на конзолата на JavaScript. - -Деактивирането или незадаването на тази опция ще позволи на потребителя да използва съответните инструменти и конзола.</translation> <translation id="3895557476567727016">Конфигурира стандартната директория, която ще се използва от <ph name="PRODUCT_NAME" /> за изтегляне на файлове. Ако зададете това правило, ще промените стандартната директория, в която <ph name="PRODUCT_NAME" /> изтегля файлове. Спазването му не е задължително, така че потребителят ще може да променя директорията.
diff --git a/components/policy/resources/policy_templates_bn.xtb b/components/policy/resources/policy_templates_bn.xtb index dbcb3a92..3028a49 100644 --- a/components/policy/resources/policy_templates_bn.xtb +++ b/components/policy/resources/policy_templates_bn.xtb
@@ -1070,11 +1070,6 @@ যদি এই নীতিটি সেট না করেই ছেড়ে যাওয়া হয়, তাহলে SPDY উপলব্ধ হবে।</translation> <translation id="3890999316834333174">দ্রুত আনলক নীতি</translation> <translation id="3891357445869647828">JavaScript সক্ষম করুন</translation> -<translation id="3891953007921334498">ডেভেলপার টুল ও JavaScript কনসোলকে অক্ষম করে৷ - - আপনি এই সেটিং সক্ষম করলে, ডেভেলপার টুল অ্যাক্সেস করা যাবে না এবং ওয়েব-সাইট উপাদানগুলি আর পরিদর্শন করা যাবে না৷ ডেভেলপার টুল বা JavaScript কনসোল খোলার জন্য যেকোনো কীবোর্ড শর্টকাট ও যেকোনো মেনু বা প্রসঙ্গ মেনু এন্ট্রি অক্ষম হবে৷ - - এই বিকল্পটি অক্ষম করা হলে অথবা সেট না করে ছেড়ে দেওয়া হলে, ব্যবহারকারী ডেভেলপার টুল এবং JavaScript কনসোল ব্যবহার করার অনুমতি পাবে।</translation> <translation id="3895557476567727016">ফাইল ডাউনলোড করার জন্য <ph name="PRODUCT_NAME" /> ব্যবহার করবে এমন ডিফল্ট ডিরেক্টরিকে কনফিগার করে। যদি আপনি এই নীতিটি সেট করেন তাহলে <ph name="PRODUCT_NAME" /> যে ডিফল্ট ডিরেক্টরিতে ফাইল ডাউনলোড করে সেটি বদলে যাবে। এই নীতিটি বাধ্যতামূলক নয়, তাই ব্যবহারকারী ডিরেক্টরি পরিবর্তন করতে পারবেন।
diff --git a/components/policy/resources/policy_templates_ca.xtb b/components/policy/resources/policy_templates_ca.xtb index cbacb9a..91ed313 100644 --- a/components/policy/resources/policy_templates_ca.xtb +++ b/components/policy/resources/policy_templates_ca.xtb
@@ -391,7 +391,7 @@ Si aquesta política no es defineix, no es mostra cap quadre de diàleg d'advertiment. El valor de la política s'ha d'especificar en mil·lisegons. Els valors es restringeixen perquè siguin menors que o iguals al retard d'inactivitat.</translation> -<translation id="2289578386193672044">Especifica una llista d'aplicacions i d'extensions que s'instal·len de manera silenciosa, +<translation id="2289578386193672044">Especifica una llista d'aplicacions i d'extensions que s'instal·len en segon pla, sense la interacció de l'usuari, i que l'usuari no pot desinstal·lar ni desactivar. Tots els permisos que les aplicacions o les extensions sol·liciten es concedeixen de manera implícita, sense cap interacció de l'usuari, @@ -403,11 +403,11 @@ Aquesta política preval sobre una política <ph name="EXTENSION_INSTALL_BLACKLIST_POLICY_NAME" /> amb què pugui entrar en conflicte. Si se suprimeix d'aquesta llista una aplicació o una extensió que prèviament s'havia instal·lat a la força, <ph name="PRODUCT_NAME" /> la desinstal·larà automàticament. - En el cas de les instàncies de Windows que no estan vinculades a un domini <ph name="MS_AD_NAME" />, la instal·lació forçada es limita a les aplicacions i les extensions incloses a Chrome Web Store. + En les instàncies de Windows que no formin part d'un domini que pertanyi a <ph name="MS_AD_NAME" />, la instal·lació forçada es limita a les aplicacions i les extensions incloses a Chrome Web Store. Tingues en compte que els usuaris poden modificar el codi font de qualsevol extensió amb les Eines per a desenvolupadors (la qual cosa podria provocar problemes de funcionament de l'extensió). Si et preocupa aquesta possibilitat, defineix la política <ph name="DEVELOPER_TOOLS_POLICY_NAME" />. - Cada element de la llista de la política és una cadena que conté un identificador d'extensió i, opcionalment, un URL d'actualització separats per punt i coma (<ph name="SEMICOLON" />). L'identificador d'extensió és la cadena de 32 lletres que, per exemple, es troba a <ph name="CHROME_EXTENSIONS_LINK" /> quan el mode desenvolupador està activat. L'URL d'actualització, si s'especifica, ha de dirigir a un document XML de manifest d'actualització, tal com es descriu a <ph name="LINK_TO_EXTENSION_DOC1" />. De manera predeterminada, s'utilitza l'URL d'actualització de Chrome Web Store, que actualment és https://clients2.google.com/service/update2/crx. Tingues en compte que l'URL d'actualització definit en aquesta política només s'utilitza per a la instal·lació inicial; les properes actualitzacions de l'extensió faran servir l'URL d'actualització indicat al manifest de l'extensió. Recorda que, de la versió <ph name="PRODUCT_NAME" /> a la 67 (inclosa) del producte també calia especificar de manera obligatòria i explícita l'URL d'actualització. + Cada element de la llista de la política és una cadena que conté un identificador d'extensió i, opcionalment, un URL d'actualització separats per punt i coma (<ph name="SEMICOLON" />). L'identificador d'extensió és la cadena de 32 lletres que, per exemple, es troba a <ph name="CHROME_EXTENSIONS_LINK" /> quan el mode desenvolupador està activat. L'URL d'actualització, si s'especifica, ha de dirigir a un document XML de manifest d'actualització, tal com es descriu a <ph name="LINK_TO_EXTENSION_DOC1" />. De manera predeterminada, s'utilitza l'URL d'actualització de Chrome Web Store, que actualment és https://clients2.google.com/service/update2/crx. Tingues en compte que l'URL d'actualització definit en aquesta política només s'utilitza per a la instal·lació inicial; les properes actualitzacions de l'extensió faran servir l'URL d'actualització indicat al fitxer de manifest de l'extensió. Recorda que, fins a la versió 67 (inclosa) de <ph name="PRODUCT_NAME" /> també calia especificar de manera obligatòria i explícita l'URL d'actualització. Per exemple, <ph name="EXTENSION_POLICY_EXAMPLE" /> instal·la l'aplicació <ph name="EXTENSION_POLICY_EXAMPLE_EXTENSION_NAME" /> des de l'URL d'actualització de Chrome Web Store estàndard. Per obtenir més informació sobre com s'allotgen les extensions, consulta: <ph name="LINK_TO_EXTENSION_DOC2" />. @@ -994,11 +994,6 @@ Si no hi dus a terme cap acció, SPDY estarà disponible.</translation> <translation id="3890999316834333174">Polítiques del desbloqueig ràpid</translation> <translation id="3891357445869647828">Activa JavaScript</translation> -<translation id="3891953007921334498">Desactiva les Eines per a desenvolupadors i la Consola de JavaScript. - - Si actives aquesta opció de configuració, ja no es podrà accedir a les Eines per a desenvolupadors ni inspeccionar els elements del lloc web. Es desactivaran les tecles de drecera i les entrades als menús o als menús contextuals per obrir les Eines per a desenvolupadors o la Consola de JavaScript. - - Si aquesta opció es desactiva o no es defineix, l'usuari podrà utilitzar les Eines per a desenvolupadors i la Consola de JavaScript.</translation> <translation id="3895557476567727016">Estableix el directori predeterminat que <ph name="PRODUCT_NAME" /> utilitzarà per baixar fitxers. Si es defineix aquesta política, es canviarà el directori predeterminat en què <ph name="PRODUCT_NAME" /> baixa els fitxers. Com que aquesta política no és obligatòria, l'usuari pot canviar el directori. @@ -1895,7 +1890,7 @@ Aquesta política s'aplica a la pantalla d'inici de sessió. Consulta també la política <ph name="ISOLATE_ORIGINS_POLICY_NAME" /> que s'aplica a la sessió d'usuari. Es recomana definir el mateix valor en totes dues polítiques. En cas contrari, pot haver-hi un retard en iniciar una sessió d'usuari mentre s'aplica el valor especificat per la política de l'usuari. Si la política s'activa, cadascun dels orígens indicats en una llista separada per comes s'executarà amb el seu propi procés. Així mateix, - també s'aïllaran els orígens indicats per subdominis (per exemple, en especificar https://example.com/, + s'aïllaran els orígens indicats per subdominis (per exemple, en especificar https://example.com/, l'adreça https://foo.example.com/ també s'aïllarà com a part del lloc web https://example.com/). Si la política es desactiva, es produirà l'aïllament de llocs web no explícits i es desactivaran les proves de camp de les polítiques IsolateOrigins i SitePerProcess. Els usuaris podran activar IsolateOrigins manualment. @@ -2144,7 +2139,7 @@ Si s'estableix en "false", les actualitzacions dels components es desactiven. Tanmateix, aquesta política no afecta tots els components, com ara els que no contenen codi executable, els que no afecten de manera considerable el funcionament del navegador ni els que són essencials per protegir-lo. Aquests components inclouen, entre d'altres, les llistes de revocació de certificats i les dades de Navegació segura. Per obtenir més informació sobre Navegació segura, consulta https://developers.google.com/safe-browsing.</translation> -<translation id="7566878661979235378">Tipus d'autenticació d'inici de sessió de SAML</translation> +<translation id="7566878661979235378">Tipus d'autenticació d'inici de sessió amb SAML</translation> <translation id="757395965347379751">Quan s'aplica aquesta opció de configuració, <ph name="PRODUCT_NAME" /> admet certificats SHA-1 signats, sempre que estiguin correctament validats i encadenats a certificats de CA instal·lats localment. Tingues en compte que aquesta política depèn que la pila de verificació de certificats del sistema operatiu admeti signatures SHA-1. Si una actualització del SO canvia la gestió de certificats SHA-1, és possible que aquesta política ja no tingui efecte. A més, aquesta política és una solució temporal per donar més temps a les empreses per desvincular-se d'SHA-1, i se suprimirà l'1 de gener del 2019 o un dia proper a aquesta data. @@ -2648,7 +2643,7 @@ <translation id="8992176907758534924">No permetis que cap lloc mostri imatges</translation> <translation id="9034729899149506577"> Si la política s'activa, cadascun dels orígens indicats en una - llista separada per comes s'executarà amb el seu propi procés. Així mateix, també s'aïllaran + llista separada per comes s'executarà amb el seu propi procés. Així mateix, s'aïllaran els orígens indicats per subdominis (per exemple, en especificar https://example.com/, l'adreça https://foo.example.com/ també s'aïllarà com a part del lloc web https://example.com/). @@ -2708,9 +2703,9 @@ <translation id="9200828125069750521">Paràmetres de l'URL de la imatge que utilitza POST</translation> <translation id="9210953373038593554">Configura el tipus d'autenticació per a inicis de sessió amb SAML. - Si aquesta política no es defineix o es defineix en el valor predeterminat (0), el comportament dels inicis de sessió amb SAML el determina el navegador en funció d'altres factors. En l'escenari més bàsic, l'autenticació de l'usuari i la protecció de les dades de l'usuari emmagatzemades a la memòria cau es basen en contrasenyes introduïdes manualment pels usuaris. + Si aquesta política no es defineix o es defineix en el valor predeterminat (0), el comportament dels inicis de sessió amb SAML el determina el navegador en funció d'altres factors. En el cas més senzill, l'autenticació de l'usuari i la protecció de les dades de l'usuari emmagatzemades a la memòria cau es basen en contrasenyes introduïdes manualment pels usuaris. - Si aquesta política s'estableix en “ClientCertificate” (valor 1), l'autentificació del certificat de client s'utilitza per a usuaris afegits recentment que inicien la sessió amb SAML. Per a aquests usuaris no s'utilitza cap contrasenya i les dades locals emmagatzemades a la memòria cau es protegeixen utilitzant les claus criptogràfiques corresponents. Per exemple, aquesta opció de configuració permet configurar l'autenticació de l'usuari basada en una targeta intel·ligent. Tingues en compte que les aplicacions de programari intermediari de la targeta intel·ligent s'han d'instal·lar mitjançant la política DeviceLoginScreenAppInstallList. + Si aquesta política s'estableix en “ClientCertificate” (valor 1), l'autenticació del certificat de client s'utilitza per a usuaris afegits recentment que inicien la sessió amb SAML. Per a aquests usuaris no s'utilitza cap contrasenya i les dades locals emmagatzemades a la memòria cau es protegeixen utilitzant les claus criptogràfiques corresponents. Per exemple, aquesta opció de configuració permet configurar l'autenticació de l'usuari basada en una targeta intel·ligent. Tingues en compte que les aplicacions de programari intermediari de la targeta intel·ligent s'han d'instal·lar mitjançant la política DeviceLoginScreenAppInstallList. Aquesta política només afecta els usuaris que s'autentiquen amb SAML.</translation> <translation id="9213347477683611358">Configura la imatge de fons de la pantalla d'inici de sessió d'un dispositiu si ningú no hi ha iniciat la sessió. Per establir la política, cal especificar l'URL que pot fer servir el dispositiu de Chrome OS per baixar la imatge i un resum criptogràfic per verificar la integritat de la baixada. La imatge ha de ser en format JPEG i no ha de superar els 16 MB. S'ha de poder accedir a l'URL sense cap tipus d'autenticació. La imatge de fons de pantalla es baixa i es desa a la memòria cau, i es tornarà a baixar si es modifica l'URL o el resum.
diff --git a/components/policy/resources/policy_templates_cs.xtb b/components/policy/resources/policy_templates_cs.xtb index e0c5dd4..a4d90f7 100644 --- a/components/policy/resources/policy_templates_cs.xtb +++ b/components/policy/resources/policy_templates_cs.xtb
@@ -1001,11 +1001,6 @@ Pokud tuto zásadu ponecháte nenastavenou, bude protokol SPDY k dispozici.</translation> <translation id="3890999316834333174">Zásady související s rychlým odemknutím</translation> <translation id="3891357445869647828">Povolit JavaScript</translation> -<translation id="3891953007921334498">Deaktivuje nástroje pro vývojáře a konzoli JavaScriptu. - - Pokud toto nastavení aktivujete, nebude možné přistupovat k nástrojům pro vývojáře ani kontrolovat prvky webových stránek. Deaktivovány budou také veškeré klávesové zkratky a položky klasických či kontextových nabídek, pomocí kterých lze nástroje pro vývojáře nebo konzoli JavaScriptu otevřít. - - Pokud tuto možnost deaktivujete nebo nenastavíte, umožníte uživatelům používat nástroje pro vývojáře nebo konzoli JavaScriptu.</translation> <translation id="3895557476567727016">Konfiguruje výchozí adresář, do kterého bude <ph name="PRODUCT_NAME" /> stahovat soubory. Pokud tuto zásadu nastavíte, změní výchozí adresář, do kterého bude <ph name="PRODUCT_NAME" /> stahovat soubory. Tato zásada není závazná. Uživatel adresář bude moci změnit.
diff --git a/components/policy/resources/policy_templates_da.xtb b/components/policy/resources/policy_templates_da.xtb index 5b165d9..14f1456 100644 --- a/components/policy/resources/policy_templates_da.xtb +++ b/components/policy/resources/policy_templates_da.xtb
@@ -425,7 +425,7 @@ Denne politik giver administratorer mulighed for at angive printerkonfigurationer for deres brugere. - <ph name="PRINTER_DISPLAY_NAME" /> og <ph name="PRINTER_DESCRIPTION" /> er strenge i frit format, der kan tilpasses, så valg af printer bliver nemmere. <ph name="PRINTER_MANUFACTURER" /> og <ph name="PRINTER_MODEL" /> gør det nemmere for slutbrugerne at identificere printere. De repræsenterer printerproducenten og -model. <ph name="PRINTER_URI" /> skal være en adresse, der er tilgængelig fra en klientcomputer, bl.a. <ph name="URI_SCHEME" />, <ph name="URI_PORT" /> og <ph name="URI_QUEUE" />. <ph name="PRINTER_UUID" /> er valgfri. Hvis den angives, bruges den som en hjælp til at deduplikere <ph name="ZEROCONF_DISCOVERY" />-printere. + <ph name="PRINTER_DISPLAY_NAME" /> og <ph name="PRINTER_DESCRIPTION" /> er strenge i frit format, der kan tilpasses, så valg af printer bliver nemmere. <ph name="PRINTER_MANUFACTURER" /> og <ph name="PRINTER_MODEL" /> gør det nemmere for slutbrugerne at identificere printere. De repræsenterer printerproducenten og -modellen. <ph name="PRINTER_URI" /> skal være en adresse, der er tilgængelig fra en klientcomputer, bl.a. <ph name="URI_SCHEME" />, <ph name="URI_PORT" /> og <ph name="URI_QUEUE" />. <ph name="PRINTER_UUID" /> er valgfri. Hvis den angives, bruges den som en hjælp til at deduplikere <ph name="ZEROCONF_DISCOVERY" />-printere. <ph name="PRINTER_EFFECTIVE_MODEL" /> skal stemme overens med en af de strenge, der repræsenterer en <ph name="PRODUCT_NAME" />-understøttet printer. Strengen bruges til at identificere og installere den relevante PPD-fil til printeren. Du kan finde flere oplysninger på https://support.google.com/chrome?p=noncloudprint. @@ -1008,11 +1008,6 @@ Hvis denne politik ikke angives, vil SPDY være tilgængelig.</translation> <translation id="3890999316834333174">Politikker for hurtig oplåsning</translation> <translation id="3891357445869647828">Aktiver JavaScript</translation> -<translation id="3891953007921334498">Deaktiverer udviklerværktøjerne og JavaScript-konsollen. - - Hvis du aktiverer denne indstilling, kan der ikke opnås adgang til udviklerværktøjerne, og elementer på websites kan ikke længere inspiceres. Alle tastaturgenveje og alle angivelser i menuer eller genvejsmenuer, der bruges til at åbne udviklerværktøjerne eller JavaScript-konsollen, bliver deaktiveret. - - Hvis du deaktiverer denne indstilling eller ikke angiver den, kan brugeren benytte udviklerværktøjerne og JavaScript-konsollen.</translation> <translation id="3895557476567727016">Konfigurerer standardmappen, som <ph name="PRODUCT_NAME" /> bruger til download af filer. Hvis du angiver denne politik, ændrer det standardmappen, som <ph name="PRODUCT_NAME" /> downloader filer til. Denne politik er ikke obligatorisk, så brugeren kan ændre mappen.
diff --git a/components/policy/resources/policy_templates_de.xtb b/components/policy/resources/policy_templates_de.xtb index 1ede7aad..12d3b101 100644 --- a/components/policy/resources/policy_templates_de.xtb +++ b/components/policy/resources/policy_templates_de.xtb
@@ -404,9 +404,9 @@ Bei Windows-Instanzen, die nicht Teil einer <ph name="MS_AD_NAME" />-Domain sind, bleibt die erzwungene Installation auf die im Chrome Web Store aufgeführten Apps und Erweiterungen beschränkt. - Beachten Sie, dass der Quellcode jeder Erweiterung mithilfe der Entwicklertools von den Nutzern geändert werden kann und die Erweiterung nach erfolgten Änderungen eventuell nicht mehr funktioniert. Präventiv können Sie hierbei die Richtlinie "<ph name="DEVELOPER_TOOLS_POLICY_NAME" />" festlegen. + Beachten Sie, dass der Quellcode jeder Erweiterung mithilfe der Entwicklertools von den Nutzern geändert werden kann und die Erweiterung nach erfolgten Änderungen eventuell nicht mehr funktioniert. Wenn Sie dies verhindern möchten, können Sie die Richtlinie "<ph name="DEVELOPER_TOOLS_POLICY_NAME" />" festlegen. - Jedes Listenelement der Richtlinie ist ein String mit einer Erweiterungs-ID und einer optionalen Update-URL, die durch einen Strichpunkt (<ph name="SEMICOLON" />) getrennt wird. Die Erweiterungs-ID ist der String mit 32 Buchstaben, den Sie u. a. in <ph name="CHROME_EXTENSIONS_LINK" /> im Entwicklermodus sehen. Die Update-URL sollte, sofern festgelegt, auf ein Update-Manifest-XML-Dokument verweisen, wie in <ph name="LINK_TO_EXTENSION_DOC1" /> beschrieben. Standardmäßig kommt die Update-URL des Chrome Web Store zum Einsatz, die derzeit "https://clients2.google.com/service/update2/crx" lautet. Beachten Sie, dass die in dieser Richtlinie festgelegte Update-URL nur für die erste Installation verwendet wird. In nachfolgenden Updates der Erweiterung kommt die Update-URL, die im Manifest der Erweiterung angegeben wurde, zum Einsatz. Beachten Sie außerdem, dass die explizite Festlegung der Update-URL in <ph name="PRODUCT_NAME" />-Versionen bis einschließlich Version 67 obligatorisch war. + Jedes Listenelement der Richtlinie ist ein String mit einer Erweiterungs-ID und einer optionalen Update-URL, die durch ein Semikolon (<ph name="SEMICOLON" />) getrennt wird. Die Erweiterungs-ID ist der String mit 32 Buchstaben, den Sie u. a. in <ph name="CHROME_EXTENSIONS_LINK" /> im Entwicklermodus sehen. Die Update-URL sollte, sofern festgelegt, auf ein Update-Manifest-XML-Dokument verweisen, wie in <ph name="LINK_TO_EXTENSION_DOC1" /> beschrieben. Standardmäßig kommt die Update-URL des Chrome Web Store zum Einsatz, die derzeit "https://clients2.google.com/service/update2/crx" lautet. Beachten Sie, dass die in dieser Richtlinie festgelegte Update-URL nur für die erste Installation verwendet wird. In nachfolgenden Updates der Erweiterung kommt die Update-URL, die im Manifest der Erweiterung angegeben wurde, zum Einsatz. Beachten Sie außerdem, dass die explizite Festlegung der Update-URL in <ph name="PRODUCT_NAME" />-Versionen bis einschließlich Version 67 obligatorisch war. Beispiel: <ph name="EXTENSION_POLICY_EXAMPLE" /> installiert die App "<ph name="EXTENSION_POLICY_EXAMPLE_EXTENSION_NAME" />" über die standardmäßige Update-URL aus dem Chrome Web Store. Weitere Informationen zum Hosting von Erweiterungen finden Sie unter <ph name="LINK_TO_EXTENSION_DOC2" />. @@ -990,11 +990,6 @@ Ist die Richtlinie nicht konfiguriert, steht SPDY zur Verfügung.</translation> <translation id="3890999316834333174">Richtlinien zum schnellen Entsperren</translation> <translation id="3891357445869647828">JavaScript aktivieren</translation> -<translation id="3891953007921334498">Deaktiviert die Entwicklertools und die JavaScript-Konsole. - - Wenn Sie diese Einstellung aktivieren, besteht kein Zugriff mehr auf die Entwicklertools, sodass Websiteelemente nicht mehr überprüft werden können. Jegliche Tastenkombinationen und Menü- und Kontextmenüeinträge zum Öffnen der Entwicklertools oder der JavaScript-Konsole werden deaktiviert. - - Ist diese Option deaktiviert oder nicht konfiguriert, können die Entwicklertools und die JavaScript-Konsole verwendet werden.</translation> <translation id="3895557476567727016">Konfiguriert das Standardverzeichnis, in dem über <ph name="PRODUCT_NAME" /> heruntergeladene Dateien gespeichert werden. Wenn Sie diese Richtlinie festlegen, wird ein anderes Standard-Downloadverzeichnis für <ph name="PRODUCT_NAME" /> festgelegt. Diese Richtlinie ist nicht verbindlich, daher kann ein Nutzer das Verzeichnis ändern. @@ -1901,7 +1896,7 @@ Dadurch werden auch durch Subdomains benannte Ursprünge isoliert; wenn Sie z. B. https://example.com/ angeben, wird auch https://foo.example.com/ als Teil der Website https://example.com/ isoliert. - Wenn die Richtlinie deaktiviert ist, findet keine Website-Isolierung statt und Feldtests von "IsolateOrigins" und "SitePerProcess" werden ebenfalls deaktiviert. Nutzer können aber "SitePerProcess" weiterhin manuell aktivieren. + Wenn die Richtlinie deaktiviert ist, findet keine Website-Isolierung statt und Feldtests von "IsolateOrigins" und "SitePerProcess" werden ebenfalls deaktiviert. Nutzer können aber "IsolateOrigins" weiterhin manuell aktivieren. Wenn die Richtlinie nicht konfiguriert ist, werden die standardmäßigen Website-Isolierungseinstellungen der Plattform für die Anmeldeseite verwendet. </translation> <translation id="6894178810167845842">URL für "Neuer Tab"-Seite</translation> @@ -2525,9 +2520,9 @@ <translation id="8667812577403206506">Mit dieser Richtlinie können Sie festlegen, ob virtuelle Maschinen unter Chrome OS ausgeführt werden dürfen. Wenn die Richtlinie auf "true" festgelegt ist, dürfen virtuelle Maschinen auf dem Gerät ausgeführt werden. - Wird die Richtlinie auf "false" festgelegt, dürfen keine virtuellen Maschinen auf dem Gerät ausgeführt werden. - Falls diese Richtlinie auf "false" geändert wird, gilt sie für den Start neuer virtueller Maschinen. Virtuelle Maschinen, die bereits laufen, werden davon nicht beendet. - Wenn diese Richtlinie auf einem verwalteten Gerät nicht konfiguriert ist, darf das Gerät virtuelle Maschinen nicht ausführen. + Wenn die Richtlinie auf "false" festgelegt ist, dürfen keine virtuellen Maschinen auf dem Gerät ausgeführt werden. + Wird diese Richtlinie auf "false" geändert, wirkt sich dies nur auf den Start neuer virtueller Maschinen aus. Virtuelle Maschinen, die bereits laufen, werden davon nicht beendet. + Ist diese Richtlinie auf einem verwalteten Gerät nicht konfiguriert, darf das Gerät virtuelle Maschinen nicht ausführen. Auf nicht verwalteten Geräten dürfen virtuelle Maschinen ausgeführt werden.</translation> <translation id="8672321184841719703">Automatische Aktualisierung auf Zielversion</translation> <translation id="867410340948518937">U2F (Universal Second Factor)</translation> @@ -2656,7 +2651,7 @@ ausgeführt. Dadurch werden auch durch Subdomains benannte Ursprünge isoliert; wenn Sie z. B. https://example.com/ angeben, wird auch https://foo.example.com/ als Teil der Website https://example.com/ isoliert. - Wenn die Richtlinie deaktiviert ist, findet keine explizite Website-Isolierung statt und Feldtests von "IsolateOrigins" und "SitePerProcess" werden ebenfalls deaktiviert. Nutzer können aber "SitePerProcess" weiterhin manuell aktivieren. + Wenn die Richtlinie deaktiviert ist, findet keine explizite Website-Isolierung statt und Feldtests von "IsolateOrigins" und "SitePerProcess" werden ebenfalls deaktiviert. Nutzer können aber "IsolateOrigins" weiterhin manuell aktivieren. Wenn die Richtlinie nicht konfiguriert ist, kann der Nutzer diese Einstellung ändern. Es wird empfohlen, unter <ph name="PRODUCT_OS_NAME" /> die Geräterichtlinie "<ph name="DEVICE_LOGIN_SCREEN_ISOLATE_ORIGINS_POLICY_NAME" />" auf denselben Wert zu setzen. Wenn die von den beiden Richtlinien angegebenen Werte nicht übereinstimmen, kann es beim Beginn einer Nutzersitzung zu einer Verzögerung kommen, während der von der Nutzerrichtlinie angegebene Wert angewendet wird. </translation> @@ -2713,11 +2708,11 @@ <translation id="9200828125069750521">Parameter für URL der Bildsuche, die POST verwendet</translation> <translation id="9210953373038593554">Hiermit wird der Typ der Authentifizierung für SAML-Anmeldungen konfiguriert. - Wenn diese Richtlinie nicht konfiguriert oder auf dem Standardwert (Wert 0) belassen wird, wird das Verhalten bei SAML-Anmeldungen vom Browser festgelegt, abhängig von anderen Faktoren. Im einfachsten Fall basiert die Nutzerauthentifizierung und der Schutz der im Cache gespeicherten Nutzerdaten auf Passwörtern, die von den Nutzern manuell eingegeben werden. + Wenn diese Richtlinie nicht konfiguriert oder auf dem Standardwert (Wert 0) belassen wird, wird das Verhalten bei SAML-Anmeldungen abhängig von anderen Faktoren vom Browser festgelegt. Im einfachsten Fall basieren die Nutzerauthentifizierung und der Schutz der im Cache gespeicherten Nutzerdaten auf Passwörtern, die von den Nutzern manuell eingegeben werden. Wenn diese Richtlinie auf "ClientCertificate" (Wert 1) festgelegt ist, kommt für neu hinzugefügte Nutzer, die sich über SAML anmelden, die Authentifizierung mit Clientzertifikat zum Einsatz. Für solche Nutzer werden keine Passwörter verwendet und ihre im Cache gespeicherten lokalen Daten werden durch entsprechende kryptografische Schlüssel geschützt. Diese Einstellung ermöglicht z. B. die Konfiguration einer Nutzerauthentifizierung auf Grundlage von Smartcards. Hinweis: In diesem Fall ist die Installation von Smartcard-Middleware-Apps über die Richtlinie "DeviceLoginScreenAppInstallList" erforderlich. - Diese Richtlinie betrifft nur Nutzer, die sich über SAML authentifizieren.</translation> + Diese Richtlinie wirkt sich nur auf Nutzer aus, die sich über SAML authentifizieren.</translation> <translation id="9213347477683611358">Hiermit kann das Hintergrundbild auf Geräteebene konfiguriert werden, das auf dem Anmeldebildschirm angezeigt wird, wenn sich noch kein Nutzer auf dem Gerät angemeldet hat. Die Richtlinie wird konfiguriert, indem die URL, über die das Chrome OS-Gerät das Hintergrundbild herunterladen kann, und ein kryptografischer Hash, mit dem die Integrität des Downloads überprüft wird, festgelegt werden. Das Bild muss das JPEG-Format aufweisen und darf eine Dateigröße von 16 MB nicht überschreiten. Die URL muss ohne Authentifizierung zugänglich sein. Das Hintergrundbild wird heruntergeladen und im Cache gespeichert. Es wird jedes Mal neu heruntergeladen, wenn sich die URL oder der Hash ändert. Die Richtlinie sollte als String angegeben werden, der die URL und den Hash im JSON-Format ausgibt, z. B.:
diff --git a/components/policy/resources/policy_templates_el.xtb b/components/policy/resources/policy_templates_el.xtb index f85bc73..dc9dcdaa 100644 --- a/components/policy/resources/policy_templates_el.xtb +++ b/components/policy/resources/policy_templates_el.xtb
@@ -1018,11 +1018,6 @@ Εάν αυτή η πολιτική δεν οριστεί, το SPDY θα είναι διαθέσιμο.</translation> <translation id="3890999316834333174">Πολιτικές γρήγορου ξεκλειδώματος</translation> <translation id="3891357445869647828">Ενεργοποίηση JavaScript</translation> -<translation id="3891953007921334498">Απενεργοποιεί τα Εργαλεία προγραμματιστή και την κονσόλα JavaScript. - - Αν ενεργοποιήσετε αυτήν τη ρύθμιση, δεν θα μπορείτε να έχετε πρόσβαση στα Εργαλεία προγραμματιστή και δεν θα μπορείτε πλέον να ελέγξετε τα στοιχεία του ιστότοπου. Οποιεσδήποτε συντομεύσεις πληκτρολογίου και οποιοδήποτε μενού ή καταχωρίσεις μενού περιβάλλοντος που ανοίγουν τα Εργαλεία προγραμματιστή ή την κονσόλα JavaScript θα απενεργοποιηθούν. - - Αν απενεργοποιήσετε αυτήν την επιλογή ή αν δεν την ορίσετε, ο χρήστης θα μπορεί να χρησιμοποιήσει τα εργαλεία προγραμματιστή και την κονσόλα JavaScript.</translation> <translation id="3895557476567727016">Διαμορφώνει τον προεπιλεγμένο κατάλογο που θα χρησιμοποιεί το <ph name="PRODUCT_NAME" /> για τη λήψη αρχείων. Εάν οριστεί αυτή η πολιτική, θα αλλάξει τον προεπιλεγμένο κατάλογο που χρησιμοποιεί το <ph name="PRODUCT_NAME" /> για την αποθήκευση των αρχείων λήψης. Αυτή η πολιτική δεν είναι υποχρεωτική. Συνεπώς, ο χρήστης θα μπορεί να αλλάξει τον κατάλογο.
diff --git a/components/policy/resources/policy_templates_en-GB.xtb b/components/policy/resources/policy_templates_en-GB.xtb index 4de3b9b..8b19883f 100644 --- a/components/policy/resources/policy_templates_en-GB.xtb +++ b/components/policy/resources/policy_templates_en-GB.xtb
@@ -1042,11 +1042,6 @@ If this policy is left unset, SPDY will be available.</translation> <translation id="3890999316834333174">Quick unlock policies</translation> <translation id="3891357445869647828">Enable JavaScript</translation> -<translation id="3891953007921334498">Disables the Developer Tools and the JavaScript console. - - If you enable this setting, the Developer Tools can not be accessed and web-site elements can not be inspected any more. Any keyboard shortcuts and any menu or context menu entries to open the Developer Tools or the JavaScript Console will be disabled. - - Setting this option to disabled or leaving it not set allows the user to use the Developer Tools and the JavaScript console.</translation> <translation id="3895557476567727016">Configures the default directory that <ph name="PRODUCT_NAME" /> will use for downloading files. If you set this policy, it will change the default directory that <ph name="PRODUCT_NAME" /> downloads files to. This policy is not mandatory, so the user will be able to change the directory.
diff --git a/components/policy/resources/policy_templates_es-419.xtb b/components/policy/resources/policy_templates_es-419.xtb index a5dcdf29..af430f3 100644 --- a/components/policy/resources/policy_templates_es-419.xtb +++ b/components/policy/resources/policy_templates_es-419.xtb
@@ -413,6 +413,20 @@ Aún así, la revisión ortográfica se puede llevar a cabo utilizando un diccionario descargado, puesto que esta política solo controla el uso del servicio en línea. Si esta opción no se configura, los usuarios pueden elegir utilizar o no el servicio de revisión ortográfica.</translation> +<translation id="2294283832646774959">Configura una lista de impresoras. + + Esta política permite que los administradores proporcionen configuraciones de impresoras para sus usuarios. + + <ph name="PRINTER_DISPLAY_NAME" /> y <ph name="PRINTER_DESCRIPTION" /> son strings con formato libre que pueden personalizarse para facilitar la selección de impresoras. <ph name="PRINTER_MANUFACTURER" /> y <ph name="PRINTER_MODEL" /> sirven para que los usuarios finales puedan identificar las impresoras fácilmente y representan al fabricante y el modelo de la impresora. <ph name="PRINTER_URI" /> debe ser una dirección que se pueda contactar desde la computadora cliente, que incluya <ph name="URI_SCHEME" />, <ph name="URI_PORT" /> y <ph name="URI_QUEUE" />. <ph name="PRINTER_UUID" /> es opcional. Si se proporciona, se usa para ayudar con la anulación de las impresoras <ph name="ZEROCONF_DISCOVERY" /> duplicadas. + + <ph name="PRINTER_EFFECTIVE_MODEL" /> debe coincidir con uno de los strings que representan una impresora compatible con <ph name="PRODUCT_NAME" />. El string se usará para identificar e instalar el PPD correspondiente para la impresora. Para obtener más información, visita https://support.google.com/chrome?p=noncloudprint. + + La configuración de la impresora se completa cuando se usa por primera vez. Los PPD no se descargan hasta que se usa la impresora. Luego, los PPD que se usan con mayor frecuencia se almacenan en caché. + + Esta política no afecta la capacidad del usuario para configurar impresoras en dispositivos individuales. Su objetivo es complementar la configuración de impresoras a cargo de usuarios individuales. + + Para los dispositivos administrados con Active Directory, esta política es compatible con la expansión de <ph name="MACHINE_NAME_VARIABLE" /> al nombre de la máquina de Active Directory o un substring de él. Por ejemplo, si el nombre de la máquina es <ph name="MACHINE_NAME_EXAMPLE" />, entonces <ph name="MACHINE_NAME_VARIABLE_EXAMPLE" /> se reemplazará con los 4 caracteres a partir de la sexta posición, es decir, <ph name="MACHINE_NAME_PART_EXAMPLE" />. Ten en cuenta que esta posición incluye el cero. + </translation> <translation id="2294382669900758280">No se tiene en cuenta la reproducción de video en las apps de Android, incluso si esta política se establece como <ph name="TRUE" />.</translation> <translation id="2298647742290373702">Configura la página predeterminada Nueva pestaña en <ph name="PRODUCT_NAME" />.</translation> <translation id="2299220924812062390">Especificar una lista de complementos habilitados</translation> @@ -979,11 +993,6 @@ Si esta política se deja sin configurar, SPDY estará disponible.</translation> <translation id="3890999316834333174">Políticas de desbloqueo rápido</translation> <translation id="3891357445869647828">Habilitar JavaScript</translation> -<translation id="3891953007921334498">Inhabilita las herramientas del programador y la consola de JavaScript. - - Si se habilita esta configuración, no se podrá acceder a las herramientas del programador, y los elementos del sitio web ya no se podrán inspeccionar. Se inhabilitarán las combinaciones de teclas y entradas de menú o de menú contextual para abrir las herramientas del programador o la consola de JavaScript. - - Si se inhabilita o no se configura esta opción, el usuario podrá usar las herramientas del programador y la consola de JavaScript.</translation> <translation id="3895557476567727016">Configura el directorio predeterminado que usará <ph name="PRODUCT_NAME" /> para descargar archivos. Si se establece esta política, cambiará el directorio predeterminado en el que <ph name="PRODUCT_NAME" /> descarga archivos. Esta política no es obligatoria, por lo que el usuario podrá cambiar el directorio. @@ -1172,6 +1181,7 @@ <translation id="4508686775017063528">Si se establece esta política como verdadera o no se establece, se habilitará <ph name="PRODUCT_NAME" /> y los usuarios podrán ejecutarla desde el menú de la app, los menús contextuales de la página, los controles multimedia en los sitios web compatibles con Cast y (si se muestra) el ícono de la barra de herramientas de Cast. Si se establece esta política como falsa, <ph name="PRODUCT_NAME" /> se inhabilitará.</translation> +<translation id="4515404363392014383">Habilita la Navegación segura para las fuentes de confianza</translation> <translation id="4518251772179446575">Preguntar siempre si un sitio quiere rastrear la ubicación física de los usuarios.</translation> <translation id="4519046672992331730">Habilita las sugerencias de búsqueda en el cuadro multifunción de <ph name="PRODUCT_NAME" /> y evita que los usuarios cambien esta configuración. @@ -1292,6 +1302,7 @@ Si esta política se establece en Falso, las solicitudes de bloqueo de activación de pantalla se ignorarán.</translation> <translation id="487460824085252184">Migra automáticamente y no solicita el consentimiento del usuario.</translation> +<translation id="4874982543810021567">Bloquea WebUSB en estos sitios</translation> <translation id="4876805738539874299">Versión de SSL máxima habilitada</translation> <translation id="4897928009230106190">Especifica los parámetros utilizados al realizar una búsqueda de sugerencias con POST. Se compone de pares de nombre/valor separados por coma. Si un valor es un parámetro de plantilla, como {searchTerms} en el ejemplo anterior, se reemplazará por datos de términos de búsqueda reales. @@ -1819,6 +1830,11 @@ Si no se establece esta política, la predicción de red se habilitará, pero el usuario podrá cambiarla.</translation> <translation id="6658245400435704251">Especifica la cantidad máxima de segundos que un dispositivo puede retrasar aleatoriamente la descarga de una actualización desde el momento en el que la descarga se envío al servidor por primera vez. El dispositivo puede dedicar una parte de este tiempo al proceso de actualización y el resto a realizar las comprobaciones necesarias. En cualquier caso, el límite superior de la dispersión es un período de tiempo constante, para que el dispositivo no se quede bloqueado mientras espera descargar una actualización.</translation> <translation id="6665670272107384733">Establecer la frecuencia con la que el usuario debe ingresar la contraseña para usar el desbloqueo rápido</translation> +<translation id="6681229465468164801">Te permite establecer una lista de patrones de URL que especifica los sitios que no pueden solicitarle al usuario acceso a un dispositivo USB. + + Si no se establece esta política, el valor predeterminado global se usará para todos los sitios, ya sea desde la política "DefaultWebUsbGuardSetting" (si se establece) o desde otro tipo de configuración personal del usuario. + + Los patrones de URL en esta política no deben entrar en conflicto con los que se configuren a través de WebUsbAskForUrls. No se especifica cuál de las dos políticas tiene prioridad si una URL coincide con ambas.</translation> <translation id="6689792153960219308">Informar estado de hardware</translation> <translation id="6698071416141001300">La marca de la protección de la contraseña que indica que la cuenta está en riesgo se activa cuando se vuelve a usar la contraseña</translation> <translation id="6699880231565102694">Habilitar autenticación de dos factores para los hosts de acceso remoto.</translation> @@ -1976,6 +1992,11 @@ Si se inhabilita o no se establece, la protección de Navegación segura se aplicará a todos los recursos. Esta política no está disponible en instancias de Windows que no estén unidas a un dominio de <ph name="MS_AD_NAME" />.</translation> <translation id="7079519252486108041">Bloquear ventanas emergentes en estos sitios</translation> +<translation id="7085803328069945025">Te permite establecer una lista de patrones de URL que especifican los sitios que pueden solicitarle al usuario acceso a un dispositivo USB. + + Si no se establece esta política, se usará el valor predeterminado global para todos los sitios, ya sea desde la política "DefaultWebUsbGuardSetting" (si se establece) o desde otro tipo de configuración personal del usuario. + + Los patrones de URL en esta política no deben entrar en conflicto con los que se configuren a través de WebUsbAskForUrls. No se especifica cuál de las dos políticas tiene prioridad si una URL coincide con ambas.</translation> <translation id="7106631983877564505">Habilitar el bloqueo cuando los dispositivos <ph name="PRODUCT_OS_NAME" /> están inactivos o suspendidos Si habilitas esta configuración, los usuarios deberán ingresar una contraseña para que los dispositivos salgan del modo de suspensión. @@ -2663,6 +2684,7 @@ <translation id="9096086085182305205">Lista blanca del servidor de autenticación</translation> <translation id="9098553063150791878">Políticas para la autenticación HTTP</translation> <translation id="9105265795073104888">Las apps de Android tienen a su disposición solo un subgrupo de opciones de configuración de proxy. Dichas apps pueden elegir usar el proxy de forma voluntaria, pero no puedes forzarlas a que lo usen.</translation> +<translation id="9106865192244721694">Permite WebUSB en estos sitios</translation> <translation id="9112727953998243860">Archivo de configuración de impresoras empresariales</translation> <translation id="9112897538922695510">Te permite registrar una lista de controladores de protocolo. Esto solo puede ser una política recomendada. La propiedad |protocol| se debe establecer para el esquema (por ejemplo, "mailto") de la URL, y la propiedad |url| se debe establecer para el patrón de la URL de la aplicación que controla el esquema. El patrón puede incluir una especificación "%s" que, si está presente, se reemplazará por la URL controlada. @@ -2695,6 +2717,11 @@ <translation id="915194831143859291">Si esta política se establece en false o no se configura, <ph name="PRODUCT_OS_NAME" /> permitirá que el usuario apague el dispositivo. Si esta política se establece en true, <ph name="PRODUCT_OS_NAME" /> desencadenará un reinicio cuando el usuario apague el dispositivo. <ph name="PRODUCT_OS_NAME" /> reemplaza todos los botones de apagado de la UI por botones de reinicio. Si el usuario apaga el dispositivo con el botón de encendido, no se reiniciará automáticamente aunque la política esté habilitada.</translation> <translation id="9158929520101169054">Permitir el acceso múltiple en el navegador</translation> +<translation id="9165792353046089850">Te permite establecer si los sitios web pueden acceder a dispositivos USB conectados. El acceso se puede bloquear por completo, o se puede preguntar al usuario cada vez que un sitio web desee acceder a dispositivos USB conectados. + + Las políticas "WebUsbAskForUrls" y "WebUsbBlockedForUrls" pueden anular esta política para patrones de URL específicos. + + Si no se establece esta política, se usará el valor "3", y el usuario podrá cambiarlo.</translation> <translation id="9167719789236691545">Inhabilitar Drive en la app de Archivos de <ph name="PRODUCT_OS_NAME" /></translation> <translation id="9187743794267626640">Inhabilitar la activación del almacenamiento externo</translation> <translation id="9197740283131855199">Indica el porcentaje en el que debe ajustarse el tiempo de espera de inactividad de la pantalla si el usuario vuelve a estar activo después de la inactividad.</translation>
diff --git a/components/policy/resources/policy_templates_es.xtb b/components/policy/resources/policy_templates_es.xtb index da1eac3..57b2a12 100644 --- a/components/policy/resources/policy_templates_es.xtb +++ b/components/policy/resources/policy_templates_es.xtb
@@ -1037,11 +1037,6 @@ Si esta política no se configura, el protocolo SPDY estará disponible.</translation> <translation id="3890999316834333174">Políticas del desbloqueo rápido</translation> <translation id="3891357445869647828">Habilitar JavaScript</translation> -<translation id="3891953007921334498">Permite inhabilitar las Herramientas para Desarrolladores y la consola de JavaScript. - - Si habilitas esta opción, no se podrá acceder a las Herramientas para Desarrolladores ni se podrán inspeccionar los elementos de los sitios web. También se inhabilitarán las combinaciones de teclas y las entradas de menús o de menús contextuales que permiten abrir las Herramientas para Desarrolladores o la consola de JavaScript. - - Si se inhabilita esta opción o si no se establece, se podrán usar las Herramientas para Desarrolladores y la consola de JavaScript.</translation> <translation id="3895557476567727016">Configura el directorio que <ph name="PRODUCT_NAME" /> utilizará para descargar archivos. Si estableces esta política, cambiará el directorio predeterminado en el que <ph name="PRODUCT_NAME" /> descarga los archivos. Esta política no es obligatoria, por lo que el usuario podrá cambiar el directorio.
diff --git a/components/policy/resources/policy_templates_et.xtb b/components/policy/resources/policy_templates_et.xtb index 24562c8..e12e5bac 100644 --- a/components/policy/resources/policy_templates_et.xtb +++ b/components/policy/resources/policy_templates_et.xtb
@@ -406,12 +406,11 @@ Reegli väärtus tuleb määrata millisekundites. Väärtus peab olema tegevusetuse viivitusest väiksem või sellega võrdne.</translation> <translation id="2289578386193672044">Määrab loendi rakendustest ja laiendustest, mis installitakse vaikimisi ning kasutajaga suhtlemata ja mida kasutaja ei saa desinstallida ega - keelata. Kõik rakenduste/laienduste taotletud load antakse vaikimisi + keelata. Kõik rakenduste/laienduste taotletud load (sh kõik lisaload, mida rakenduse/laienduse tulevased versioonid taotlevad) antakse vaikimisi - ning kasutajaga suhtlemata (sh kõik lisaload, mida rakenduse/laienduse - tulevased versioonid taotlevad). Load antakse ka laienduste API-dele + ning kasutajaga suhtlemata. Load antakse ka laienduste API-dele enterprise.deviceAttributes ja enterprise.platformKeys. (Need kaks - API-tpole saadaval rakendustele/laiendustele, mis pole sundinstallitud.) + API-t pole saadaval rakendustele/laiendustele, mis pole sundinstallitud.) See reegel seatakse ettepoole potentsiaalselt konfliktsest reeglist <ph name="EXTENSION_INSTALL_BLACKLIST_POLICY_NAME" />. Kui rakendus või laiendus, mis varem sundinstalliti, sellest loendist eemaldatakse, siis desinstallib teenus <ph name="PRODUCT_NAME" /> selle automaatselt. @@ -420,7 +419,7 @@ Pange tähele, et arendaja tööriistadega saavad kasutajad muuta iga laienduse lähtekoodi (mis võib põhjustada laienduse väärtalitlust). Kui see on probleem, tuleb määrata reegel <ph name="DEVELOPER_TOOLS_POLICY_NAME" />. -Reegli iga loendiüksus on string, mis sisaldab laienduse ID-d ja „värskenduse” URL-i, mis on eraldatud semikooloniga (<ph name="SEMICOLON" />). Laienduse ID on 32-täheline string, mis kuvatakse näiteks arendajarežiimis teenuses <ph name="CHROME_EXTENSIONS_LINK" />. „Värskenduse” URL peab viitama XML-dokumendi värskendusmanifestile, nagu on kirjeldatud jaotises <ph name="LINK_TO_EXTENSION_DOC1" />. Vaikimisi kasutatakse Chrome'i veebipoe värskenduse URL-i (praegune URL on „https://clients2.google.com/service/update2/crx”) Pange tähele, et reeglis määratud „värskenduse” URL-i kasutatakse vaid algsel installimisel ja laienduse tulevased värskendused kasutavad laienduse manifestis märgitud värskenduse URL-i. Samuti pange tähele, et konkreetse värskenduse URL-i määramine oli kuni teenuse <ph name="PRODUCT_NAME" /> 67. versioonini (kaasa arvatud) kohustuslik. +Reegli iga loendiüksus on string, mis sisaldab laienduse ID-d ja valikuliselt ka „värskenduse” URL-i, mis on eraldatud semikooloniga (<ph name="SEMICOLON" />). Laienduse ID on 32-täheline string, mis kuvatakse näiteks arendajarežiimis teenuses <ph name="CHROME_EXTENSIONS_LINK" />. „Värskenduse” URL peab viitama XML-dokumendi värskendusmanifestile, nagu on kirjeldatud jaotises <ph name="LINK_TO_EXTENSION_DOC1" />. Vaikimisi kasutatakse Chrome'i veebipoe värskenduse URL-i (praegune URL on „https://clients2.google.com/service/update2/crx”). Pange tähele, et reeglis määratud „värskenduse” URL-i kasutatakse vaid algsel installimisel ja laienduse tulevased värskendused kasutavad laienduse manifestis märgitud värskenduse URL-i. Konkreetse värskenduse URL-i määramine oli kohustuslik kuni teenuse <ph name="PRODUCT_NAME" /> 67. versioonini (kaasa arvatud). Näiteks reegel <ph name="EXTENSION_POLICY_EXAMPLE" /> installib laienduse <ph name="EXTENSION_POLICY_EXAMPLE_EXTENSION_NAME" /> rakenduse standardselt Chrome’i veebipoe „värskenduse” URL-ilt. Lisateavet hostimise laienduste kohta leiate siit: <ph name="LINK_TO_EXTENSION_DOC2" />. @@ -430,6 +429,21 @@ Õigekirjakontrolli saab siiski teha, kasutades selleks allalaaditud sõnastikku. Reegel haldab ainult veebiteenuse kasutamist. Kui seade pole seadistatud, siis saavad kasutajad valida, kas kasutada õigekirjakontrolli teenust või mitte.</translation> +<translation id="2294283832646774959">Seadistab printerite loendi. + + See reegel võimaldab administraatoritel kasutajatele printerite seadistusi + pakkuda. + + <ph name="PRINTER_DISPLAY_NAME" /> ja <ph name="PRINTER_DESCRIPTION" /> on vabas vormis stringid, mida saab printeri valimise hõlbustamiseks kohandada. <ph name="PRINTER_MANUFACTURER" /> ja <ph name="PRINTER_MODEL" /> lihtsustavad printeri tuvastamist lõppkasutajatele. Need näitavad printeri tootjat ja mudelit. <ph name="PRINTER_URI" /> peab olema aadress, mida saab külastada klientarvutist, sh <ph name="URI_SCHEME" />, <ph name="URI_PORT" /> ja <ph name="URI_QUEUE" />. <ph name="PRINTER_UUID" /> on valikuline. Selle olemasolul aitab see seadistus printerite <ph name="ZEROCONF_DISCOVERY" /> duplikaate eemaldada. + + <ph name="PRINTER_EFFECTIVE_MODEL" /> peab ühtima mõne stringiga, mis esindab teenuses <ph name="PRODUCT_NAME" /> toetatud printerit. Stringi kasutatakse printeri vastava PPD tuvastamiseks ja installimiseks. Lisateavet leiate aadressilt https://support.google.com/chrome?p=noncloudprint. + + Printeri seadistus viiakse lõpule printeri esimesel kasutuskorral. PPD-sid ei laadita alla enne, kui printerit kasutatakse. Pärast seda salvestatakse sageli kasutatud PPD-d vahemällu. + + Reegel ei mõjuta seda, kas kasutajad saavad individuaalsetes seadmetes printereid seadistada. See on mõeldud individuaalsete kasutajate printerite seadistusi täiendama. + + Active Directory hallatavate seadmete puhul toetab see reegel seadme <ph name="MACHINE_NAME_VARIABLE" /> laiendamist Active Directory seadme nimele või selle alamstringile. Näiteks kui seadme nimi on <ph name="MACHINE_NAME_EXAMPLE" />, siis asendatakse <ph name="MACHINE_NAME_VARIABLE_EXAMPLE" /> nelja tähemärgiga, mis algab pärast kuuendat märki (nt <ph name="MACHINE_NAME_PART_EXAMPLE" />). Pange tähele, et loendamist alustatakse nullist. + </translation> <translation id="2294382669900758280">Video esitamist Androidi rakendustes ei arvestata, isegi kui reegli väärtuseks on määratud <ph name="TRUE" />.</translation> <translation id="2298647742290373702">Seadistab uue vaikevahelehe teenuses <ph name="PRODUCT_NAME" />.</translation> <translation id="2299220924812062390">Lubatud pistikprogrammide loendi määramine</translation> @@ -1016,11 +1030,6 @@ Kui jätate selle reegli määramata, on SPDY saadaval.</translation> <translation id="3890999316834333174">Kiiravamise reeglid</translation> <translation id="3891357445869647828">Luba JavaScript</translation> -<translation id="3891953007921334498">Keelab arendaja tööriistad ja JavaScripti konsooli. - - Seade lubamisel ei saa arendaja tööriistu kasutada ega veebisaitide elemente uurida. Kõik klaviatuuri otseteed ning arendaja tööriistade ja JavaScripti konsooli avamise käsud menüüdes ning kontekstimenüüdes keelatakse. - - Kui keelate valiku või jätate selle määramata, saab kasutaja arendaja tööriistu ja JavaScripti konsooli kasutada.</translation> <translation id="3895557476567727016">Seadistab vaikekataloogi, mida brauser <ph name="PRODUCT_NAME" /> kasutab failide allalaadimiseks. Selle reegli määramisel muudetakse vaikekataloogi, kuhu brauser <ph name="PRODUCT_NAME" /> failid alla laadib. See reegel ei ole kohustuslik, seega saab kasutaja kataloogi muuta. @@ -1218,6 +1227,7 @@ <translation id="4508686775017063528">Kui reegli väärtuseks on määratud Tõene või see on määramata, on teenus <ph name="PRODUCT_NAME" /> lubatud ning kasutajad saavad selle käivitada rakenduse menüüst, lehe kontekstimenüüdest, meedia juhtelementidelt Cast'i toega veebisaitidel ja Cast'i tööriistariba ikoonil (kui see on kuvatud). Kui reegli väärtuseks on määratud Väär, siis on teenus <ph name="PRODUCT_NAME" /> keelatud.</translation> +<translation id="4515404363392014383">Ohutu sirvimise lubamine usaldusväärsete allikate puhul</translation> <translation id="4518251772179446575">Küsi iga kord, kui sait tahab jälgida kasutajate füüsilist asukohta</translation> <translation id="4519046672992331730">Lubab otsingusoovitused rakenduse <ph name="PRODUCT_NAME" /> omnikastikeses ja takistab kasutajatel seade muutmist. @@ -1340,6 +1350,7 @@ Kui reegli väärtuseks on seatud Väär, siis ekraani aktiveerimise lukustamise taotlust eiratakse.</translation> <translation id="487460824085252184">Üleviimine toimub automaatselt, kasutaja nõusolekut ei küsita.</translation> +<translation id="4874982543810021567">Reegli WebUSB blokeerimine nendel saitidel</translation> <translation id="4876805738539874299">Maksimaalne lubatud SSL-i versioon</translation> <translation id="4897928009230106190">Täpsustab parameetri, mida kasutatakse POST-meetodiga soovituse otsingu tegemisel. See koosneb komaga eraldatud nime/väärtuse paaridest. Kui väärtus on malliparameeter, nt {searchTerms} ülalolevas näites, siis asendatakse see otsingutermini andmetega. @@ -1912,6 +1923,11 @@ Kui see reegel jäetakse määramata, on võrguprognoosid lubatud, kuid kasutaja saab seda muuta.</translation> <translation id="6658245400435704251">Määrab sekundite arvu pärast värskenduse serverist väljalaskmist, mille jooksul võib seade värskenduse allalaadimist juhuslikult viivitada. Seade võib oodata osa ajast reaalajas ja ülejäänud aja sõltuvalt värskenduste otsimiste arvust. Igal juhul on hajutatuse ülempiir seotud ajalise konstandiga, et seade ei jääks värskenduse allalaadimist igaveseks ootama.</translation> <translation id="6665670272107384733">Kiire avamise puhul parooli sisestamise sageduse määramine</translation> +<translation id="6681229465468164801">Võimaldab määrata URL-i mustrite loendi, mis määrab saidid, millel ei ole lubatud küsida kasutajalt luba USB-seadmele juurdepääsemiseks. + + Kui jätate selle reegli määramata, kasutatakse kõikide saitide puhul globaalset vaikeväärtust, mis pärineb reeglist „DefaultWebUsbGuardSetting” (kui see on määratud) või kasutaja isiklikust seadistusest. + + Selles reeglis olevad URL-i mustrid ei tohi olla vastuolus reeglitega, mis on seadistatud reegliga WebUsbAskForUrls. Määramata on see, millist kahest reeglist eelistatakse, kui URL ühtib mõlemaga.</translation> <translation id="6689792153960219308">Riistvara oleku aruanne</translation> <translation id="6698071416141001300">Ohus olevate paroolikaitse kontode märgistamise käivitab parooli uuesti kasutamine</translation> <translation id="6699880231565102694">Kahetasandilise autentimise lubamine kaugjuurdepääsu hostidele</translation> @@ -1941,7 +1957,7 @@ <ph name="TPM_FIRMWARE_UPDATE_SETTINGS_ALLOW_USER_INITIATED_POWERWASH" />: kui see on määratud väärtusele <ph name="TPM_FIRMWARE_UPDATE_SETTINGS_ALLOW_USER_INITIATED_POWERWASH_TRUE" />, saavad kasutajad teenuse <ph name="TPM_FIRMWARE_UPDATE_TPM" /> püsivaravärskenduse installimiseks käivitada Powerwashi voo. - <ph name="TPM_FIRMWARE_UPDATE_SETTINGS_ALLOW_USER_INITIATED_PRESERVE_DEVICE_STATE" />: kui see on määratud väärtusele <ph name="TPM_FIRMWARE_UPDATE_SETTINGS_ALLOW_USER_INITIATED_PRESERVE_DEVICE_STATE_TRUE" />, saavad kasutajad käivitada teenuse <ph name="TPM_FIRMWARE_UPDATE_TPM" /> püsivara värskendusvoo, mis säilitab kogu seadme oleku (sh ettevõtte registreerimise), ent eemaldab kasutajate andmed. See värskendusvoog on saadaval alates 68. versioonist. + <ph name="TPM_FIRMWARE_UPDATE_SETTINGS_ALLOW_USER_INITIATED_PRESERVE_DEVICE_STATE" />: kui see on määratud väärtusele <ph name="TPM_FIRMWARE_UPDATE_SETTINGS_ALLOW_USER_INITIATED_PRESERVE_DEVICE_STATE_TRUE" />, saavad kasutajad käivitada teenuse <ph name="TPM_FIRMWARE_UPDATE_TPM" /> püsivara värskendusvoo, mis säilitab kogu seadme oleku (sh ettevõtte registreerimise), ent eemaldab kasutajate andmed. See värskendusvoog on saadaval alates 68. versioonist. Kui reegel on määramata, ei ole teenuse <ph name="TPM_FIRMWARE_UPDATE_TPM" /> püsivaravärskenduse funktsioon saadaval.</translation> <translation id="6757438632136860443">Võimaldab määrata URL-i mustrite loendi, mis määrab saidid, millel on lubatud pistikprogrammi <ph name="FLASH_PLUGIN_NAME" /> käitada. @@ -1965,7 +1981,7 @@ on kvantifitseeritud ja värskenduste määra piiratakse turvakaalutlustel. Reaalajas täpsete andmete hankimiseks kasutage sellist tööriista nagu telemeetria.</translation> <translation id="6870914592443697993"> - See reegel kehtib sisselogimisekraanil. Vaadake ka reeglit <ph name="ISOLATE_ORIGINS_POLICY_NAME" />, mis kehtib kasutajaseansi puhul. Soovitatav on mõlemale reeglile määrata sama väärtus. Kui väärtused ei ühti, võib kasutajareegliga määratud väärtuse rakendamisel esineda kasutajaseanssi sisenemisel viivitusi. + See reegel kehtib sisselogimiskuval. Vaadake ka reeglit <ph name="ISOLATE_ORIGINS_POLICY_NAME" />, mis kehtib kasutajaseansi puhul. Soovitatav on mõlemale reeglile määrata sama väärtus. Kui väärtused ei ühti, võib kasutajareegliga määratud väärtuse rakendamisel esineda kasutajaseanssi sisenemisel viivitusi. Kui reegel on lubatud, käitab iga komadega eraldatud loendis nimetatud lähtekoht oma protsesse. See isoleerib ka alamdomeenide nimetatud lähtekohad; nt aadressi https://example.com/ @@ -1973,7 +1989,7 @@ aadress https://foo.example.com/. Kui reegel on keelatud, ei toimu selget saidi isoleerimist ning reeglite IsolateOrigins ja SitePerProcess testid keelatakse. Kasutajad saavad reegli IsolateOrigins siiski käsitsi lubada. - Kui reegel on seadistamata, kasutatakse sisselogimisekraanil platvormi saitide isoleerimise vaikeseadeid. + Kui reegel on seadistamata, kasutatakse sisselogimiskuval platvormi saitide isoleerimise vaikeseadeid. </translation> <translation id="6894178810167845842">Uue vahelehe URL</translation> <translation id="6899705656741990703">Tuvasta puhverserveri seaded automaatselt</translation> @@ -2083,6 +2099,11 @@ Kui see seade on keelatud või seadistamata, siis rakendatakse ohutu sirvimise funktsiooni vaikekaitse kõikidele allikatele. See reegel ei ole saadaval Windowsi eksemplarides, mis pole domeeniga <ph name="MS_AD_NAME" /> liitunud.</translation> <translation id="7079519252486108041">Blokeeri hüpikaknad nendel saitidel</translation> +<translation id="7085803328069945025">Võimaldab määrata URL-i mustrite loendi, mis määrab saidid, millel on lubatud küsida kasutajalt luba USB-seadmele juurdepääsemiseks. + + Kui jätate selle reegli määramata, kasutatakse kõikide saitide puhul globaalset vaikeväärtust, mis pärineb reeglist „DefaultWebUsbGuardSetting” (kui see on määratud) või kasutaja isiklikust seadistusest. + + Selles reeglis olevad URL-i mustrid ei tohi olla vastuolus reeglitega, mis on seadistatud reegliga WebUsbBlockedForUrls. Määramata on see, millist kahest reeglist eelistatakse, kui URL ühtib mõlemaga.</translation> <translation id="7106631983877564505">Lubage operatsioonisüsteemiga <ph name="PRODUCT_OS_NAME" /> seadmete lukustamine, kui need on peatatud või tegevusetud. Kui lubate seade, küsitakse kasutajatelt unerežiimis seadme avamiseks parooli. @@ -2781,6 +2802,7 @@ <translation id="9096086085182305205">Autentimisserveri lubatud nimekiri</translation> <translation id="9098553063150791878">HTTP autentimise reeglid</translation> <translation id="9105265795073104888">Androidi rakendustele muudetakse kättesaadavaks ainult puhverserveri seadistuse valikute alamkomplekt. Androidi rakenduste jaoks on puhverserveri kasutamine vabatahtlik. Te ei saa puhverserveri kasutamist sundida.</translation> +<translation id="9106865192244721694">Reegli WebUSB lubamine nendel saitidel</translation> <translation id="9112727953998243860">Ettevõtte printerite konfiguratsioonifail</translation> <translation id="9112897538922695510">Lubab teil registreerida protokollitöötlejate loendi. See saab olla ainult soovitatud reegel. Atribuut |protocol| tuleb määrata skeemile (nagu „mailto”) ja atribuut |url| tuleb määrata skeemi käsitleva rakenduse URL-i mustrile. Muster võib sisaldada märgendit „%s”, mis asendatakse sellisel juhul käsitletava URL-iga. @@ -2820,6 +2842,11 @@ <translation id="915194831143859291">Kui reegel on määramata või seatud väärtusele Väär, lubab <ph name="PRODUCT_OS_NAME" /> kasutajal seadme välja lülitada. Kui reegel on seatud väärtusele Tõene ja kasutaja lülitab seadme välja, taaskäivitab <ph name="PRODUCT_OS_NAME" /> seadme. <ph name="PRODUCT_OS_NAME" /> asendab kasutajaliidese kõik väljalülitamisnupud taaskäivitusnuppudega. Kui kasutaja lülitab seadme toitenupuga välja, ei taaskäivitata seda automaatselt, isegi kui reegel on lubatud.</translation> <translation id="9158929520101169054">Brauseris mitmele kontole sisselogimise lubamine</translation> +<translation id="9165792353046089850">Võimaldab määrata, kas veebisaitidel on juurdepääs ühendatud USB-seadmetele. Juurdepääsu saab täielikult blokeerida või küsida kasutaja käest iga kord luba, kui veebisait soovib juurdepääsu ühendatud USB-seadmetele. + + Selle reegli saab teatud URL-i mustrite puhul alistada, kasutades reegleid „WebUsbAskForUrls” ja „WebUsbBlockedForUrls”. + + Kui reegel jäetakse määramata, kasutatakse väärtust „3” ja kasutaja saab seda muuta.</translation> <translation id="9167719789236691545">Drive'i keelamine operatsioonisüsteemi <ph name="PRODUCT_OS_NAME" /> rakenduses Failid</translation> <translation id="9187743794267626640">Keela välismäluseadmete ühendamine</translation> <translation id="9197740283131855199">Ekraani tumenduse viivituse skaleerimise määr protsentides, kui kasutaja muutub pärast tumendamist aktiivseks.</translation>
diff --git a/components/policy/resources/policy_templates_fa.xtb b/components/policy/resources/policy_templates_fa.xtb index 1ae76f82..6ce96150 100644 --- a/components/policy/resources/policy_templates_fa.xtb +++ b/components/policy/resources/policy_templates_fa.xtb
@@ -990,11 +990,6 @@ اگر این خطمشی تنظیمنشده رها شود، SPDY در دسترس قرار خواهید گرفت.</translation> <translation id="3890999316834333174">خطمشیهای بازکردن سریع قفل</translation> <translation id="3891357445869647828">فعال کردن جاوا اسکریپت</translation> -<translation id="3891953007921334498">ابزارهای برنامهنویس و کنسول جاوا اسکریپت را غیرفعال میکند. - - اگر این گزینه را فعال کنید، ابزارهای برنامهنویس قابل دسترس نخواهند بود و عناصر وبسایتها دیگر نمیتوانند بازرسی شوند. همه میانبرهای صفحهکلید، منو یا منوی بافت که ابزارهای برنامهنویس یا کنسول جاوا اسکریپت را باز میکنند، غیرفعال میشوند. - - تنظیم این گزینه بر روی غیرفعال یا تنظیم نکردن آن به کاربر اجازه میدهد تا از ابزارهای برنامهنویس و کنسول جاوا اسکریپت استفاده کند.</translation> <translation id="3895557476567727016">فهرست راهنمای پیشفرضی را که <ph name="PRODUCT_NAME" /> برای بارگیری فایلها استفاده میکند پیکربندی میکند. اگر این خط مشی را تنظیم کنید، فهرست راهنمای پیشفرضی که <ph name="PRODUCT_NAME" /> فایلها را در آن ذخیره میکند تغییر خواهد کرد. این خطمشی اجباری نیست و بنابراین کاربر میتواند فهرست راهنما را تغییر دهد.
diff --git a/components/policy/resources/policy_templates_fi.xtb b/components/policy/resources/policy_templates_fi.xtb index 2767e7c..4d3d303 100644 --- a/components/policy/resources/policy_templates_fi.xtb +++ b/components/policy/resources/policy_templates_fi.xtb
@@ -1001,11 +1001,6 @@ Jos käytäntöä ei ole määritetty, SDPY on käytettävissä.</translation> <translation id="3890999316834333174">Lukituksen pika-avaamisen käytännöt</translation> <translation id="3891357445869647828">Ota JavaScript käyttöön</translation> -<translation id="3891953007921334498">Poistaa käytöstä kehittäjän työkalut sekä JavaScript-konsolin. - - Jos otat asetuksen käyttöön, kehittäjän työkaluja ei voi käyttää eikä verkkosivustojen elementtejä enää voi tarkastaa. Kehittäjän työkalut tai JavaScript-konsolin avaavat pikanäppäimet ja valikkokohteet poistetaan käytöstä. - - Jos poistat asetuksen käytöstä tai et määritä sitä, kehittäjän työkaluja ja JavaScript-konsolia voi käyttää.</translation> <translation id="3895557476567727016">Määrittää oletushakemiston, jota <ph name="PRODUCT_NAME" /> käyttää tiedostojen lataamiseen Jos otat tämän käytännön käyttöön, se muuttaa oletushakemistoa, johon <ph name="PRODUCT_NAME" /> lataa tiedostot. Tämä käytäntö ei ole pakollinen, eli käyttäjä voi vaihtaa hakemistoa.
diff --git a/components/policy/resources/policy_templates_fil.xtb b/components/policy/resources/policy_templates_fil.xtb index 56f21829..9baac4e 100644 --- a/components/policy/resources/policy_templates_fil.xtb +++ b/components/policy/resources/policy_templates_fil.xtb
@@ -1031,11 +1031,6 @@ Kung hindi itinakda ang patakarang ito, magiging available ang SPDY.</translation> <translation id="3890999316834333174">Mga patakaran sa mabilisang pag-unlock</translation> <translation id="3891357445869647828">Paganahin ang JavaScript</translation> -<translation id="3891953007921334498">Dini-disable ang Mga Tool ng Developer at ang JavaScript console. - - Kung ie-enable mo ang setting na ito, hindi maa-access ang Mga Tool ng Developer at hindi na maaaring siyasatin ang mga elemento ng web-site. Idi-disable ang anumang mga keyboard shortcut at anumang mga entry ng menu o menu ng konteksto upang mabuksan ang Mga Tool ng Developer o ang JavaScript Console. - - Kapag itinakda ang opsyong ito sa naka-disable o kapag iniwan itong hindi nakatakda, bibigyang-daan ang user na gamitin ang Mga Tool ng Developer at ang JavaScript console.</translation> <translation id="3895557476567727016">Nagko-configure sa default na directory na gagamitin ng <ph name="PRODUCT_NAME" /> para sa pag-download ng mga file. Kung itatakda mo ang patakarang ito, babaguhin nito ang default na directory kung saan nagda-download ng mga file ang <ph name="PRODUCT_NAME" />. Hindi mandatoryo ang patakarang ito, kaya mapapalitan ng user ang directory.
diff --git a/components/policy/resources/policy_templates_fr.xtb b/components/policy/resources/policy_templates_fr.xtb index 1a5cc54d..545c406 100644 --- a/components/policy/resources/policy_templates_fr.xtb +++ b/components/policy/resources/policy_templates_fr.xtb
@@ -1050,11 +1050,6 @@ Si cette règle n'est pas définie, le protocole SPDY est disponible.</translation> <translation id="3890999316834333174">Règles relatives au déverrouillage rapide</translation> <translation id="3891357445869647828">Activer JavaScript</translation> -<translation id="3891953007921334498">Désactive les outils de développement et la console JavaScript. - - Si vous activez ce paramètre, les outils de développement ne sont plus accessibles et les éléments du site Web ne peuvent plus être inspectés. Tous les raccourcis clavier et toutes les entrées de menu ou de menu contextuel permettant d'ouvrir les outils de développement ou la console JavaScript sont désactivés. - - Si vous désactivez cette option ou si vous ne la configurez pas, l'utilisateur a accès aux outils de développement et à la console JavaScript.</translation> <translation id="3895557476567727016">Configure le répertoire par défaut utilisé par <ph name="PRODUCT_NAME" /> pour le téléchargement de fichiers. Si vous définissez cette règle, le répertoire de téléchargement par défaut utilisé par <ph name="PRODUCT_NAME" /> est donc différent du répertoire habituel. Toutefois, cette règle n'étant pas obligatoire, l'utilisateur peut changer de répertoire.
diff --git a/components/policy/resources/policy_templates_gu.xtb b/components/policy/resources/policy_templates_gu.xtb index 2c7f0bcd..a625bec 100644 --- a/components/policy/resources/policy_templates_gu.xtb +++ b/components/policy/resources/policy_templates_gu.xtb
@@ -1112,11 +1112,6 @@ જો આ નીતિને સેટ કર્યા વિના છોડી હોય, તો SPDY ઉપલબ્ધ રહેશે.</translation> <translation id="3890999316834333174">ઝડપી અનલૉકની નીતિઓ</translation> <translation id="3891357445869647828">JavaScript સક્ષમ કરો</translation> -<translation id="3891953007921334498">વિકાસકર્તા સાધનો અને JavaScript કન્સોલને અક્ષમ કરે છે. - - જો તમે આ સેટિંગ સક્ષમ કરો છો, તો વિકાસકર્તા સાધનો ઍક્સેસ કરી શકાતાં નથી અને હવે વેબ-સાઇટ ઘટકોનું નિરિક્ષણ કરી શકાતું નથી. વિકાસકર્તા સાધનો અથવા JavaScript કન્સોલને ખોલવા માટેના કોઈપણ કીબોર્ડ શૉર્ટકટ્સ અને કોઈપણ મેનૂ અથવા સંદર્ભ મેનૂ એન્ટ્રીઝ અક્ષમ કરવામાં આવશે. - - આ વિકલ્પને અક્ષમ પર સેટ કરવાથી અથવા તેને સેટ કર્યા વગર છોડવાથી વપરાશકર્તાને વિકાસકર્તા સાધનો અને JavaScript કન્સોલનો ઉપયોગ કરવાની મંજૂરી આપે છે.</translation> <translation id="3895557476567727016">બધી ફાઇલ ડાઉનલોડ કરવા માટે <ph name="PRODUCT_NAME" /> જે ડિફૉલ્ટ ડિરેક્ટરીનો ઉપયોગ કરશે, તેની ગોઠવણી કરે છે. જો તમે આ નીતિ સેટ કરો, તો તે <ph name="PRODUCT_NAME" /> જ્યાં ફાઇલ ડાઉનલોડ કરે છે તે ડિફૉલ્ટ ડિરેક્ટરીને બદલશે. આ નીતિ ફરજિયાત નથી, તેથી વપરાશકર્તા આ ડિરેક્ટરીને બદલી શકે છે.
diff --git a/components/policy/resources/policy_templates_hi.xtb b/components/policy/resources/policy_templates_hi.xtb index 3d98279..64219e57 100644 --- a/components/policy/resources/policy_templates_hi.xtb +++ b/components/policy/resources/policy_templates_hi.xtb
@@ -1018,11 +1018,6 @@ यदि यह पॉलिसी बिना सेट किए छोड़ दी गई है, तो स्पीडी उपलब्ध होगा.</translation> <translation id="3890999316834333174">तुरंत अनलॉक करें नीतियां</translation> <translation id="3891357445869647828">JavaScript सक्षम करें</translation> -<translation id="3891953007921334498">डेवलपर टूल और JavaScript कंसोल को अक्षम करती है. - - यदि आप यह सेटिंग सक्षम करते हैं, तो अब डेेवलपर टूल एक्सेस नहीं किए जा सकते हैं और वेब-साइट के तत्वों का निरीक्षण नहीं किया जा सकता है. डेवलपर टूल या JavaScript कंसोल को खोलने वाले कोई भी कीबोर्ड शॉर्टकट और मेनू या प्रसंग मेनू प्रविष्टियां अक्षम कर दी जाएंगी. - - इस विकल्प को अक्षम पर सेट करने या इसे सेट किए बिना छोड़ देने से उपयोगकर्ता को डेवलपर टूल और JavaScript कंसोल का उपयोग करने की अनुमति मिल जाती है.</translation> <translation id="3895557476567727016">उस डिफ़ॉल्ट निर्देशिका को कॉन्फ़िगर करती है जिसका इस्तेमाल <ph name="PRODUCT_NAME" /> फ़ाइलें डाउनलोड करने के लिए करेगा. अगर आप इस नीति को सेट करते हैं, तो यह उस डिफ़ॉल्ट निर्देशिका को बदल देगी जिसमें <ph name="PRODUCT_NAME" /> फ़ाइलें डाउनलोड करता है. यह नीति अनिवार्य नहीं है, इसलिए उपयोगकर्ता निर्देशिका में बदलाव कर सकेंगे.
diff --git a/components/policy/resources/policy_templates_hr.xtb b/components/policy/resources/policy_templates_hr.xtb index eaaff44..6b6f42c 100644 --- a/components/policy/resources/policy_templates_hr.xtb +++ b/components/policy/resources/policy_templates_hr.xtb
@@ -999,11 +999,6 @@ Ako se to pravilo ne postavi, SPDY će biti dostupan.</translation> <translation id="3890999316834333174">Pravila o brzom otključavanju</translation> <translation id="3891357445869647828">Omogući JavaScript</translation> -<translation id="3891953007921334498">Onemogućuje Alate za razvojne programere i konzolu JavaScripta. - - Ako omogućite tu postavku, više neće biti moguće pristupiti Alatima za razvojne programere i više se neće moći provjeravati elementi web-lokacija. Bit će onemogućeni svi tipkovni prečaci i stavke izbornika ili kontekstnih izbornika za otvaranje Alata za razvojne programere ili konzole JavaScripta. - - Ako se ta opcija onemogući ili ne postavi, korisnik može upotrebljavati Alate za razvojne programere i konzole JavaScripta.</translation> <translation id="3895557476567727016">Konfigurira zadani direktorij koji će <ph name="PRODUCT_NAME" /> upotrebljavati za preuzimanje datoteka. Ako postavite to pravilo, ono će promijeniti zadani direktorij u koji <ph name="PRODUCT_NAME" /> preuzima datoteke. To pravilo nije obavezno, pa će korisnik moći promijeniti direktorij.
diff --git a/components/policy/resources/policy_templates_hu.xtb b/components/policy/resources/policy_templates_hu.xtb index 035bcb0..af3cc0594 100644 --- a/components/policy/resources/policy_templates_hu.xtb +++ b/components/policy/resources/policy_templates_hu.xtb
@@ -996,11 +996,6 @@ Ha nem állítja be ezt az irányelvet, akkor a SPDY rendelkezésre áll.</translation> <translation id="3890999316834333174">Gyorsfeloldási házirendek</translation> <translation id="3891357445869647828">JavaScript engedélyezése</translation> -<translation id="3891953007921334498">Letiltja a fejlesztői eszközöket és a JavaScript-konzolt. - - Ha engedélyezi ezt a beállítást, akkor a fejlesztői eszközökhöz nem férhet hozzá, illetve a webhelyek elemeit nem ellenőrizheti a jövőben. Bármely billentyűparancs, menü vagy helyi menüpont le lesz tiltva, amely megnyitná a fejlesztői eszközöket vagy a JavaScript-konzolt. - - Ha letiltja ezt a beállítást, vagy konfigurálatlanul hagyja, akkor a felhasználó használhatja a fejlesztői eszközöket és a JavaScript-konzolt.</translation> <translation id="3895557476567727016">Konfigurálja az alapértelmezett könyvtárat, amelybe a <ph name="PRODUCT_NAME" /> letölti a fájlokat. Ha beállítja a házirendet, módosítja a <ph name="PRODUCT_NAME" /> által a fájlok letöltési helyeként használt könyvtárat. Ez a házirend nem kötelező érvényű, azaz a felhasználó módosíthatja a könyvtárat.
diff --git a/components/policy/resources/policy_templates_id.xtb b/components/policy/resources/policy_templates_id.xtb index ed5a95c7..8ab7c27d 100644 --- a/components/policy/resources/policy_templates_id.xtb +++ b/components/policy/resources/policy_templates_id.xtb
@@ -990,11 +990,6 @@ Jika kebijakan ini tidak disetel, SPDY akan tersedia.</translation> <translation id="3890999316834333174">Kebijakan buka kunci cepat</translation> <translation id="3891357445869647828">Mengaktifkan JavaScript</translation> -<translation id="3891953007921334498">Menonaktifkan Fitur Developer dan konsol JavaScript. - - Jika Anda mengaktifkan setelan ini, Fitur Developer tidak dapat diakses dan elemen situs web tidak dapat diperiksa lagi. Setiap pintasan dan menu atau entri konteks menu untuk membuka Fitur Developer atau Konsol JavaScript akan dinonaktifkan. - - Menonaktifkan opsi ini atau membiarkannya tidak disetel akan memungkinkan pengguna menggunakan Fitur Developer dan konsol JavaScript.</translation> <translation id="3895557476567727016">Mengonfigurasi direktori default yang akan digunakan <ph name="PRODUCT_NAME" /> untuk mendownload file. Jika diatur, setelan ini akan mengubah direktori default tempat <ph name="PRODUCT_NAME" /> mendownload file. Kebijakan ini tidak bersifat wajib, sehingga pengguna akan dapat mengubah direktori tersebut.
diff --git a/components/policy/resources/policy_templates_it.xtb b/components/policy/resources/policy_templates_it.xtb index fa31355..dcc7d8c 100644 --- a/components/policy/resources/policy_templates_it.xtb +++ b/components/policy/resources/policy_templates_it.xtb
@@ -391,9 +391,9 @@ Per le istanze di Windows che non fanno parte di un dominio <ph name="MS_AD_NAME" />, l'installazione forzata è limitata alle app e alle estensioni elencate nel Chrome Web Store. - Tieni presente che il codice sorgente delle estensioni potrebbe essere modificato dagli utenti tramite gli strumenti per sviluppatori (causando potenzialmente il malfunzionamento dell'estensione). Per evitare un problema di questo tipo, è consigliabile impostare la norma <ph name="DEVELOPER_TOOLS_POLICY_NAME" />. + Tieni presente che il codice sorgente delle estensioni può essere modificato dagli utenti tramite Strumenti per sviluppatori (causando potenzialmente il malfunzionamento dell'estensione). Per evitare un problema di questo tipo, è consigliabile impostare la norma <ph name="DEVELOPER_TOOLS_POLICY_NAME" />. - Ogni voce della norma è una stringa contenente un ID estensione e un URL di "aggiornamento" separati da punto e virgola (<ph name="SEMICOLON" />). L'ID estensione è la stringa di 32 lettere che si trova, ad esempio, all'indirizzo <ph name="CHROME_EXTENSIONS_LINK" /> quando è attivata la modalità sviluppatore. L'URL di "aggiornamento", se specificato, deve indirizzare a un documento XML Manifest di aggiornamento, come descritto all'indirizzo <ph name="LINK_TO_EXTENSION_DOC1" />. Per impostazione predefinita, viene utilizzato l'URL di aggiornamento del Chrome Web Store (che attualmente è "https://clients2.google.com/service/update2/crx"). L'URL di "aggiornamento" impostato in questa norma viene utilizzato esclusivamente per l'installazione iniziale; per i successivi aggiornamenti dell'estensione viene utilizzato l'URL di aggiornamento indicato nel file manifest dell'estensione. Inoltre, specificare l'URL di "aggiornamento" in modo esplicito era obbligatorio nelle versioni di <ph name="PRODUCT_NAME" /> fino alla 67 inclusa. + Ogni voce della norma è una stringa contenente un ID estensione e un URL di "aggiornamento" separati da punto e virgola (<ph name="SEMICOLON" />). L'ID estensione è la stringa di 32 lettere che si trova, ad esempio, all'indirizzo <ph name="CHROME_EXTENSIONS_LINK" /> quando è attivata la modalità sviluppatore. L'URL di "aggiornamento", se specificato, deve indirizzare a un documento XML Manifest di aggiornamento, come descritto all'indirizzo <ph name="LINK_TO_EXTENSION_DOC1" />. Per impostazione predefinita, viene utilizzato l'URL di aggiornamento del Chrome Web Store (che attualmente è "https://clients2.google.com/service/update2/crx"). Nota che l'URL di "aggiornamento" impostato in questa norma viene utilizzato esclusivamente per l'installazione iniziale; per i successivi aggiornamenti dell'estensione viene utilizzato l'URL di aggiornamento indicato nel file manifest dell'estensione. Inoltre, specificare l'URL di "aggiornamento" in modo esplicito era obbligatorio nelle versioni di <ph name="PRODUCT_NAME" /> fino alla 67 inclusa. Ad esempio, <ph name="EXTENSION_POLICY_EXAMPLE" /> installa l'app <ph name="EXTENSION_POLICY_EXAMPLE_EXTENSION_NAME" /> dall'URL di "aggiornamento" del Chrome Web Store standard. Ulteriori informazioni sulle estensioni in hosting sono disponibili all'indirizzo <ph name="LINK_TO_EXTENSION_DOC2" />. @@ -403,6 +403,21 @@ Il controllo ortografico può essere comunque effettuato utilizzando un dizionario scaricato; questa norma controlla soltanto l'utilizzo del servizio online. Se questa impostazione non è configurata, gli utenti possono scegliere se utilizzare o meno il servizio di controllo ortografico.</translation> +<translation id="2294283832646774959">Consente di configurare un elenco di stampanti. + + Questa norma consente agli amministratori di fornire configurazioni delle stampanti + ai propri utenti. + + <ph name="PRINTER_DISPLAY_NAME" /> e <ph name="PRINTER_DESCRIPTION" /> sono stringhe in formato libero che è possibile personalizzare per selezionare facilmente le stampanti. I valori <ph name="PRINTER_MANUFACTURER" /> e <ph name="PRINTER_MODEL" />, che rappresentano il produttore e il modello della stampante, consentono agli utenti finali di identificare più facilmente le stampanti. Il valore <ph name="PRINTER_URI" /> deve essere un indirizzo raggiungibile da un computer client che includa <ph name="URI_SCHEME" />, <ph name="URI_PORT" /> e <ph name="URI_QUEUE" />. Il valore <ph name="PRINTER_UUID" /> è facoltativo, ma se viene specificato viene utilizzato per consentire la deduplicazione delle stampanti <ph name="ZEROCONF_DISCOVERY" />. + + Il valore <ph name="PRINTER_EFFECTIVE_MODEL" /> deve corrispondere a una delle stringhe che rappresentano una stampante supportata da <ph name="PRODUCT_NAME" />. La stringa verrà usata per identificare e installare il file PPD appropriato per la stampante. È possibile trovare ulteriori informazioni all'indirizzo https://support.google.com/chrome?p=noncloudprint. + + La configurazione viene completata al primo utilizzo della stampante. I file PPD vengono scaricati soltanto quando viene utilizzata la stampante. Dopodiché, i PPD utilizzati più spesso vengono memorizzati nella cache. + + Questa norma non influisce sulla possibilità per gli utenti di configurare le stampanti su singoli dispositivi. È supplementare alla configurazione di stampanti da parte dei singoli utenti. + + Per i dispositivi Active Directory gestiti, questa norma supporta l'espansione di <ph name="MACHINE_NAME_VARIABLE" /> al nome della macchina Active Directory oppure a una sua sottostringa. Ad esempio, se il nome della macchina è <ph name="MACHINE_NAME_EXAMPLE" />, allora la variabile <ph name="MACHINE_NAME_VARIABLE_EXAMPLE" /> verrà sostituita dai quattro caratteri che iniziano dopo la sesta posizione, ad esempio, <ph name="MACHINE_NAME_PART_EXAMPLE" />. Tieni presente che la posizione è in base zero. + </translation> <translation id="2294382669900758280">Il video riprodotto nelle app Android non viene considerato, anche se la norma viene impostata su <ph name="TRUE" />.</translation> <translation id="2298647742290373702">Configura la pagina predefinita Nuova scheda in <ph name="PRODUCT_NAME" />.</translation> <translation id="2299220924812062390">Consente di specificare un elenco dei plug-in attivati</translation> @@ -962,11 +977,6 @@ Se la norma non viene impostata, il protocollo SPDY sarà disponibile.</translation> <translation id="3890999316834333174">Norme relative allo sblocco rapido</translation> <translation id="3891357445869647828">Abilita JavaScript</translation> -<translation id="3891953007921334498">Consente di disattivare gli Strumenti per sviluppatori e la Console JavaScript. - - Se questa impostazione viene attivata, gli Strumenti per sviluppatori non saranno accessibili e non sarà più possibile eseguire un'ispezione degli elementi del sito web. Le scorciatoie da tastiera e le voci dei menu contestuali e di altri menu che consentono di aprire gli Strumenti per sviluppatori o la Console JavaScript verranno disattivate. - - Se questa opzione viene disattivata o non viene impostata sarà possibile utilizzare gli Strumenti per sviluppatori e la Console JavaScript.</translation> <translation id="3895557476567727016">Consente di configurare la directory predefinita da usare in <ph name="PRODUCT_NAME" /> per il download dei file. Se questa norma viene impostata, verrà cambiata la directory predefinita in cui vengono scaricati i file in <ph name="PRODUCT_NAME" />. Questa norma non è obbligatoria, pertanto l'utente potrà cambiare la directory. @@ -1150,6 +1160,7 @@ <translation id="4508686775017063528">Se questa norma viene impostata su true o non viene impostata, <ph name="PRODUCT_NAME" /> sarà attivato e gli utenti potranno avviarlo dal menu dell'app, dai menu contestuali nelle pagine, dai controlli multimediali nei siti web compatibili con Google Cast e (se presente) dall'icona Cast della barra degli strumenti. Se questa norma viene impostata su false, <ph name="PRODUCT_NAME" /> sarà disattivato.</translation> +<translation id="4515404363392014383">Attiva Navigazione sicura per le origini attendibili</translation> <translation id="4518251772179446575">Chiedi ogni volta che un sito desidera monitorare la posizione fisica degli utenti</translation> <translation id="4519046672992331730">Consente di attivare i suggerimenti di ricerca nella omnibox di <ph name="PRODUCT_NAME" /> e di impedire agli utenti di modificare l'impostazione. @@ -1268,6 +1279,7 @@ Se questa norma è impostata su False, le richieste di Wakelock dello schermo verranno ignorate.</translation> <translation id="487460824085252184">Esegui automaticamente la migrazione senza chiedere il consenso dell'utente</translation> +<translation id="4874982543810021567">Blocca WebUSB su questi siti</translation> <translation id="4876805738539874299">Versione SSL massima abilitata</translation> <translation id="4897928009230106190">Consente di specificare i parametri utilizzati durante la ricerca di suggerimenti con POST. Si tratta di coppie di nome/valore separate da virgole. Se un valore è il parametro di un modello, come {searchTerms} nell'esempio precedente, verrà sostituito con i dati dei termini di ricerca reali. @@ -1790,6 +1802,11 @@ Se questa norma non viene impostata, la previsione di rete verrà attivata ma l'utente potrà modificarla.</translation> <translation id="6658245400435704251">Consente di specificare il numero di secondi massimo per cui un dispositivo può ritardare in modo casuale il download di un suo aggiornamento dal momento della pubblicazione dell'aggiornamento sul server. Il dispositivo può attendere una parte di questo tempo in termini di tempo reale e la parte rimanente in termini di numero di controlli della disponibilità di aggiornamenti. In ogni caso, la dispersione ha un limite massimo pari a un periodo di tempo costante in modo che un dispositivo non si blocchi mai in attesa di scaricare un aggiornamento.</translation> <translation id="6665670272107384733">Imposta la frequenza di inserimento della password per poter usare lo sblocco rapido</translation> +<translation id="6681229465468164801">Consente di impostare un elenco di pattern URL che specificano i siti che non possono richiedere all'utente l'accesso al dispositivo USB. + + Se questa norma non viene impostata, per tutti i siti verrà utilizzato il valore predefinito globale della norma "DefaultWebUsbGuardSetting", se impostata, oppure la configurazione personale dell'utente. + + I pattern URL di questa norma non devono essere in conflitto con quelli configurati tramite la norma WebUsbAskForUrls. Non viene specificato quale delle due norme debba avere precedenza se un URL presenta corrispondenze con entrambe.</translation> <translation id="6689792153960219308">Segnala lo stato dell'hardware</translation> <translation id="6698071416141001300">La segnalazione di account a rischio da parte del servizio di protezione tramite password viene attivata se vengono riutilizzate password</translation> <translation id="6699880231565102694">Abilita autenticazione a due fattori per gli host di accesso remoto</translation> @@ -1819,7 +1836,7 @@ <ph name="TPM_FIRMWARE_UPDATE_SETTINGS_ALLOW_USER_INITIATED_POWERWASH" />: se viene impostata l'opzione <ph name="TPM_FIRMWARE_UPDATE_SETTINGS_ALLOW_USER_INITIATED_POWERWASH_TRUE" />, gli utenti potranno attivare il flusso della funzione Powerwash per l'installazione di un aggiornamento del firmware <ph name="TPM_FIRMWARE_UPDATE_TPM" />. - <ph name="TPM_FIRMWARE_UPDATE_SETTINGS_ALLOW_USER_INITIATED_PRESERVE_DEVICE_STATE" />: se viene impostata l'opzione <ph name="TPM_FIRMWARE_UPDATE_SETTINGS_ALLOW_USER_INITIATED_PRESERVE_DEVICE_STATE_TRUE" />, gli utenti potranno richiamare il flusso di aggiornamento del firmware <ph name="TPM_FIRMWARE_UPDATE_TPM" /> che conserverà lo stato a livello di dispositivo (registrazione aziendale compresa), ma che comporta la perdita dei degli utenti. Questo flusso di aggiornamento è disponibile a partire dalla versione 68. + <ph name="TPM_FIRMWARE_UPDATE_SETTINGS_ALLOW_USER_INITIATED_PRESERVE_DEVICE_STATE" />: se viene impostata l'opzione <ph name="TPM_FIRMWARE_UPDATE_SETTINGS_ALLOW_USER_INITIATED_PRESERVE_DEVICE_STATE_TRUE" />, gli utenti potranno richiamare il flusso di aggiornamento del firmware <ph name="TPM_FIRMWARE_UPDATE_TPM" /> che conserverà lo stato a livello di dispositivo (registrazione aziendale compresa), ma che comporta la perdita dei dati degli utenti. Questo flusso di aggiornamento è disponibile a partire dalla versione 68. Se la norma non viene impostata, la funzionalità di aggiornamento del firmware <ph name="TPM_FIRMWARE_UPDATE_TPM" /> non sarà disponibile.</translation> <translation id="6757438632136860443">Consente di impostare un elenco di pattern URL che specificano i siti che possono eseguire il plug-in <ph name="FLASH_PLUGIN_NAME" />. @@ -1844,7 +1861,7 @@ utilizza strumenti come Telemetry.</translation> <translation id="6870914592443697993"> Questa norma si applica alla schermata di accesso. Vedi anche la norma <ph name="ISOLATE_ORIGINS_POLICY_NAME" /> che viene applicata alla sessione utente. È consigliabile impostare lo stesso valore per entrambe le norme. Se i valori non corrispondono, può verificarsi un ritardo quando si accede a una sessione utente mentre viene applicato il valore specificato dalla norma relativa agli utenti. - . Se la norma viene attivata, ogni origine indicata in un + Se la norma viene attivata, ogni origine indicata in un elenco di valori separati da virgole verrà eseguita in un proprio processo. Verranno inoltre isolate le origini indicate dai sottodomini; ad esempio, se viene specificato il sito https://example.com/ viene isolato anche https://foo.example.com/, perché fa parte @@ -1937,6 +1954,11 @@ Se questa impostazione è disattivata o non impostata, a tutte le risorse verrà applicata la protezione predefinita di Navigazione sicura. Questa norma non è disponibile su istanze Windows che non fanno parte di un dominio <ph name="MS_AD_NAME" />.</translation> <translation id="7079519252486108041">Blocca popup su questi siti</translation> +<translation id="7085803328069945025">Consente di impostare un elenco di pattern URL che specificano i siti che possono richiedere all'utente l'accesso al dispositivo USB. + + Se questa norma non viene impostata, per tutti i siti verrà utilizzato il valore predefinito globale della norma "DefaultWebUsbGuardSetting", se impostata, oppure la configurazione personale dell'utente. + + I pattern URL di questa norma non devono essere in conflitto con quelli configurati tramite la norma WebUsbBlockedForUrls. Non viene specificato quale delle due norme debba avere precedenza se un URL presenta corrispondenze con entrambe.</translation> <translation id="7106631983877564505">Consente di attivare il blocco quando lo stato dei dispositivi <ph name="PRODUCT_OS_NAME" /> diventa inattivo o sospeso. Se questa impostazione viene attivata, agli utenti verrà chiesto di inserire una password per sbloccare il dispositivo dalla sospensione. @@ -2088,7 +2110,7 @@ Se viene impostata su False, gli aggiornamenti dei componenti vengono disattivati. Tuttavia, alcuni componenti sono esclusi da questa norma: gli aggiornamenti dei componenti che non contengono codice eseguibile, che non alterano in modo significativo il comportamento del browser o che sono fondamentali per la sicurezza non vengono disattivati. Esempi di tali componenti sono gli elenchi di revoche di certificati e i dati di Navigazione sicura. Visita il sito https://developers.google.com/safe-browsing per avere ulteriori informazioni sulla funzione Navigazione sicura.</translation> -<translation id="7566878661979235378">Tipo di autenticazione dell'accesso SAML</translation> +<translation id="7566878661979235378">Tipo di autenticazione per gli accessi SAML</translation> <translation id="757395965347379751">Quando questa impostazione è attivata, <ph name="PRODUCT_NAME" /> consente l'utilizzo dei certificati SHA-1 firmati che sono convalidati e concatenati a certificati CA installati localmente. Considera che questa norma dipende dallo stack di verifica dei certificati del sistema operativo che autorizza le firme SHA-1. Se un aggiornamento del sistema operativo modifica la gestione dei certificati SHA-1 da parte del sistema operativo, la norma potrebbe non essere più valida. Inoltre, questa norma è da considerarsi come soluzione alternativa temporanea per concedere alle aziende più tempo per l'abbandono della crittografia SHA-1. Questa norma verrà rimossa il 1° gennaio 2019 o intorno a quella data. @@ -2452,11 +2474,11 @@ Separa più nomi di server con delle virgole. Sono ammessi i caratteri jolly (*). Se questa norma non viene impostata <ph name="PRODUCT_NAME" /> tenterà di rilevare se sulla Intranet è presente un server e solo allora risponderà alle richieste IWA. Se viene rilevato un server su Internet, le sue richieste IWA verranno ignorate da <ph name="PRODUCT_NAME" />.</translation> -<translation id="8667812577403206506">consente di controllare se le macchine virtuali possono essere eseguite su Chrome OS. +<translation id="8667812577403206506">Consente di controllare se le macchine virtuali possono essere eseguite su Chrome OS. Se la norma viene impostata su true, al dispositivo è consentito eseguire le macchine virtuali. Se la norma viene impostata su false, al dispositivo non è consentito eseguire le macchine virtuali. - Quando l'impostazione di questa norma viene modificata in false, la norma consente di avviare le nuove macchine virtuali, ma non determina l'arresto delle macchine virtuali già in esecuzione. + Quando l'impostazione di questa norma viene modificata in false, la norma viene applicata all'avvio di nuove macchine virtuali, ma non determina l'arresto delle macchine virtuali già in esecuzione. Quando questa norma non è impostata su un dispositivo gestito, il dispositivo non può eseguire macchine virtuali. I dispositivi non gestiti sono autorizzati a eseguire macchine virtuali.</translation> <translation id="8672321184841719703">Scegli versione target dell'aggiornamento automatico</translation> @@ -2596,6 +2618,7 @@ <translation id="9096086085182305205">Whitelist server di autenticazione</translation> <translation id="9098553063150791878">Norme relative all'autenticazione HTTP</translation> <translation id="9105265795073104888">Solo un sottoinsieme di opzioni di configurazione del proxy viene reso disponibile alle app Android, che decidono volontariamente se rispettarlo o meno. Non puoi forzarle a utilizzare un proxy.</translation> +<translation id="9106865192244721694">Consenti WebUSB su questi siti</translation> <translation id="9112727953998243860">File di configurazione delle stampanti aziendali</translation> <translation id="9112897538922695510">Ti consente di registrare un elenco di gestori di protocolli. Questa può essere soltanto una norma consigliata. Per la proprietà |protocol| dovrebbe essere impostato lo schema, ad esempio "mailto", e per la proprietà |url| dovrebbe essere impostato il pattern URL dell'applicazione che gestisce lo schema. Il pattern può includere "%s" che, se presente, verrà sostituito dall'URL gestito. @@ -2628,6 +2651,11 @@ <translation id="915194831143859291">Se questa norma viene impostata su false o non viene configurata, <ph name="PRODUCT_OS_NAME" /> consente all'utente di spegnere il dispositivo. Se questa norma viene impostata su true, <ph name="PRODUCT_OS_NAME" /> attiva il riavvio quando l'utente spegne il dispositivo. <ph name="PRODUCT_OS_NAME" /> sostituisce tutte le occorrenze dei pulsanti di spegnimento nell'interfaccia utente con pulsanti di riavvio. Se l'utente spegne il dispositivo utilizzando il tasto di accensione, il dispositivo non viene riavviato, anche se la norma è attivata.</translation> <translation id="9158929520101169054">Consenti accesso simultaneo nel browser</translation> +<translation id="9165792353046089850">Consente di stabilire se consentire o meno ai siti web di accedere ai dispositivi USB collegati. L'accesso può essere bloccato completamente oppure l'utente può ricevere una richiesta ogni volta che un sito web vuole accedere ai dispositivi USB collegati. + + Questa norma può essere sostituita per pattern URL specifici che utilizzano le norme "WebUsbAskForUrls" e "WebUsbBlockedForUrls". + + Se questa norma non viene impostata, verrà utilizzato il valore "3", che potrà essere modificato dall'utente.</translation> <translation id="9167719789236691545">Disattiva Drive nell'app File di <ph name="PRODUCT_OS_NAME" /></translation> <translation id="9187743794267626640">Disabilita il montaggio di una memoria esterna</translation> <translation id="9197740283131855199">Percentuale di regolazione del ritardo di oscuramento dello schermo se l'utente diventa attivo dopo l'oscuramento</translation>
diff --git a/components/policy/resources/policy_templates_iw.xtb b/components/policy/resources/policy_templates_iw.xtb index 888d54d..2cff71d 100644 --- a/components/policy/resources/policy_templates_iw.xtb +++ b/components/policy/resources/policy_templates_iw.xtb
@@ -992,11 +992,6 @@ אם המדיניות הזו תישאר במצב לא מוגדר, פרוטוקול SPDY יהיה זמין.</translation> <translation id="3890999316834333174">מדיניות לביטול נעילה מהיר</translation> <translation id="3891357445869647828">הפוך JavaScript לפעיל</translation> -<translation id="3891953007921334498">ההגדרה הזו גורמת להשבתת הכלים למפתחים ולוח JavaScript. - - אם תאפשר את ההגדרה הזו, לא תוכל יותר לגשת אל הכלים למפתחים ולבחון רכיבי אתר. יבוטלו כל מקשי הקיצור, וכל הרשומות בתפריטים או בתפריטי הקשר, שמיועדים לפתיחת הכלים למפתחים או לוח JavaScript. - - אם תעביר את האפשרות הזו למצב מושבת או תשאיר אותה במצב לא מוגדר, הכלים למפתחים ולוח JavaScript יהיו זמינים לשימוש על ידי המשתמשים.</translation> <translation id="3895557476567727016">קובעת את ספריית ברירת המחדל שבה <ph name="PRODUCT_NAME" /> ישתמש להורדת קבצים. אם המדיניות הזו מוגדרת, היא תשנה את ספריית ברירת המחדל שאליה <ph name="PRODUCT_NAME" /> מוריד קבצים. אין חובה לפעול בהתאם למדיניות הזו, ולכן המשתמש יוכל לשנות את הספרייה.
diff --git a/components/policy/resources/policy_templates_ja.xtb b/components/policy/resources/policy_templates_ja.xtb index 99e06a2..da4fb80 100644 --- a/components/policy/resources/policy_templates_ja.xtb +++ b/components/policy/resources/policy_templates_ja.xtb
@@ -997,11 +997,6 @@ このポリシーが未設定の場合は、SPDY を使用できます。</translation> <translation id="3890999316834333174">ロックのクイック解除ポリシー</translation> <translation id="3891357445869647828">Javascript を有効にする</translation> -<translation id="3891953007921334498">デベロッパー ツールと JavaScript コンソールを無効にします。 - - この設定を有効にした場合、デベロッパー ツールにはアクセスできず、ウェブサイト要素を検査することもできません。デベロッパー ツールや JavaScript コンソールを開くためのキーボード ショートカット、メニューまたはコンテキスト メニューの項目は無効になります。 - - このオプションが無効または未設定の場合、ユーザーはデベロッパー ツールと JavaScript コンソールを使用できます。</translation> <translation id="3895557476567727016"><ph name="PRODUCT_NAME" /> でファイルをダウンロードするときに使用するデフォルトのディレクトリを設定します。 このポリシーを設定した場合は、<ph name="PRODUCT_NAME" /> でファイルをダウンロードするときのデフォルトのディレクトリが、このポリシーの設定内容に変更されます。ただし、このポリシーは強制的なものではなく、ユーザーはディレクトリを変更できます。
diff --git a/components/policy/resources/policy_templates_kn.xtb b/components/policy/resources/policy_templates_kn.xtb index 53d43cd7..9daa2d7 100644 --- a/components/policy/resources/policy_templates_kn.xtb +++ b/components/policy/resources/policy_templates_kn.xtb
@@ -1032,11 +1032,6 @@ ಈ ನೀತಿಯನ್ನು ಹೊಂದಿಸದೇ ಬಿಟ್ಟರೆ, SPDY ಲಭ್ಯವಿರುತ್ತದೆ.</translation> <translation id="3890999316834333174">ತ್ವರಿತ ಅನ್ಲಾಕ್ ನೀತಿಗಳು</translation> <translation id="3891357445869647828">JavaScript ಸಕ್ರಿಯಗೊಳಿಸಿ.</translation> -<translation id="3891953007921334498">ಡೆವಲಪರ್ ಪರಿಕರಗಳು ಮತ್ತು JavaScript ಕನ್ಸೋಲ್ ಅನ್ನು ನಿಷ್ಕ್ರಿಯಗೊಳಿಸುತ್ತದೆ. - - ಈ ಸೆಟ್ಟಿಂಗ್ ಅನ್ನು ನೀವು ಸಕ್ರಿಯಗೊಳಿಸಿದರೆ, ಡೆವಲಪರ್ ಪರಿಕರಗಳನ್ನು ಪ್ರವೇಶಿಸಲಾಗುವುದಿಲ್ಲ ಮತ್ತು ವೆಬ್ ಸೈಟ್ ಅಂಶಗಳನ್ನು ಎಂದಿಗೂ ಪರಿಶೀಲಿಸಲಾಗುವುದಿಲ್ಲ. ಡೆವಲಪರ್ ಪರಿಕರಗಳು ಅಥವಾ JavaScript ಕನ್ಸೋಲ್ ಅನ್ನು ತೆರೆಯಲು ಯಾವುದೇ ಕೀಬೋರ್ಡ್ ಶಾರ್ಟ್ಕಟ್ಗಳು ಮತ್ತು ಯಾವುದೇ ಮೆನು ಅಥವಾ ವಿಷಯ ಮೆನು ನಮೂದುಗಳನ್ನು ನಿಷ್ಕ್ರಿಯಗೊಳಿಸಲಾಗುತ್ತದೆ. - - ಈ ಆಯ್ಕೆಯನ್ನು ನಿಷ್ಕ್ರಿಯಗೊಳಿಸಿದಂತೆ ಅಥವಾ ಇದನ್ನು ಹೊಂದಿಸದೆ ಬಿಡುವುದರಿಂದ ಡೆವಲಪರ್ ಪರಿಕರಗಳು ಮತ್ತು JavaScript ಕನ್ಸೋಲ್ ಅನ್ನು ಬಳಸುವಂತೆ ಬಳಕೆದಾರರನ್ನು ಅನುಮತಿಸುತ್ತದೆ.</translation> <translation id="3895557476567727016">ಫೈಲ್ಗಳನ್ನು ಡೌನ್ಲೋಡ್ ಮಾಡುವುದಕ್ಕಾಗಿ <ph name="PRODUCT_NAME" /> ಬಳಸಿಕೊಳ್ಳುವ ಡೈರೆಕ್ಟರಿಯನ್ನು ಕಾನ್ಫಿಗರ್ ಮಾಡುತ್ತದೆ.
diff --git a/components/policy/resources/policy_templates_ko.xtb b/components/policy/resources/policy_templates_ko.xtb index 1e6d43f..6395d845 100644 --- a/components/policy/resources/policy_templates_ko.xtb +++ b/components/policy/resources/policy_templates_ko.xtb
@@ -430,6 +430,21 @@ 맞춤법 검사는 다운로드한 사전을 사용하여 계속 시행할 수 있으며, 이 정책은 온라인 서비스의 사용 여부만 제어합니다. 이 설정을 구성하지 않으면 사용자는 맞춤법 검사 사용 여부를 선택할 수 있습니다.</translation> +<translation id="2294283832646774959">프린터 목록을 설정합니다. + + 관리자는 이 정책을 통해 사용자에게 프린터 설정을 + 제공할 수 있습니다. + + <ph name="PRINTER_DISPLAY_NAME" /> 및 <ph name="PRINTER_DESCRIPTION" />은(는) 프린터를 쉽게 선택하도록 맞춤설정할 수 있는 자유 형식 문자열입니다. <ph name="PRINTER_MANUFACTURER" /> 및 <ph name="PRINTER_MODEL" />은(는) 최종 사용자가 프린터를 쉽게 확인하도록 돕기 위해 제공되며 프린터 제조업체 및 모델을 나타냅니다. <ph name="PRINTER_URI" />은(는) <ph name="URI_SCHEME" />, <ph name="URI_PORT" />, <ph name="URI_QUEUE" />을(를) 포함한 클라이언트 컴퓨터에서 연결할 수 있는 주소여야 합니다. <ph name="PRINTER_UUID" />은(는) 선택사항이며, 제공된 경우 <ph name="ZEROCONF_DISCOVERY" /> 프린터의 중복을 삭제하는 데 사용됩니다. + + <ph name="PRINTER_EFFECTIVE_MODEL" />은(는) <ph name="PRODUCT_NAME" /> 지원 프린터를 나타내는 문자열 중 하나와 일치해야 합니다. 이 문자열은 프린터의 적절한 PPD를 확인하고 설치하는 데 사용됩니다. 자세한 정보는 https://support.google.com/chrome?p=noncloudprint에서 확인할 수 있습니다. + + 프린터 설정은 프린터를 처음 사용할 때 완료됩니다. PPD는 프린터가 사용될 때까지 다운로드되지 않습니다. 그 이후 자주 사용되는 PPD가 캐시됩니다. + + 이 정책은 사용자가 개별 기기에 프린터를 설정할 수 있는지 여부에 영향을 미치지 않습니다. 이 정책은 개별 사용자의 프린터 설정을 보완하기 위한 것입니다. + + Active Directory 관리 대상 기기에서는 이 정책을 통해 <ph name="MACHINE_NAME_VARIABLE" />을(를) Active Directory 컴퓨터 이름 또는 관련 하위 문자열로 확장할 수 있습니다. 예를 들어, 컴퓨터 이름이 <ph name="MACHINE_NAME_EXAMPLE" />(이)라면 <ph name="MACHINE_NAME_VARIABLE_EXAMPLE" />이(가) 6번째 위치 이후에 시작되는 4자로 대체되어 <ph name="MACHINE_NAME_PART_EXAMPLE" />이(가) 됩니다. 이 위치는 0을 기준으로 합니다. + </translation> <translation id="2294382669900758280">이 정책이 <ph name="TRUE" />로 설정되더라도 Android 앱에서 재생되는 동영상은 고려 대상에 포함되지 않습니다.</translation> <translation id="2298647742290373702"><ph name="PRODUCT_NAME" />의 기본 새 탭 페이지를 설정합니다.</translation> <translation id="2299220924812062390">사용 설정한 플러그인 목록 지정</translation> @@ -1019,11 +1034,6 @@ 이 정책을 설정하지 않으면 SPDY를 사용할 수 있습니다.</translation> <translation id="3890999316834333174">빠른 잠금 해제 정책</translation> <translation id="3891357445869647828">자바스크립트 사용</translation> -<translation id="3891953007921334498">개발자 도구 및 자바스크립트 콘솔의 사용을 중지합니다. - - 이 설정을 사용하면 개발자 도구에 액세스할 수 없으며 더 이상 웹사이트 요소를 검사할 수 없습니다. 개발자 도구나 자바스크립트 콘솔을 열기 위한 모든 단축키와 메뉴, 컨텍스트 메뉴 항목이 사용 중지됩니다. - - 이 옵션을 사용하지 않도록 설정하거나 설정하지 않은 채로 두면 사용자가 개발자 도구와 자바스크립트 콘솔을 사용할 수 있습니다.</translation> <translation id="3895557476567727016"><ph name="PRODUCT_NAME" />에서 파일을 다운로드할 때 사용하는 기본 디렉토리를 설정합니다. 이 정책을 설정하면 <ph name="PRODUCT_NAME" />에서 파일을 다운로드하는 기본 디렉토리를 변경합니다. 이 정책은 필수가 아니므로 사용자가 디렉토리를 변경할 수 있습니다. @@ -1221,6 +1231,7 @@ <translation id="4508686775017063528">이 정책을 'true'로 설정하거나 설정하지 않으면 <ph name="PRODUCT_NAME" />이(가) 사용 설정되어 사용자가 앱 메뉴, 페이지 컨텍스트 메뉴, Cast 지원 웹사이트의 미디어 컨트롤, Cast 툴바 아이콘(표시된 경우)을 통해 실행할 수 있습니다. 이 정책을 'false'로 설정하면 <ph name="PRODUCT_NAME" />이(가) 사용 중지됩니다.</translation> +<translation id="4515404363392014383">신뢰할 수 있는 소스에서 세이프 브라우징을 사용할 수 있도록 허용</translation> <translation id="4518251772179446575">사이트에서 사용자의 실제 위치를 추적할 때마다 확인</translation> <translation id="4519046672992331730"><ph name="PRODUCT_NAME" />의 검색주소창에서 추천 검색어를 사용하도록 설정하고 사용자가 이 설정을 변경하지 못하게 합니다. @@ -1343,6 +1354,7 @@ 정책이 False로 설정된 경우, 잠금 요청이 무시됩니다.</translation> <translation id="487460824085252184">사용자의 동의를 구하지 않고 자동으로 이전합니다.</translation> +<translation id="4874982543810021567">이 사이트에서 WebUSB 차단</translation> <translation id="4876805738539874299">최대 SSL 버전 사용 설정됨</translation> <translation id="4897928009230106190">POST로 추천 검색을 할 때 사용할 매개변수를 지정합니다. 매개변수는 쉼표로 구분된 이름/값 쌍으로 구성되어 있습니다. 값이 위의 예에 있는 {searchTerms}와 같은 템플릿 매개변수인 경우 실제 검색어 데이터로 대체됩니다. @@ -1914,6 +1926,11 @@ 이 정책이 설정되지 않으면 네트워크 예측이 사용 설정되지만, 사용자가 변경할 수 있습니다.</translation> <translation id="6658245400435704251">업데이트를 처음 서버로 푸시한 시점부터 기기가 몇 초까지 임의로 업데이트의 다운로드를 지연시킬 수 있는지 지정합니다. 기기가 이 시간의 일부를 일반 시계 시간 기준으로, 그리고 나머지 시간을 업데이트 확인 횟수 기준으로 지연시킵니다. 모든 경우, 기기가 고착되어 업데이트 다운로드를 계속 기다리지 않도록 분산의 상한이 일정 시간으로 제한되어 있습니다.</translation> <translation id="6665670272107384733">빠른 잠금 해제를 사용하기 위해 사용자가 비밀번호를 얼마나 자주 입력해야 하는지 설정</translation> +<translation id="6681229465468164801">사용자에게 USB 기기 액세스 권한 허용을 요청하지 못하도록 차단된 사이트를 지정하는 URL 패턴 목록을 설정하도록 허용합니다. + + 이 정책을 설정하지 않으면 'DefaultWebUsbGuardSetting' 정책(설정된 경우) 또는 사용자 개인 설정의 전체 기본값이 모든 사이트에 사용됩니다. + + 이 정책의 URL 패턴은 WebUsbAskForUrls를 통해 구성된 패턴과 충돌해서는 안 됩니다. URL이 두 정책과 모두 일치할 때 어떤 정책이 우선 적용되는지 지정되어 있지 않습니다.</translation> <translation id="6689792153960219308">하드웨어 상태 보고</translation> <translation id="6698071416141001300">비밀번호가 재사용되어 위험 계정에 관한 비밀번호 보호 경고가 실행됨</translation> <translation id="6699880231565102694">원격 액세스 호스트를 위한 2단계 인증 사용</translation> @@ -2083,6 +2100,11 @@ 이 설정을 사용 중지하거나 설정하지 않으면 모든 리소스에 기본 세이프 브라우징 보호가 적용됩니다. <ph name="MS_AD_NAME" /> 도메인에 가입되지 않은 Windows 인스턴스에서는 이 정책을 사용할 수 없습니다.</translation> <translation id="7079519252486108041">이 사이트에서 팝업 차단</translation> +<translation id="7085803328069945025">사용자에게 USB 기기 액세스 권한 허용을 요청할 수 있도록 허용된 사이트를 지정하는 URL 패턴 목록을 설정하도록 허용합니다. + + 이 정책을 설정하지 않으면 'DefaultWebUsbGuardSetting' 정책(설정된 경우) 또는 사용자 개인 설정의 전체 기본값이 모든 사이트에 사용됩니다. + + 이 정책의 URL 패턴은 WebUsbBlockedForUrls를 통해 구성된 패턴과 충돌해서는 안 됩니다. URL이 두 정책과 모두 일치할 때 어떤 정책이 우선 적용되는지 지정되어 있지 않습니다.</translation> <translation id="7106631983877564505"><ph name="PRODUCT_OS_NAME" /> 기기가 유휴 상태이거나 일시 중지되었을 때 잠금을 사용하도록 설정합니다. 이 설정을 사용하면 절전 모드인 기기를 잠금 해제할 때 사용자에게 비밀번호를 묻습니다. @@ -2779,6 +2801,7 @@ <translation id="9096086085182305205">인증 서버 허용목록</translation> <translation id="9098553063150791878">HTTP 인증 정책</translation> <translation id="9105265795073104888">프록시 설정 옵션 중 일부만 Android 앱에서 사용할 수 있습니다. Android 앱에서는 자발적으로 프록시를 사용하도록 선택할 수 있습니다. 강제로 Android 앱에서 프록시를 사용하도록 할 수 없습니다.</translation> +<translation id="9106865192244721694">이 사이트에서 WebUSB 허용</translation> <translation id="9112727953998243860">엔터프라이즈 프린터 설정 파일</translation> <translation id="9112897538922695510">프로토콜 핸들러 목록을 등록할 수 있도록 허용합니다. 추천 정책만 될 수 있습니다. |protocol| 속성은 'mailto'와 같은 스키마로 설정해야 하며 |url| 속성은 스키마를 처리하는 애플리케이션의 URL 패턴으로 설정해야 합니다. 패턴에 '%s'를 포함할 수 있으며, 포함할 경우 이 기호는 처리된 URL로 교체됩니다. @@ -2818,6 +2841,11 @@ <translation id="915194831143859291">이 정책을 false로 설정하거나 설정하지 않으면 <ph name="PRODUCT_OS_NAME" />에서 사용자가 기기를 종료할 수 있도록 허용합니다. 이 정책을 true로 설정하면 사용자가 기기를 종료할 때 <ph name="PRODUCT_OS_NAME" />에서 재부팅을 시작하며 <ph name="PRODUCT_OS_NAME" />에서 UI의 종료 버튼을 모두 재부팅 버튼으로 바꿉니다. 정책을 사용하도록 설정해도 사용자가 전원 버튼을 사용하여 기기를 종료하면 자동으로 재부팅하지 않습니다.</translation> <translation id="9158929520101169054">브라우저 내 멀티 로그인 허용</translation> +<translation id="9165792353046089850">연결된 USB 기기에 관한 웹사이트의 액세스 허용 여부를 설정할 수 있습니다. 액세스를 완전히 차단하거나 웹사이트에서 연결된 USB 기기에 액세스하려고 할 때마다 사용자에게 확인을 요청할 수 있습니다. + + 'WebUsbAskForUrls' 및 'WebUsbBlockedForUrls' 정책을 사용하는 특정 URL 패턴은 이 정책보다 우선 적용됩니다. + + 이 정책을 설정하지 않으면 '3'으로 설정되며 사용자가 변경할 수 있습니다.</translation> <translation id="9167719789236691545"><ph name="PRODUCT_OS_NAME" /> 파일 앱에서 드라이브 사용 중지</translation> <translation id="9187743794267626640">외부 저장소 마운트 사용 중지</translation> <translation id="9197740283131855199">화면이 어두워진 후 사용자의 활동이 감지될 때 화면 어둡게 하기 지연 시간이 조정되는 비율</translation>
diff --git a/components/policy/resources/policy_templates_lt.xtb b/components/policy/resources/policy_templates_lt.xtb index 8014cf2..615e6f02 100644 --- a/components/policy/resources/policy_templates_lt.xtb +++ b/components/policy/resources/policy_templates_lt.xtb
@@ -1042,11 +1042,6 @@ Nenustačius šios politikos, SPDY bus pasiekiamas.</translation> <translation id="3890999316834333174">Sparčiojo atrakinimo politika</translation> <translation id="3891357445869647828">Įgalinti „JavaScript“</translation> -<translation id="3891953007921334498">Išjungiami kūrėjo įrankiai ir „JavaScript“ pultas. - - Jei įgalinsite šį nustatymą, nebebus galima pasiekti kūrėjo įrankių ir patikrinti svetainės elementų. Bus išjungti visi spartieji klavišai ir meniu ar kontekstinių meniu įrašai, skirti kūrėjo įrankiams ar „JavaScript“ pultui atidaryti. - - Išjungus šią parinktį ar jos nenustačius naudotojai galės naudoti kūrėjo įrankius ir „JavaScript“ pultą.</translation> <translation id="3895557476567727016">Konfigūruojamas numatytasis katalogas, kurį „<ph name="PRODUCT_NAME" />“ naudos failams atsisiųsti. Nustačius šią politiką, bus pakeistas numatytasis katalogas, į kurį „<ph name="PRODUCT_NAME" />“ atsisiunčia failus. Ši politika nėra būtina, todėl naudotojas galės pakeisti katalogą.
diff --git a/components/policy/resources/policy_templates_lv.xtb b/components/policy/resources/policy_templates_lv.xtb index 12ecf2a..b2dbaed8 100644 --- a/components/policy/resources/policy_templates_lv.xtb +++ b/components/policy/resources/policy_templates_lv.xtb
@@ -1038,11 +1038,6 @@ Ja šī politika nav iestatīta, SPDY būs pieejams.</translation> <translation id="3890999316834333174">Ātrās atbloķēšanas politikas</translation> <translation id="3891357445869647828">Iespējo JavaScript</translation> -<translation id="3891953007921334498">Atspējo izstrādātāju rīkus un JavaScript konsoli. - - Ja šis iestatījums ir iespējots, nevar piekļūt izstrādātāju rīkiem un vairs nevar pārbaudīt vietņu elementus. Tiks atspējoti visi īsinājumtaustiņi un visi izvēļņu vai kontekstizvēlņu ieraksti, ar kuriem tiek atvērti izstrādātāju rīki vai JavaScript konsole. - - Ja šis iestatījums ir atspējots vai nav iestatīts, lietotājs var lietot izstrādātāju rīkus un JavaScript konsoli.</translation> <translation id="3895557476567727016">Konfigurē noklusējuma direktoriju, kurš produktā <ph name="PRODUCT_NAME" /> tiks izmantots failu lejupielādei. Ja iestatīsiet šo politiku, tiks mainīts noklusējuma direktorijs failu lejupielādei produktā <ph name="PRODUCT_NAME" />. Šī politika nav obligāta; lietotājs varēs mainīt direktoriju.
diff --git a/components/policy/resources/policy_templates_ml.xtb b/components/policy/resources/policy_templates_ml.xtb index 3a1c1eee..9ca07f52 100644 --- a/components/policy/resources/policy_templates_ml.xtb +++ b/components/policy/resources/policy_templates_ml.xtb
@@ -1142,11 +1142,6 @@ ഈ നയം സജ്ജമാക്കാതെ വിടുകയാണെങ്കിൽ, SPDY ലഭ്യമാകും.</translation> <translation id="3890999316834333174">അതിവേഗ അൺലോക്ക് നയങ്ങൾ</translation> <translation id="3891357445869647828">JavaScript പ്രാപ്തമാക്കുക</translation> -<translation id="3891953007921334498">ഡെവലപ്പർ ടൂളുകളും JavaScript കൺസോളും പ്രവർത്തനരഹിതമാക്കുന്നു. - - നിങ്ങൾ ഈ ക്രമീകരണം പ്രവർത്തനക്ഷമമാക്കുകയാണെങ്കിൽ, ഡെവലപ്പർ ടൂളുകൾ ആക്സസ് ചെയ്യാനും വെബ്സൈറ്റ് ഘടകങ്ങൾ ഇനി പരിശോധിക്കാനും കഴിയില്ല. ഡെവലപ്പർ ടൂളുകളോ JavaScript കൺസോളോ തുറക്കുന്നതിനുള്ള എല്ലാ കീബോർഡ് കുറുക്കുവഴികളും മെനുവും സന്ദർഭ മെനു എൻട്രികളും പ്രവർത്തനരഹിതമാക്കും. - - ഈ ഓപ്ഷൻ പ്രവർത്തനരഹിതമാണെന്ന് സജ്ജമാക്കുന്നതോ സജ്ജമാക്കാതെ വിടുന്നതോ, ഡെവലപ്പർ ടൂളുകളും JavaScript കൺസോളും ഉപയോഗിക്കാൻ ഉപയോക്താവിനെ അനുവദിക്കുന്നതിനിടയാക്കും.</translation> <translation id="3895557476567727016">ഫയലുകൾ ഡൗൺലോഡ് ചെയ്യാൻ <ph name="PRODUCT_NAME" /> ഉപയോഗിക്കുന്ന ഡിഫോൾട്ട് ഡയറക്ടറി കോണ്ഫിഗര് ചെയ്യുന്നു. ഈ നയം സജ്ജീകരിച്ചിട്ടുണ്ടെങ്കിൽ, <ph name="PRODUCT_NAME" /> ഫയലുകൾ ഡൗൺലോഡ് ചെയ്യുന്ന ഡിഫോൾട്ട് ഡയറക്ടറി ഇത് മാറ്റും. ഈ നയം നിർബന്ധമല്ലാത്തതിനാൽ, ഉപയോക്താവിന് ഡയറക്ടറി മാറ്റാനാകും. @@ -2194,7 +2189,7 @@ JSON പ്രോപ്പർട്ടികളിൽ വ്യക്തിഗത ക്രമീകരണം വ്യക്തമാക്കാവുന്നതാണ്: - <ph name="TPM_FIRMWARE_UPDATE_SETTINGS_ALLOW_USER_INITIATED_POWERWASH" />: <ph name="TPM_FIRMWARE_UPDATE_SETTINGS_ALLOW_USER_INITIATED_POWERWASH_TRUE" /> എന്നതിലേക്ക് സജ്ജീകരിക്കുകയാണെങ്കിൽ, ഉപയോക്താക്കൾക്ക് <ph name="TPM_FIRMWARE_UPDATE_TPM" /> ഫേംവെയർ അപ്ഡേറ്റ് ഇൻസ്റ്റാൾ ചെയ്യാൻ powerwash ട്രിഗർ ചെയ്യാനാവും. + <ph name="TPM_FIRMWARE_UPDATE_SETTINGS_ALLOW_USER_INITIATED_POWERWASH" />: <ph name="TPM_FIRMWARE_UPDATE_SETTINGS_ALLOW_USER_INITIATED_POWERWASH_TRUE" /> എന്നതിലേക്ക് സജ്ജീകരിക്കുകയാണെങ്കിൽ, ഉപയോക്താക്കൾക്ക് <ph name="TPM_FIRMWARE_UPDATE_TPM" /> ഫേംവെയർ അപ്ഡേറ്റ് ഇൻസ്റ്റാൾ ചെയ്യാൻ powerwash ഫ്ലോ ട്രിഗർ ചെയ്യാനാവും. <ph name="TPM_FIRMWARE_UPDATE_SETTINGS_ALLOW_USER_INITIATED_PRESERVE_DEVICE_STATE" />: <ph name="TPM_FIRMWARE_UPDATE_SETTINGS_ALLOW_USER_INITIATED_PRESERVE_DEVICE_STATE_TRUE" /> എന്നതിലേക്ക് സജ്ജീകരിക്കുകയാണെങ്കിൽ, ഉപകരണ- വൈഡ് നില (എന്റര്പ്രൈസ് എൻറോൾമെന്റ് ഉൾപ്പെടെ) നിലനിർത്തുന്ന, <ph name="TPM_FIRMWARE_UPDATE_TPM" /> ഫേംവെയർ അപ്ഡേറ്റ് ഫ്ലോ പ്രചോദിപ്പിക്കാൻ ഉപയോക്താക്കൾക്ക് കഴിയും, പക്ഷേ നിങ്ങളുടെ ഡാറ്റ നഷ്ടമാകും. പതിപ്പ് 68 മുതൽ ഈ അപ്ഡേറ്റ് ഫ്ലോ ലഭ്യമാണ്. @@ -2227,7 +2222,7 @@ നയം പ്രവർത്തനരഹിതം ആക്കുകയാണെങ്കിൽ, സ്പഷ്ടമായ സൈറ്റ് ഐസൊലേഷൻ സംഭവിക്കുകയില്ല, ഒപ്പം IsolateOrigins, SitePerProcess എന്നിവയുടെ ഫീൽഡ് ട്രയലുകൾ പ്രവർത്തനരഹിതമാക്കപ്പെടുകയും ചെയ്യും. ഉപയോക്താക്കൾക്ക് തുടർന്നും IsolateOrigins നേരിട്ട് പ്രവർത്തനക്ഷമമാക്കാനാവും. - നയം കോൺഫിഗർ ചെയ്തിട്ടില്ലെങ്കിൽ, സൈൻ ഇൻ സ്ക്രീനിനായി പ്ലാറ്റ്ഫോം ഡിഫോൾട്ട് ഐസലേഷൻ ക്രമീകരണം ഉപയോഗിക്കപ്പെടും. + നയം കോൺഫിഗർ ചെയ്തിട്ടില്ലെങ്കിൽ, സൈൻ ഇൻ സ്ക്രീനിനായി പ്ലാറ്റ്ഫോം ഡിഫോൾട്ട് ഐസൊലേഷൻ ക്രമീകരണം ഉപയോഗിക്കപ്പെടും. </translation> <translation id="6894178810167845842">പുതിയ ടാബ് പേജ് URL</translation> <translation id="6899705656741990703">പ്രോക്സി ക്രമീകരണങ്ങള് സ്വയമേവ കണ്ടെത്തുക</translation> @@ -2714,11 +2709,11 @@ ഈ ക്രമീകരണം അപ്രാപ്തമാക്കി, കൂടാതെ UDP കണക്ഷനുകൾ ഒരു ഫയർവാൾ ഉപയോഗിച്ച് ഫിൽറ്റർ ചെയ്തിരിക്കുകയാണെങ്കിൽ, ഈ മെഷിനിൽ ലോക്കൽ നെറ്റ്വർക്കിൽ നിന്നുള്ള ഹോസ്റ്റ് മെഷീനിൽ മാത്രമേ കണക്ട് ചെയ്യൂ.</translation> <translation id="7976157349247117979"><ph name="PRODUCT_NAME" /> ഉപകരണ ലക്ഷ്യസ്ഥാനത്തിന്റെ പേര്</translation> <translation id="7978060394348264922"> - മാറ്റി നിർത്തേണ്ട സൈറ്റുകളുടെ ലിസ്റ്റിനൊപ്പം IsolateOrigins ഉപയോഗിക്കുന്നതിലൂടെ, ഐസോലേഷൻ, ഉപയോക്താക്കൾക്ക് ഉണ്ടാകുന്ന പരിണിതഫലങ്ങൾ പരിമിതപ്പെടുത്തൽ എന്നിവയുടെ പ്രയോജനം പരമാവധി ഉപയോഗപ്പെടുത്താനായി, നിങ്ങൾ IsolateOrigins നയ ക്രമീകരണം പരിശോധിക്കേണ്ടതുണ്ട്. -. SitePerProcess എന്ന ഈ ക്രമീകരണം എല്ലാ സൈറ്റുകളെയും മാറ്റിനിർത്തുന്നു. + മാറ്റി നിർത്തേണ്ട സൈറ്റുകളുടെ ലിസ്റ്റിനൊപ്പം IsolateOrigins ഉപയോഗിക്കുന്നതിലൂടെ, ഐസൊലേഷൻ, ഉപയോക്താക്കൾക്ക് ഉണ്ടാകുന്ന പരിണിതഫലങ്ങൾ പരിമിതപ്പെടുത്തൽ എന്നിവയുടെ പ്രയോജനം പരമാവധി ഉപയോഗപ്പെടുത്താനായി, നിങ്ങൾ IsolateOrigins നയ ക്രമീകരണം പരിശോധിക്കേണ്ടതുണ്ട്. +SitePerProcess എന്ന ഈ ക്രമീകരണം എല്ലാ സൈറ്റുകളെയും മാറ്റിനിർത്തുന്നു. നയം പ്രവർത്തനക്ഷമമാക്കുകയാണെങ്കിൽ, ഓരോ സൈറ്റും അവയുടെ സ്വന്തം പ്രോസസ് റൺ ചെയ്യും. നയം പ്രവർത്തനരഹിതം ആക്കുകയാണെങ്കിൽ, സ്പഷ്ടമായ സൈറ്റ് ഐസൊലേഷൻ സംഭവിക്കുകയില്ല, ഒപ്പം IsolateOrigins, SitePerProcess എന്നിവയുടെ ഫീൽഡ് ട്രയലുകൾ പ്രവർത്തനരഹിതമാക്കപ്പെടുകയും ചെയ്യും. പയോക്താക്കൾക്ക് തുടർന്നും SitePerProcess നേരിട്ട് പ്രവർത്തനക്ഷമമാക്കാനാവും. - നയം കോൺഫിഗർ ചെയ്തിട്ടില്ലെങ്കിൽ, ഉപയോക്താവിന് ഈ ക്രമീകരണം മാറ്റാനാവും. <ph name="PRODUCT_OS_NAME" /> എന്നതിലും, <ph name="DEVICE_LOGIN_SCREEN_SITE_PER_PROCESS_POLICY_NAME" /> ഉപകരണ നയം അതേ മൂല്യത്തിൽ സജ്ജീകരിക്കാൻ ശുപാർശ ചെയ്യുന്നു.രണ്ട് നയങ്ങൾ മുഖേന വ്യക്തമാക്കപ്പെടുന്ന മൂല്യങ്ങൾ പൊരുത്തപ്പെടുന്നില്ലെങ്കിൽ, രണ്ട് നയങ്ങൾ മുഖേന വ്യക്തമാക്കപ്പെടുന്ന മൂല്യങ്ങൾ പൊരുത്തപ്പെടുന്നില്ലെങ്കിൽ, ബാധകമാക്കപ്പെടുന്ന ഉപയോക്തൃ നയം മുഖേന മൂല്യം വ്യക്തമാക്കിയിരിക്കുമ്പോൾ, ഉപയോക്തൃ സെഷനിലേക്ക് പ്രവേശിക്കുന്ന സമയത്ത് ഒരു കാലതാമസം നേരിട്ടേക്കാം. + നയം കോൺഫിഗർ ചെയ്തിട്ടില്ലെങ്കിൽ, ഉപയോക്താവിന് ഈ ക്രമീകരണം മാറ്റാനാവും. <ph name="PRODUCT_OS_NAME" /> എന്നതിലും, <ph name="DEVICE_LOGIN_SCREEN_SITE_PER_PROCESS_POLICY_NAME" /> ഉപകരണ നയം അതേ മൂല്യത്തിൽ സജ്ജീകരിക്കാൻ ശുപാർശ ചെയ്യുന്നു. രണ്ട് നയങ്ങൾ മുഖേന വ്യക്തമാക്കപ്പെടുന്ന മൂല്യങ്ങൾ പൊരുത്തപ്പെടുന്നില്ലെങ്കിൽ, രണ്ട് നയങ്ങൾ മുഖേന വ്യക്തമാക്കപ്പെടുന്ന മൂല്യങ്ങൾ പൊരുത്തപ്പെടുന്നില്ലെങ്കിൽ, ബാധകമാക്കപ്പെടുന്ന ഉപയോക്തൃ നയം മുഖേന മൂല്യം വ്യക്തമാക്കിയിരിക്കുമ്പോൾ, ഉപയോക്തൃ സെഷനിലേക്ക് പ്രവേശിക്കുന്ന സമയത്ത് ഒരു കാലതാമസം നേരിട്ടേക്കാം. </translation> <translation id="7980227303582973781">പ്രത്യേക നിയന്ത്രണങ്ങൾ ഒന്നുമില്ല</translation> <translation id="7985242821674907985"><ph name="PRODUCT_NAME" /></translation>
diff --git a/components/policy/resources/policy_templates_mr.xtb b/components/policy/resources/policy_templates_mr.xtb index f358b99..027f8286 100644 --- a/components/policy/resources/policy_templates_mr.xtb +++ b/components/policy/resources/policy_templates_mr.xtb
@@ -1124,11 +1124,6 @@ हे धोरण सेट न केलेले ठेवल्यास, SPDY उपलब्ध असेल.</translation> <translation id="3890999316834333174">द्रुत अनलॉक धोरणे</translation> <translation id="3891357445869647828">JavaScript सक्षम करा</translation> -<translation id="3891953007921334498">विकासक साधने आणि JavaScript कन्सोल अक्षम करते. - - आपण हे सेटिंग सक्षम केल्यास, विकासक साधनांवर प्रवेश करता येणार नाही आणि यानंतर वेब-साइट घटकांचे निरीक्षण करता येणार नाही. विकासक साधने किंवा JavaScript कन्सोल उघडण्यासाठीचे कोणतेही कीबोर्ड शॉर्टकट आणि कोणताही मेनू किंवा संदर्भ मेनू प्रविष्ट्या अक्षम करण्यात येतील. - - हा पर्याय अक्षम करणे किंवा सेट न करता सोडल्याने वापरकर्त्यास विकसक साधने आणि JavaScript कन्सोल वापरण्याची अनुमती दिली जाईल.</translation> <translation id="3895557476567727016"><ph name="PRODUCT_NAME" /> फायली डाउनलोड करण्यासाठी वापरेल अशी डीफॉल्ट डिरेक्टरी कॉन्फिगर करते. तुम्ही हे धोरण सेट केल्यास, ते डीफॉल्ट डिरेक्टरी बदलते जी <ph name="PRODUCT_NAME" /> मध्ये फायली डाउनलोड करते. हे धोरण अनिवार्य नाही, त्यामुळे वापरकर्ता डिरेक्टरी बदलू शकतो.
diff --git a/components/policy/resources/policy_templates_ms.xtb b/components/policy/resources/policy_templates_ms.xtb index 7385cf4..6e4b519 100644 --- a/components/policy/resources/policy_templates_ms.xtb +++ b/components/policy/resources/policy_templates_ms.xtb
@@ -1040,11 +1040,6 @@ Jika dasar ini dibiarkan tanpa ditetapkan, SPDY akan tersedia.</translation> <translation id="3890999316834333174">Dasar buka kunci pantas</translation> <translation id="3891357445869647828">Dayakan JavaScript</translation> -<translation id="3891953007921334498">Melumpuhkan Alat Pembangun dan konsol JavaScript. - - Jika anda mendayakan tetapan ini, Alat Pembangun tidak boleh diakses dan elemen tapak web tidak boleh disemak lagi. Sebarang pintasan papan kekunci dan mana-mana menu atau masukan menu konteks untuk membuka Alat Pembangun atau Konsol JavaScript akan dilumpuhkan. - - Menetapkan pilihan ini kepada dilumpuhkan atau membiarkannya tanpa ditetapkan membolehkan pengguna menggunakan Alat Pembangun dan konsol JavaScript.</translation> <translation id="3895557476567727016">Mengkonfigurasi direktori lalai yang akan digunakan oleh <ph name="PRODUCT_NAME" /> untuk memuat turun fail. Jika anda menetapkan dasar ini, dasar ini akan menukar direktori lalai tempat <ph name="PRODUCT_NAME" /> menyimpan fail yang dimuat turun. Dasar ini tidak wajib, jadi pengguna akan dapat menukar direktori ini.
diff --git a/components/policy/resources/policy_templates_nl.xtb b/components/policy/resources/policy_templates_nl.xtb index 7dba2dd..df2d079 100644 --- a/components/policy/resources/policy_templates_nl.xtb +++ b/components/policy/resources/policy_templates_nl.xtb
@@ -1028,11 +1028,6 @@ Als dit beleid niet wordt ingesteld, is het SPDY-protocol beschikbaar.</translation> <translation id="3890999316834333174">Beleid ten aanzien van snel ontgrendelen</translation> <translation id="3891357445869647828">JavaScript inschakelen</translation> -<translation id="3891953007921334498">Hiermee worden de ontwikkelaarstools en de JavaScript-console uitgeschakeld. - - Als je deze instelling inschakelt, kunnen de ontwikkelaarstools niet meer worden geopend en kunnen website-elementen niet meer worden geïnspecteerd. Alle sneltoetsen en menu- en contextmenu-opties voor het openen van de ontwikkelaarstools of de JavaScript-console worden uitgeschakeld. - - Als je deze optie uitschakelt of niet instelt, kan de gebruiker de ontwikkelaarstools en de JavaScript-console gebruiken.</translation> <translation id="3895557476567727016">Hiermee wordt de standaardmap geconfigureerd die <ph name="PRODUCT_NAME" /> gebruikt voor gedownloade bestanden. Als je dit beleid instelt, wijzigt dit de standaardmap waarin <ph name="PRODUCT_NAME" /> bestanden downloadt. Dit beleid is niet verplicht. De gebruiker kan de map wijzigen.
diff --git a/components/policy/resources/policy_templates_no.xtb b/components/policy/resources/policy_templates_no.xtb index 54e02e89..703cd5e 100644 --- a/components/policy/resources/policy_templates_no.xtb +++ b/components/policy/resources/policy_templates_no.xtb
@@ -410,13 +410,13 @@ (Disse to API-ene er ikke tilgjengelige for apper/utvidelser som ikke tvangsinstalleres.) - Denne regelen kommer foran en <ph name="EXTENSION_INSTALL_BLACKLIST_POLICY_NAME" /> -regel som kan være i konflikt med den. Hvis en app eller utvidelse som tidligere ble tvangsinstallert, fjernes fra denne listen, avinstalleres den automatisk av <ph name="PRODUCT_NAME" />. + Denne regelen kommer foran en <ph name="EXTENSION_INSTALL_BLACKLIST_POLICY_NAME" />-regel som kan være i konflikt med den. Hvis en app eller utvidelse som tidligere ble tvangsinstallert, fjernes fra denne listen, avinstalleres den automatisk av <ph name="PRODUCT_NAME" />. For Windows-forekomster som ikke er koblet til et <ph name="MS_AD_NAME" />-domene, er tvungen installasjon begrenset til apper og utvidelser oppført i Chrome Nettmarked. Merk at kildekoden for alle utvidelser kan endres av brukere via utviklerverktøyene (noe som potensielt kan ødelegge funksjonaliteten for utvidelsen). Hvis dette er noe som skaper bekymring, er det best å angi <ph name="DEVELOPER_TOOLS_POLICY_NAME" />-regelen. - Listeelementene i regelen er strenger som inneholder en utvidelses-ID og en nettadresse for oppdatering atskilt med semikolon (<ph name="SEMICOLON" />). Utvidelses-ID-en er strengen på 32 tegn du for eksempel finner i <ph name="CHROME_EXTENSIONS_LINK" /> når du er i utviklermodus. Nettadressen for oppdatering skal peke til oppdateringsmanifestet i XML-format som beskrevet i <ph name="LINK_TO_EXTENSION_DOC1" />. Som standard brukes nettadressen for oppdatering av Chrome Nettmarked (som nå er «https://clients2.google.com/service/update2/crx»). Merk at nettadressen for oppdatering som er angitt i denne regelen, bare brukes for første installasjon – senere oppdateringer av utvidelsen bruker nettadressen for oppdatering som er oppgitt i utvidelsens manifest. Merk også at angivelse av nettadressen for oppdatering var obligatorisk i <ph name="PRODUCT_NAME" />-versjoner til og med 67. + Listeelementene i regelen er strenger som inneholder en utvidelses-ID og en nettadresse for oppdatering, atskilt med semikolon (<ph name="SEMICOLON" />). Utvidelses-ID-en er strengen på 32 tegn du for eksempel finner i <ph name="CHROME_EXTENSIONS_LINK" /> når du er i utviklermodus. Nettadressen for oppdatering skal peke til oppdateringsmanifestet i XML-format som beskrevet i <ph name="LINK_TO_EXTENSION_DOC1" />. Som standard brukes nettadressen for oppdatering av Chrome Nettmarked (som nå er «https://clients2.google.com/service/update2/crx»). Merk at nettadressen for oppdatering som er angitt i denne regelen, bare brukes for første installasjon – senere oppdateringer av utvidelsen bruker nettadressen for oppdatering som er oppgitt i utvidelsens manifest. Merk også at angivelse av nettadressen for oppdatering var obligatorisk i <ph name="PRODUCT_NAME" />-versjoner til og med 67. <ph name="EXTENSION_POLICY_EXAMPLE" /> installerer for eksempel <ph name="EXTENSION_POLICY_EXAMPLE_EXTENSION_NAME" />-appen fra standardnettadressen for oppdatering for Chrome Nettmarked. Hvis du vil ha mer informasjon om verter for utvidelser, kan du se: <ph name="LINK_TO_EXTENSION_DOC2" />. @@ -1013,11 +1013,6 @@ Hvis denne regelen ikke er spesifisert, er SPDY tilgjengelig.</translation> <translation id="3890999316834333174">Retningslinjer for hurtigopplåsing</translation> <translation id="3891357445869647828">Aktiver JavaScript</translation> -<translation id="3891953007921334498">Slår av utviklerverktøyene og JavaScript-konsollen. - - Hvis du slår på denne innstillingen, fjernes tilgangen til utviklerverktøyene, og nettstedelementene kan ikke inspiseres lenger. Alle hurtigtaster og eventuelle oppføringer i menyer eller kontekstmenyer som kan åpne utviklerverktøyene eller JavaScript-konsollen, blir slått av. - - Hvis dette alternativet slås av eller ikke angis, kan utviklerverktøyene og JavaScript-konsollen brukes.</translation> <translation id="3895557476567727016">Konfigurerer standardkatalogen som <ph name="PRODUCT_NAME" /> skal bruke til å laste ned filer. Hvis du angir denne regelen, endres standardkatalogen som <ph name="PRODUCT_NAME" /> laster ned filer til. Denne regelen er ikke obligatorisk, så brukeren kan endre hvilken katalog som skal brukes. @@ -1961,13 +1956,13 @@ Minneinformasjon blir uansett rapportert til siden, uavhengig av verdien for alternativet, men de rapporterte størrelsene blir kvantisert, og oppdateringsfrekvensen er av sikkerhetsgrunner begrenset. Hvis du vil ha data med sanntidspresisjon, må du bruke verktøy som telemetri (fjernmåling).</translation> <translation id="6870914592443697993"> - Denne regelen gjelder for påloggingsskjermen. Se også <ph name="ISOLATE_ORIGINS_POLICY_NAME" />-regelen, som gjelder for brukerøkten. Vi anbefaler å bruke den samme verdien for begge reglene. Hvis verdiene ikke samsvarer, kan det oppstå en forsinkelse ved start av en brukerøkt mens verdien som er angitt av brukerinnstillingene, blir brukt. + Denne regelen gjelder for påloggingsskjermen. Se også <ph name="ISOLATE_ORIGINS_POLICY_NAME" />-regelen, som gjelder for brukerøkten. Vi anbefaler å bruke den samme verdien for begge reglene. Hvis verdiene ikke samsvarer, kan det oppstå en forsinkelse ved start av en brukerøkt mens verdien som er angitt av brukerinnstillingene, blir brukt. Hvis regelen er aktivert, kjøres alle navngitte opprinnelser i kommadelte lister i egne prosesser. Da isoleres også opprinnelser som har navn basert på underdomener. Hvis for eksempel https://example.com/ angis, isoleres også https://foo.example.com/ som en del av nettstedet https://example.com/. - Hvis regelen er deaktivert, er det ingen nettstedsisolering, feltprøver for IsolateOrigins og SitePerProcess deaktiveres. Brukerne kan fortsatt aktivere IsolateOrigins manuelt. + Hvis regelen er deaktivert, skjer det ingen eksplisitt nettstedsisolering, og feltprøver for IsolateOrigins og SitePerProcess deaktiveres. Brukerne kan fortsatt aktivere IsolateOrigins manuelt. Hvis regelen ikke er konfigurert, brukes plattformens standardinnstillinger for nettstedsisolering for påloggingsskjermen. </translation> <translation id="6894178810167845842">Nettadresse for Ny fane-siden</translation> @@ -2412,7 +2407,7 @@ å bruke IsolateOrigins sammen med en liste over nettstedene du vil isolere. Denne innstillingen (SitePerProcess) isolerer alle nettsteder. Hvis regelen er aktivert, kjøres alle nettsteder i sine egne prosesser. - Hvis regelen er deaktivert, er det ingen nettstedsisolering, og feltprøver for IsolateOrigins og SitePerProcess deaktiveres. Brukerne kan fortsatt aktivere SitePerProcess manuelt. + Hvis regelen er deaktivert, skjer det ingen eksplisitt nettstedsisolering, og feltprøver for IsolateOrigins og SitePerProcess deaktiveres. Brukerne kan fortsatt aktivere SitePerProcess manuelt. Hvis regelen ikke er konfigurert, kan brukerne endre denne innstillingen. I <ph name="PRODUCT_OS_NAME" /> bør du også angi samme verdi for enhetsinnstillingene <ph name="DEVICE_LOGIN_SCREEN_SITE_PER_PROCESS_POLICY_NAME" />. Hvis verdiene som er angitt av de to reglene, ikke samsvarer, kan det oppstå en forsinkelse ved start av en brukerøkt mens verdien som er angitt av brukerinnstillingene, blir brukt. </translation> @@ -2754,7 +2749,7 @@ navn basert på underdomener. Hvis for eksempel https://example.com/ angis, isoleres også https://foo.example.com/ som en del av nettstedet https://example.com/. - Hvis regelen er deaktivert, er det ingen nettstedsisolering, og feltprøver for IsolateOrigins og SitePerProcess deaktiveres. Brukerne kan fortsatt aktivere IsolateOrigins manuelt. + Hvis regelen er deaktivert, skjer det ingen eksplisitt nettstedsisolering, og feltprøver for IsolateOrigins og SitePerProcess deaktiveres. Brukerne kan fortsatt aktivere IsolateOrigins manuelt. Hvis regelen ikke er konfigurert, kan brukerne endre denne innstillingen. I <ph name="PRODUCT_OS_NAME" /> bør du også angi samme verdi for enhetsinnstillingene <ph name="DEVICE_LOGIN_SCREEN_ISOLATE_ORIGINS_POLICY_NAME" />. Hvis verdiene som er angitt av de to reglene, ikke samsvarer, kan det oppstå en forsinkelse ved start av en brukerøkt mens verdien som er angitt av brukerinnstillingene, blir brukt. </translation> @@ -2817,9 +2812,9 @@ <translation id="9200828125069750521">Parametere for bildenettadresser som bruker POST</translation> <translation id="9210953373038593554">Konfigurerer autentiseringstypen for SAML-pålogging. - Når denne regelen ikke er spesifisert eller er satt til standard (verdi 0), bestemmes atferden for SAML pålogging av nettleseren avhengig av andre faktorer. I det mest grunnleggende scenarioet baseres brukerautentisering og beskyttelse av bufret brukerdata på passord som skrives inn manuelt av brukerne. + Når denne regelen ikke er spesifisert eller er satt til standard (verdi 0), bestemmes atferden for SAML pålogging av nettleseren avhengig av andre faktorer. I det mest grunnleggende scenarioet baseres brukerautentisering og beskyttelse av bufrede brukerdata på passord som skrives inn manuelt av brukerne. - Når denne regelen er satt til klientsertifikat (verdi 1), brukes autentisering av klientsertifikat for brukere som nylig er lagt til, og som logger inn via SAML. Ingen passord brukes for slike brukere, og bufret lokal data beskyttes med tilhørende kryptografiske nøkler. Denne innstillingen tillater for eksempel konfigurering av smartkortbasert brukerautentisering (merk at mellomvareapper for smartkort må installeres via DeviceLoginScreenAppInstallList-regelen). + Når denne regelen er satt til klientsertifikat (verdi 1), brukes autentisering av klientsertifikat for brukere som nylig er lagt til, og som logger inn via SAML. Ingen passord brukes for slike brukere, og bufrede lokale data beskyttes med tilhørende kryptografiske nøkler. Denne innstillingen tillater for eksempel konfigurering av smartkortbasert brukerautentisering (merk at mellomvareapper for smartkort må installeres via DeviceLoginScreenAppInstallList-regelen). Denne regelen påvirker bare brukere som autentiserer via SAML.</translation> <translation id="9213347477683611358">Konfigurer bakgrunnsbildet som vises på påloggingsskjermen, på enhentsnivå hvis ingen brukere har logget på enheten ennå. Regelen angis ved å spesifisere nettadressen hvor Chrome OS-enheten kan laste ned bakgrunnsbildet, og dessuten en kryptografisk hash-verdi som brukes til bekrefte nedlastingens integritet. Bildet må være i JPEG-format, og filstørrelsen kan ikke overskride 16 MB. Nettadressen må være tilgjengelig uten autentisering. Bakgrunnsbildet lastes ned og bufres. Det lastes ned på nytt hvis nettadressen eller hash-verdien endres.
diff --git a/components/policy/resources/policy_templates_pl.xtb b/components/policy/resources/policy_templates_pl.xtb index 9d7f6a2..3a02e7f 100644 --- a/components/policy/resources/policy_templates_pl.xtb +++ b/components/policy/resources/policy_templates_pl.xtb
@@ -995,11 +995,6 @@ Jeśli jest nieskonfigurowana, protokół SPDY jest dostępny.</translation> <translation id="3890999316834333174">Zasady szybkiego odblokowania</translation> <translation id="3891357445869647828">Włącz obsługę języka JavaScript</translation> -<translation id="3891953007921334498">Wyłącza narzędzia dla programistów i konsolę JavaScript. - - Jeśli włączysz to ustawienie, niemożliwe będzie uzyskanie dostępu do narzędzi dla programistów i dokonanie przeglądu elementów witryny. Wszelkie skróty klawiszowe oraz pozycje w menu aplikacji i menu kontekstowym umożliwiające otwarcie narzędzi dla programistów lub konsoli JavaScript będą nieaktywne. - - Wyłączenie lub nieskonfigurowanie tej opcji umożliwi korzystanie z narzędzi dla programistów i konsoli JavaScript.</translation> <translation id="3895557476567727016">Konfiguruje domyślny katalog, do którego <ph name="PRODUCT_NAME" /> będzie pobierać pliki. Jeśli ustawisz tę zasadę, zmieni ona domyślny katalog, do którego <ph name="PRODUCT_NAME" /> pobiera pliki. Zasada nie jest obowiązkowa, dlatego użytkownik będzie mógł zmienić katalog.
diff --git a/components/policy/resources/policy_templates_pt-BR.xtb b/components/policy/resources/policy_templates_pt-BR.xtb index dafc654..e522e80 100644 --- a/components/policy/resources/policy_templates_pt-BR.xtb +++ b/components/policy/resources/policy_templates_pt-BR.xtb
@@ -993,11 +993,6 @@ Se essa política for deixada sem definição, o SPDY ficará disponível.</translation> <translation id="3890999316834333174">Políticas de desbloqueio rápido</translation> <translation id="3891357445869647828">Ativar o JavaScript</translation> -<translation id="3891953007921334498">Desativa as Ferramentas do desenvolvedor e o console JavaScript. - - Se você ativar esta configuração, as Ferramentas do desenvolvedor não poderão ser acessadas, e elementos de websites não poderão mais ser inspecionados. Todos os atalhos de teclado e todas as entradas de menu ou menu de contexto para abrir as Ferramentas do desenvolvedor ou o Console de JavaScript serão desativados. - - Definir esta opção como desativada ou deixá-la sem definição permitirá a utilização das Ferramentas do desenvolvedor e do console JavaScript.</translation> <translation id="3895557476567727016">Configura o diretório que o <ph name="PRODUCT_NAME" /> usará para armazenar dados do usuário. Se você definir esta política, o diretório padrão usado para os downloads do <ph name="PRODUCT_NAME" /> será alterado. Ela não é obrigatória, sendo que o usuário poderá alterar o diretório posteriormente.
diff --git a/components/policy/resources/policy_templates_pt-PT.xtb b/components/policy/resources/policy_templates_pt-PT.xtb index 7ce023c..c7aca8a3 100644 --- a/components/policy/resources/policy_templates_pt-PT.xtb +++ b/components/policy/resources/policy_templates_pt-PT.xtb
@@ -1009,11 +1009,6 @@ Se esta política não for definida, o protocolo SPDY está disponível.</translation> <translation id="3890999316834333174">Políticas de desbloqueio rápido</translation> <translation id="3891357445869647828">Ativar JavaScript</translation> -<translation id="3891953007921334498">Desativa as Ferramentas do programador e a Consola de JavaScript. - -Se ativar esta definição, não será possível aceder às Ferramentas do programador e os elementos de Web sites deixarão de ser inspecionados. Todos os atalhos de teclado e entradas de menu ou de menu de contexto para abrir as Ferramentas do programador ou a Consola de JavaScript serão desativados. - -Se desativar ou não definir esta opção, permite que o utilizador use as Ferramentas do programador e a Consola de JavaScript.</translation> <translation id="3895557476567727016">Configura o diretório predefinido que o <ph name="PRODUCT_NAME" /> vai utilizar para a transferência de ficheiros. Se definir esta política, altera o diretório predefinido para onde o <ph name="PRODUCT_NAME" /> transfere ficheiros. Esta política não é obrigatória, pelo que o utilizador pode alterar o diretório.
diff --git a/components/policy/resources/policy_templates_ro.xtb b/components/policy/resources/policy_templates_ro.xtb index c8200f2..32bcbfb 100644 --- a/components/policy/resources/policy_templates_ro.xtb +++ b/components/policy/resources/policy_templates_ro.xtb
@@ -1011,11 +1011,6 @@ Dacă această politică nu este configurată, SPDY va fi disponibil.</translation> <translation id="3890999316834333174">Politicile privind deblocarea rapidă</translation> <translation id="3891357445869647828">Activează JavaScript</translation> -<translation id="3891953007921334498">Dezactivează Instrumentele pentru dezvoltatori și consola JavaScript. - - Dacă activezi această setare, Instrumentele pentru dezvoltatori nu pot fi accesate, iar elementele site-urilor nu mai pot fi inspectate. Comenzile rapide de la tastatură și intrările din meniuri sau din meniurile contextuale pentru deschiderea Instrumentelor pentru dezvoltatori sau a consolei JavaScript vor fi dezactivate. - - Dacă dezactivezi această opțiune sau nu o configurezi, utilizatorul va putea să folosească Instrumentele pentru dezvoltatori și consola JavaScript.</translation> <translation id="3895557476567727016">Configurează directorul prestabilit pe care <ph name="PRODUCT_NAME" /> îl va utiliza pentru descărcarea fișierelor. Dacă setezi această politică, aceasta va schimba directorul prestabilit în care <ph name="PRODUCT_NAME" /> descarcă fișiere. Această politică nu este obligatorie, deci utilizatorul va putea schimba directorul.
diff --git a/components/policy/resources/policy_templates_ru.xtb b/components/policy/resources/policy_templates_ru.xtb index 8af15b0..88db758 100644 --- a/components/policy/resources/policy_templates_ru.xtb +++ b/components/policy/resources/policy_templates_ru.xtb
@@ -982,11 +982,6 @@ Если это правило не установлено, протокол SPDY будет доступен.</translation> <translation id="3890999316834333174">Правила быстрой разблокировки</translation> <translation id="3891357445869647828">Включить JavaScript</translation> -<translation id="3891953007921334498">Отключает Инструменты разработчика и консоль JavaScript. - - Если этот параметр включен, Инструменты разработчика недоступны и их нельзя использовать для анализа сайтов. Также при этом не работают быстрые клавиши и элементы меню, позволяющие открывать Инструменты разработчика и консоль JavaScript. - - Если этот параметр отключен или не задан, Инструменты разработчика и консоль JavaScript можно использовать.</translation> <translation id="3895557476567727016">Задает каталог, в который <ph name="PRODUCT_NAME" /> скачивает файлы. Если правило настроено, каталог, который <ph name="PRODUCT_NAME" /> использует по умолчанию, будет изменен. При этом пользователь сможет выбрать другой каталог.
diff --git a/components/policy/resources/policy_templates_sk.xtb b/components/policy/resources/policy_templates_sk.xtb index 30d8d4d2..cbb82baa6a 100644 --- a/components/policy/resources/policy_templates_sk.xtb +++ b/components/policy/resources/policy_templates_sk.xtb
@@ -1017,11 +1017,6 @@ Ak toto pravidlo ponecháte nenastavené, protokol SPDY bude k dispozícii.</translation> <translation id="3890999316834333174">Pravidlá rýchleho odomknutia</translation> <translation id="3891357445869647828">Povoliť kód JavaScript</translation> -<translation id="3891953007921334498">Zakáže Nástroje pre vývojárov a konzolu JavaScript. - - Ak toto nastavenie povolíte, nebude možné pristupovať k nástrojom pre vývojárov ani kontrolovať prvky webov. Zakázané budú tiež všetky klávesové skratky a položky klasických či kontextových ponúk, pomocou ktorých je možné otvoriť nástroje pre vývojárov alebo konzolu JavaScript. - - Ak túto možnosť nastavíte ako zakázanú alebo ju ponecháte nenastavenú, umožní to používateľovi použiť Nástroje pre vývojárov a konzolu JavaScript.</translation> <translation id="3895557476567727016">Umožňuje nakonfigurovať adresár, ktorý <ph name="PRODUCT_NAME" /> použije na ukladanie súborov. Ak nastavíte toto pravidlo, zmení sa predvolený adresár, do ktorého <ph name="PRODUCT_NAME" /> sťahuje súbory. Toto pravidlo nie je povinné, takže používateľ bude môcť priečinok zmeniť.
diff --git a/components/policy/resources/policy_templates_sl.xtb b/components/policy/resources/policy_templates_sl.xtb index f9382e61..ff0624a 100644 --- a/components/policy/resources/policy_templates_sl.xtb +++ b/components/policy/resources/policy_templates_sl.xtb
@@ -1042,11 +1042,6 @@ Če pravilnik ni nastavljen, bo protokol SPDY na voljo.</translation> <translation id="3890999316834333174">Pravilniki o hitrem odklepanju</translation> <translation id="3891357445869647828">Omogoči JavaScript</translation> -<translation id="3891953007921334498">Onemogoči orodja za razvijalce in konzolo JavaScript. - - Če to nastavitev omogočite, dostop do orodij za razvijalcev ne bo mogoč in elementov na spletnih mestih ne bo več mogoče pregledovati. Vse bližnjične tipke in vnosi v meniju ali kontekstnem meniju za odpiranje orodij za razvijalce in konzole JavaScript bodo onemogočeni. - - Če to možnost onemogočite ali je ne nastavite, lahko uporabnik uporablja orodja za razvijalce in konzolo JavaScript.</translation> <translation id="3895557476567727016">Konfigurira privzeti imenik, ki ga <ph name="PRODUCT_NAME" /> uporabi za prenos datotek. Če nastavite ta pravilnik, bo spremenil privzeti imenik, v katerega <ph name="PRODUCT_NAME" /> prenese datoteke. Ta pravilnik ni obvezen, tako da lahko uporabnik spremeni imenik.
diff --git a/components/policy/resources/policy_templates_sr.xtb b/components/policy/resources/policy_templates_sr.xtb index cfb8599a..6e0433a 100644 --- a/components/policy/resources/policy_templates_sr.xtb +++ b/components/policy/resources/policy_templates_sr.xtb
@@ -1032,11 +1032,6 @@ Ако не подесите ове смернице, SPDY ће бити доступан.</translation> <translation id="3890999316834333174">Смернице за брзо откључавање</translation> <translation id="3891357445869647828">Омогући JavaScript</translation> -<translation id="3891953007921334498">Онемогућава Алатке за програмере и JavaScript конзолу. - - Ако омогућите ово подешавање, Алаткама за програмере више неће моћи да се приступа и елементи веб-сајта више неће моћи да се проверавају. Све тастерске пречице и сви уноси менија или контекстуалних менија за отварање Алатки за програмере или JavaScript конзоле биће онемогућени. - - Ако онемогућите ову опцију или је не подесите, моћи ћете да користите Алатке за програмере и JavaScript конзолу.</translation> <translation id="3895557476567727016">Конфигуришу подразумевани директоријум који <ph name="PRODUCT_NAME" /> користи за преузимање датотека. Ако подесите ове смернице, променићете подразумевани директоријум у који <ph name="PRODUCT_NAME" /> преузима датотеке. Ове смернице нису обавезне, па корисник може да промени директоријум.
diff --git a/components/policy/resources/policy_templates_sv.xtb b/components/policy/resources/policy_templates_sv.xtb index c34cd17..aada01579 100644 --- a/components/policy/resources/policy_templates_sv.xtb +++ b/components/policy/resources/policy_templates_sv.xtb
@@ -1043,11 +1043,6 @@ Om den här principen inte anges kommer SPDY att bli tillgängligt.</translation> <translation id="3890999316834333174">Principer för snabb upplåsning</translation> <translation id="3891357445869647828">Aktivera JavaScript</translation> -<translation id="3891953007921334498">Principen inaktiverar utvecklarverktygen och JavaScript-konsolen. - - Om du aktiverar inställningen går det inte att använda utvecklarverktygen och det går inte att inspektera webbplatselement. Kortkommandon och alternativ för att öppna utvecklarverktygen eller JavaScript-konsolen på menyer och snabbmenyer inaktiveras. - - Om det här alternativet inaktiveras eller inte anges kan utvecklarverktygen och JavaScript-konsolen användas.</translation> <translation id="3895557476567727016">Konfigurerar standardkatalogen som används för att ladda ned filer med <ph name="PRODUCT_NAME" />. Om du ändrar denna princip ändras standardkatalogen som används när du laddar ned filer med <ph name="PRODUCT_NAME" />. Den här principen är inte obligatorisk, och användaren kan därför ändra katalogen.
diff --git a/components/policy/resources/policy_templates_sw.xtb b/components/policy/resources/policy_templates_sw.xtb index da8adf8..ade3604 100644 --- a/components/policy/resources/policy_templates_sw.xtb +++ b/components/policy/resources/policy_templates_sw.xtb
@@ -422,7 +422,7 @@ Sera hii huruhusu wasimamizi kutoa mipangilio ya printa kwa watumiaji wake. - <ph name="PRINTER_DISPLAY_NAME" /> na <ph name="PRINTER_DESCRIPTION" /> ziko katika mifuatano wazi ambayo inaweza kubadilishwa ikufae ili kurahisisha kuchagua printa. <ph name="PRINTER_MANUFACTURER" /> na <ph name="PRINTER_MODEL" /> hukusaidia kutamblisha printa kulingana na watumiaji wake. Huwakilisha mtengenezaji na muundo wa printa. <ph name="PRINTER_URI" /> inapaswa kuwa mahali ambapo panafikika kutoka kwenye kiteja cha kompyuta ikiwa ni pamoja na <ph name="URI_SCHEME" />, <ph name="URI_PORT" /> na <ph name="URI_QUEUE" />. Si lazima uweke <ph name="PRINTER_UUID" />. Ikiwekwa, itatumika kusaidia kuondoa nakala za printa za <ph name="ZEROCONF_DISCOVERY" />. + <ph name="PRINTER_DISPLAY_NAME" /> na <ph name="PRINTER_DESCRIPTION" /> ziko katika mifuatano wazi ambayo inaweza kubadilishwa ikufae ili kurahisisha kuchagua printa. <ph name="PRINTER_MANUFACTURER" /> na <ph name="PRINTER_MODEL" /> hukusaidia kutambulisha printa kulingana na watumiaji wake. Huwakilisha mtengenezaji na muundo wa printa. <ph name="PRINTER_URI" /> inapaswa kuwa mahali ambapo panafikika kutoka kwenye kiteja cha kompyuta ikiwa ni pamoja na <ph name="URI_SCHEME" />, <ph name="URI_PORT" /> na <ph name="URI_QUEUE" />. Si lazima uweke <ph name="PRINTER_UUID" />. Ikiwekwa, itatumika kusaidia kuondoa nakala za printa za <ph name="ZEROCONF_DISCOVERY" />. Ni lazima <ph name="PRINTER_EFFECTIVE_MODEL" /> ifanane na mojawapo ya mfuatano unaowakilisha printa inayotumika ya <ph name="PRODUCT_NAME" />. Mfuatano huo utatumiwa kutambua na kusakinisha PPD inayofaa kwenye printa. Maelezo zaidi yanaweza kupatikana katika https://support.google.com/chrome?p=noncloudprint. @@ -430,7 +430,7 @@ Sera hii haiathiri iwapo watumiaji wanaweza kuweka mipangilio kwenye vifaa vya kibinafsi. Imewekwa iwe mbinu ya ziada ya kuweka mipangilio ya printa inayotumiwa na watumiaji mahususi. - Kwa vifaa vinavyodhibitiwa na Saraka Inayotumika, sera hii inatumia upanuzi wa <ph name="MACHINE_NAME_VARIABLE" /> kwenye jina la mashine ya Saraka Inayotumika au kiambishi cha msimbo. Kwa mfano, ikiwa jina la mashine ni <ph name="MACHINE_NAME_EXAMPLE" />, basi herufi 4 zitatumiwa badala ya <ph name="MACHINE_NAME_VARIABLE_EXAMPLE" /> kuanzia nafasi ya 6, kwa mfano <ph name="MACHINE_NAME_PART_EXAMPLE" />. Kumbuka kwamba nafasi hii inatumia sufuri. + Kwa vifaa vinavyodhibitiwa na Saraka Inayotumika, sera hii inatumia upanuzi wa <ph name="MACHINE_NAME_VARIABLE" /> kwenye jina la mashine ya Saraka Inayotumika au kiambishi cha msimbo. Kwa mfano, ikiwa jina la mashine ni <ph name="MACHINE_NAME_EXAMPLE" />, basi herufi 4 zitatumiwa badala ya <ph name="MACHINE_NAME_VARIABLE_EXAMPLE" /> kuanzia nafasi ya 6, kwa mfano <ph name="MACHINE_NAME_PART_EXAMPLE" />. Kumbuka kwamba nafasi hii inatumia sufuri. </translation> <translation id="2294382669900758280">Video inayocheza katika programu za Android haizingatiwi, hata kama sera hii imewekwa kuwa <ph name="TRUE" />.</translation> <translation id="2298647742290373702">Weka ukurasa chaguo-msingi wa Kichupo Kipya katika <ph name="PRODUCT_NAME" />.</translation> @@ -1023,11 +1023,6 @@ Sera hii ikiachwa bila kuwekwa, SPDY itapatikana.</translation> <translation id="3890999316834333174">Sera za kufungua skrini haraka</translation> <translation id="3891357445869647828">Wezesha JavaScript</translation> -<translation id="3891953007921334498">Huzima Zana za Wasanidi Programu na kidhibiti cha JavaScript. - - Ukiwasha mipangilio hii, Zana za Wasanidi Programu haziwezi kufikiwa na vipengee vya tovuti haviwezi kukaguliwa tena. Mikato yoyote ya kibodi na menyu au uingizaji wowote wa menyu wa kufungua Zana za Wasanidi Programu au Kidhibiti cha JavaScript itazimwa. - - Kuzima chaguo hili au kuliacha bila kuweka kutaruhusu mtumiaji kutumia Zana za Wasanidi Programu na kidhibiti cha JavaScript.</translation> <translation id="3895557476567727016">Husanidi saraka chaguo-msingi ambayo <ph name="PRODUCT_NAME" /> itatumia kupakua faili. Ikiwa utaweka sera hii, itabadilisha saraka chaguo-msingi ambayo <ph name="PRODUCT_NAME" /> hupakulia faili. Sera hii si ya lazima, kwa hivyo, mtumiaji ataweza kubadilisha saraka hiyo. @@ -1907,11 +1902,11 @@ Ikiwa sera hii itaachwa bila kuwekwa, kipengee cha ubashiri wa mtandao kitawashwa lakini mtumiaji ataweza kukibadilisha.</translation> <translation id="6658245400435704251">Inabainisha idadi ya sekunde ambazo kifaa kinaweza kuamua kuchelewesha upakuaji wake wa sasisho kutoka wakati ambapo usasishaji ulisukumwa kwanza nje katika seva. Kifaa kinaweza kusubiri kijisehemu cha muda huu kwa hali ya muda wa saa na kijisehemu kinachosalia katika hali ya idadi ya ukaguzi wa visasisho. Katika hali yoyote, utawanyishaji umekitwa katika kiwango cha kudumu cha muda ili kifaa kisikwame tena kikisubiri kupakua sasisho kwa muda mrefu.</translation> <translation id="6665670272107384733">Weka mara ambazo mtumiaji anatakiwa kuweka nenosiri ili atumie kipengele cha kufungua haraka.</translation> -<translation id="6681229465468164801">Hukuruhusu uweke orodha ya michoro ya url ambayo inabainisha tovuti zinazozuiliwa ili zisimuulize mtumiaji atoe ruhusa ya kufikia kifaa cha USB. +<translation id="6681229465468164801">Hukuruhusu uweke orodha ya ruwaza za url ambayo inabainisha tovuti zinazozuiliwa ili zisimuulize mtumiaji atoe ruhusa ya kufikia kifaa cha USB. Ikiwa mipangilio ya sera hii haitawekwa, thamani chaguomsingi itatumiwa kwa tovuti zote kutoka sera ya 'DefaultWebUsbGuardSetting' endapo itawekwa. Vinginevyo, itatumia mipangilio ya binafsi ya mtumiaji. - Michoro ya URL haipaswi kukinzana na ile ambayo imewekwa kupitia WebUsbAskForUrls. Haijabainishwa ni ipi kati ya sera hizi mbili inayofaa kuanza iwapo URL inafanana na zote mbili.</translation> + Ruwaza ya URL haipaswi kukinzana na ile ambayo imewekwa kupitia WebUsbAskForUrls. Haijabainishwa ni ipi kati ya sera hizi mbili inayofaa kuanza iwapo URL inafanana na zote mbili.</translation> <translation id="6689792153960219308">Ripoti hali ya maunzi</translation> <translation id="6698071416141001300">Hali ya kuripoti hatari kwa ulinzi wa nenosiri la akaunti husababishwa na hatua ya kutumia tena nenosiri lile lile</translation> <translation id="6699880231565102694">Wezesha uthibitishaji wa vipengee viwili kwa wapangishaji wa ufikivu wa mbali</translation> @@ -2081,11 +2076,11 @@ Kama mipangilio hii imezimwa au haijawekwa, basi itatumia ulinzi chaguo-msingi wa Kuvinjari Salama katika nyenzo zote. Sera hii haipatikani katika matukio ya Windows ambayo hayajaunganishwa kwenye kikoa cha <ph name="MS_AD_NAME" />.</translation> <translation id="7079519252486108041">Zuia madirisha ibukizi kwenye tovuti hizi</translation> -<translation id="7085803328069945025">Hukuruhusu uweke orodha ya michoro ya url ambayo inabainisha tovuti zinazoruhusiwa kumuuliza mtumiaji atoe ruhusa ya kufikia kifaa cha USB. +<translation id="7085803328069945025">Hukuruhusu uweke orodha ya ruwaza za url ambayo inabainisha tovuti zinazoruhusiwa kumuuliza mtumiaji atoe ruhusa ya kufikia kifaa cha USB. Ikiwa sera hii haitawekwa, thamani chaguomsingi itatumiwa kwa tovuti zote kutoka sera ya 'DefaultPluginsSetting' endapo itawekwa. Vinginevyo, itatumia mipangilio ya binafsi ya mtumiaji. - Michoro ya URL haipaswi kukinzana na ile ambayo imewekwa kupitia WebUsbAskForUrls. Haijabainishwa ni ipi kati ya sera hizi mbili inayofaa kuanza iwapo URL inafanana na zote mbili.</translation> + Ruwaza ya URL haipaswi kukinzana na ile ambayo imewekwa kupitia WebUsbAskForUrls. Haijabainishwa ni ipi kati ya sera hizi mbili inayofaa kuanza iwapo URL inafanana na zote mbili.</translation> <translation id="7106631983877564505">Washa kipengele cha kufunga wakati vifaa vya <ph name="PRODUCT_OS_NAME" /> havifanyi kitu au vikisimamishwa. Ukiwasha mipangilio hii, watumiaji wataombwa nenosiri ili kufungua kifaa ambacho hakitumiki. @@ -2813,7 +2808,7 @@ <translation id="9158929520101169054">Ruhusu Kuingia katika Akaunt Nyingi katika Kivinjari</translation> <translation id="9165792353046089850">Hukuruhusu ubaini ikiwa tovuti zinaruhusiwa kupata idhini ya kufikia vifaa vya USB vilivyounganishwa. Idhini ya ufikiaji inaweza kuzuiwa kabisa, au mtumiaji anaweza kuulizwa kila wakati atoe adhini tovuti inapotaka kufikia vifaa vya USB vilivyounganishwa. - Sera hii inaweza kubatilishwa katika michoro mahususi ya URL kupitia sera za 'WebUsbAskForUrls' na 'WebUsbBlockedForUrls'. + Sera hii inaweza kubatilishwa katika ruwaza mahususi ya URL kupitia sera za 'WebUsbAskForUrls' na 'WebUsbBlockedForUrls'. Sera hii ikiachwa bila kuwekwa, '3' itatumiwa na mtumiaji ataweza kuibadilisha.</translation> <translation id="9167719789236691545">Huzima Hifadhi ya Google katika programu ya Faili za <ph name="PRODUCT_OS_NAME" /></translation>
diff --git a/components/policy/resources/policy_templates_ta.xtb b/components/policy/resources/policy_templates_ta.xtb index 6cc7b75..1d5d6a7 100644 --- a/components/policy/resources/policy_templates_ta.xtb +++ b/components/policy/resources/policy_templates_ta.xtb
@@ -389,7 +389,7 @@ ஏதேனும் நீட்டிப்பின் மூலக் குறியீட்டை டெவெலப்பர் கருவிகள் மூலம் பயனர்களால் மாற்ற முடியும் (நீட்டிப்பைச் செயல்படாதபடி அமைக்கக்கூடும்) என்பதை நினைவில்கொள்ளவும். இது பிரச்சனையாக இருந்தால், <ph name="DEVELOPER_TOOLS_POLICY_NAME" /> கொள்கையைக் கட்டாயம் அமைக்க வேண்டும். - கொள்கையின் ஒவ்வொரு பட்டியல் உருப்படியும், காற்புள்ளியால் (<ph name="SEMICOLON" />) பிரிக்கப்பட்ட நீட்டிப்பு ஐடி மற்றும் விருப்பமாக, "புதுப்பிப்பு" URLஐயும் கொண்டுள்ள எழுத்துச்சரமாகும். நீட்டிப்பு ஐடி என்பது டெவெலப்பர் பயன்முறையில் இருக்கும் போது காட்டப்படும் 32 எழுத்துகள் கொண்ட எழுத்துச்சரம் ஆகும். எடுத்துக்காட்டு: <ph name="CHROME_EXTENSIONS_LINK" />. "புதுப்பிப்பு" URL என்பது குறிப்பிடப்பட்டால், <ph name="LINK_TO_EXTENSION_DOC1" /> இல் விவரிக்கப்பட்டுள்ளது போல் புதுப்பிப்பு மெனிஃபெஸ்ட் XML ஆவணத்தைக் குறிக்க வேண்டும். இயல்பாக, Chrome இணைய அங்காடியின் புதுப்பிப்பு URL பயன்படுத்தப்படும் (அது தற்சமயம் "https://clients2.google.com/service/update2/crx" என்பதாகும்). குறிப்பு: இந்தக் கொள்கையில் அமைக்கப்படும் "புதுப்பிப்பு" URL ஆனது துவக்கநிலை நிறுவலுக்கு மட்டுமே பயன்படுத்தப்படும்; நீட்டிப்பின் அடுத்தடுத்த புதுப்பிப்புகள், நீட்டிப்பின் மெனிஃபெஸ்ட்டில் குறிப்பிடப்பட்டுள்ள புதுப்பிப்பு URLஐப் பயன்படுத்தும். "புதுப்பிப்பு" URLஐ வெளிப்படையாகக் குறிப்பிடுவதும், 67 வரைக்குமான <ph name="PRODUCT_NAME" /> பதிப்புகளுக்கு கட்டாயமானதாகும் என்பதைக் கவனத்தில் கொள்ளவும். + கொள்கையின் ஒவ்வொரு பட்டியல் உருப்படியும், காற்புள்ளியால் (<ph name="SEMICOLON" />) பிரிக்கப்பட்ட நீட்டிப்பு ஐடி மற்றும் விருப்பமாக, "புதுப்பிப்பு" URLஐயும் கொண்டுள்ள எழுத்துச்சரமாகும். நீட்டிப்பு ஐடி என்பது டெவெலப்பர் பயன்முறையில் இருக்கும் போது காட்டப்படும் 32 எழுத்துகள் கொண்ட எழுத்துச்சரம் ஆகும். எடுத்துக்காட்டு: <ph name="CHROME_EXTENSIONS_LINK" />. "புதுப்பிப்பு" URL என்பது குறிப்பிடப்பட்டால், <ph name="LINK_TO_EXTENSION_DOC1" /> இல் விவரிக்கப்பட்டுள்ளது போல் அது புதுப்பிப்பு மெனிஃபெஸ்ட் XML ஆவணத்தைக் குறிக்க வேண்டும். இயல்பாக, Chrome இணைய அங்காடியின் புதுப்பிப்பு URL பயன்படுத்தப்படும் (அது தற்சமயம் "https://clients2.google.com/service/update2/crx" என்பதாகும்). குறிப்பு: இந்தக் கொள்கையில் அமைக்கப்படும் "புதுப்பிப்பு" URL ஆனது துவக்கநிலை நிறுவலுக்கு மட்டுமே பயன்படுத்தப்படும்; நீட்டிப்பின் அடுத்தடுத்த புதுப்பிப்புகள், நீட்டிப்பின் மெனிஃபெஸ்ட்டில் குறிப்பிடப்பட்டுள்ள புதுப்பிப்பு URLஐப் பயன்படுத்தும். "புதுப்பிப்பு" URLஐ வெளிப்படையாகக் குறிப்பிடுவதும், 67 வரைக்குமான <ph name="PRODUCT_NAME" /> பதிப்புகளுக்கு கட்டாயமானதாகும் என்பதைக் கவனத்தில் கொள்ளவும். எடுத்துக்காட்டாக, <ph name="EXTENSION_POLICY_EXAMPLE" /> ஆனது இயல்பு Chrome இணைய அங்காடியின் "புதுப்பிப்பு" URL இலிருந்து <ph name="EXTENSION_POLICY_EXAMPLE_EXTENSION_NAME" /> பயன்பாட்டை நிறுவும். நீட்டிப்புகளை ஹோஸ்ட் செய்வது பற்றிய கூடுதல் தகவலுக்கு, பின்வரும் இணைப்பைப் பார்க்கவும்: <ph name="LINK_TO_EXTENSION_DOC2" />. @@ -399,6 +399,21 @@ பதிவிறக்கப்பட்ட அகராதியைப் பயன்படுத்தியும் எழுத்துப்பிழை சரிபார்ப்பைச் செயல்படுத்தலாம்; இந்தக் கொள்கையானது ஆன்லைன் சேவையின் பயன்பாட்டை மட்டுமே கட்டுப்படுத்துகிறது. இந்த அமைப்பை உள்ளமைக்கவில்லையெனில், பயனர்கள் எழுத்துப்பிழைச் சரிபார்ப்பு சேவையைப் பயன்படுத்த வேண்டுமா இல்லையா என்பதைத் தேர்வுசெய்யலாம்.</translation> +<translation id="2294283832646774959">பிரிண்டர்களின் பட்டியலை உள்ளமைக்கும். + + இந்தக் கொள்கை, நிர்வாகிகள் தங்களின் பயனர்களுக்குப் பிரிண்டர் உள்ளமைவுகளை + வழங்க அனுமதிக்கும். + + <ph name="PRINTER_DISPLAY_NAME" />, <ph name="PRINTER_DESCRIPTION" /> ஆகியவை பிரிண்டரை எளிதாகத் தேர்ந்தெடுக்க உதவும் கட்டுப்பாடற்ற எழுத்துச்சரங்கள் ஆகும். இவற்றை விருப்பப்படி மாற்றிக்கொள்ளலாம். இறுதிப் பயனர்கள் பிரிண்டரை எளிதாக அடையாளம் காண்பதற்கு <ph name="PRINTER_MANUFACTURER" /> மற்றும் <ph name="PRINTER_MODEL" /> உதவுகின்றன. அவை பிரிண்டரின் உற்பத்தியாளரையும் மாடலையும் குறிக்கும். <ph name="PRINTER_URI" /> என்பது கிளையன்ட் கணினியிலிருந்து தொடர்புகொள்ளத்தக்க முகவரியாக இருக்க வேண்டும். அது <ph name="URI_SCHEME" />, <ph name="URI_PORT" />, <ph name="URI_QUEUE" /> ஆகியவற்றைக் கொண்டிருக்க வேண்டும். <ph name="PRINTER_UUID" />ஐ விரும்பினால் வழங்கலாம். அவ்வாறு வழங்கினால், அது <ph name="ZEROCONF_DISCOVERY" /> பிரிண்டர்களின் நகல்களை நீக்குவதற்குப் பயன்படுத்தப்படும். + + <ph name="PRINTER_EFFECTIVE_MODEL" /> ஆனது <ph name="PRODUCT_NAME" />ஐ ஆதரிக்கும் பிரிண்டரைக் குறிக்கும் எழுத்துச்சரங்கள் ஒன்றுடன் பொருந்த வேண்டும். இந்த எழுத்துச்சரம், பிரிண்டருக்கான சரியான PPDஐ அடையாளங்கண்டு, நிறுவப் பயன்படுத்தப்படும். கூடுதல் தகவலைப் பின்வரும் இணைப்பில் பார்க்கலாம்: https://support.google.com/chrome?p=noncloudprint. + + பிரிண்டரை முதல்முறை பயன்படுத்தும் போது அது அமைக்கப்பட்டுவிடும். பிரிண்டரைப் பயன்படுத்தும் வரை, PPDகள் பதிவிறக்கப்படாது. அதன் பின்னர், அடிக்கடி பயன்படுத்தும் PPDகள் தற்காலிகமாகச் சேமிக்கப்படும். + + தனிநபர் சாதனங்களில் பிரிண்டர்களை பயனர்கள் உள்ளமைக்க முடியுமா, முடியாதா என்பதை இந்தக் கொள்கை பாதிக்காது. தனிப் பயனர்களின் பிரிண்டர்கள் உள்ளமைவிற்குத் துணையாக இருப்பதே இதன் நோக்கமாகும். + + ஆக்டிவ் டைரக்டரி நிர்வகிக்கும் சாதனங்களுக்கு, <ph name="MACHINE_NAME_VARIABLE" />ஐ ஆக்டிவ் டைரக்டரி சாதனத்தின் பெயர் அல்லது அதன் உட்சரத்திற்கு நீட்டிப்பதை இந்தக் கொள்கை அனுமதிக்கும். எடுத்துக்காட்டாக, சாதனத்தின் பெயர் <ph name="MACHINE_NAME_EXAMPLE" /> எனில், 6வது நிலைக்குப் (அதாவது <ph name="MACHINE_NAME_PART_EXAMPLE" /> இலிருந்து) பிறகு தொடங்கும் 4 எழுத்துகளால் <ph name="MACHINE_NAME_VARIABLE_EXAMPLE" /> மாற்றியமைக்கப்படும். அந்த நிலையானது பூஜ்ஜியத்தை அடிப்படையாகக் கொண்டது என்பதைக் கவனத்தில்கொள்ளவும். + </translation> <translation id="2294382669900758280">இந்தக் கொள்கை <ph name="TRUE" />க்கு அமைக்கப்பட்டாலும், Android பயன்பாடுகளில் இயங்கும் வீடியோ, கணக்கில் எடுக்கப்படாது.</translation> <translation id="2298647742290373702"><ph name="PRODUCT_NAME" /> இல் இயல்புப் புதிய தாவல் பக்கத்தை உள்ளமைக்கும்.</translation> <translation id="2299220924812062390">செயலாக்கப்பட்ட செருகுநிரல்களின் பட்டியலைக் குறிப்பிடுக</translation> @@ -969,11 +984,6 @@ இந்தக் கொள்கை அமைக்கப்படவில்லை எனில், SPDY கிடைக்கும்.</translation> <translation id="3890999316834333174">விரைந்து திறக்கும் அம்சத்தின் கொள்கைகள்</translation> <translation id="3891357445869647828">JavaScript ஐ செயலாக்குக</translation> -<translation id="3891953007921334498">டெவெலப்பர் கருவிகளையும் JavaScript கன்சோலையும் முடக்கும். - - இந்த அமைப்பை இயக்கினால், டெவெலப்பர் கருவிகளை அணுக முடியாது, இணையதளக் கூறுகளை ஆய்வு செய்யமுடியாது. டெவெலப்பர் கருவிகள் அல்லது JavaScript கன்சோலைத் திறப்பதற்கான எந்த விசைப்பலகைக் குறுக்குவழிகளும் மெனு அல்லது சூழல் மெனு உள்ளீடுகளும் முடக்கப்படும். - - இந்த அமைப்பை முடக்கினாலோ அல்லது அமைக்காமல் விட்டாலோ, டெவெலப்பர் கருவிகளையும் JavaScript கன்சோலையும் பயன்படுத்த பயனர்களை அனுமதிக்கும்.</translation> <translation id="3895557476567727016">கோப்புகளைப் பதிவிறக்க <ph name="PRODUCT_NAME" /> பயன்படுத்தக்கூடிய இயல்பு கோப்பகத்தை உள்ளமைக்கும். இந்தக் கொள்கையை அமைத்தால், கோப்புகளைப் பதிவிறக்க <ph name="PRODUCT_NAME" /> பயன்படுத்தும் இயல்பு கோப்பகத்தை அது மாற்றும். இந்தக் கொள்கையானது கட்டாயமானதல்ல, இதனால் பயனரால் கோப்பகத்தை மாற்ற முடியும். @@ -1161,6 +1171,7 @@ <translation id="4508686775017063528">இந்தக் கொள்கையைச் சரி என அமைத்தால் அல்லது அமைக்கவில்லை எனில், <ph name="PRODUCT_NAME" /> இயக்கப்படும். மேலும், பயன்பாட்டு மெனு, பக்க சூழல் மெனுக்கள், அனுப்புதல் இயக்கப்பட்ட இணையதளங்களிலுள்ள மீடியா கட்டுப்பாடுகள், Cast கருவிப்பட்டி ஐகான் (காட்டப்பட்டால்) ஆகியவற்றிலிருந்து பயனர்கள் அதைத் தொடங்கலாம். இந்தக் கொள்கையைத் தவறு என அமைத்தால், <ph name="PRODUCT_NAME" /> முடக்கப்படும்.</translation> +<translation id="4515404363392014383">நம்பகமான ஆதாரங்களுக்கான பாதுகாப்பான உலாவலை இயக்கு</translation> <translation id="4518251772179446575">ஒரு தளம் பயனரின் நிஜ இருப்பிடத்தை பின்தொடர விரும்பும்போதெல்லாம் கேட்கவும்</translation> <translation id="4519046672992331730"><ph name="PRODUCT_NAME" /> இன் சர்வபுலத்தில் தேடல் பரிந்துரைகளை இயக்குகிறது மற்றும் பயனர்கள் இந்த அமைப்பை மாற்றுவதைத் தடுக்கிறது. @@ -1279,6 +1290,7 @@ இந்தக் கொள்கையானது தவறு என அமைத்தால், திரையை எழுப்புவதற்கான பூட்டுகள் கோரிக்கைத் தவிர்க்கப்படும்.</translation> <translation id="487460824085252184">தானாக நகர்த்து, பயனர் ஒப்புதலைக் கேட்க வேண்டாம்.</translation> +<translation id="4874982543810021567">இந்தத் தளங்களில் WebUSBஐத் தடு</translation> <translation id="4876805738539874299">அதிகபட்ச SSL பதிப்பு இயக்கப்பட்டது</translation> <translation id="4897928009230106190">POST மூலம் பரிந்துரைத் தேடலை மேற்கொள்ளும்போது பயன்படுத்தப்பட்ட அளவுருக்களைக் குறிப்பிடுகிறது. இது காற்புள்ளியால் பிரிக்கப்பட்ட பெயர்/மதிப்பு இணைகளைக் கொண்டுள்ளது. மதிப்பானது மேலே கொடுக்கப்பட்ட எடுத்துக்காட்டில் உள்ள {searchTerms} போன்ற டெம்ப்ளேட் அளவுரு எனில், அது உண்மையான தேடல் வார்த்தைகளின் தரவு மூலம் மாற்றியமைக்கப்படும் . @@ -1733,7 +1745,7 @@ <translation id="637934607141010488">சமீபத்தில் உள்நுழைந்த சாதனப் பயனர்களின் பட்டியலை அறிக்கையிடும். இந்தக் கொள்கை தவறு என அமைக்கப்பட்டிருந்தால், பயனர்கள் அறிக்கையிடப்படமாட்டார்கள்.</translation> -<translation id="6392973646875039351"><ph name="PRODUCT_NAME" /> இன் தானியங்கு நிரப்புதல் அம்சத்தை இயக்குகிறது, மேலும் முகவரி அல்லது கிரெடிட் கார்டு தகவல் போன்று முன்பே சேமிக்கப்பட்ட தகவல்களைப் பயன்படுத்தி வலைப் படிவங்களைத் தானாகவே நிரப்புவதற்கு பயனர்களை அனுமதிக்கிறது. நீங்கள் இந்த அமைப்பை முடக்கினால், பயனர்கள் தன்னியக்கநிரப்புதல் அம்சத்தை அணுக முடியாது. நீங்கள் இந்த அம்சத்தை இயக்கினால் அல்லது எந்தவொரு மதிப்பையும் இதற்கு தரவில்லை என்றால், தன்னியக்கநிரப்புதல் பயனரின் கட்டுப்பாட்டில் இருக்கும். இதனால் அவர்கள் தன்னியக்க நிரப்புதலை, அவர்களின் சொந்த விருப்பத்தின்படி இயக்கலாம் அல்லது அணைக்கலாம்.</translation> +<translation id="6392973646875039351"><ph name="PRODUCT_NAME" /> இன் தானியங்கு நிரப்புதல் அம்சத்தை இயக்குகிறது, மேலும் முகவரி அல்லது கிரெடிட் கார்டு தகவல் போன்று முன்பே சேமிக்கப்பட்ட தகவல்களைப் பயன்படுத்தி வலைப் படிவங்களைத் தானாகவே நிரப்புவதற்கு பயனர்களை அனுமதிக்கிறது. நீங்கள் இந்த அமைப்பை முடக்கினால், பயனர்கள் தன்னியக்கநிரப்புதல் அம்சத்தை அணுக முடியாது. நீங்கள் இந்த அம்சத்தை இயக்கினால் அல்லது எந்தவொரு மதிப்பையும் இதற்கு தரவில்லை என்றால், தன்னியக்கநிரப்புதல் பயனரின் கட்டுப்பாட்டில் இருக்கும். இதனால் அவர்கள் தன்னியக்க நிரப்புதலை, அவர்களின் விருப்புரிமையின்படி இயக்கலாம் அல்லது அணைக்கலாம்.</translation> <translation id="6394350458541421998">இந்தக் கொள்கையானது <ph name="PRODUCT_OS_NAME" /> பதிப்பு 29 க்கு பின்பு முடக்கப்பட்டுள்ளது. அதற்குப் பதிலாக PresentationScreenDimDelayScale கொள்கையைப் பயன்படுத்தவும்.</translation> <translation id="6401669939808766804">பயனரை வெளியேற்றுக</translation> <translation id="6417861582779909667">குக்கீகளை அமைக்க அனுமதிக்காத தளங்களைக் குறிக்கும் url வகைகளின் பட்டியலை அமைக்க, உங்களை அனுமதிக்கிறது. இந்த கொள்கை அமைக்கப்படாமல் இருந்தால், 'DefaultCookiesSetting' கொள்கை அமைக்கப்பட்டு இருந்தால் அல்லது பயனரின் தனிப்பட்ட உள்ளமைப்புகளில் இருந்து ஒட்டுமொத்த இயல்புநிலை மதிப்பானது எல்லா தளங்களுக்கும் பயன்படுத்தப்படும்.</translation> @@ -1813,6 +1825,11 @@ இந்தக் கொள்கை அமைக்கப்படாமல் விடப்பட்டு இருந்தால், நெட்வொர்க் யூகம் இயக்கப்படும், ஆனால் பயனரால் அதனை மாற்ற முடியும்.</translation> <translation id="6658245400435704251">சேவையகத்திற்கு வெளியே புதுப்பிப்பை, முதலில் தள்ளப்படுகின்ற நேரத்திலிருந்து ஒரு சாதனம் சீரற்ற முறையில், அதன் பதிவிறக்கத்தைத் தாமதப்படுத்துகின்ற நொடிகளின் எண்ணிக்கையை குறிக்கிறது. சாதனமானது இந்த நேரத்தின் ஒரு பகுதியை சுவர்-கடிகார நேர அடிப்படையிலும் மீதமுள்ள நேரத்தை புதுப்பிப்பு சரிபார்த்தலின் எண்ணிக்கை அடிப்படையிலும் காத்திருக்கலாம்.. எதுவானாலும், ஒரு நிலையான நேர அளவிற்கு மேலே சிதறல் கட்டுப்பட்டிருப்பதனால், சாதனம் ஒரு புதுப்பிப்பைப் பதிவிறக்க ஒருபோதும் காத்திருந்து எப்போதும் சிக்கிக் கொள்ளாது.</translation> <translation id="6665670272107384733">விரைந்து திறக்கும் அம்சத்தைப் பயன்படுத்த, பயனர் எப்போது கடவுச்சொல்லை உள்ளிட வேண்டும் என்பதை அமைக்கும்</translation> +<translation id="6681229465468164801">USB சாதனத்திற்கான அணுகலை அவற்றிற்கு வழங்க, பயனரைக் கேட்பதிலிருந்து மறுக்கப்படும் தளங்களைக் குறிப்பிடும் url பேட்டர்ன்களின் பட்டியலை அமைக்க, உங்களை அனுமதிக்கும். + + இந்தக் கொள்கையை அமைக்கவில்லை எனில், உலகளாவிய இயல்பு மதிப்பு எல்லாத் தளங்களுக்கும் பயன்படுத்தப்படும். அப்படி அமைக்கப்படும் மதிப்பு, 'DefaultWebUsbGuardSetting' கொள்கையாகவோ (ஏற்கனவே அமைக்கப்பட்டிருந்தால்) அல்லது பயனரின் தனிப்பட்ட உள்ளமைவாகவோ இருக்கும். + + இந்தக் கொள்கையின் URL பேட்டர்ன்கள், WebUsbAskForUrls மூலம் உள்ளமைக்கப்பட்ட பிறகு முரண்படக்கூடாது. URL இரு கொள்கைகளுடனும் பொருந்தினால், இரண்டில் எது முன்னுரிமை பெற்றுச் செயல்படும் என்பது குறிப்பிடப்படவில்லை.</translation> <translation id="6689792153960219308">வன்பொருள் நிலையை அறிவிக்கும்</translation> <translation id="6698071416141001300">பயனர் கணக்கு அபாயத்தில் உள்ளது என கடவுச்சொல் பாதுகாப்புச் சேவை குறிப்பதற்கான தூண்டலானது, கடவுச்சொல் மீண்டும் பயன்படுத்தப்பட்டால் தூண்டப்படும்</translation> <translation id="6699880231565102694">தொலைநிலை அணுகல் ஹோஸ்ட்களின் இரு-காரணி அங்கீகாரத்தைச் செயல்படுத்து</translation> @@ -1838,7 +1855,7 @@ தங்கள் குக்கீகளைத் தடுப்பதன் மூலம், அங்கீகரிக்கப்படாத நிலையில் பயனர்களால் Google சேவைகளை அணுக முடியும் என்பதை நினைவில் கொள்ளவும்.</translation> <translation id="6738326937072482736"><ph name="TPM_FIRMWARE_UPDATE_TPM" /> நிலைபொருள் புதுப்பிப்புச் செயல்பாட்டின் கிடைக்கும்தன்மையையும் செயல்பாட்டையும் உள்ளமைக்கும். - தனிப்பட்ட அமைப்புகளை, JSON இல் குறிப்பிடலாம்: + தனிப்பட்ட அமைப்புகளை, JSON பண்புகளில் குறிப்பிடலாம்: <ph name="TPM_FIRMWARE_UPDATE_SETTINGS_ALLOW_USER_INITIATED_POWERWASH" />: <ph name="TPM_FIRMWARE_UPDATE_SETTINGS_ALLOW_USER_INITIATED_POWERWASH_TRUE" /> என அமைக்கப்பட்டால், <ph name="TPM_FIRMWARE_UPDATE_TPM" /> நிலைபொருள் புதுப்பிப்பை நிறுவ, பயனர்களால் பவர்வாஷ் செயல்முறையைத் தொடங்க முடியும். @@ -1954,6 +1971,11 @@ இந்த அமைப்பு முடக்கப்பட்டிருந்தாலோ அல்லது அமைக்கப்படவில்லை என்றாலோ, அனைத்து ஆதாரங்களுக்கும் இயல்புநிலை பாதுகாப்பான உலாவல் பாதுகாப்பு பயன்படுத்தப்படும். <ph name="MS_AD_NAME" /> டொமைனில் இணைக்கப்பட்டிருக்காத Windows நேர்வுகளுக்கு, இந்தக் கொள்கை கிடைக்காது.</translation> <translation id="7079519252486108041">இந்த தளங்களில் பாப்அப்களைத் தடு</translation> +<translation id="7085803328069945025">USB சாதனத்திற்கான அணுகலை அவற்றிற்கு வழங்க, பயனரைக் கேட்க அனுமதிக்கப்படும் தளங்களைக் குறிப்பிடும் url பேட்டர்ன்களின் பட்டியலை அமைக்க, உங்களை அனுமதிக்கும். + + இந்தக் கொள்கையை அமைக்கவில்லை எனில், உலகளாவிய இயல்பு மதிப்பு எல்லாத் தளங்களுக்கும் பயன்படுத்தப்படும். அப்படி அமைக்கப்படும் மதிப்பு, 'DefaultWebUsbGuardSetting' கொள்கையாகவோ (ஏற்கனவே அமைக்கப்பட்டிருந்தால்) அல்லது பயனரின் தனிப்பட்ட உள்ளமைவாகவோ இருக்கும். + + இந்தக் கொள்கையின் URL பேட்டர்ன்கள், WebUsbBlockedForUrls மூலம் உள்ளமைக்கப்பட்ட பிறகு முரண்படக்கூடாது. URL இரு கொள்கைகளுடனும் பொருந்தினால், இரண்டில் எது முன்னுரிமை பெற்றுச் செயல்படும் என்பது குறிப்பிடப்படவில்லை.</translation> <translation id="7106631983877564505"><ph name="PRODUCT_OS_NAME" /> சாதனங்கள் செயல்படாமல் இருக்கும் போதோ இடைநீக்கப்பட்டிருக்கும் போதோ, பூட்டை இயக்கு. இந்த அமைப்பை இயக்கினால், உறக்கநிலையிலிருந்து சாதனத்தை இயக்க, பயனர்களிடம் கடவுச்சொல்லை உள்ளிடுமாறு கேட்கப்படும். @@ -2612,6 +2634,7 @@ <translation id="9096086085182305205">அங்கீகார சேவையக அனுமதி பட்டியல்</translation> <translation id="9098553063150791878">HTTP அங்கீகரிப்பிற்கான கொள்கைகள்</translation> <translation id="9105265795073104888">Android பயன்பாடுகளுக்கு ப்ராக்ஸி உள்ளமைவின் துணைக்குழு விருப்பங்கள் மட்டுமே கிடைக்கும்படி செய்யப்படும். Android பயன்பாடுகள் தானாகவே ப்ராக்ஸியைப் பயன்படுத்துவதற்குத் தேர்வுசெய்யலாம். அவை ப்ராக்ஸியைப் பயன்படுத்த வேண்டும் என நீங்கள் கட்டாயப்படுத்த முடியாது.</translation> +<translation id="9106865192244721694">இந்தத் தளங்களில் WebUSBஐ அனுமதி</translation> <translation id="9112727953998243860">நிறுவனப் பிரிண்டரின் உள்ளமைவுக் கோப்பு</translation> <translation id="9112897538922695510">நெறிமுறை ஹேண்ட்லர்களின் பட்டியலைப் பதிவுசெய்ய உங்களை அனுமதிக்கிறது. இது மட்டும் தான் பரிந்துரைக்கப்பட்ட கொள்கையாகும். |protocol| பண்புக்கூறு "இதற்கு அனுப்பு" போன்ற அமைப்பிற்கும், |url| பண்புக்கூறு அமைப்பைச் செயல்படுத்தும் பயன்பாட்டின் URL அமைப்பிற்கும் அமைக்கப்பட்டிருக்க வேண்டும். '%s' ஆனது செயல்படுத்தப்பட்ட URL க்குப் பதிலாக மாற்றியமைக்கப்படும் படி இருந்தால், அமைப்பில் அதைச் சேர்க்கலாம். @@ -2643,13 +2666,18 @@ <translation id="915194831143859291">இந்தக் கொள்கை false என அமைக்கப்பட்டிருந்தாலோ அல்லது உள்ளமைக்கப்படாமல் இருந்தாலோ, சாதனத்தை இயக்க நிறுத்தம் செய்ய, பயனரை <ph name="PRODUCT_OS_NAME" /> அனுமதிக்கும். இந்தக் கொள்கை true என அமைக்கப்பட்டால், சாதனத்தைப் பயனர் இயக்க நிறுத்தம் செய்யும்போது, மறுதொடக்கத்தை <ph name="PRODUCT_OS_NAME" /> செயல்படுத்தும். UI இல் உள்ள எல்லா இயக்க நிறுத்தப் பொத்தான்களையும், மறுதொடக்கப் பொத்தான்களாக <ph name="PRODUCT_OS_NAME" /> மாற்றியமைக்கும். பவர் பொத்தானைப் பயன்படுத்திச் சாதனத்தைப் பயனர் இயக்க நிறுத்தம் செய்யும் போது, கொள்கை இயக்கப்பட்டிருந்தாலும் சாதனம் தானாக மறுதொடக்கமாகாது.</translation> <translation id="9158929520101169054">உலாவிக்குள் பல உள்நுழைவை அனுமதி</translation> +<translation id="9165792353046089850">இணைக்கப்பட்டுள்ள USB சாதனங்களுக்கான அணுகலைப் பெறுவதற்கு, இணையதளங்களை அனுமதிக்கலாமா அல்லது வேண்டாமா என்பதை அமைக்க, உங்களை அனுமதிக்கும். அணுகலை முழுமையாகத் தடுக்கலாம் அல்லது இணையதளமானது இணைக்கப்பட்டுள்ள USB சாதனங்களை அணுக விரும்பும் ஒவ்வொரு முறையும் பயனரிடம் கேட்கலாம். + + WebUsbAskForUrls', 'WebUsbBlockedForUrls' கொள்கைகளைப் பயன்படுத்தும் குறிப்பிட்ட URL பேட்டர்ன்களுக்காக இந்தக் கொள்கை மேலெழுதப்படலாம். + + இந்தக் கொள்கை அமைக்கப்படவில்லை எனில், '3' பயன்படுத்தப்படும், மேலும் இதைப் பயனர் மாற்ற முடியும்.</translation> <translation id="9167719789236691545"><ph name="PRODUCT_OS_NAME" /> இன் கோப்புகள் பயன்பாட்டில் இயக்ககத்தை முடக்கும்</translation> <translation id="9187743794267626640">வெளிப்புற சேமிப்பிடம் அமைப்பதை முடக்கு</translation> <translation id="9197740283131855199">மங்கலான பிறகு பயனர் செயலில் இருந்தால் திரையின் மங்கல் தாமதத்தை அளவிடுவதற்கான சதவீதம்</translation> <translation id="9200828125069750521">POST ஐப் பயன்படுத்தும் பட URL க்கான அளவுருக்கள்</translation> <translation id="9210953373038593554">SAML உள்நுழைவுகளுக்கான அங்கீகரிப்பு வகையை உள்ளமைக்கிறது. - இந்தக் கொள்கை அமைக்கப்படவில்லை என்றாலோ அல்லது இயல்பு (மதிப்பு 0) என அமைக்கப்பட்டாலோ, பிற காரணிகளின் அடிப்படையில் SAML உள்நுழைவுகளின் செயல்பாட்டை உலாவி தீர்மானிக்கும். பெரும்பாலான அடிப்படைச் சூழலில், தற்காலிகமாகச் சேமித்தப் பயனர் தரவிற்கான பயனர் அங்கீகரிப்பும் பாதுகாப்பும், பயனர்களால் கைமுறையாக உள்ளிடப்படும் கடவுச்சொற்களை அடிப்படையாகக் கொண்டுள்ளது. + இந்தக் கொள்கை அமைக்கப்படவில்லை என்றாலோ அல்லது இயல்பு (மதிப்பு 0) என அமைக்கப்பட்டாலோ, பிற காரணிகளின் அடிப்படையில் SAML உள்நுழைவுகளின் செயல்பாட்டை உலாவி தீர்மானிக்கும். பெரும்பாலான அடிப்படைச் சூழலில், பயனர் அங்கீகரிப்பும் தற்காலிகமாகச் சேமித்தப் பயனர் தரவின் பாதுகாப்பும், பயனர்களால் கைமுறையாக உள்ளிடப்படும் கடவுச்சொற்களை அடிப்படையாகக் கொண்டுள்ளது. ClientCertificate (மதிப்பு 1) என இந்தக் கொள்கை அமைக்கப்பட்டால், கிளையன்ட் சான்றிதழ் அங்கீகரிப்பானது SAML வழியாக உள்நுழையும் புதியதாகச் சேர்க்கப்படும் பயனர்களுக்குப் பயன்படுத்தப்படும். அத்தகைய பயனர்களுக்குக் கடவுச்சொற்கள் பயன்படுத்தப்படாது. மேலும், அவர்களின் தற்காலிகமாகச் சேமித்த அகத் தரவானது தொடர்புடைய கிரிப்டோகிராஃபிக் விசைகளைப் பயன்படுத்திப் பாதுகாக்கப்படும். உதாரணமாக, ஸ்மார்ட் கார்டு அடிப்படையிலான பயனர் அங்கீகரிப்பை உள்ளமைக்க இந்த அமைப்பு அனுமதிக்கிறது (ஸ்மார்ட் கார்டு மிட்டில்வேர் பயன்பாடுகள், DeviceLoginScreenAppInstallList கொள்கை வழியே நிறுவப்பட வேண்டும் என்பதைக் கவனத்தில் கொள்ளவும்.
diff --git a/components/policy/resources/policy_templates_te.xtb b/components/policy/resources/policy_templates_te.xtb index 9ffe119..82b94f5 100644 --- a/components/policy/resources/policy_templates_te.xtb +++ b/components/policy/resources/policy_templates_te.xtb
@@ -1123,11 +1123,6 @@ ఈ విధానం సెట్ చేయకుండా వదిలివేస్తే, SPDY అందుబాటులో ఉంటుంది.</translation> <translation id="3890999316834333174">త్వరిత అన్లాక్ విధానాలు</translation> <translation id="3891357445869647828">JavaScriptను ఎనేబుల్ చెయ్యి</translation> -<translation id="3891953007921334498">డెవలపర్ సాధనాలు మరియు JavaScript కన్సోల్ను నిలిపివేస్తుంది. - - మీరు ఈ సెట్టింగ్ను ప్రారంభిస్తే, డెవలపర్ సాధనాలు ప్రాప్యత చేయబడవు మరియు వెబ్-సైట్ మూలకాలు ఆపై పర్యవేక్షించబడవు. డెవలపర్ సాధనాలు లేదా జావాస్క్రిప్ట్ కన్సోల్ను తెరవడానికి ఉపయోగించే ఏవైనా కీబోర్డ్ సత్వరమార్గాలు మరియు ఏవైనా మెను లేదా సందర్భ మెను నమోదులు నిలిపివేయబడతాయి. - - ఈ ఎంపికను నిలిపివేతకు సెట్ చేస్తే లేదా దీన్ని సెట్ చేయకుండా వదిలివేస్తే, వినియోగదారు డెవలపర్ సాధనాలు మరియు జావాస్క్రిప్ట్ కన్సోల్ను ఉపయోగించడానికి అనుమతించబడతారు.</translation> <translation id="3895557476567727016">ఫైల్లను డౌన్లోడ్ చేయడం కోసం <ph name="PRODUCT_NAME" /> ఉపయోగించే డిఫాల్ట్ డైరెక్టరీని కాన్ఫిగర్ చేస్తుంది. మీరు ఈ విధానాన్ని సెట్ చేసినట్లయితే, <ph name="PRODUCT_NAME" /> ఫైల్లను డౌన్లోడ్ చేసే డిఫాల్ట్ డైరెక్టరీని ఇది మారుస్తుంది. ఈ విధానం తప్పనిసరి కాదు, కనుక డైరెక్టరీని వినియోగదారు మార్చగలరు.
diff --git a/components/policy/resources/policy_templates_th.xtb b/components/policy/resources/policy_templates_th.xtb index 91f26888..e749136 100644 --- a/components/policy/resources/policy_templates_th.xtb +++ b/components/policy/resources/policy_templates_th.xtb
@@ -993,11 +993,6 @@ หากไม่มีการตั้งค่านโยบายนี้ จะสามารถใช้ SPDY ได้</translation> <translation id="3890999316834333174">นโยบายปลดล็อกด่วน</translation> <translation id="3891357445869647828">เปิดใช้งาน JavaScript</translation> -<translation id="3891953007921334498">ปิดใช้เครื่องมือสำหรับนักพัฒนาซอฟต์แวร์และคอนโซล JavaScript - - หากคุณเปิดใช้การตั้งค่านี้ เครื่องมือสำหรับนักพัฒนาซอฟต์แวร์จะไม่สามารถเข้าถึงได้ และองค์ประกอบในเว็บไซต์จะไม่ได้รับการตรวจสอบอีกต่อไป แป้นพิมพ์ลัดและเมนูใดๆ หรือรายการเมนูบริบทที่ใช้เปิดเครื่องมือสำหรับนักพัฒนาซอฟต์แวร์หรือคอนโซล JavaScript จะถูกปิดใช้ - - การตั้งค่าตัวเลือกนี้เป็นปิดใช้หรือไม่ตั้งค่าเลยทำให้ผู้ใช้สามารถใช้เครื่องมือสำหรับนักพัฒนาซอฟต์แวร์และคอนโซล JavaScript ได้</translation> <translation id="3895557476567727016">กำหนดค่าไดเรกทอรีเริ่มต้นที่ <ph name="PRODUCT_NAME" /> จะใช้สำหรับการดาวน์โหลดไฟล์ หากกำหนดนโยบายนี้ นโยบายจะเปลี่ยนไดเรกทอรีเริ่มต้นที่ <ph name="PRODUCT_NAME" /> จะดาวน์โหลดไฟล์ไป นโยบายนี้ไม่ใช่ข้อบังคับ ผู้ใช้จึงเปลี่ยนไดเรกทอรีได้
diff --git a/components/policy/resources/policy_templates_tr.xtb b/components/policy/resources/policy_templates_tr.xtb index 9592107..d4d4ed0 100644 --- a/components/policy/resources/policy_templates_tr.xtb +++ b/components/policy/resources/policy_templates_tr.xtb
@@ -1030,11 +1030,6 @@ Bu politika ayarlanmamış şekilde bırakılırsa SPDY kullanılabilir durumda olur.</translation> <translation id="3890999316834333174">Hızlı kilit açma politikaları</translation> <translation id="3891357445869647828">JavaScript’i Etkinleştir</translation> -<translation id="3891953007921334498">Geliştirici Araçları'nı ve JavaScript konsolunu devre dışı bırakır. - - Bu ayarı etkinleştirirseniz, Geliştirici Araçları'na erişilemez ve web sitesi öğeleri bundan sonra incelenemez. Geliştirici Araçları veya JavaScript Konsolu'nu açmak için kullanılan klavye kısayolları ve menüler veya bağlam menüsü girişleri devre dışı bırakılır. - - Bu seçeneğin devre dışı olarak ayarlanması veya ayarlanmadan bırakılması, kullanıcının Geliştirici Araçları ve JavaScript konsolunu kullanmasına izin verir.</translation> <translation id="3895557476567727016"><ph name="PRODUCT_NAME" /> ürününün dosya indirmek için kullanacağı varsayılan dizini yapılandırır. Bu politikanın ayarlanması, <ph name="PRODUCT_NAME" /> ürününün dosyaları indirdiği varsayılan dizini değiştirir. Bu politika zorunlu olmadığı için kullanıcı dizini değiştirebilir.
diff --git a/components/policy/resources/policy_templates_uk.xtb b/components/policy/resources/policy_templates_uk.xtb index ccd8c93e..01e0497 100644 --- a/components/policy/resources/policy_templates_uk.xtb +++ b/components/policy/resources/policy_templates_uk.xtb
@@ -1003,11 +1003,6 @@ Якщо це правило не налаштовано, протокол SPDY доступний.</translation> <translation id="3890999316834333174">Правила швидкого розблокування</translation> <translation id="3891357445869647828">Увімкнути JavaScript</translation> -<translation id="3891953007921334498">Вимикає Інструменти розробника та консоль JavaScript. - - Якщо ввімкнути це налаштування, Інструменти розробника будуть недоступними, а елементи веб-сайтів не можна буде перевірити. Усі комбінації клавіш і меню або пункти контекстного меню для відкривання Інструментів розробника чи консолі JavaScript буде вимкнено. - - Якщо цю опцію вимкнути або не налаштувати, користувач зможе використовувати Інструменти розробника та консоль JavaScript.</translation> <translation id="3895557476567727016">Налаштовує каталог за умовчанням, у який <ph name="PRODUCT_NAME" /> завантажуватиме файли. Якщо це правило налаштовано, змінюється каталог за умовчанням, у який <ph name="PRODUCT_NAME" /> завантажує файли. Це правило необов’язкове. Користувач зможе змінити каталог. @@ -2001,7 +1996,7 @@ Якщо це правило не встановлено, для всіх сайтів буде застосовано загальне значення за умовчанням відповідно до правила DefaultWebUsbGuardSetting (якщо його налаштовано) або персоналізованих параметрів користувача. - Шаблони URL-адрес у цьому правилі не повинні суперечити адресам налаштованим через WebUsbBlockedForUrls. Невідомо, яке з двох правил матиме перевагу, якщо URL-адреса співпадає з обома.</translation> + Шаблони URL-адрес у цьому правилі не повинні суперечити адресам, налаштованим через WebUsbBlockedForUrls. Невідомо, яке з двох правил матиме перевагу, якщо URL-адреса збігається з обома.</translation> <translation id="7106631983877564505">Вмикає блокування, коли пристрої <ph name="PRODUCT_OS_NAME" /> перебувають у режимі очікування чи сну. Якщо ввімкнути це налаштування, користувачам потрібно буде ввести пароль, щоб вивести пристрій із режиму сну.
diff --git a/components/policy/resources/policy_templates_vi.xtb b/components/policy/resources/policy_templates_vi.xtb index bf69b3f..e63a68b5 100644 --- a/components/policy/resources/policy_templates_vi.xtb +++ b/components/policy/resources/policy_templates_vi.xtb
@@ -408,20 +408,20 @@ <translation id="2289578386193672044">Chỉ định danh sách các ứng dụng và tiện ích được cài đặt tự động mà không có sự tương tác của người dùng và người dùng không thể gỡ cài đặt hoặc vô hiệu hóa. Tất cả các quyền - ứng dụng/tiện ích yêu cầu được cấp ngấm ngầm mà không có sự tương tác của người dùng, + do ứng dụng/tiện ích yêu cầu được cấp trực tiếp mà không có sự tương tác của người dùng, kể cả mọi quyền bổ sung mà các phiên bản trong tương lai của - ứng dụng/tiện ích yêu cầu. Ngoài ra, các quyền được cấp cho các API tiện ích - enterprise.deviceAttributes and enterprise.platformKeys. - (Hai API này chỉ dành cho các ứng dụng/tiện ích - buộc cài đặt.) + ứng dụng/tiện ích đó yêu cầu. Ngoài ra, các quyền được cấp cho các API tiện ích + enterprise.deviceAttributes và enterprise.platformKeys. + (Hai API này không áp dụng cho các ứng dụng/tiện ích + không buộc cài đặt.) - Chính sách này được ưu tiên hơn trong trường hợp xung đột với chính sách <ph name="EXTENSION_INSTALL_BLACKLIST_POLICY_NAME" />. Nếu một ứng dụng hoặc tiện ích trước đây bị buộc cài đặt hiện đã được xóa khỏi danh sách này, thì <ph name="PRODUCT_NAME" /> sẽ tự động gỡ cài đặt ứng dụng hoặc tiện ích đó. + Chính sách này được ưu tiên hơn trong trường hợp xung đột với chính sách <ph name="EXTENSION_INSTALL_BLACKLIST_POLICY_NAME" />. Nếu một ứng dụng hoặc tiện ích mà trước đây bị buộc cài đặt hiện đã được xóa khỏi danh sách này, thì <ph name="PRODUCT_NAME" /> sẽ tự động gỡ cài đặt ứng dụng hoặc tiện ích đó. Đối với các phiên bản Windows không tham gia miền <ph name="MS_AD_NAME" /> thì cài đặt bắt buộc sẽ bị giới hạn ở các ứng dụng và tiện ích trong Cửa hàng Chrome trực tuyến. - Lưu ý rằng người dùng có thể thay đổi mã nguồn của bất cứ tiện ích nào thông qua Công cụ dành cho nhà phát triển (có thể hiển thị tiện ích không hoạt động bình thường). Nếu điều này gây ra lo ngại thì cần phải đặt chính sách <ph name="DEVELOPER_TOOLS_POLICY_NAME" />. + Lưu ý rằng người dùng có thể thay đổi mã nguồn của bất cứ tiện ích nào thông qua Công cụ dành cho nhà phát triển (điều này có thể khiến tiện ích hoạt động không chính xác). Nếu bạn lo ngại về điều này thì cần phải đặt chính sách <ph name="DEVELOPER_TOOLS_POLICY_NAME" />. - Mỗi mục danh sách của chính sách là một chuỗi chứa ID tiện ích và một URL "cập nhật" (không bắt buộc) được phân tách bằng dấu chấm phẩy (<ph name="SEMICOLON" />). ID tiện ích là chuỗi gồm 32 chữ cái được tìm thấy trên <ph name="CHROME_EXTENSIONS_LINK" /> chẳng hạn khi ở chế độ nhà phát triển. URL "cập nhật", nếu được chỉ định, sẽ trỏ tới tài liệu XML của tệp kê khai cập nhật như mô tả tại <ph name="LINK_TO_EXTENSION_DOC1" />. Theo mặc định, URL cập nhật của Cửa hàng Chrome trực tuyến sẽ được sử dụng (hiện là "https://clients2.google.com/service/update2/crx"). Lưu ý rằng URL "cập nhật" được đặt trong chính sách này chỉ dùng cho tùy chọn cài đặt ban đầu; các lần cập nhật tiện ích tiếp theo sẽ sử dụng URL cập nhật nêu trong tệp kê khai của tiện ích. Ngoài ra, xin lưu ý rằng việc chỉ định URL "cập nhật" rõ ràng là bắt buộc trong các phiên bản <ph name="PRODUCT_NAME" />, bao gồm cả phiên bản 67. + Mỗi mục danh sách của chính sách là một chuỗi chứa một ID tiện ích và một URL "cập nhật" (không bắt buộc) được phân tách bằng dấu chấm phẩy (<ph name="SEMICOLON" />). ID tiện ích là chuỗi gồm 32 chữ cái được tìm thấy, chẳng hạn như, trên <ph name="CHROME_EXTENSIONS_LINK" /> khi ở chế độ nhà phát triển. URL "cập nhật", nếu được chỉ định, sẽ trỏ tới tài liệu XML của tệp kê khai cập nhật như mô tả tại <ph name="LINK_TO_EXTENSION_DOC1" />. Theo mặc định, URL cập nhật của Cửa hàng Chrome trực tuyến sẽ được sử dụng (hiện là "https://clients2.google.com/service/update2/crx"). Lưu ý rằng URL "cập nhật" được đặt trong chính sách này chỉ dùng cho lần cài đặt ban đầu; các lần cập nhật tiện ích tiếp theo sẽ sử dụng URL cập nhật nêu trong tệp kê khai của tiện ích. Ngoài ra, xin lưu ý rằng việc chỉ định URL "cập nhật" một cách rõ ràng là bắt buộc trong các phiên bản <ph name="PRODUCT_NAME" />, bao gồm cả phiên bản 67. Ví dụ: <ph name="EXTENSION_POLICY_EXAMPLE" /> cài đặt ứng dụng <ph name="EXTENSION_POLICY_EXAMPLE_EXTENSION_NAME" /> từ URL "cập nhật" tiêu chuẩn của Cửa hàng Chrome trực tuyến. Để biết thêm thông tin về việc lưu trữ tiện ích, hãy xem: <ph name="LINK_TO_EXTENSION_DOC2" />. @@ -1034,11 +1034,6 @@ Nếu chính sách này chưa được đặt, SPDY sẽ khả dụng.</translation> <translation id="3890999316834333174">Chính sách mở khóa nhanh</translation> <translation id="3891357445869647828">Bật JavaScript</translation> -<translation id="3891953007921334498">Tắt Công cụ dành cho nhà phát triển và Bảng điều khiển JavaScript. - - Nếu bật cài đặt này, bạn sẽ không thể truy cập Công cụ dành cho nhà phát triển cũng như không thể kiểm tra các phần tử của trang web được nữa. Mọi phím tắt và mọi menu hoặc các mục nhập menu ngữ cảnh để mở Công cụ dành cho nhà phát triển hoặc Bảng điều khiển JavaScript đều bị tắt. - - Đặt thành tắt hoặc không đặt tùy chọn này sẽ cho phép người dùng sử dụng Công cụ dành cho nhà phát triển và Bảng điều khiển JavaScript.</translation> <translation id="3895557476567727016">Định cấu hình thư mục mặc định mà <ph name="PRODUCT_NAME" /> sẽ sử dụng để tải các tệp xuống. Nếu bạn đặt chính sách này, chính sách sẽ thay đổi thư mục mặc định mà <ph name="PRODUCT_NAME" /> tải các tệp xuống. Chính sách này không bắt buộc, vì vậy, người dùng sẽ có thể thay đổi thư mục đó. @@ -1988,7 +1983,7 @@ <translation id="6870914592443697993"> Chính sách này áp dụng cho màn hình đăng nhập. Vui lòng xem thêm chính sách <ph name="ISOLATE_ORIGINS_POLICY_NAME" /> áp dụng cho phiên người dùng. Bạn nên đặt cả hai chính sách về cùng một giá trị. Nếu các giá trị không khớp nhau thì có thể xảy ra hiện tượng chậm trễ khi vào một phiên người dùng trong khi áp dụng giá trị mà chính sách người dùng chỉ định. Nếu bạn bật chính sách này, mỗi nguồn gốc có tên trong - danh sách phân tách bằng dấu phẩy sẽ chạy theo quy trình riêng. Tùy chọn cài đặt này cũng sẽ cô lập + danh sách phân tách bằng dấu phẩy sẽ chạy theo quy trình riêng. Việc này cũng sẽ cô lập các nguồn gốc được đặt tên theo miền phụ; chẳng hạn như việc chỉ định https://example.com/ cũng sẽ khiến cho https://foo.example.com/ bị cô lập vì là một phần của trang web https://example.com/. @@ -2438,7 +2433,7 @@ SitePerProcess sẽ cô lập mọi trang web. Nếu bạn bật chính sách này, mỗi trang web sẽ chạy theo quy trình riêng. Nếu bạn tắt chính sách này, sẽ không có sự Cô lập trang web rõ ràng nào xảy ra và các phiên bản dùng thử tại chỗ của IsolateOrigins và SitePerProcess sẽ bị tắt. Người dùng sẽ vẫn có thể bật SitePerProcess theo cách thủ công. - Nếu bạn không định cấu hình chính sách, người dùng sẽ có thể thay đổi tùy chọn cài đặt này. + Nếu bạn không định cấu hình chính sách này, người dùng sẽ có thể thay đổi tùy chọn cài đặt này. Trên <ph name="PRODUCT_OS_NAME" />, bạn cũng nên đặt chính sách thiết bị <ph name="DEVICE_LOGIN_SCREEN_SITE_PER_PROCESS_POLICY_NAME" /> thành cùng một giá trị. Nếu các giá trị mà hai chính sách này chỉ định không khớp nhau, thì có thể xảy ra hiện tượng chậm trễ khi vào một phiên người dùng trong khi áp dụng giá trị mà chính sách người dùng chỉ định. </translation> <translation id="7980227303582973781">Không có hạn chế đặc biệt</translation> @@ -2778,7 +2773,7 @@ <translation id="8992176907758534924">Không cho phép bất kỳ trang web nào hiển thị hình ảnh</translation> <translation id="9034729899149506577"> Nếu bạn bật chính sách này, mỗi nguồn gốc có tên trong - danh sách phân tách bằng dấu phẩy sẽ chạy theo quy trình riêng. Tùy chọn cài đặt này cũng sẽ cô lập + danh sách phân tách bằng dấu phẩy sẽ chạy theo quy trình riêng. Việc này cũng sẽ cô lập các nguồn gốc được đặt tên theo miền phụ; chẳng hạn như việc chỉ định https://example.com/ cũng sẽ khiến cho https://foo.example.com/ bị cô lập vì là một phần của trang web https://example.com/. @@ -2845,7 +2840,7 @@ <translation id="9200828125069750521">Tham số cho URL hình ảnh sử dụng POST</translation> <translation id="9210953373038593554">Định cấu hình loại xác thực cho đăng nhập SAML. - Khi bạn đặt hoặc không đặt chính sách này thành Default (giá trị 0), hành vi đăng nhập SAML sẽ do trình duyệt xác định tùy theo các yếu tố khác. Trong trường hợp cơ bản nhất, tính năng xác thực người dùng và bảo vệ dữ liệu người dùng đã lưu vào bộ nhớ đệm được dựa trên mật khẩu mà người dùng nhập theo cách thủ công. + Khi bạn đặt hoặc không đặt chính sách này thành Default (giá trị 0), hành vi đăng nhập SAML sẽ do trình duyệt xác định dựa trên các yếu tố khác. Trong tình huống cơ bản nhất, tính năng xác thực người dùng và bảo vệ dữ liệu người dùng đã lưu vào bộ nhớ đệm được dựa trên mật khẩu mà người dùng nhập theo cách thủ công. Khi bạn đặt chính sách này thành ClientCertificate (giá trị 1), tính năng xác thực chứng chỉ ứng dụng khách được dùng cho người dùng mới thêm đăng nhập qua SAML. Không có mật khẩu nào dùng cho những người dùng đó và dữ liệu đã lưu vào bộ nhớ đệm trên máy được bảo vệ bằng cách sử dụng các khóa mật mã tương ứng. Ví dụ: tùy chọn cài đặt này cho phép định cấu hình thẻ thông minh dựa trên tính năng xác thực người dùng (xin lưu ý rằng bạn phải cài đặt ứng dụng trung gian của thẻ thông minh thông qua chính sách DeviceLoginScreenAppInstallList).
diff --git a/components/policy/resources/policy_templates_zh-CN.xtb b/components/policy/resources/policy_templates_zh-CN.xtb index f80b0ae57..430dcba 100644 --- a/components/policy/resources/policy_templates_zh-CN.xtb +++ b/components/policy/resources/policy_templates_zh-CN.xtb
@@ -393,6 +393,20 @@ 使用已下载的字典,仍然可以进行拼写检查,此策略仅控制在线服务的使用情况。 如果未配置此设置,那么用户可以选择是否使用拼写检查服务。</translation> +<translation id="2294283832646774959">配置打印机列表。 + + 通过此政策,管理员可为他们的用户提供打印机配置。 + + “<ph name="PRINTER_DISPLAY_NAME" />”和“<ph name="PRINTER_DESCRIPTION" />”均是自由格式的字符串,且均可被自定义以便于选择打印机。“<ph name="PRINTER_MANUFACTURER" />”和“<ph name="PRINTER_MODEL" />”则可帮助最终用户轻松地识别打印机。它们分别代表打印机的制造商和型号。“<ph name="PRINTER_URI" />”应是可通过客户端计算机访问的地址,包括“<ph name="URI_SCHEME" />”、“<ph name="URI_PORT" />”和“<ph name="URI_QUEUE" />”。“<ph name="PRINTER_UUID" />”是可选项。如果提供的话,该项可用于帮助删除重复的“<ph name="ZEROCONF_DISCOVERY" />”打印机。 + + “<ph name="PRINTER_EFFECTIVE_MODEL" />”必须与代表 <ph name="PRODUCT_NAME" />所支持打印机的某个字符串匹配。该字符串将会被用来识别和为打印机安装相应的 PPD。如需了解详情,请访问 https://support.google.com/chrome?p=noncloudprint。 + + 打印机设置会在用户首次使用打印机时完成。在用户开始使用打印机之前,系统不会下载 PPD。在用户开始使用打印机之后,系统则会缓存经常使用的 PPD。 + + 此政策对用户能否在各台设备上配置打印机没有影响。它旨在对各用户的打印机配置进行补充。 + + 对于由 Active Directory 托管的设备,此政策支持将“<ph name="MACHINE_NAME_VARIABLE" />”扩展为 Active Directory 机器名称或其子字符串。例如,如果机器名称是“<ph name="MACHINE_NAME_EXAMPLE" />”,则“<ph name="MACHINE_NAME_VARIABLE_EXAMPLE" />”将被替换为第 6 个位置后面的 4 个字符(即 <ph name="MACHINE_NAME_PART_EXAMPLE" />)。请注意,位置序数从 0 起算。 + </translation> <translation id="2294382669900758280">即使此政策设为 <ph name="TRUE" />,系统也不会考虑在 Android 应用中播放视频。</translation> <translation id="2298647742290373702">在 <ph name="PRODUCT_NAME" /> 中配置默认的“打开新的标签页”页面。</translation> <translation id="2299220924812062390">指定已启用插件的列表</translation> @@ -947,11 +961,6 @@ 如果未设置此政策,将可以使用 SPDY 协议。</translation> <translation id="3890999316834333174">快速解锁政策</translation> <translation id="3891357445869647828">启用 JavaScript</translation> -<translation id="3891953007921334498">停用开发者工具和 JavaScript 控制台。 - - 如果您启用此设置,用户就无法再访问开发者工具和查看网站元素了。用于开启开发者工具或 JavaScript 控制台的任何键盘快捷键以及任何菜单或上下文菜单条目都会停用。 - - 如果将此选项设为停用或未设置此选项,用户即可使用开发者工具和 JavaScript 控制台。</translation> <translation id="3895557476567727016">配置供 <ph name="PRODUCT_NAME" /> 用于下载文件的默认目录。 如果您设置了此政策,它便会更改供 <ph name="PRODUCT_NAME" /> 用于下载文件的默认目录,此政策不是强制性的,因此用户将能够更改该目录。 @@ -1138,6 +1147,7 @@ <translation id="4508686775017063528">如果此政策设为 true 或未设置,系统将会启用 <ph name="PRODUCT_NAME" />,且用户将能通过以下途径启动这项功能:应用菜单、页面上下文菜单、支持 Cast 的网站上的媒体控件,以及(如果显示的话)Cast 工具栏图标。 如果此政策设为 false,系统将会停用 <ph name="PRODUCT_NAME" />。</translation> +<translation id="4515404363392014383">针对可信来源启用安全浏览功能</translation> <translation id="4518251772179446575">每次网站尝试跟踪用户的地理位置时都询问我</translation> <translation id="4519046672992331730">在 <ph name="PRODUCT_NAME" /> 的多功能框中启用搜索建议功能,并禁止用户更改此设置。 @@ -1257,6 +1267,7 @@ 如果将此政策设为 false,系统就会忽略屏幕唤醒锁定请求。</translation> <translation id="487460824085252184">自动迁移,不询问用户是否同意。</translation> +<translation id="4874982543810021567">禁止这些网站访问 WebUSB</translation> <translation id="4876805738539874299">启用最高 SSL 版本</translation> <translation id="4897928009230106190">指定通过 POST 提供搜索建议时使用的参数。该参数由以英文逗号分隔的名称/值对组成。如果值为模板参数(例如上例中的 {searchTerms}),那么系统会将其替换成真正的搜索字词数据。 @@ -1783,6 +1794,11 @@ 如果此政策未设置,系统将启用网络联想查询功能,但用户可以自行更改。</translation> <translation id="6658245400435704251">指定一个时间(以秒为单位),即从更新首次推送到服务器起设备随机延迟更新下载的最大时间。设备的这一等待时间一部分会按照实际时间计算,而剩下的部分则取决于更新检查的次数。在任何情况下,分配的时间上限都是固定的,因此设备绝不会一直等待下载某个更新。</translation> <translation id="6665670272107384733">指定用户必须按什么样的频率输入密码才能使用快速解锁功能</translation> +<translation id="6681229465468164801">让您能够设置一系列网址格式,以用于指定禁止哪些网站请求用户授权其访问 USB 设备。 + + 如果未设置此政策,系统将会对所有网站使用“DefaultWebUsbGuardSetting”政策中的全局默认值(倘若已设置“DefaultWebUsbGuardSetting”政策),或使用用户个人配置中的全局默认值(倘若未设置“DefaultWebUsbGuardSetting”政策)。 + + 此政策中的网址格式不应与通过 WebUsbAskForUrls 配置的网址格式冲突,因为无从指定当某个网址与这两项政策都相符时应以哪项政策为准。</translation> <translation id="6689792153960219308">报告硬件状态</translation> <translation id="6698071416141001300">重复使用密码可触发“密码保护服务举报面临风险的帐号”功能</translation> <translation id="6699880231565102694">为远程访问主机启用双重身份验证</translation> @@ -1925,6 +1941,11 @@ 如果停用了或未设定此设置,系统则会将默认的安全浏览保护功能应用于所有资源。 此政策不适用于未加入 <ph name="MS_AD_NAME" /> 网域的 Windows 实例。</translation> <translation id="7079519252486108041">在这些网站上阻止弹出式窗口</translation> +<translation id="7085803328069945025">让您能够设置一系列网址格式,以用于指定允许哪些网站请求用户授权其访问 USB 设备。 + + 如果未设置此政策,系统将会对所有网站使用“DefaultWebUsbGuardSetting”政策中的全局默认值(倘若已设置“DefaultWebUsbGuardSetting”政策),或使用用户个人配置中的全局默认值(倘若未设置“DefaultWebUsbGuardSetting”政策)。 + + 此政策中的网址格式不应与通过 WebUsbBlockedForUrls 配置的网址格式冲突,因为无从指定当某个网址与这两项政策都相符时应以哪项政策为准。</translation> <translation id="7106631983877564505"><ph name="PRODUCT_OS_NAME" />设备进入待机或暂停状态时,启用锁定功能。 如果您启用了此设置,用户需要提供密码,才能将处于睡眠状态的设备解锁。 @@ -2580,6 +2601,7 @@ <translation id="9096086085182305205">身份验证服务器白名单</translation> <translation id="9098553063150791878">HTTP 身份验证政策</translation> <translation id="9105265795073104888">仅一小部分代理配置选项已可供 Android 应用使用。Android 应用可能会主动选择使用相应代理。您无法强制此类应用使用该代理。</translation> +<translation id="9106865192244721694">允许这些网站访问 WebUSB</translation> <translation id="9112727953998243860">企业打印机配置文件</translation> <translation id="9112897538922695510">可让您注册一个协议处理程序列表。此政策只能是推荐的政策。属性|protocol|应设为“mailto”等协议,属性|url|应设为处理该协议的应用采用的网址格式。该格式中可以包含“%s”(如果有,将被替换为所处理的网址)。 @@ -2610,6 +2632,11 @@ <translation id="915194831143859291">如果此政策设为 false 或未配置,<ph name="PRODUCT_OS_NAME" />将允许用户关闭设备。 如果此政策设为 true,<ph name="PRODUCT_OS_NAME" />会在用户关闭设备时触发重新启动操作。<ph name="PRODUCT_OS_NAME" />会将界面中的所有关机按钮替换为重新启动按钮。如果用户通过电源按钮关闭设备,设备将不会自动重新启动,即使启用了此政策也是如此。</translation> <translation id="9158929520101169054">允许在同一浏览器中登录多个帐号</translation> +<translation id="9165792353046089850">让您能够设置是否允许网站访问所连接的 USB 设备。您可以完全禁止所有网站访问此类设备,也可以要求所有网站必须征得用户同意才能访问此类设备。 + + 您可以使用“WebUsbAskForUrls”和“WebUsbBlockedForUrls”政策为特定网址格式替换此政策。 + + 如果未设置此政策,系统将会使用“3”,并且用户将能够更改此设置。</translation> <translation id="9167719789236691545">在 <ph name="PRODUCT_OS_NAME" />的“文件”应用中停用 Google 云端硬盘</translation> <translation id="9187743794267626640">禁止装载外部存储设备</translation> <translation id="9197740283131855199">系统在屏幕变暗后察觉到用户活动时,屏幕变暗延迟时间的调整幅度(百分比)</translation>
diff --git a/components/policy/resources/policy_templates_zh-TW.xtb b/components/policy/resources/policy_templates_zh-TW.xtb index 2990608..aefaf75a 100644 --- a/components/policy/resources/policy_templates_zh-TW.xtb +++ b/components/policy/resources/policy_templates_zh-TW.xtb
@@ -88,7 +88,7 @@ 如果將這項政策設為 False,<ph name="PRODUCT_NAME" /> 將會禁止啟動訪客設定檔。</translation> <translation id="1363275621236827384">允許在 Quirks Server 中查詢硬體設定檔</translation> <translation id="1384459581748403878">參考頁面:<ph name="REFERENCE_URL" /></translation> -<translation id="1387596372902085462">決定是否要信任 Symantec 公司的舊版 PKI 基礎架構</translation> +<translation id="1387596372902085462">是否信任 Symantec 公司的舊版 PKI 基礎架構</translation> <translation id="1393485621820363363">已啟用企業裝置印表機</translation> <translation id="1397855852561539316">預設搜尋引擎建議網址</translation> <translation id="1426410128494586442">是</translation> @@ -420,6 +420,21 @@ 你仍可使用下載的字典執行拼字檢查,這項政策僅可控制是否使用線上服務。 如果你並未設置這項設定,則使用者可自行選擇是否要使用拼字檢查服務。</translation> +<translation id="2294283832646774959">設定印表機清單。 + + 這項政策可讓管理員為每位使用者提供 + 印表機設定。 + + 「<ph name="PRINTER_DISPLAY_NAME" />」和「<ph name="PRINTER_DESCRIPTION" />」是形式不拘的字串,可加以自訂方便選擇印表機。「<ph name="PRINTER_MANUFACTURER" />」和「<ph name="PRINTER_MODEL" />」則可讓使用者輕鬆識別印表機,兩者分別代表印表機的製造商和型號。「<ph name="PRINTER_URI" />」必須是可透過用戶端電腦連上的位址 (包括「<ph name="URI_SCHEME" />」、「<ph name="URI_PORT" />」和「<ph name="URI_QUEUE" />」)。「<ph name="PRINTER_UUID" />」可選用。如有提供,則會用於協助複製「<ph name="ZEROCONF_DISCOVERY" />」印表機。 + + 「<ph name="PRINTER_EFFECTIVE_MODEL" />」必須是其中一個代表 <ph name="PRODUCT_NAME" /> 支援印表機的字串。系統會利用這個字串找出印表機適用的 PPD 並加以安裝。詳情請參閱 https://support.google.com/chrome?p=noncloudprint。 + + 首次使用印表機時,會完成印表機設定程序。PPD 則會在使用該印表機時才下載,之後系統會快取常用的 PPD。 + + 這項政策旨在補足個別使用者的印表機設定,對使用者能否在個別裝置上設定印表機沒有影響。 + + 如果是受管理的 Active Directory 裝置,這項政策支援將「<ph name="MACHINE_NAME_VARIABLE" />」擴充為 Active Directory 電腦名稱或其子字串。舉例來說,如果電腦名稱為「<ph name="MACHINE_NAME_EXAMPLE" />」,「<ph name="MACHINE_NAME_VARIABLE_EXAMPLE" />」將會被第 6 個位置後的 4 個字元取代 (亦即「<ph name="MACHINE_NAME_PART_EXAMPLE" />」)。請注意,位置序數從 0 開始計算。 + </translation> <translation id="2294382669900758280">即使將這項政策設為 <ph name="TRUE" />,在 Android 應用程式中播放的影片仍不會受到影響。</translation> <translation id="2298647742290373702">設定 <ph name="PRODUCT_NAME" /> 的預設新分頁。</translation> <translation id="2299220924812062390">指定停用的外掛程式清單</translation> @@ -985,11 +1000,6 @@ 如果未設定這項政策,則可使用 SPDY。</translation> <translation id="3890999316834333174">快速解鎖政策</translation> <translation id="3891357445869647828">啟用 JavaScript</translation> -<translation id="3891953007921334498">停用開發人員工具和 JavaScript 控制台。 - - 如果啟用這項設定,使用者就無法再存取開發人員工具,也無法再檢查網站元素。此外,所有可開啟開發人員工具或 JavaScript 控制台的鍵盤快速鍵、選單項目或內容選單項目都會遭到停用。 - - 如果將這個選項設為停用或不設定這個選項,使用者即可使用開發人員工具和 JavaScript 控制台。</translation> <translation id="3895557476567727016">設定 <ph name="PRODUCT_NAME" /> 下載檔案時所使用的預設目錄。 如果設定這項政策,<ph name="PRODUCT_NAME" /> 所使用的檔案下載預設目錄將有所變更。這不是強制設定的政策,因此使用者可以變更目錄。 @@ -1177,6 +1187,7 @@ <translation id="4508686775017063528">如果這項政策設為 True 或未設定,系統將啟用「<ph name="PRODUCT_NAME" />」,使用者則可從應用程式選單、頁面內容選單以及 Cast 工具列圖示 (假設不是隱藏狀態) 啟動這項功能,或是在支援投放功能的網站上使用媒體控制項啟動這項功能。 如果這項政策設為 False,「<ph name="PRODUCT_NAME" />」會遭到停用。</translation> +<translation id="4515404363392014383">針對信任的來源啟用「安全瀏覽」</translation> <translation id="4518251772179446575">詢問網站何時要追蹤使用者的實際位置</translation> <translation id="4519046672992331730">啟用 <ph name="PRODUCT_NAME" /> 網址列的搜尋建議,並且禁止使用者變更這項設定。 @@ -1297,6 +1308,7 @@ 如果這項政策設為「False」,則螢幕喚醒鎖要求會受到忽略。</translation> <translation id="487460824085252184">自動遷移,不要求使用者同意。</translation> +<translation id="4874982543810021567">在這些網站上封鎖 WebUSB</translation> <translation id="4876805738539874299">已啟用 SSL 最高版本</translation> <translation id="4897928009230106190">指定使用 POST 提供搜尋建議時所用的參數,其包含以逗號分隔的名稱/數值配對。如果數值為範本參數 (例如上例中的 {searchTerms}),系統將會以實際的搜尋字詞資料替代這個數值。 @@ -1827,6 +1839,11 @@ 如未設定這項政策,系統會啟用網路預測功能,但使用者可以自行變更。</translation> <translation id="6658245400435704251">指定裝置可以任意延遲下載某項更新的秒數上限 (以該項更新初次被推送到伺服器的時間為準)。你可以將這項裝置等待時間的其中一部分設定為等待的時間長度,剩下的部分則設定為檢查更新的次數。不論採取哪種方式,分散時間皆不得超過固定時間長度,這樣就可以避免裝置由於持續等待下載某項更新而停止回應。</translation> <translation id="6665670272107384733">設定使用者使用快速解鎖功能時需輸入密碼的頻率</translation> +<translation id="6681229465468164801">允許你設定網址模式清單,指定禁止要求使用者授予 USB 裝置存取權的網站。 + + 如未設定這項政策,系統會根據「DefaultWebUsbGuardSetting」政策 (如有設定) 或使用者的個人設定,將通用預設值套用至所有網站。 + + 透過這項政策設定的網址模式與透過 WebUsbAskForUrls 設定的網址模式不可衝突,否則系統將無法判定應優先遵循哪一項政策。</translation> <translation id="6689792153960219308">回報硬體狀態</translation> <translation id="6698071416141001300">密碼遭到重複使用時,會觸發保護密碼的危險帳戶標記功能</translation> <translation id="6699880231565102694">為遠端存取主機啟用雙重驗證機制</translation> @@ -1980,6 +1997,11 @@ 如果停用或不指定這項設定,則會對所有資源套用預設的安全瀏覽保護機制。 這項設定不適用於未加入 <ph name="MS_AD_NAME" /> 網域的 Windows 執行個體。</translation> <translation id="7079519252486108041">封鎖這些網站的彈出式視窗</translation> +<translation id="7085803328069945025">允許你設定網址模式清單,指定可要求使用者授予 USB 裝置存取權的網站。 + + 如未設定這項政策,系統會根據「DefaultWebUsbGuardSetting」政策 (如有設定) 或使用者的個人設定,將通用預設值套用至所有網站。 + + 透過這項政策設定的網址模式與透過 WebUsbBlockedForUrls 設定的網址模式不可衝突,否則系統將無法判定應優先遵循哪一項政策。</translation> <translation id="7106631983877564505">在 <ph name="PRODUCT_OS_NAME" /> 裝置進入閒置或暫停狀態時啟用鎖定功能。 如果啟用這項設定,使用者必須輸入密碼,才能將裝置從休眠狀態解除鎖定。 @@ -2644,6 +2666,7 @@ <translation id="9096086085182305205">驗證伺服器許可清單</translation> <translation id="9098553063150791878">HTTP 驗證政策</translation> <translation id="9105265795073104888">只有一部分 Proxy 設定可供 Android 應用程式使用,Android 應用程式可以選擇是否使用。你無法強制 Android 應用程式使用 Proxy。</translation> +<translation id="9106865192244721694">在這些網站上允許 WebUSB</translation> <translation id="9112727953998243860">企業印表機設定檔</translation> <translation id="9112897538922695510">允許你註冊通訊協定處理常式清單 (這是一律建議使用的政策)。屬性 |protocol| 應設定為配置 (例如「mailto」),而屬性 |url| 則應設定為處理該配置的應用程式的網址模式。模式可包含「%s」(如果有的話,會由受處理的網址取代)。 @@ -2676,6 +2699,11 @@ <translation id="915194831143859291">如果將這項政策設為 False 或不予設定,<ph name="PRODUCT_OS_NAME" /> 會允許使用者關閉裝置。 如果將這項政策設為 True,<ph name="PRODUCT_OS_NAME" /> 會在使用者關閉裝置時觸發重新啟動程序。此外,<ph name="PRODUCT_OS_NAME" /> 會將使用者介面中的所有關機按鈕改成重新啟動按鈕。如果使用者使用電源按鈕關閉裝置,即使您已啟用這項政策,裝置仍然不會自動重新啟動。</translation> <translation id="9158929520101169054">允許在瀏覽器中使用多帳戶登入功能</translation> +<translation id="9165792353046089850">讓你設定是否允許網站存取已連線的 USB 裝置。你可以禁止所有網站存取 USB 裝置,也可以要求網站一律需要經過使用者同意才能存取這類裝置。 + + 你可以使用「WebUsbAskForUrls」和「WebUsbBlockedForUrls」政策,針對特定網址模式覆寫這項政策。 + + 如果未設定這項政策,系統會使用「3」,而使用者可以自行變更設定。</translation> <translation id="9167719789236691545">禁止在 <ph name="PRODUCT_OS_NAME" />的「檔案」應用程式中使用 Google 雲端硬碟</translation> <translation id="9187743794267626640">停用外部儲存裝置掛載功能</translation> <translation id="9197740283131855199">使用者在螢幕調暗後繼續使用裝置時的螢幕調暗時間延長百分比</translation>
diff --git a/components/search_engines/prepopulated_engines.json b/components/search_engines/prepopulated_engines.json index 6091970..922ad3b 100644 --- a/components/search_engines/prepopulated_engines.json +++ b/components/search_engines/prepopulated_engines.json
@@ -32,7 +32,7 @@ // Increment this if you change the data in ways that mean users with // existing data should get a new version. - "kCurrentDataVersion": 100 + "kCurrentDataVersion": 101 }, // The following engines are included in country lists and are added to the
diff --git a/components/strings/components_strings_de.xtb b/components/strings/components_strings_de.xtb index 4b9866b..824188d 100644 --- a/components/strings/components_strings_de.xtb +++ b/components/strings/components_strings_de.xtb
@@ -49,7 +49,7 @@ <li>Prüfen Sie, ob Ihre Internetverbindung richtig funktioniert.</li> <li>Wenden Sie sich an den Websiteinhaber.</li> </ol></translation> -<translation id="1257286744552378071">Sie haben Ihr Passwort auf einer Website eingegeben, die nicht von Ihrer Organisation verwaltet wird. Um Ihr Konto zu schützen, sollten Sie das Passwort nicht für andere Apps und Websites verwenden.</translation> +<translation id="1257286744552378071">Sie haben Ihr Passwort auf einer Website eingegeben, die nicht von Ihrer Organisation verwaltet wird. Zum Schutz Ihres Kontos sollten Sie das Passwort nicht für andere Apps und Websites verwenden.</translation> <translation id="1263231323834454256">Leseliste</translation> <translation id="1264126396475825575">Absturzbericht erfasst am <ph name="CRASH_TIME" />, wurde noch nicht hochgeladen oder wurde ignoriert</translation> <translation id="1270502636509132238">Abholoption</translation> @@ -784,7 +784,7 @@ <translation id="6628463337424475685"><ph name="ENGINE" />-Suche</translation> <translation id="6630809736994426279">Zurzeit auf <ph name="BEGIN_BOLD" /><ph name="SITE" /><ph name="END_BOLD" /> befindliche Hacker könnten versuchen, gefährliche Programme auf Ihrem Mac zu installieren, um Daten wie Fotos, Passwörter, Nachrichten und Kreditkartendaten zu stehlen oder zu löschen. <ph name="BEGIN_LEARN_MORE_LINK" />Weitere Informationen<ph name="END_LEARN_MORE_LINK" /></translation> <translation id="6644283850729428850">Diese Richtlinie ist veraltet.</translation> -<translation id="6646269444027925224">{COUNT,plural, =0{Keine}=1{Eine Website (Anmeldung in Google-Konto bleibt erhalten)}other{# Websites (Anmeldung in Google-Konto bleibt erhalten)}}</translation> +<translation id="6646269444027925224">{COUNT,plural, =0{Keine}=1{1 Website (Anmeldung in Google-Konto bleibt erhalten)}other{# Websites (Anmeldung in Google-Konto bleibt erhalten)}}</translation> <translation id="6657585470893396449">Passwort</translation> <translation id="6671697161687535275">Vorschlag für das Formular aus Chromium entfernen?</translation> <translation id="6685834062052613830">Abmelden und Einrichtung abschließen</translation>
diff --git a/components/strings/components_strings_es-419.xtb b/components/strings/components_strings_es-419.xtb index f26425a2..70bb569 100644 --- a/components/strings/components_strings_es-419.xtb +++ b/components/strings/components_strings_es-419.xtb
@@ -718,6 +718,7 @@ <translation id="6047927260846328439">Es posible que este contenido trate de engañarte para que instales software o reveles información personal. <ph name="BEGIN_LINK" />Mostrar de todos modos<ph name="END_LINK" /></translation> <translation id="6051221802930200923">No puedes visitar <ph name="SITE" /> ahora porque el sitio web usa la fijación de certificados. Los ataques y errores de red suelen ser temporales, por lo que es posible que esta página funcione más tarde.</translation> <translation id="6059925163896151826">Dispositivos USB</translation> +<translation id="6071091556643036997">El tipo de política no es válido.</translation> <translation id="6080696365213338172">Accediste al contenido mediante un certificado proporcionado por el administrador. Los datos que proporciones a <ph name="DOMAIN" /> pueden ser interceptados por tu administrador.</translation> <translation id="610911394827799129">Es posible que tu cuenta de Google tenga otros formularios del historial de navegación en <ph name="BEGIN_LINK" />myactivity.google.com<ph name="END_LINK" /></translation> <translation id="6144381551823904650">{COUNT,plural, =0{Ninguna}=1{1 contraseña (sincronizada)}other{# contraseñas (sincronizadas)}}</translation>
diff --git a/components/strings/components_strings_et.xtb b/components/strings/components_strings_et.xtb index c6f53bd..3ee8b3d 100644 --- a/components/strings/components_strings_et.xtb +++ b/components/strings/components_strings_et.xtb
@@ -717,6 +717,7 @@ <translation id="6047927260846328439">See sisu võib meelitada teid installima tarkvara või avaldama isiklikke andmeid. <ph name="BEGIN_LINK" />Kuva ikkagi<ph name="END_LINK" /></translation> <translation id="6051221802930200923">Te ei saa saiti <ph name="SITE" /> praegu külastada, sest veebisait kasutab sertifikaadi kinnitamist. Võrguvead ja -rünnakud on tavaliselt ajutised, nii et leht tõenäoliselt hiljem töötab.</translation> <translation id="6059925163896151826">USB-seadmed</translation> +<translation id="6071091556643036997">Reegli tüüp on sobimatu.</translation> <translation id="6080696365213338172">Olete sisule juurde pääsenud administraatori antud sertifikaadiga. Administraator saab domeenile <ph name="DOMAIN" /> edastatavaid andmeid kinni pidada.</translation> <translation id="610911394827799129">Aadressil <ph name="BEGIN_LINK" />myactivity.google.com<ph name="END_LINK" /> võib teie Google'i kontol olla muus vormis sirvimisajalugu</translation> <translation id="6144381551823904650">{COUNT,plural, =0{Ühtegi}=1{1 parool (sünkroonitud)}other{# parooli (sünkroonitud)}}</translation>
diff --git a/components/strings/components_strings_it.xtb b/components/strings/components_strings_it.xtb index d628a51..d5d18f7b 100644 --- a/components/strings/components_strings_it.xtb +++ b/components/strings/components_strings_it.xtb
@@ -714,6 +714,7 @@ <translation id="6047927260846328439">Questi contenuti potrebbero cercare di indurti con l'inganno a installare software o a rivelare informazioni personali. <ph name="BEGIN_LINK" />Mostra comunque<ph name="END_LINK" /></translation> <translation id="6051221802930200923">Al momento non puoi visitare il sito web <ph name="SITE" /> perché utilizza il blocco dei certificati. In genere gli errori di rete e gli attacchi sono temporanei, pertanto questa pagina potrebbe funzionare più tardi.</translation> <translation id="6059925163896151826">Dispositivi USB</translation> +<translation id="6071091556643036997">Il tipo di norma non è valido.</translation> <translation id="6080696365213338172">Hai raggiunto i contenuti utilizzando un certificato fornito dall'amministratore. I dati che fornisci a <ph name="DOMAIN" /> possono essere intercettati dal tuo amministratore.</translation> <translation id="610911394827799129">Il tuo account Google potrebbe avere altri tipi di cronologia di navigazione all'indirizzo <ph name="BEGIN_LINK" />myactivity.google.com<ph name="END_LINK" />.</translation> <translation id="6144381551823904650">{COUNT,plural, =0{Nessuna}=1{1 password (sincronizzata)}other{# password (sincronizzate)}}</translation>
diff --git a/components/strings/components_strings_ko.xtb b/components/strings/components_strings_ko.xtb index c456b5a..108c21b 100644 --- a/components/strings/components_strings_ko.xtb +++ b/components/strings/components_strings_ko.xtb
@@ -717,6 +717,7 @@ <translation id="6047927260846328439">이 콘텐츠는 사용자를 속여 소프트웨어를 설치하거나 개인정보를 유출할 수도 있습니다. <ph name="BEGIN_LINK" />표시하기<ph name="END_LINK" /></translation> <translation id="6051221802930200923">현재 <ph name="SITE" />에서 인증서 고정을 사용하기 때문에 방문할 수 없습니다. 네트워크 오류와 공격은 대부분 일시적이므로 나중에 이 페이지가 정상적으로 작동할 수 있습니다.</translation> <translation id="6059925163896151826">USB 기기</translation> +<translation id="6071091556643036997">잘못된 정책 유형입니다.</translation> <translation id="6080696365213338172">관리자 제공 인증서를 사용하여 콘텐츠에 액세스했습니다. 사용자가 <ph name="DOMAIN" />에 제공한 데이터가 관리자에 의해 차단될 수 있습니다.</translation> <translation id="610911394827799129">Google 계정의 내 활동(<ph name="BEGIN_LINK" />myactivity.google.com<ph name="END_LINK" />)에는 인터넷 방문 기록이 다른 형식으로 남아 있을 수도 있습니다</translation> <translation id="6144381551823904650">{COUNT,plural, =0{없음}=1{비밀번호 1개(동기화됨)}other{비밀번호 #개(동기화됨)}}</translation>
diff --git a/components/strings/components_strings_no.xtb b/components/strings/components_strings_no.xtb index 71ac7d7..f6b2e75 100644 --- a/components/strings/components_strings_no.xtb +++ b/components/strings/components_strings_no.xtb
@@ -49,7 +49,7 @@ <li>Sjekk at Internett-tilkoblingen din fungerer som den skal.</li> <li>Kontakt eieren av nettstedet.</li> </ol></translation> -<translation id="1257286744552378071">Du har skrevet inn passordet ditt på et nettsted som ikke administreres av organisasjonen din. For å beskytte kontoen din må du ikke bruke det samme passordet i andre apper og på andre nettsteder.</translation> +<translation id="1257286744552378071">Du har skrevet inn passordet ditt på et nettsted som ikke administreres av organisasjonen din. For å beskytte kontoen din må du ikke bruke det samme passordet i andre apper eller på andre nettsteder.</translation> <translation id="1263231323834454256">Leseliste</translation> <translation id="1264126396475825575">Programstopprapport fra <ph name="CRASH_TIME" /> (ignorert eller ikke lastet opp ennå)</translation> <translation id="1270502636509132238">Hentemåte</translation> @@ -677,7 +677,7 @@ <translation id="5710435578057952990">Identiteten til dette nettstedet er ikke verifisert.</translation> <translation id="5719499550583120431">Forhåndsbetalte kort godtas.</translation> <translation id="5720705177508910913">Gjeldende bruker</translation> -<translation id="5730040223043577876">Chrome anbefaler at du tilbakestiller passordet ditt for hvis du også har brukt det på andre nettsteder.</translation> +<translation id="5730040223043577876">Chrome anbefaler at du tilbakestiller passordet ditt hvis du også har brukt det på andre nettsteder.</translation> <translation id="5732392974455271431">Foreldrene dine kan oppheve blokkeringen for deg</translation> <translation id="5763042198335101085">Angi en gyldig e-postadresse</translation> <translation id="5765072501007116331">For å se leveringsmetoder og -krav, velg en adresse</translation>
diff --git a/components/strings/components_strings_ta.xtb b/components/strings/components_strings_ta.xtb index 6333cb9c..45d7239 100644 --- a/components/strings/components_strings_ta.xtb +++ b/components/strings/components_strings_ta.xtb
@@ -49,7 +49,7 @@ <li>உங்கள் இணைய இணைப்பு வழக்கம் போல செயல்படுகிறதா என்பதைச் சரிபார்க்கவும்.</li> <li>இணையதள உரிமையாளரைத் தொடர்புகொள்ளவும்.</li> </ol></translation> -<translation id="1257286744552378071">உங்கள் நிறுவனத்தால் நிர்வகிக்கப்படாத தளத்தில் உங்கள் கடவுச்சொல்லை உள்ளிட்டீர்கள். உங்கள கணக்கைப் பாதுகாக்க, பிற பயன்பாடுகளிலும் தளங்களிலும் கடவுச்சொல்லை மீண்டும் பயன்படுத்த வேண்டாம்.</translation> +<translation id="1257286744552378071">உங்கள் நிறுவனம் நிர்வகிக்காத தளத்தில் உங்கள் கடவுச்சொல்லை உள்ளிட்டீர்கள். உங்கள் கணக்கைப் பாதுகாக்க, பிற பயன்பாடுகளிலும் தளங்களிலும் கடவுச்சொல்லை மீண்டும் பயன்படுத்த வேண்டாம்.</translation> <translation id="1263231323834454256">வாசிப்புப் பட்டியல்</translation> <translation id="1264126396475825575"><ph name="CRASH_TIME" /> அன்று சிதைவு அறிக்கை பெறப்பட்டது (இன்னும் பதிவேற்றப்படவில்லை அல்லது புறக்கணிக்கப்படவில்லை)</translation> <translation id="1270502636509132238">பிக்அப் முறை</translation> @@ -359,7 +359,7 @@ <translation id="3422472998109090673"><ph name="HOST_NAME" />ஐத் தற்போது அணுக முடியவில்லை.</translation> <translation id="3427092606871434483">அனுமதி (இயல்பு)</translation> <translation id="3427342743765426898">&திருத்தலை மீண்டும் செய்</translation> -<translation id="342781501876943858">பிற தளங்களில் உங்கள் கடவுச்சொல்லை மீண்டும் பயன்படுத்தினால், அதை மீட்டமைக்கும்படி Chromium பரிந்துரைக்கும்.</translation> +<translation id="342781501876943858">பிற தளங்களில் உங்கள் கடவுச்சொல்லை மீண்டும் பயன்படுத்தினால், அதை மீட்டமைக்கும்படி Chromium பரிந்துரைக்கிறது.</translation> <translation id="3431636764301398940">இந்தச் சாதனத்தில் கார்டைச் சேமி</translation> <translation id="3447661539832366887">சாதனத்தின் உரிமையாளர் டைனோசர் கேமை முடக்கியுள்ளார்.</translation> <translation id="3447884698081792621">சான்றிதழைக் காட்டு (வழங்கியது: <ph name="ISSUER" />)</translation> @@ -674,7 +674,7 @@ <translation id="5710435578057952990">இந்த தளத்தின் அடையாளம் சரிபார்க்கப்படவில்லை.</translation> <translation id="5719499550583120431">ப்ரீபெய்டு கார்டுகள் ஏற்கப்படுகின்றன.</translation> <translation id="5720705177508910913">நடப்புப் பயனர்</translation> -<translation id="5730040223043577876">பிற தளங்களில் உங்கள் கடவுச்சொல்லை மீண்டும் பயன்படுத்தினால், அதை மீட்டமைக்கும்படி Chrome பரிந்துரைக்கும்.</translation> +<translation id="5730040223043577876">பிற தளங்களில் உங்கள் கடவுச்சொல்லை மீண்டும் பயன்படுத்தினால், அதை மீட்டமைக்கும்படி Chrome பரிந்துரைக்கிறது.</translation> <translation id="5732392974455271431">உங்களுக்காக, தளத்தின் தடுப்பை உங்கள் பெற்றோர் நீக்க முடியும்</translation> <translation id="5763042198335101085">சரியான மின்னஞ்சல் முகவரியை உள்ளிடவும்</translation> <translation id="5765072501007116331">டெலிவரி முறைகளையும் தேவைகளையும் பார்க்க, முகவரியைத் தேர்ந்தெடுக்கவும்</translation> @@ -714,6 +714,7 @@ <translation id="6047927260846328439">இந்த உள்ளடக்கம், உங்களை ஏமாற்றி மென்பொருளை நிறுவ வைக்கலாம் அல்லது தனிப்பட்ட தகவலை வெளிப்படுத்தச் செய்யலாம். <ph name="BEGIN_LINK" />பரவாயில்லை, காட்டு<ph name="END_LINK" /></translation> <translation id="6051221802930200923"><ph name="SITE" /> தளமானது சர்டிஃபிகேட் பின்னிங்கைப் பயன்படுத்துவதால், தற்போது அதைப் பார்க்க முடியாது. பொதுவாக நெட்வொர்க் பிழைகளும் பாதிப்புகளும் தற்காலிகமானவை என்பதால், இந்தப் பக்கம் பின்னர் சரியாகச் செயல்படக்கூடும்.</translation> <translation id="6059925163896151826">USB சாதனங்கள்</translation> +<translation id="6071091556643036997">கொள்கை வகை செல்லுபடியாகவில்லை.</translation> <translation id="6080696365213338172">நிர்வாகி வழங்கிய சான்றிதழைப் பயன்படுத்தி உள்ளடக்கத்தை அணுகியுள்ளீர்கள். <ph name="DOMAIN" /> க்கு நீங்கள் வழங்கிய தரவானது உங்கள் நிர்வாகியால் இடைமறிக்கப்படலாம்.</translation> <translation id="610911394827799129"><ph name="BEGIN_LINK" />myactivity.google.com<ph name="END_LINK" /> என்ற முகவரியில், உங்கள் Google கணக்கிற்கான பிற வகை உலாவல் வரலாறும் இருக்கக்கூடும்</translation> <translation id="6144381551823904650">{COUNT,plural, =0{ஏதுமில்லை}=1{1 கடவுச்சொல் (ஒத்திசைத்தது)}other{# கடவுச்சொற்கள் (ஒத்திசைத்தவை)}}</translation> @@ -1031,7 +1032,7 @@ <translation id="8553075262323480129">பக்கத்தின் மொழியைத் தீர்மானிக்க முடியாததால் மொழிபெயர்ப்பு தோல்வியடைந்தது.</translation> <translation id="8557066899867184262">உங்கள் கார்டின் பின்புறத்தில் CVC எண் இருக்கும்.</translation> <translation id="8559762987265718583">உங்கள் சாதனத்தின் தேதி மற்றும் நேரம் (<ph name="DATE_AND_TIME" />) தவறாக உள்ளதால் <ph name="BEGIN_BOLD" /><ph name="DOMAIN" /><ph name="END_BOLD" /> க்கான தனிப்பட்ட இணைப்பை ஏற்படுத்த முடியவில்லை.</translation> -<translation id="8564985650692024650">பிற தளங்களில் உங்கள் <ph name="BEGIN_BOLD" /><ph name="ORG_NAME" /><ph name="END_BOLD" /> கடவுச்சொல்லை மீண்டும் பயன்படுத்தினால், அதை மீட்டமைக்கும்படி Chromium பரிந்துரைக்கும்.</translation> +<translation id="8564985650692024650">பிற தளங்களில் உங்கள் <ph name="BEGIN_BOLD" /><ph name="ORG_NAME" /><ph name="END_BOLD" /> கடவுச்சொல்லை மீண்டும் பயன்படுத்தினால், அதை மீட்டமைக்கும்படி Chromium பரிந்துரைக்கிறது.</translation> <translation id="8571890674111243710"><ph name="LANGUAGE" /> க்கு பக்கத்தை மொழிபெயர்க்கிறது...</translation> <translation id="858637041960032120">தொலைபேசி எண்</translation> <translation id="859285277496340001">இந்த சான்றிதழ் திரும்பப்பெறப்பட்டதா என்பதைச் சரிபார்ப்பதற்கான செயல்முறை இதில் இல்லை.</translation> @@ -1058,7 +1059,7 @@ <translation id="884264119367021077">ஷிப்பிங் முகவரி</translation> <translation id="884923133447025588">திரும்பப்பெறுதல் செயல்முறை காணப்படவில்லை.</translation> <translation id="885730110891505394">Google உடன் பகிர்பவை</translation> -<translation id="8858065207712248076">பிற தளங்களில் உங்கள் <ph name="BEGIN_BOLD" /><ph name="ORG_NAME" /><ph name="END_BOLD" /> கடவுச்சொல்லை மீண்டும் பயன்படுத்தினால், அதை மீட்டமைக்கும்படி Chrome பரிந்துரைக்கும்.</translation> +<translation id="8858065207712248076">பிற தளங்களில் உங்கள் <ph name="BEGIN_BOLD" /><ph name="ORG_NAME" /><ph name="END_BOLD" /> கடவுச்சொல்லை மீண்டும் பயன்படுத்தினால், அதை மீட்டமைக்கும்படி Chrome பரிந்துரைக்கிறது.</translation> <translation id="8866481888320382733">கொள்கை அமைப்புகளை அலசுவதில் பிழை</translation> <translation id="8870413625673593573">சமீபத்தில் மூடியவை</translation> <translation id="8874824191258364635">சரியான கார்டு எண்ணை உள்ளிடவும்</translation>
diff --git a/components/strings/components_strings_zh-CN.xtb b/components/strings/components_strings_zh-CN.xtb index d5f790a..f28df47 100644 --- a/components/strings/components_strings_zh-CN.xtb +++ b/components/strings/components_strings_zh-CN.xtb
@@ -714,6 +714,7 @@ <translation id="6047927260846328439">此内容可能会试图诱骗您安装软件或透露个人信息。<ph name="BEGIN_LINK" />仍然显示<ph name="END_LINK" /></translation> <translation id="6051221802930200923">您目前无法访问 <ph name="SITE" />,因为此网站使用了证书锁定。网络错误和攻击通常是暂时的,因此,此网页稍后可能会恢复正常。</translation> <translation id="6059925163896151826">USB 设备</translation> +<translation id="6071091556643036997">政策类型无效。</translation> <translation id="6080696365213338172">您已使用管理员提供的证书访问了内容,因此管理员可以拦截您提供给 <ph name="DOMAIN" /> 的数据。</translation> <translation id="610911394827799129">您的 Google 帐号在 <ph name="BEGIN_LINK" />myactivity.google.com<ph name="END_LINK" /> 上可能有其他形式的浏览记录</translation> <translation id="6144381551823904650">{COUNT,plural, =0{无}=1{1 个密码(已同步)}other{# 个密码(已同步)}}</translation>
diff --git a/components/strings/components_strings_zh-TW.xtb b/components/strings/components_strings_zh-TW.xtb index b72ef05..ee331b0 100644 --- a/components/strings/components_strings_zh-TW.xtb +++ b/components/strings/components_strings_zh-TW.xtb
@@ -717,6 +717,7 @@ <translation id="6047927260846328439">這項內容可能會試圖誘使你安裝軟體或提供個人資訊。<ph name="BEGIN_LINK" />仍要顯示<ph name="END_LINK" /></translation> <translation id="6051221802930200923">目前無法造訪 <ph name="SITE" />,因為這個網站使用憑證鎖定功能。網路錯誤和攻擊行為通常是暫時性的,因此這個網頁可能稍後就會恢復正常狀態。</translation> <translation id="6059925163896151826">USB 裝置</translation> +<translation id="6071091556643036997">政策類型無效。</translation> <translation id="6080696365213338172">你使用了管理員提供的憑證存取內容,因此管理員可攔截你傳送至「<ph name="DOMAIN" />」的資料。</translation> <translation id="610911394827799129">你的 Google 帳戶仍可能保留了其他類型的瀏覽記錄 (可前往 <ph name="BEGIN_LINK" />myactivity.google.com<ph name="END_LINK" /> 查詢)。</translation> <translation id="6144381551823904650">{COUNT,plural, =0{無}=1{1 組密碼 (保持同步)}other{# 組密碼 (保持同步)}}</translation>
diff --git a/components/viz/host/hit_test/hit_test_query.cc b/components/viz/host/hit_test/hit_test_query.cc index 9049c32..d325e4b 100644 --- a/components/viz/host/hit_test/hit_test_query.cc +++ b/components/viz/host/hit_test/hit_test_query.cc
@@ -21,6 +21,11 @@ return (flags & (mojom::kHitTestMouse | mojom::kHitTestTouch)) != 0u; } +bool CheckChildCount(int32_t child_count, uint32_t child_count_max) { + return (child_count >= 0) && + (static_cast<uint32_t>(child_count) < child_count_max); +} + } // namespace HitTestQuery::HitTestQuery(base::RepeatingClosure bad_message_gpu_callback) @@ -29,39 +34,10 @@ HitTestQuery::~HitTestQuery() = default; void HitTestQuery::OnAggregatedHitTestRegionListUpdated( - mojo::ScopedSharedBufferHandle active_handle, - uint32_t active_handle_size, - mojo::ScopedSharedBufferHandle idle_handle, - uint32_t idle_handle_size) { - if (!active_handle.is_valid() || !idle_handle.is_valid()) { - ReceivedBadMessageFromGpuProcess(); - return; - } - handle_buffer_sizes_[0] = active_handle_size; - handle_buffers_[0] = active_handle->Map(handle_buffer_sizes_[0] * - sizeof(AggregatedHitTestRegion)); - handle_buffer_sizes_[1] = idle_handle_size; - handle_buffers_[1] = idle_handle->Map(handle_buffer_sizes_[1] * - sizeof(AggregatedHitTestRegion)); - if (!handle_buffers_[0] || !handle_buffers_[1]) { - handle_buffer_sizes_[0] = handle_buffer_sizes_[1] = 0; - handle_buffers_[0] = {}; - handle_buffers_[1] = {}; - ReceivedBadMessageFromGpuProcess(); - return; - } - SwitchActiveAggregatedHitTestRegionList(0); -} - -void HitTestQuery::SwitchActiveAggregatedHitTestRegionList( - uint8_t active_handle_index) { - if (active_handle_index != 0u && active_handle_index != 1u) { - ReceivedBadMessageFromGpuProcess(); - return; - } - active_hit_test_list_ = static_cast<AggregatedHitTestRegion*>( - handle_buffers_[active_handle_index].get()); - active_hit_test_list_size_ = handle_buffer_sizes_[active_handle_index]; + const std::vector<AggregatedHitTestRegion>& hit_test_data) { + hit_test_data_.clear(); + hit_test_data_ = hit_test_data; + hit_test_data_size_ = hit_test_data.size(); } Target HitTestQuery::FindTargetForLocation( @@ -70,11 +46,10 @@ SCOPED_UMA_HISTOGRAM_TIMER("Event.VizHitTest.TargetTime"); Target target; - if (!active_hit_test_list_size_) + if (!hit_test_data_size_) return target; - FindTargetInRegionForLocation(event_source, location_in_root, - active_hit_test_list_, &target); + FindTargetInRegionForLocation(event_source, location_in_root, 0, &target); return target; } @@ -85,69 +60,74 @@ gfx::PointF* transformed_location) const { SCOPED_UMA_HISTOGRAM_TIMER("Event.VizHitTest.TransformTime"); - if (!active_hit_test_list_size_) + if (!hit_test_data_size_) return false; if (target_ancestors.size() == 0u || target_ancestors[target_ancestors.size() - 1] != - active_hit_test_list_->frame_sink_id) { + hit_test_data_[0].frame_sink_id) { return false; } // TODO(riajiang): Cache the matrix product such that the transform can be // done immediately. crbug/758062. *transformed_location = location_in_root; - return TransformLocationForTargetRecursively( - event_source, target_ancestors, target_ancestors.size() - 1, - active_hit_test_list_, transformed_location); + return TransformLocationForTargetRecursively(event_source, target_ancestors, + target_ancestors.size() - 1, 0, + transformed_location); } bool HitTestQuery::GetTransformToTarget(const FrameSinkId& target, gfx::Transform* transform) const { - if (!active_hit_test_list_size_) + if (!hit_test_data_size_) return false; - return GetTransformToTargetRecursively(target, active_hit_test_list_, - transform); + return GetTransformToTargetRecursively(target, 0, transform); } bool HitTestQuery::FindTargetInRegionForLocation( EventSource event_source, const gfx::PointF& location_in_parent, - AggregatedHitTestRegion* region, + uint32_t region_index, Target* target) const { gfx::PointF location_transformed(location_in_parent); - region->transform().TransformPoint(&location_transformed); - if (!gfx::RectF(region->rect).Contains(location_transformed)) + hit_test_data_[region_index].transform().TransformPoint( + &location_transformed); + if (!gfx::RectF(hit_test_data_[region_index].rect) + .Contains(location_transformed)) { + return false; + } + + const int32_t region_child_count = hit_test_data_[region_index].child_count; + if (!CheckChildCount(region_child_count, hit_test_data_size_ - region_index)) return false; - if (!CheckChildCount(region)) - return false; - - AggregatedHitTestRegion* child_region = region + 1; - AggregatedHitTestRegion* child_region_end = - child_region + region->child_count; + uint32_t child_region = region_index + 1; + uint32_t child_region_end = child_region + region_child_count; gfx::PointF location_in_target = - location_transformed - region->rect.OffsetFromOrigin(); + location_transformed - + hit_test_data_[region_index].rect.OffsetFromOrigin(); while (child_region < child_region_end) { if (FindTargetInRegionForLocation(event_source, location_in_target, child_region, target)) { return true; } - if (child_region->child_count < 0 || - child_region->child_count >= region->child_count) { + const int32_t child_region_child_count = + hit_test_data_[child_region].child_count; + if (!CheckChildCount(child_region_child_count, region_child_count)) return false; - } - child_region = child_region + child_region->child_count + 1; + + child_region = child_region + child_region_child_count + 1; } - if (!RegionMatchEventSource(event_source, region->flags)) + const uint32_t flags = hit_test_data_[region_index].flags; + if (!RegionMatchEventSource(event_source, flags)) return false; - if (region->flags & (mojom::kHitTestMine | mojom::kHitTestAsk)) { - target->frame_sink_id = region->frame_sink_id; + if (flags & (mojom::kHitTestMine | mojom::kHitTestAsk)) { + target->frame_sink_id = hit_test_data_[region_index].frame_sink_id; target->location_in_target = location_in_target; - target->flags = region->flags; + target->flags = flags; return true; } return false; @@ -157,36 +137,40 @@ EventSource event_source, const std::vector<FrameSinkId>& target_ancestors, size_t target_ancestor, - AggregatedHitTestRegion* region, + uint32_t region_index, gfx::PointF* location_in_target) const { - if ((region->flags & mojom::kHitTestChildSurface) == 0u && - !RegionMatchEventSource(event_source, region->flags)) { + const uint32_t flags = hit_test_data_[region_index].flags; + if ((flags & mojom::kHitTestChildSurface) == 0u && + !RegionMatchEventSource(event_source, flags)) { return false; } - region->transform().TransformPoint(location_in_target); - location_in_target->Offset(-region->rect.x(), -region->rect.y()); + hit_test_data_[region_index].transform().TransformPoint(location_in_target); + location_in_target->Offset(-hit_test_data_[region_index].rect.x(), + -hit_test_data_[region_index].rect.y()); if (!target_ancestor) return true; - if (!CheckChildCount(region)) + const int32_t region_child_count = hit_test_data_[region_index].child_count; + if (!CheckChildCount(region_child_count, hit_test_data_size_ - region_index)) return false; - AggregatedHitTestRegion* child_region = region + 1; - AggregatedHitTestRegion* child_region_end = - child_region + region->child_count; + uint32_t child_region = region_index + 1; + uint32_t child_region_end = child_region + region_child_count; while (child_region < child_region_end) { - if (child_region->frame_sink_id == target_ancestors[target_ancestor - 1]) { + if (hit_test_data_[child_region].frame_sink_id == + target_ancestors[target_ancestor - 1]) { return TransformLocationForTargetRecursively( event_source, target_ancestors, target_ancestor - 1, child_region, location_in_target); } - if (child_region->child_count < 0 || - child_region->child_count >= region->child_count) { + const int32_t child_region_child_count = + hit_test_data_[child_region].child_count; + if (!CheckChildCount(child_region_child_count, region_child_count)) return false; - } - child_region = child_region + child_region->child_count + 1; + + child_region = child_region + child_region_child_count + 1; } return false; @@ -194,37 +178,40 @@ bool HitTestQuery::GetTransformToTargetRecursively( const FrameSinkId& target, - AggregatedHitTestRegion* region, + uint32_t region_index, gfx::Transform* transform) const { // TODO(riajiang): Cache the matrix product such that the transform can be // found immediately. - if (region->frame_sink_id == target) { - *transform = region->transform(); - transform->Translate(-region->rect.x(), -region->rect.y()); + if (hit_test_data_[region_index].frame_sink_id == target) { + *transform = hit_test_data_[region_index].transform(); + transform->Translate(-hit_test_data_[region_index].rect.x(), + -hit_test_data_[region_index].rect.y()); return true; } - if (!CheckChildCount(region)) + const int32_t region_child_count = hit_test_data_[region_index].child_count; + if (!CheckChildCount(region_child_count, hit_test_data_size_ - region_index)) return false; - AggregatedHitTestRegion* child_region = region + 1; - AggregatedHitTestRegion* child_region_end = - child_region + region->child_count; + uint32_t child_region = region_index + 1; + uint32_t child_region_end = child_region + region_child_count; while (child_region < child_region_end) { gfx::Transform transform_to_child; if (GetTransformToTargetRecursively(target, child_region, &transform_to_child)) { - gfx::Transform region_transform(region->transform()); - region_transform.Translate(-region->rect.x(), -region->rect.y()); + gfx::Transform region_transform(hit_test_data_[region_index].transform()); + region_transform.Translate(-hit_test_data_[region_index].rect.x(), + -hit_test_data_[region_index].rect.y()); *transform = transform_to_child * region_transform; return true; } - if (child_region->child_count < 0 || - child_region->child_count >= region->child_count) { + const int32_t child_region_child_count = + hit_test_data_[child_region].child_count; + if (!CheckChildCount(child_region_child_count, region_child_count)) return false; - } - child_region = child_region + child_region->child_count + 1; + + child_region = child_region + child_region_child_count + 1; } return false; @@ -235,10 +222,4 @@ bad_message_gpu_callback_.Run(); } -bool HitTestQuery::CheckChildCount(AggregatedHitTestRegion* region) const { - return (region->child_count >= 0) && - (region->child_count <= - (active_hit_test_list_ + active_hit_test_list_size_ - region - 1)); -} - } // namespace viz
diff --git a/components/viz/host/hit_test/hit_test_query.h b/components/viz/host/hit_test/hit_test_query.h index 828022a..a722182a 100644 --- a/components/viz/host/hit_test/hit_test_query.h +++ b/components/viz/host/hit_test/hit_test_query.h
@@ -11,7 +11,6 @@ #include "base/macros.h" #include "components/viz/common/hit_test/aggregated_hit_test_region.h" #include "components/viz/host/viz_host_export.h" -#include "mojo/public/cpp/system/buffer.h" #include "ui/gfx/geometry/point_f.h" namespace viz { @@ -42,20 +41,10 @@ // TODO(riajiang): Need to validate the data received. // http://crbug.com/746470 - // HitTestAggregator should only send new active_handle and idle_handle when - // they are initialized or replaced with OnAggregatedHitTestRegionListUpdated. - // Both handles must be valid. HitTestQuery would store and update these two - // handles received. - // HitTestAggregator would tell HitTestQuery to update its active hit test - // list based on |active_handle_index| with - // SwitchActiveAggregatedHitTestRegionList if HitTestAggregator only swapped - // handles. + // HitTestAggregator has sent the most recent |hit_test_data| for targeting/ + // transforming requests. void OnAggregatedHitTestRegionListUpdated( - mojo::ScopedSharedBufferHandle active_handle, - uint32_t active_handle_size, - mojo::ScopedSharedBufferHandle idle_handle, - uint32_t idle_handle_size); - void SwitchActiveAggregatedHitTestRegionList(uint8_t active_handle_index); + const std::vector<AggregatedHitTestRegion>& hit_test_data); // Finds Target for |location_in_root|, including the FrameSinkId of the // target, updated location in the coordinate system of the target and @@ -104,37 +93,32 @@ gfx::Transform* transform) const; private: - // Helper function to find |target| for |location_in_parent| in the |region|, - // returns true if a target is found and false otherwise. |location_in_parent| - // is in the coordinate space of |region|'s parent. + // Helper function to find |target| for |location_in_parent| in the + // |region_index|, returns true if a target is found and false otherwise. + // |location_in_parent| is in the coordinate space of |region_index|'s parent. bool FindTargetInRegionForLocation(EventSource event_source, const gfx::PointF& location_in_parent, - AggregatedHitTestRegion* region, + uint32_t region_index, Target* target) const; - // Transform |location_in_target| to be in |region|'s coordinate space. - // |location_in_target| is in the coordinate space of |region|'s parent at the - // beginning. + // Transform |location_in_target| to be in |region_index|'s coordinate space. + // |location_in_target| is in the coordinate space of |region_index|'s parent + // at the beginning. bool TransformLocationForTargetRecursively( EventSource event_source, const std::vector<FrameSinkId>& target_ancestors, size_t target_ancestor, - AggregatedHitTestRegion* region, + uint32_t region_index, gfx::PointF* location_in_target) const; bool GetTransformToTargetRecursively(const FrameSinkId& target, - AggregatedHitTestRegion* region, + uint32_t region_index, gfx::Transform* transform) const; void ReceivedBadMessageFromGpuProcess() const; - bool CheckChildCount(AggregatedHitTestRegion* region) const; - - uint32_t handle_buffer_sizes_[2]; - mojo::ScopedSharedBufferMapping handle_buffers_[2]; - - AggregatedHitTestRegion* active_hit_test_list_ = nullptr; - uint32_t active_hit_test_list_size_ = 0; + std::vector<AggregatedHitTestRegion> hit_test_data_; + uint32_t hit_test_data_size_ = 0; // Log bad message and shut down Viz process when it is compromised. base::RepeatingClosure bad_message_gpu_callback_;
diff --git a/components/viz/host/hit_test/hit_test_query_fuzzer.cc b/components/viz/host/hit_test/hit_test_query_fuzzer.cc index 5bdfde0..0f247e09 100644 --- a/components/viz/host/hit_test/hit_test_query_fuzzer.cc +++ b/components/viz/host/hit_test/hit_test_query_fuzzer.cc
@@ -9,7 +9,6 @@ #include "base/command_line.h" #include "base/test/fuzzed_data_provider.h" #include "components/viz/host/hit_test/hit_test_query.h" -#include "mojo/edk/embedder/embedder.h" namespace { @@ -45,22 +44,9 @@ AddHitTestRegion(fuzz, regions, frame_sink_ids, depth + 1); } -class Environment { - public: - Environment() { - // Initialize environment so that we can create the mojo shared memory - // handles. - base::CommandLine::Init(0, nullptr); - mojo::edk::Init(); - } -}; - } // namespace extern "C" int LLVMFuzzerTestOneInput(const uint8_t* data, size_t num_bytes) { - // Initialize the environment only once. - static Environment environment; - // If there isn't enough memory to have a single AggregatedHitTestRegion, then // skip. if (num_bytes < sizeof(viz::AggregatedHitTestRegion)) @@ -72,22 +58,9 @@ base::FuzzedDataProvider fuzz(data, num_bytes); AddHitTestRegion(&fuzz, ®ions, &frame_sink_ids); - // Put the regions into shared memory. - size_t regions_in_bytes = - regions.size() * sizeof(viz::AggregatedHitTestRegion); - auto shared_buffer = mojo::SharedBufferHandle::Create(regions_in_bytes); - auto buffer = shared_buffer->Map(regions_in_bytes); - memcpy(buffer.get(), regions.data(), regions_in_bytes); - buffer = nullptr; - auto backup_buffer = mojo::SharedBufferHandle::Create(regions_in_bytes); - - // Create the HitTestQuery and inject the shared memory into it. + // Create the HitTestQuery and send hit-test data. viz::HitTestQuery query; - query.OnAggregatedHitTestRegionListUpdated( - shared_buffer->Clone(mojo::SharedBufferHandle::AccessMode::READ_ONLY), - regions.size(), - backup_buffer->Clone(mojo::SharedBufferHandle::AccessMode::READ_ONLY), - regions.size()); + query.OnAggregatedHitTestRegionListUpdated(regions); for (float x = 0; x < 1000.; x += 10) { for (float y = 0; y < 1000.; y += 10) {
diff --git a/components/viz/host/hit_test/hit_test_query_unittest.cc b/components/viz/host/hit_test/hit_test_query_unittest.cc index 05196df..2f907891 100644 --- a/components/viz/host/hit_test/hit_test_query_unittest.cc +++ b/components/viz/host/hit_test/hit_test_query_unittest.cc
@@ -17,32 +17,17 @@ HitTestQueryTest() = default; ~HitTestQueryTest() override = default; + void SendHitTestData() { + hit_test_query_.OnAggregatedHitTestRegionListUpdated(active_data_); + } + protected: HitTestQuery& hit_test_query() { return hit_test_query_; } - AggregatedHitTestRegion* aggregated_hit_test_region() { - return static_cast<AggregatedHitTestRegion*>(active_buffer_.get()); - } + + std::vector<AggregatedHitTestRegion> active_data_; private: - // testing::Test: - void SetUp() override { - uint32_t handle_size = 100; - size_t num_bytes = handle_size * sizeof(AggregatedHitTestRegion); - mojo::ScopedSharedBufferHandle active_handle = - mojo::SharedBufferHandle::Create(num_bytes); - mojo::ScopedSharedBufferHandle idle_handle = - mojo::SharedBufferHandle::Create(num_bytes); - active_buffer_ = active_handle->Map(num_bytes); - hit_test_query_.OnAggregatedHitTestRegionListUpdated( - active_handle->Clone(mojo::SharedBufferHandle::AccessMode::READ_ONLY), - handle_size, - idle_handle->Clone(mojo::SharedBufferHandle::AccessMode::READ_ONLY), - handle_size); - } - void TearDown() override {} - HitTestQuery hit_test_query_; - mojo::ScopedSharedBufferMapping active_buffer_; DISALLOW_COPY_AND_ASSIGN(HitTestQueryTest); }; @@ -59,11 +44,10 @@ FrameSinkId e_id = FrameSinkId(1, 1); gfx::Rect e_bounds = gfx::Rect(0, 0, 600, 600); gfx::Transform transform_e_to_e; - AggregatedHitTestRegion* aggregated_hit_test_region_list = - aggregated_hit_test_region(); - aggregated_hit_test_region_list[0] = + active_data_.push_back( AggregatedHitTestRegion(e_id, mojom::kHitTestMine | mojom::kHitTestMouse, - e_bounds, transform_e_to_e, 0); // e + e_bounds, transform_e_to_e, 0)); // e + SendHitTestData(); // All points are in e's coordinate system when we reach this case. gfx::PointF point1(1, 1); @@ -110,17 +94,16 @@ gfx::Transform transform_e_to_e, transform_e_to_c1, transform_e_to_c2; transform_e_to_c1.Translate(-100, -100); transform_e_to_c2.Translate(-300, -300); - AggregatedHitTestRegion* aggregated_hit_test_region_list = - aggregated_hit_test_region(); - aggregated_hit_test_region_list[0] = + active_data_.push_back( AggregatedHitTestRegion(e_id, mojom::kHitTestMine | mojom::kHitTestMouse, - e_bounds_in_e, transform_e_to_e, 2); // e - aggregated_hit_test_region_list[1] = + e_bounds_in_e, transform_e_to_e, 2)); // e + active_data_.push_back( AggregatedHitTestRegion(c1_id, mojom::kHitTestMine | mojom::kHitTestMouse, - c1_bounds_in_e, transform_e_to_c1, 0); // c1 - aggregated_hit_test_region_list[2] = + c1_bounds_in_e, transform_e_to_c1, 0)); // c1 + active_data_.push_back( AggregatedHitTestRegion(c2_id, mojom::kHitTestMine | mojom::kHitTestMouse, - c2_bounds_in_e, transform_e_to_c2, 0); // c2 + c2_bounds_in_e, transform_e_to_c2, 0)); // c2 + SendHitTestData(); // All points are in e's coordinate system when we reach this case. gfx::PointF point1(99, 200); @@ -163,14 +146,13 @@ transform_e_to_c.Translate(-100, -100); transform_e_to_c.Skew(2, 3); transform_e_to_c.Scale(.5f, .7f); - AggregatedHitTestRegion* aggregated_hit_test_region_list = - aggregated_hit_test_region(); - aggregated_hit_test_region_list[0] = + active_data_.push_back( AggregatedHitTestRegion(e_id, mojom::kHitTestMine | mojom::kHitTestMouse, - e_bounds_in_e, transform_e_to_e, 1); // e - aggregated_hit_test_region_list[1] = + e_bounds_in_e, transform_e_to_e, 1)); // e + active_data_.push_back( AggregatedHitTestRegion(c_id, mojom::kHitTestMine | mojom::kHitTestMouse, - c_bounds_in_e, transform_e_to_c, 0); // c + c_bounds_in_e, transform_e_to_c, 0)); // c + SendHitTestData(); // All points are in e's coordinate system when we reach this case. gfx::PointF point1(150, 120); // Point(-22.07, -12.07) after transform. @@ -214,20 +196,19 @@ transform_c_to_b; transform_e_to_c.Translate(-200, -100); transform_c_to_b.Translate(0, -100); - AggregatedHitTestRegion* aggregated_hit_test_region_list = - aggregated_hit_test_region(); - aggregated_hit_test_region_list[0] = + active_data_.push_back( AggregatedHitTestRegion(e_id, mojom::kHitTestMine | mojom::kHitTestMouse, - e_bounds_in_e, transform_e_to_e, 3); // e - aggregated_hit_test_region_list[1] = AggregatedHitTestRegion( + e_bounds_in_e, transform_e_to_e, 3)); // e + active_data_.push_back(AggregatedHitTestRegion( c_id, mojom::kHitTestChildSurface | mojom::kHitTestIgnore, c_bounds_in_e, - transform_e_to_c, 2); // c - aggregated_hit_test_region_list[2] = + transform_e_to_c, 2)); // c + active_data_.push_back( AggregatedHitTestRegion(a_id, mojom::kHitTestMine | mojom::kHitTestMouse, - a_bounds_in_c, transform_c_to_a, 0); // a - aggregated_hit_test_region_list[3] = + a_bounds_in_c, transform_c_to_a, 0)); // a + active_data_.push_back( AggregatedHitTestRegion(b_id, mojom::kHitTestMine | mojom::kHitTestMouse, - b_bounds_in_c, transform_c_to_b, 0); // b + b_bounds_in_c, transform_c_to_b, 0)); // b + SendHitTestData(); // All points are in e's coordinate system when we reach this case. gfx::PointF point1(1, 1); @@ -289,23 +270,22 @@ transform_e_to_c.Translate(-200, -100); transform_c_to_b.Translate(0, -100); transform_e_to_d.Translate(-400, -50); - AggregatedHitTestRegion* aggregated_hit_test_region_list = - aggregated_hit_test_region(); - aggregated_hit_test_region_list[0] = + active_data_.push_back( AggregatedHitTestRegion(e_id, mojom::kHitTestMine | mojom::kHitTestMouse, - e_bounds_in_e, transform_e_to_e, 4); // e - aggregated_hit_test_region_list[1] = AggregatedHitTestRegion( + e_bounds_in_e, transform_e_to_e, 4)); // e + active_data_.push_back(AggregatedHitTestRegion( c_id, mojom::kHitTestChildSurface | mojom::kHitTestIgnore, c_bounds_in_e, - transform_e_to_c, 2); // c - aggregated_hit_test_region_list[2] = + transform_e_to_c, 2)); // c + active_data_.push_back( AggregatedHitTestRegion(a_id, mojom::kHitTestMine | mojom::kHitTestMouse, - a_bounds_in_c, transform_c_to_a, 0); // a - aggregated_hit_test_region_list[3] = + a_bounds_in_c, transform_c_to_a, 0)); // a + active_data_.push_back( AggregatedHitTestRegion(b_id, mojom::kHitTestMine | mojom::kHitTestMouse, - b_bounds_in_c, transform_c_to_b, 0); // b - aggregated_hit_test_region_list[4] = + b_bounds_in_c, transform_c_to_b, 0)); // b + active_data_.push_back( AggregatedHitTestRegion(d_id, mojom::kHitTestMine | mojom::kHitTestMouse, - d_bounds_in_e, transform_e_to_d, 0); // d + d_bounds_in_e, transform_e_to_d, 0)); // d + SendHitTestData(); // All points are in e's coordinate system when we reach this case. gfx::PointF point1(1, 1); @@ -355,23 +335,22 @@ transform_c_to_b, transform_e_to_d; transform_e_to_c.Translate(-200, -100); transform_e_to_d.Translate(-400, -50); - AggregatedHitTestRegion* aggregated_hit_test_region_list = - aggregated_hit_test_region(); - aggregated_hit_test_region_list[0] = + active_data_.push_back( AggregatedHitTestRegion(e_id, mojom::kHitTestMine | mojom::kHitTestMouse, - e_bounds_in_e, transform_e_to_e, 4); // e - aggregated_hit_test_region_list[1] = AggregatedHitTestRegion( + e_bounds_in_e, transform_e_to_e, 4)); // e + active_data_.push_back(AggregatedHitTestRegion( c_id, mojom::kHitTestChildSurface | mojom::kHitTestIgnore, c_bounds_in_e, - transform_e_to_c, 2); // c - aggregated_hit_test_region_list[2] = + transform_e_to_c, 2)); // c + active_data_.push_back( AggregatedHitTestRegion(a_id, mojom::kHitTestMine | mojom::kHitTestMouse, - a_bounds_in_c, transform_c_to_a, 0); // a - aggregated_hit_test_region_list[3] = + a_bounds_in_c, transform_c_to_a, 0)); // a + active_data_.push_back( AggregatedHitTestRegion(b_id, mojom::kHitTestMine | mojom::kHitTestMouse, - b_bounds_in_c, transform_c_to_b, 0); // b - aggregated_hit_test_region_list[4] = + b_bounds_in_c, transform_c_to_b, 0)); // b + active_data_.push_back( AggregatedHitTestRegion(d_id, mojom::kHitTestMine | mojom::kHitTestMouse, - d_bounds_in_e, transform_e_to_d, 0); // d + d_bounds_in_e, transform_e_to_d, 0)); // d + SendHitTestData(); // All points are in e's coordinate system when we reach this case. gfx::PointF point1(1, 1); @@ -438,29 +417,28 @@ transform_c1_to_b.Translate(0, -100); transform_e_to_c2.Translate(-200, -700); transform_c2_to_h.Translate(0, -100); - AggregatedHitTestRegion* aggregated_hit_test_region_list = - aggregated_hit_test_region(); - aggregated_hit_test_region_list[0] = + active_data_.push_back( AggregatedHitTestRegion(e_id, mojom::kHitTestMine | mojom::kHitTestMouse, - e_bounds_in_e, transform_e_to_e, 6); // e - aggregated_hit_test_region_list[1] = AggregatedHitTestRegion( + e_bounds_in_e, transform_e_to_e, 6)); // e + active_data_.push_back(AggregatedHitTestRegion( c1_id, mojom::kHitTestChildSurface | mojom::kHitTestIgnore, - c1_bounds_in_e, transform_e_to_c1, 2); // c1 - aggregated_hit_test_region_list[2] = + c1_bounds_in_e, transform_e_to_c1, 2)); // c1 + active_data_.push_back( AggregatedHitTestRegion(a_id, mojom::kHitTestMine | mojom::kHitTestMouse, - a_bounds_in_c1, transform_c1_to_a, 0); // a - aggregated_hit_test_region_list[3] = + a_bounds_in_c1, transform_c1_to_a, 0)); // a + active_data_.push_back( AggregatedHitTestRegion(b_id, mojom::kHitTestMine | mojom::kHitTestMouse, - b_bounds_in_c1, transform_c1_to_b, 0); // b - aggregated_hit_test_region_list[4] = AggregatedHitTestRegion( + b_bounds_in_c1, transform_c1_to_b, 0)); // b + active_data_.push_back(AggregatedHitTestRegion( c2_id, mojom::kHitTestChildSurface | mojom::kHitTestIgnore, - c2_bounds_in_e, transform_e_to_c2, 2); // c2 - aggregated_hit_test_region_list[5] = + c2_bounds_in_e, transform_e_to_c2, 2)); // c2 + active_data_.push_back( AggregatedHitTestRegion(g_id, mojom::kHitTestMine | mojom::kHitTestMouse, - g_bounds_in_c2, transform_c2_to_g, 0); // g - aggregated_hit_test_region_list[6] = + g_bounds_in_c2, transform_c2_to_g, 0)); // g + active_data_.push_back( AggregatedHitTestRegion(h_id, mojom::kHitTestMine | mojom::kHitTestMouse, - h_bounds_in_c2, transform_c2_to_h, 0); // h + h_bounds_in_c2, transform_c2_to_h, 0)); // h + SendHitTestData(); // All points are in e's coordinate system when we reach this case. gfx::PointF point1(1, 1); @@ -540,29 +518,28 @@ transform_c1_to_b.Translate(0, -100); transform_e_to_c2.Translate(-200, -700); transform_c2_to_h.Translate(0, -100); - AggregatedHitTestRegion* aggregated_hit_test_region_list = - aggregated_hit_test_region(); - aggregated_hit_test_region_list[0] = + active_data_.push_back( AggregatedHitTestRegion(e_id, mojom::kHitTestMine | mojom::kHitTestMouse, - e_bounds_in_e, transform_e_to_e, 6); // e - aggregated_hit_test_region_list[1] = AggregatedHitTestRegion( + e_bounds_in_e, transform_e_to_e, 6)); // e + active_data_.push_back(AggregatedHitTestRegion( c1_id, mojom::kHitTestChildSurface | mojom::kHitTestIgnore, - c1_bounds_in_e, transform_e_to_c1, 2); // c1 - aggregated_hit_test_region_list[2] = + c1_bounds_in_e, transform_e_to_c1, 2)); // c1 + active_data_.push_back( AggregatedHitTestRegion(a_id, mojom::kHitTestMine | mojom::kHitTestMouse, - a_bounds_in_c1, transform_c1_to_a, 0); // a - aggregated_hit_test_region_list[3] = + a_bounds_in_c1, transform_c1_to_a, 0)); // a + active_data_.push_back( AggregatedHitTestRegion(b_id, mojom::kHitTestMine | mojom::kHitTestMouse, - b_bounds_in_c1, transform_c1_to_b, 0); // b - aggregated_hit_test_region_list[4] = AggregatedHitTestRegion( + b_bounds_in_c1, transform_c1_to_b, 0)); // b + active_data_.push_back(AggregatedHitTestRegion( c2_id, mojom::kHitTestChildSurface | mojom::kHitTestIgnore, - c2_bounds_in_e, transform_e_to_c2, 2); // c2 - aggregated_hit_test_region_list[5] = + c2_bounds_in_e, transform_e_to_c2, 2)); // c2 + active_data_.push_back( AggregatedHitTestRegion(g_id, mojom::kHitTestMine | mojom::kHitTestMouse, - g_bounds_in_c2, transform_c2_to_g, 0); // g - aggregated_hit_test_region_list[6] = + g_bounds_in_c2, transform_c2_to_g, 0)); // g + active_data_.push_back( AggregatedHitTestRegion(h_id, mojom::kHitTestMine | mojom::kHitTestMouse, - h_bounds_in_c2, transform_c2_to_h, 0); // h + h_bounds_in_c2, transform_c2_to_h, 0)); // h + SendHitTestData(); // All points are in e's coordinate system when we reach this case. gfx::PointF point1(1, 1); @@ -636,26 +613,25 @@ transform_a_to_b.Translate(-50, -30); transform_b_to_g.Translate(-150, -200); transform_e_to_c2.Translate(-400, -50); - AggregatedHitTestRegion* aggregated_hit_test_region_list = - aggregated_hit_test_region(); - aggregated_hit_test_region_list[0] = + active_data_.push_back( AggregatedHitTestRegion(e_id, mojom::kHitTestMine | mojom::kHitTestMouse, - e_bounds_in_e, transform_e_to_e, 5), // e - aggregated_hit_test_region_list[1] = AggregatedHitTestRegion( - c1_id, mojom::kHitTestChildSurface | mojom::kHitTestIgnore, - c1_bounds_in_e, transform_e_to_c1, 3); // c1 - aggregated_hit_test_region_list[2] = + e_bounds_in_e, transform_e_to_e, 5)); // e + active_data_.push_back(AggregatedHitTestRegion( + c1_id, mojom::kHitTestChildSurface | mojom::kHitTestIgnore, + c1_bounds_in_e, transform_e_to_c1, 3)); // c1 + active_data_.push_back( AggregatedHitTestRegion(a_id, mojom::kHitTestMine | mojom::kHitTestMouse, - a_bounds_in_c1, transform_c1_to_a, 2); // a - aggregated_hit_test_region_list[3] = + a_bounds_in_c1, transform_c1_to_a, 2)); // a + active_data_.push_back( AggregatedHitTestRegion(b_id, mojom::kHitTestMine | mojom::kHitTestMouse, - b_bounds_in_a, transform_a_to_b, 1); // b - aggregated_hit_test_region_list[4] = + b_bounds_in_a, transform_a_to_b, 1)); // b + active_data_.push_back( AggregatedHitTestRegion(g_id, mojom::kHitTestMine | mojom::kHitTestMouse, - g_bounds_in_b, transform_b_to_g, 0); // g - aggregated_hit_test_region_list[5] = + g_bounds_in_b, transform_b_to_g, 0)); // g + active_data_.push_back( AggregatedHitTestRegion(c2_id, mojom::kHitTestMine | mojom::kHitTestMouse, - c2_bounds_in_e, transform_e_to_c2, 0); // c2 + c2_bounds_in_e, transform_e_to_c2, 0)); // c2 + SendHitTestData(); // All points are in e's coordinate system when we reach this case. gfx::PointF point1(1, 1); @@ -722,26 +698,25 @@ transform_a_to_b.Translate(-50, -30); transform_b_to_g.Translate(-150, -200); transform_e_to_c2.Translate(-400, -50); - AggregatedHitTestRegion* aggregated_hit_test_region_list = - aggregated_hit_test_region(); - aggregated_hit_test_region_list[0] = + active_data_.push_back( AggregatedHitTestRegion(e_id, mojom::kHitTestMine | mojom::kHitTestMouse, - e_bounds_in_e, transform_e_to_e, 5); // e - aggregated_hit_test_region_list[1] = AggregatedHitTestRegion( + e_bounds_in_e, transform_e_to_e, 5)); // e + active_data_.push_back(AggregatedHitTestRegion( c1_id, mojom::kHitTestChildSurface | mojom::kHitTestIgnore, - c1_bounds_in_e, transform_e_to_c1, 3); // c1 - aggregated_hit_test_region_list[2] = AggregatedHitTestRegion( + c1_bounds_in_e, transform_e_to_c1, 3)); // c1 + active_data_.push_back(AggregatedHitTestRegion( a_id, mojom::kHitTestChildSurface | mojom::kHitTestIgnore, a_bounds_in_c1, - transform_c1_to_a, 2); // a - aggregated_hit_test_region_list[3] = AggregatedHitTestRegion( + transform_c1_to_a, 2)); // a + active_data_.push_back(AggregatedHitTestRegion( b_id, mojom::kHitTestChildSurface | mojom::kHitTestIgnore, b_bounds_in_a, - transform_a_to_b, 1); // b - aggregated_hit_test_region_list[4] = AggregatedHitTestRegion( + transform_a_to_b, 1)); // b + active_data_.push_back(AggregatedHitTestRegion( g_id, mojom::kHitTestChildSurface | mojom::kHitTestIgnore, g_bounds_in_b, - transform_b_to_g, 0); // g - aggregated_hit_test_region_list[5] = + transform_b_to_g, 0)); // g + active_data_.push_back( AggregatedHitTestRegion(c2_id, mojom::kHitTestMine | mojom::kHitTestMouse, - c2_bounds_in_e, transform_e_to_c2, 0); // c2 + c2_bounds_in_e, transform_e_to_c2, 0)); // c2 + SendHitTestData(); // All points are in e's coordinate system when we reach this case. gfx::PointF point1(1, 1); @@ -787,20 +762,19 @@ transform_c_to_b; transform_e_to_c.Translate(-200, -100); transform_c_to_b.Translate(0, -100); - AggregatedHitTestRegion* aggregated_hit_test_region_list_min = - aggregated_hit_test_region(); - aggregated_hit_test_region_list_min[0] = + active_data_.push_back( AggregatedHitTestRegion(e_id, mojom::kHitTestMine | mojom::kHitTestMouse, - e_bounds_in_e, transform_e_to_e, 3); // e - aggregated_hit_test_region_list_min[1] = AggregatedHitTestRegion( + e_bounds_in_e, transform_e_to_e, 3)); // e + active_data_.push_back(AggregatedHitTestRegion( c_id, mojom::kHitTestChildSurface | mojom::kHitTestIgnore, c_bounds_in_e, - transform_e_to_c, INT32_MIN); // c - aggregated_hit_test_region_list_min[2] = + transform_e_to_c, INT32_MIN)); // c + active_data_.push_back( AggregatedHitTestRegion(a_id, mojom::kHitTestMine | mojom::kHitTestMouse, - a_bounds_in_c, transform_c_to_a, 0); // a - aggregated_hit_test_region_list_min[3] = + a_bounds_in_c, transform_c_to_a, 0)); // a + active_data_.push_back( AggregatedHitTestRegion(b_id, mojom::kHitTestMine | mojom::kHitTestMouse, - b_bounds_in_c, transform_c_to_b, 0); // b + b_bounds_in_c, transform_c_to_b, 0)); // b + SendHitTestData(); // All points are in e's coordinate system when we reach this case. gfx::PointF point1(1, 1); @@ -820,20 +794,20 @@ EXPECT_EQ(target2.location_in_target, gfx::PointF()); EXPECT_FALSE(target2.flags); - AggregatedHitTestRegion* aggregated_hit_test_region_list_max = - aggregated_hit_test_region(); - aggregated_hit_test_region_list_max[0] = - AggregatedHitTestRegion(e_id, mojom::kHitTestMine | mojom::kHitTestMouse, - e_bounds_in_e, transform_e_to_e, INT32_MAX); // e - aggregated_hit_test_region_list_max[1] = AggregatedHitTestRegion( + active_data_.clear(); + active_data_.push_back(AggregatedHitTestRegion( + e_id, mojom::kHitTestMine | mojom::kHitTestMouse, e_bounds_in_e, + transform_e_to_e, INT32_MAX)); // e + active_data_.push_back(AggregatedHitTestRegion( c_id, mojom::kHitTestChildSurface | mojom::kHitTestIgnore, c_bounds_in_e, - transform_e_to_c, 2); // c - aggregated_hit_test_region_list_max[2] = + transform_e_to_c, 2)); // c + active_data_.push_back( AggregatedHitTestRegion(a_id, mojom::kHitTestMine | mojom::kHitTestMouse, - a_bounds_in_c, transform_c_to_a, 0); // a - aggregated_hit_test_region_list_max[3] = + a_bounds_in_c, transform_c_to_a, 0)); // a + active_data_.push_back( AggregatedHitTestRegion(b_id, mojom::kHitTestMine | mojom::kHitTestMouse, - b_bounds_in_c, transform_c_to_b, 0); // b + b_bounds_in_c, transform_c_to_b, 0)); // b + SendHitTestData(); Target target3 = hit_test_query().FindTargetForLocation(EventSource::MOUSE, point1); @@ -841,20 +815,20 @@ EXPECT_EQ(target3.location_in_target, gfx::PointF()); EXPECT_FALSE(target3.flags); - AggregatedHitTestRegion* aggregated_hit_test_region_list_bigger = - aggregated_hit_test_region(); - aggregated_hit_test_region_list_bigger[0] = + active_data_.clear(); + active_data_.push_back( AggregatedHitTestRegion(e_id, mojom::kHitTestMine | mojom::kHitTestMouse, - e_bounds_in_e, transform_e_to_e, 3); // e - aggregated_hit_test_region_list_bigger[1] = AggregatedHitTestRegion( + e_bounds_in_e, transform_e_to_e, 3)); // e + active_data_.push_back(AggregatedHitTestRegion( c_id, mojom::kHitTestChildSurface | mojom::kHitTestIgnore, c_bounds_in_e, - transform_e_to_c, 3); // c - aggregated_hit_test_region_list_bigger[2] = + transform_e_to_c, 3)); // c + active_data_.push_back( AggregatedHitTestRegion(a_id, mojom::kHitTestMine | mojom::kHitTestMouse, - a_bounds_in_c, transform_c_to_a, 0); // a - aggregated_hit_test_region_list_bigger[3] = + a_bounds_in_c, transform_c_to_a, 0)); // a + active_data_.push_back( AggregatedHitTestRegion(b_id, mojom::kHitTestMine | mojom::kHitTestMouse, - b_bounds_in_c, transform_c_to_b, 0); // b + b_bounds_in_c, transform_c_to_b, 0)); // b + SendHitTestData(); Target target4 = hit_test_query().FindTargetForLocation(EventSource::MOUSE, point1); @@ -874,17 +848,16 @@ gfx::Transform transform_e_to_e, transform_e_to_c1, transform_e_to_c2; transform_e_to_c1.Translate(-100, -100); transform_e_to_c2.Translate(-75, -75); - AggregatedHitTestRegion* aggregated_hit_test_region_list = - aggregated_hit_test_region(); - aggregated_hit_test_region_list[0] = AggregatedHitTestRegion( + active_data_.push_back(AggregatedHitTestRegion( e_id, mojom::kHitTestMine | mojom::kHitTestMouse | mojom::kHitTestTouch, - e_bounds_in_e, transform_e_to_e, 2); // e - aggregated_hit_test_region_list[1] = + e_bounds_in_e, transform_e_to_e, 2)); // e + active_data_.push_back( AggregatedHitTestRegion(c1_id, mojom::kHitTestMine | mojom::kHitTestMouse, - c1_bounds_in_e, transform_e_to_c1, 0); // c1 - aggregated_hit_test_region_list[2] = + c1_bounds_in_e, transform_e_to_c1, 0)); // c1 + active_data_.push_back( AggregatedHitTestRegion(c2_id, mojom::kHitTestMine | mojom::kHitTestTouch, - c2_bounds_in_e, transform_e_to_c2, 0); // c2 + c2_bounds_in_e, transform_e_to_c2, 0)); // c2 + SendHitTestData(); // All points are in e's coordinate system when we reach this case. gfx::PointF point1(80, 80); @@ -920,11 +893,10 @@ FrameSinkId e_id = FrameSinkId(1, 1); gfx::Rect e_bounds = gfx::Rect(0, 0, 600, 600); gfx::Transform transform_e_to_e; - AggregatedHitTestRegion* aggregated_hit_test_region_list = - aggregated_hit_test_region(); - aggregated_hit_test_region_list[0] = + active_data_.push_back( AggregatedHitTestRegion(e_id, mojom::kHitTestAsk | mojom::kHitTestMouse, - e_bounds, transform_e_to_e, 0); // e + e_bounds, transform_e_to_e, 0)); // e + SendHitTestData(); // All points are in e's coordinate system when we reach this case. gfx::PointF point1(1, 1); @@ -964,17 +936,16 @@ gfx::Transform transform_e_to_e, transform_e_to_c1, transform_e_to_c2; transform_e_to_c1.Translate(-100, -100); transform_e_to_c2.Translate(-300, -300); - AggregatedHitTestRegion* aggregated_hit_test_region_list = - aggregated_hit_test_region(); - aggregated_hit_test_region_list[0] = + active_data_.push_back( AggregatedHitTestRegion(e_id, mojom::kHitTestMine | mojom::kHitTestMouse, - e_bounds_in_e, transform_e_to_e, 2); // e - aggregated_hit_test_region_list[1] = + e_bounds_in_e, transform_e_to_e, 2)); // e + active_data_.push_back( AggregatedHitTestRegion(c1_id, mojom::kHitTestMine | mojom::kHitTestMouse, - c1_bounds_in_e, transform_e_to_c1, 0); // c1 - aggregated_hit_test_region_list[2] = + c1_bounds_in_e, transform_e_to_c1, 0)); // c1 + active_data_.push_back( AggregatedHitTestRegion(c2_id, mojom::kHitTestAsk | mojom::kHitTestMouse, - c2_bounds_in_e, transform_e_to_c2, 0); // c2 + c2_bounds_in_e, transform_e_to_c2, 0)); // c2 + SendHitTestData(); // All points are in e's coordinate system when we reach this case. gfx::PointF point1(99, 200); @@ -1020,23 +991,22 @@ transform_e_to_d.Translate(-400, -50); transform_c_to_b.Skew(2, 3); transform_c_to_b.Scale(.5f, .7f); - AggregatedHitTestRegion* aggregated_hit_test_region_list = - aggregated_hit_test_region(); - aggregated_hit_test_region_list[0] = + active_data_.push_back( AggregatedHitTestRegion(e_id, mojom::kHitTestMine | mojom::kHitTestMouse, - e_bounds_in_e, transform_e_to_e, 4); // e - aggregated_hit_test_region_list[1] = AggregatedHitTestRegion( + e_bounds_in_e, transform_e_to_e, 4)); // e + active_data_.push_back(AggregatedHitTestRegion( c_id, mojom::kHitTestChildSurface | mojom::kHitTestIgnore, c_bounds_in_e, - transform_e_to_c, 2); // c - aggregated_hit_test_region_list[2] = + transform_e_to_c, 2)); // c + active_data_.push_back( AggregatedHitTestRegion(a_id, mojom::kHitTestMine | mojom::kHitTestMouse, - a_bounds_in_c, transform_c_to_a, 0); // a - aggregated_hit_test_region_list[3] = + a_bounds_in_c, transform_c_to_a, 0)); // a + active_data_.push_back( AggregatedHitTestRegion(b_id, mojom::kHitTestMine | mojom::kHitTestMouse, - b_bounds_in_c, transform_c_to_b, 0); // b - aggregated_hit_test_region_list[4] = + b_bounds_in_c, transform_c_to_b, 0)); // b + active_data_.push_back( AggregatedHitTestRegion(d_id, mojom::kHitTestMine | mojom::kHitTestMouse, - d_bounds_in_e, transform_e_to_d, 0); // d + d_bounds_in_e, transform_e_to_d, 0)); // d + SendHitTestData(); // Check that we can get the correct transform to all regions. gfx::Transform transform_to_e;
diff --git a/components/viz/host/host_frame_sink_manager.cc b/components/viz/host/host_frame_sink_manager.cc index 96999ea5..798a747 100644 --- a/components/viz/host/host_frame_sink_manager.cc +++ b/components/viz/host/host_frame_sink_manager.cc
@@ -414,30 +414,14 @@ void HostFrameSinkManager::OnAggregatedHitTestRegionListUpdated( const FrameSinkId& frame_sink_id, - mojo::ScopedSharedBufferHandle active_handle, - uint32_t active_handle_size, - mojo::ScopedSharedBufferHandle idle_handle, - uint32_t idle_handle_size) { + const std::vector<AggregatedHitTestRegion>& hit_test_data) { auto iter = display_hit_test_query_.find(frame_sink_id); // The corresponding HitTestQuery has already been deleted, so drop the // in-flight hit-test data. if (iter == display_hit_test_query_.end()) return; - iter->second->OnAggregatedHitTestRegionListUpdated( - std::move(active_handle), active_handle_size, std::move(idle_handle), - idle_handle_size); -} - -void HostFrameSinkManager::SwitchActiveAggregatedHitTestRegionList( - const FrameSinkId& frame_sink_id, - uint8_t active_handle_index) { - auto iter = display_hit_test_query_.find(frame_sink_id); - // The corresponding HitTestQuery has already been deleted, so drop the - // in-flight hit-test data. - if (iter == display_hit_test_query_.end()) - return; - iter->second->SwitchActiveAggregatedHitTestRegionList(active_handle_index); + iter->second->OnAggregatedHitTestRegionListUpdated(hit_test_data); } HostFrameSinkManager::FrameSinkData::FrameSinkData() = default;
diff --git a/components/viz/host/host_frame_sink_manager.h b/components/viz/host/host_frame_sink_manager.h index c8c0134c..20df4f3 100644 --- a/components/viz/host/host_frame_sink_manager.h +++ b/components/viz/host/host_frame_sink_manager.h
@@ -234,13 +234,7 @@ void OnFirstSurfaceActivation(const SurfaceInfo& surface_info) override; void OnAggregatedHitTestRegionListUpdated( const FrameSinkId& frame_sink_id, - mojo::ScopedSharedBufferHandle active_handle, - uint32_t active_handle_size, - mojo::ScopedSharedBufferHandle idle_handle, - uint32_t idle_handle_sizes) override; - void SwitchActiveAggregatedHitTestRegionList( - const FrameSinkId& frame_sink_id, - uint8_t active_handle_index) override; + const std::vector<AggregatedHitTestRegion>& hit_test_data) override; // This will point to |frame_sink_manager_ptr_| if using Mojo or // |frame_sink_manager_impl_| if directly connected. Use this to make function
diff --git a/components/viz/host/host_frame_sink_manager_unittest.cc b/components/viz/host/host_frame_sink_manager_unittest.cc index 77d8a4d..0e0bc1f6 100644 --- a/components/viz/host/host_frame_sink_manager_unittest.cc +++ b/components/viz/host/host_frame_sink_manager_unittest.cc
@@ -625,8 +625,8 @@ run_loop.Run(); } - GetFrameSinkManagerClient()->SwitchActiveAggregatedHitTestRegionList( - kFrameSinkParent1, 0); + GetFrameSinkManagerClient()->OnAggregatedHitTestRegionListUpdated( + kFrameSinkParent1, {}); // Continue to send hit-test data to HitTestQuery associated with // kFrameSinkChild1. @@ -634,8 +634,8 @@ // Invalidating kFrameSinkChild1 would delete the corresponding HitTestQuery, // so further msgs to that HitTestQuery should be dropped. EXPECT_FALSE(DisplayHitTestQueryExists(kFrameSinkParent1)); - GetFrameSinkManagerClient()->SwitchActiveAggregatedHitTestRegionList( - kFrameSinkParent1, 1); + GetFrameSinkManagerClient()->OnAggregatedHitTestRegionListUpdated( + kFrameSinkParent1, {}); } // Verify that HostFrameSinkManager assigns temporary references when connected
diff --git a/components/viz/service/frame_sinks/compositor_frame_sink_support_unittest.cc b/components/viz/service/frame_sinks/compositor_frame_sink_support_unittest.cc index f9d67412..f397921 100644 --- a/components/viz/service/frame_sinks/compositor_frame_sink_support_unittest.cc +++ b/components/viz/service/frame_sinks/compositor_frame_sink_support_unittest.cc
@@ -70,13 +70,7 @@ MOCK_METHOD1(OnFirstSurfaceActivation, void(const SurfaceInfo&)); void OnAggregatedHitTestRegionListUpdated( const FrameSinkId& frame_sink_id, - mojo::ScopedSharedBufferHandle active_handle, - uint32_t active_handle_size, - mojo::ScopedSharedBufferHandle idle_handle, - uint32_t idle_handle_sizes) override {} - void SwitchActiveAggregatedHitTestRegionList( - const FrameSinkId& frame_sink_id, - uint8_t active_handle_index) override {} + const std::vector<AggregatedHitTestRegion>& hit_test_data) override {} void OnFrameTokenChanged(const FrameSinkId& frame_sink_id, uint32_t frame_token) override {}
diff --git a/components/viz/service/frame_sinks/frame_sink_manager_impl.cc b/components/viz/service/frame_sinks/frame_sink_manager_impl.cc index ac084ea4..e706f2a 100644 --- a/components/viz/service/frame_sinks/frame_sink_manager_impl.cc +++ b/components/viz/service/frame_sinks/frame_sink_manager_impl.cc
@@ -352,25 +352,10 @@ void FrameSinkManagerImpl::OnAggregatedHitTestRegionListUpdated( const FrameSinkId& frame_sink_id, - mojo::ScopedSharedBufferHandle active_handle, - uint32_t active_handle_size, - mojo::ScopedSharedBufferHandle idle_handle, - uint32_t idle_handle_size) { + const std::vector<AggregatedHitTestRegion>& hit_test_data) { DCHECK_CALLED_ON_VALID_THREAD(thread_checker_); if (client_) { - client_->OnAggregatedHitTestRegionListUpdated( - frame_sink_id, std::move(active_handle), active_handle_size, - std::move(idle_handle), idle_handle_size); - } -} - -void FrameSinkManagerImpl::SwitchActiveAggregatedHitTestRegionList( - const FrameSinkId& frame_sink_id, - uint8_t active_handle_index) { - DCHECK_CALLED_ON_VALID_THREAD(thread_checker_); - if (client_) { - client_->SwitchActiveAggregatedHitTestRegionList(frame_sink_id, - active_handle_index); + client_->OnAggregatedHitTestRegionListUpdated(frame_sink_id, hit_test_data); } }
diff --git a/components/viz/service/frame_sinks/frame_sink_manager_impl.h b/components/viz/service/frame_sinks/frame_sink_manager_impl.h index d9b9d56..6918d324 100644 --- a/components/viz/service/frame_sinks/frame_sink_manager_impl.h +++ b/components/viz/service/frame_sinks/frame_sink_manager_impl.h
@@ -113,13 +113,7 @@ // HitTestAggregatorDelegate implementation: void OnAggregatedHitTestRegionListUpdated( const FrameSinkId& frame_sink_id, - mojo::ScopedSharedBufferHandle active_handle, - uint32_t active_handle_size, - mojo::ScopedSharedBufferHandle idle_handle, - uint32_t idle_handle_size) override; - void SwitchActiveAggregatedHitTestRegionList( - const FrameSinkId& frame_sink_id, - uint8_t active_handle_index) override; + const std::vector<AggregatedHitTestRegion>& hit_test_data) override; // CompositorFrameSinkSupport, hierarchy, and BeginFrameSource can be // registered and unregistered in any order with respect to each other.
diff --git a/components/viz/service/hit_test/hit_test_aggregator.cc b/components/viz/service/hit_test/hit_test_aggregator.cc index bd31d39..7fd64fd 100644 --- a/components/viz/service/hit_test/hit_test_aggregator.cc +++ b/components/viz/service/hit_test/hit_test_aggregator.cc
@@ -25,73 +25,28 @@ initial_region_size_(initial_region_size), incremental_region_size_(initial_region_size), max_region_size_(max_region_size), - weak_ptr_factory_(this) { - AllocateHitTestRegionArray(); -} + weak_ptr_factory_(this) {} HitTestAggregator::~HitTestAggregator() = default; void HitTestAggregator::Aggregate(const SurfaceId& display_surface_id) { DCHECK(referenced_child_regions_.empty()); + + // Reset states. + hit_test_data_.clear(); + hit_test_data_capacity_ = initial_region_size_; + hit_test_data_size_ = 0; + hit_test_data_.resize(hit_test_data_capacity_); + AppendRoot(display_surface_id); referenced_child_regions_.clear(); - Swap(); + SendHitTestData(); } -void HitTestAggregator::GrowRegionList() { - ResizeHitTestRegionArray(write_size_ + incremental_region_size_); -} - -void HitTestAggregator::Swap() { - SwapHandles(); - if (!handle_replaced_) { - delegate_->SwitchActiveAggregatedHitTestRegionList(root_frame_sink_id_, - active_handle_index_); - return; - } - - delegate_->OnAggregatedHitTestRegionListUpdated( - root_frame_sink_id_, - read_handle_->Clone(mojo::SharedBufferHandle::AccessMode::READ_ONLY), - read_size_, - write_handle_->Clone(mojo::SharedBufferHandle::AccessMode::READ_ONLY), - write_size_); - active_handle_index_ = 0; - handle_replaced_ = false; -} - -void HitTestAggregator::AllocateHitTestRegionArray() { - ResizeHitTestRegionArray(initial_region_size_); - SwapHandles(); - ResizeHitTestRegionArray(initial_region_size_); -} - -void HitTestAggregator::ResizeHitTestRegionArray(uint32_t size) { - size_t num_bytes = size * sizeof(AggregatedHitTestRegion); - write_handle_ = mojo::SharedBufferHandle::Create(num_bytes); - CHECK(write_handle_.is_valid()) << "Allocating shared memory failed."; - auto new_buffer = write_handle_->Map(num_bytes); - CHECK(new_buffer) << "Allocating shared memory failed."; - handle_replaced_ = true; - - AggregatedHitTestRegion* region = - static_cast<AggregatedHitTestRegion*>(new_buffer.get()); - if (write_size_) - memcpy(region, write_buffer_.get(), write_size_); - else - region[0].child_count = kEndOfList; - - write_size_ = size; - write_buffer_ = std::move(new_buffer); -} - -void HitTestAggregator::SwapHandles() { - using std::swap; - - swap(read_handle_, write_handle_); - swap(read_size_, write_size_); - swap(read_buffer_, write_buffer_); - active_handle_index_ = !active_handle_index_; +void HitTestAggregator::SendHitTestData() { + hit_test_data_.resize(hit_test_data_size_); + delegate_->OnAggregatedHitTestRegionListUpdated(root_frame_sink_id_, + hit_test_data_); } void HitTestAggregator::AppendRoot(const SurfaceId& surface_id) { @@ -107,7 +62,7 @@ size_t region_index = 1; for (const auto& region : hit_test_region_list->regions) { - if (region_index >= write_size_ - 1) + if (region_index >= hit_test_data_capacity_ - 1) break; region_index = AppendRegion(region_index, region); } @@ -118,18 +73,17 @@ SetRegionAt(0, surface_id.frame_sink_id(), hit_test_region_list->flags, hit_test_region_list->bounds, hit_test_region_list->transform, child_count); - MarkEndAt(region_index); } size_t HitTestAggregator::AppendRegion(size_t region_index, const mojom::HitTestRegionPtr& region) { size_t parent_index = region_index++; - if (region_index >= write_size_ - 1) { - if (write_size_ > max_region_size_) { - MarkEndAt(parent_index); + if (region_index >= hit_test_data_capacity_ - 1) { + if (hit_test_data_capacity_ > max_region_size_) { return region_index; } else { - GrowRegionList(); + hit_test_data_capacity_ += incremental_region_size_; + hit_test_data_.resize(hit_test_data_capacity_); } } @@ -162,7 +116,7 @@ for (const auto& child_region : hit_test_region_list->regions) { region_index = AppendRegion(region_index, child_region); - if (region_index >= write_size_ - 1) + if (region_index >= hit_test_data_capacity_ - 1) break; } } @@ -179,21 +133,9 @@ const gfx::Rect& rect, const gfx::Transform& transform, int32_t child_count) { - AggregatedHitTestRegion* regions = - static_cast<AggregatedHitTestRegion*>(write_buffer_.get()); - AggregatedHitTestRegion* element = ®ions[index]; - - element->frame_sink_id = frame_sink_id; - element->flags = flags; - element->rect = rect; - element->child_count = child_count; - element->set_transform(transform); -} - -void HitTestAggregator::MarkEndAt(size_t index) { - AggregatedHitTestRegion* regions = - static_cast<AggregatedHitTestRegion*>(write_buffer_.get()); - regions[index].child_count = kEndOfList; + hit_test_data_[index] = AggregatedHitTestRegion(frame_sink_id, flags, rect, + transform, child_count); + hit_test_data_size_++; } } // namespace viz
diff --git a/components/viz/service/hit_test/hit_test_aggregator.h b/components/viz/service/hit_test/hit_test_aggregator.h index 4eb67bb..1ec5b2f8 100644 --- a/components/viz/service/hit_test/hit_test_aggregator.h +++ b/components/viz/service/hit_test/hit_test_aggregator.h
@@ -17,12 +17,9 @@ // HitTestAggregator assembles the list of HitTestRegion objects that define the // hit test information required for one display. Active HitTestRegionList -// information is obtained from the HitTestManager. The resulting list is made -// available in shared memory and used by HitTestQuery to enable efficient hit -// testing across processes. -// -// This is intended to be created in the viz or GPU process. For mus+ash this -// will be true after the mus process split. +// information is obtained from the HitTestManager. The resulting list is sent +// to HitTestQuery for event targeting. This is intended to be created in the +// viz or GPU process. class VIZ_SERVICE_EXPORT HitTestAggregator { public: // |delegate| owns and outlives HitTestAggregator. @@ -31,71 +28,39 @@ HitTestAggregatorDelegate* delegate, LatestLocalSurfaceIdLookupDelegate* local_surface_id_lookup_delegate, const FrameSinkId& frame_sink_id, - uint32_t initial_region_size = 1024, - uint32_t max_region_size = 100 * 1024); + uint32_t initial_region_size = 100, + uint32_t max_region_size = 100 * 100); ~HitTestAggregator(); // Called after surfaces have been aggregated into the DisplayFrame. // In this call HitTestRegionList structures received from active surfaces - // are aggregated into the HitTestRegionList structure in - // shared memory used for event targetting. + // are aggregated into |hit_test_data_|. void Aggregate(const SurfaceId& display_surface_id); - // Called at BeginFrame. Swaps buffers in shared memory and tells its - // delegate. - void Swap(); - private: friend class TestHitTestAggregator; - // Allocates memory for the AggregatedHitTestRegion array. - void AllocateHitTestRegionArray(); - - // Resizes memory for the AggregatedHitTestRegion array. |size| indicates the - // number of elements. - void ResizeHitTestRegionArray(uint32_t size); - - void GrowRegionList(); - void SwapHandles(); + void SendHitTestData(); // Appends the root element to the AggregatedHitTestRegion array. void AppendRoot(const SurfaceId& surface_id); // Appends a |region| to the HitTestRegionList structure to recursively - // build the tree. |region_index| indicates the current index of the end of + // build the tree. |region_index| indicates the current index of the end of // the list. size_t AppendRegion(size_t region_index, const mojom::HitTestRegionPtr& region); // Populates the HitTestRegion element at the given element |index|. - // Access to the HitTestRegion list is localized to this call - // in order to prevent errors if the array is resized during aggregation. void SetRegionAt(size_t index, const FrameSinkId& frame_sink_id, uint32_t flags, const gfx::Rect& rect, const gfx::Transform& transform, int32_t child_count); - // Marks the element at the given index as the end of list. - void MarkEndAt(size_t index); const HitTestManager* const hit_test_manager_; - mojo::ScopedSharedBufferHandle read_handle_; - mojo::ScopedSharedBufferHandle write_handle_; - - // The number of elements allocated. - uint32_t read_size_ = 0; - uint32_t write_size_ = 0; - - mojo::ScopedSharedBufferMapping read_buffer_; - mojo::ScopedSharedBufferMapping write_buffer_; - - bool handle_replaced_ = false; - - // Can only be 0 or 1 when we only have two buffers. - uint8_t active_handle_index_ = 0; - HitTestAggregatorDelegate* const delegate_; LatestLocalSurfaceIdLookupDelegate* const local_surface_id_lookup_delegate_; @@ -110,6 +75,10 @@ const uint32_t incremental_region_size_; const uint32_t max_region_size_; + uint32_t hit_test_data_capacity_ = 0; + uint32_t hit_test_data_size_ = 0; + std::vector<AggregatedHitTestRegion> hit_test_data_; + // This is the set of FrameSinkIds referenced in the aggregation so far, used // to detect cycles. base::flat_set<FrameSinkId> referenced_child_regions_;
diff --git a/components/viz/service/hit_test/hit_test_aggregator_delegate.h b/components/viz/service/hit_test/hit_test_aggregator_delegate.h index 51b9b33..c6b06cc 100644 --- a/components/viz/service/hit_test/hit_test_aggregator_delegate.h +++ b/components/viz/service/hit_test/hit_test_aggregator_delegate.h
@@ -5,23 +5,16 @@ #ifndef COMPONENTS_VIZ_SERVICE_HIT_TEST_HIT_TEST_AGGREGATOR_DELEGATE_H_ #define COMPONENTS_VIZ_SERVICE_HIT_TEST_HIT_TEST_AGGREGATOR_DELEGATE_H_ +#include "components/viz/common/hit_test/aggregated_hit_test_region.h" + namespace viz { // Used by HitTestAggregator to talk to FrameSinkManagerImpl. class HitTestAggregatorDelegate { public: - // Called if any of the buffer that stores the aggregated hit-test data is - // updated (e.g. destroyed, reallocated etc.). |active_handle| and - // |idle_handle| both must be valid. + // Called to send |hit_test_data| when we receive new data. virtual void OnAggregatedHitTestRegionListUpdated( const FrameSinkId& frame_sink_id, - mojo::ScopedSharedBufferHandle active_handle, - uint32_t active_handle_size, - mojo::ScopedSharedBufferHandle idle_handle, - uint32_t idle_handle_size) = 0; - - virtual void SwitchActiveAggregatedHitTestRegionList( - const FrameSinkId& frame_sink_id, - uint8_t active_handle_index) = 0; + const std::vector<AggregatedHitTestRegion>& hit_test_data) = 0; protected: // The dtor is protected so that HitTestAggregator does not take ownership.
diff --git a/components/viz/service/hit_test/hit_test_aggregator_unittest.cc b/components/viz/service/hit_test/hit_test_aggregator_unittest.cc index 08135e6..6a80351 100644 --- a/components/viz/service/hit_test/hit_test_aggregator_unittest.cc +++ b/components/viz/service/hit_test/hit_test_aggregator_unittest.cc
@@ -40,34 +40,18 @@ void OnAggregatedHitTestRegionListUpdated( const FrameSinkId& frame_sink_id, - mojo::ScopedSharedBufferHandle active_handle, - uint32_t active_handle_size, - mojo::ScopedSharedBufferHandle idle_handle, - uint32_t idle_handle_size) override { - DCHECK(active_handle.is_valid() && idle_handle.is_valid()); + const std::vector<AggregatedHitTestRegion>& hit_test_data) override { buffer_frame_sink_id_ = frame_sink_id; - handle_buffers_[0] = active_handle->Map(active_handle_size * - sizeof(AggregatedHitTestRegion)); - handle_buffers_[1] = - idle_handle->Map(idle_handle_size * sizeof(AggregatedHitTestRegion)); - SwitchActiveAggregatedHitTestRegionList(buffer_frame_sink_id_, 0); + active_list_ = hit_test_data; } - void SwitchActiveAggregatedHitTestRegionList( - const FrameSinkId& frame_sink_id, - uint8_t active_handle_index) override { - active_list_ = static_cast<AggregatedHitTestRegion*>( - handle_buffers_[active_handle_index].get()); - } - - AggregatedHitTestRegion* regions() { return active_list_; } + const std::vector<AggregatedHitTestRegion>& regions() { return active_list_; } const FrameSinkId& buffer_frame_sink_id() { return buffer_frame_sink_id_; } private: FrameSinkId buffer_frame_sink_id_; - mojo::ScopedSharedBufferMapping handle_buffers_[2]; - AggregatedHitTestRegion* active_list_; + std::vector<AggregatedHitTestRegion> active_list_; DISALLOW_COPY_AND_ASSIGN(TestHostFrameSinkManager); }; @@ -83,25 +67,11 @@ void OnAggregatedHitTestRegionListUpdated( const FrameSinkId& frame_sink_id, - mojo::ScopedSharedBufferHandle active_handle, - uint32_t active_handle_size, - mojo::ScopedSharedBufferHandle idle_handle, - uint32_t idle_handle_size) override { + const std::vector<AggregatedHitTestRegion>& hit_test_data) override { // Do not check if it's on valid thread for tests. if (host_client_) { - host_client_->OnAggregatedHitTestRegionListUpdated( - frame_sink_id, std::move(active_handle), active_handle_size, - std::move(idle_handle), idle_handle_size); - } - } - - void SwitchActiveAggregatedHitTestRegionList( - const FrameSinkId& frame_sink_id, - uint8_t active_handle_index) override { - // Do not check if it's on valid thread for tests. - if (host_client_) { - host_client_->SwitchActiveAggregatedHitTestRegionList( - frame_sink_id, active_handle_index); + host_client_->OnAggregatedHitTestRegionListUpdated(frame_sink_id, + hit_test_data); } } @@ -127,28 +97,8 @@ frame_sink_id_(frame_sink_id) {} ~TestHitTestAggregator() = default; - int GetRegionCount() const { - AggregatedHitTestRegion* start = - static_cast<AggregatedHitTestRegion*>(read_buffer_.get()); - AggregatedHitTestRegion* end = start; - while (end->child_count != kEndOfList) - end++; - return end - start; - } - int GetHitTestRegionListSize() { return read_size_; } - void SwapHandles() { - delegate_->SwitchActiveAggregatedHitTestRegionList(frame_sink_id_, - active_handle_index_); - } - - void Reset() { - AggregatedHitTestRegion* regions = - static_cast<AggregatedHitTestRegion*>(write_buffer_.get()); - regions[0].child_count = kEndOfList; - - regions = static_cast<AggregatedHitTestRegion*>(read_buffer_.get()); - regions[0].child_count = kEndOfList; - } + int GetRegionCount() const { return hit_test_data_size_; } + int GetHitTestRegionListCapacity() { return hit_test_data_capacity_; } private: const FrameSinkId frame_sink_id_; @@ -229,7 +179,7 @@ return hit_test_aggregator_.get(); } - AggregatedHitTestRegion* host_regions() { + const std::vector<AggregatedHitTestRegion>& host_regions() { return host_frame_sink_manager_->regions(); } @@ -293,21 +243,17 @@ std::move(hit_test_region_list)); local_surface_id_lookup_delegate()->SetSurfaceIdMap(display_surface_id); aggregator->Aggregate(display_surface_id); - aggregator->SwapHandles(); // Expect 1 entry routing all events to the one surface (display root). EXPECT_EQ(aggregator->GetRegionCount(), 1); EXPECT_EQ(host_buffer_frame_sink_id(), kDisplayFrameSink); - AggregatedHitTestRegion* regions = host_regions(); - AggregatedHitTestRegion* region = nullptr; - - region = ®ions[0]; - EXPECT_EQ(region->flags, mojom::kHitTestMine); - EXPECT_EQ(region->frame_sink_id, display_surface_id.frame_sink_id()); - EXPECT_EQ(region->rect, gfx::Rect(0, 0, 1024, 768)); - EXPECT_EQ(region->child_count, 0); + AggregatedHitTestRegion region = host_regions()[0]; + EXPECT_EQ(region.flags, mojom::kHitTestMine); + EXPECT_EQ(region.frame_sink_id, display_surface_id.frame_sink_id()); + EXPECT_EQ(region.rect, gfx::Rect(0, 0, 1024, 768)); + EXPECT_EQ(region.child_count, 0); } // One opaque embedder with two regions. @@ -348,30 +294,26 @@ local_surface_id_lookup_delegate()->SetSurfaceIdMap(e_surface_id); aggregator->Aggregate(e_surface_id); - aggregator->SwapHandles(); EXPECT_EQ(aggregator->GetRegionCount(), 3); EXPECT_EQ(host_buffer_frame_sink_id(), kDisplayFrameSink); - AggregatedHitTestRegion* regions = host_regions(); - AggregatedHitTestRegion* region = nullptr; + AggregatedHitTestRegion region = host_regions()[0]; + EXPECT_EQ(region.flags, mojom::kHitTestMine); + EXPECT_EQ(region.frame_sink_id, e_surface_id.frame_sink_id()); + EXPECT_EQ(region.rect, gfx::Rect(0, 0, 1024, 768)); + EXPECT_EQ(region.child_count, 2); - region = ®ions[0]; - EXPECT_EQ(region->flags, mojom::kHitTestMine); - EXPECT_EQ(region->frame_sink_id, e_surface_id.frame_sink_id()); - EXPECT_EQ(region->rect, gfx::Rect(0, 0, 1024, 768)); - EXPECT_EQ(region->child_count, 2); + region = host_regions()[1]; + EXPECT_EQ(region.flags, mojom::kHitTestMine); + EXPECT_EQ(region.rect, gfx::Rect(100, 100, 200, 400)); + EXPECT_EQ(region.child_count, 0); - region = ®ions[1]; - EXPECT_EQ(region->flags, mojom::kHitTestMine); - EXPECT_EQ(region->rect, gfx::Rect(100, 100, 200, 400)); - EXPECT_EQ(region->child_count, 0); - - region = ®ions[2]; - EXPECT_EQ(region->flags, mojom::kHitTestMine); - EXPECT_EQ(region->rect, gfx::Rect(400, 100, 300, 400)); - EXPECT_EQ(region->child_count, 0); + region = host_regions()[2]; + EXPECT_EQ(region.flags, mojom::kHitTestMine); + EXPECT_EQ(region.rect, gfx::Rect(400, 100, 300, 400)); + EXPECT_EQ(region.child_count, 0); } // One embedder with two children. @@ -435,32 +377,28 @@ local_surface_id_lookup_delegate()->SetSurfaceIdMap(c2_surface_id); aggregator->Aggregate(e_surface_id); - aggregator->SwapHandles(); EXPECT_EQ(aggregator->GetRegionCount(), 3); EXPECT_EQ(host_buffer_frame_sink_id(), kDisplayFrameSink); - AggregatedHitTestRegion* regions = host_regions(); - AggregatedHitTestRegion* region = nullptr; + AggregatedHitTestRegion region = host_regions()[0]; + EXPECT_EQ(region.flags, mojom::kHitTestMine); + EXPECT_EQ(region.frame_sink_id, e_surface_id.frame_sink_id()); + EXPECT_EQ(region.rect, gfx::Rect(0, 0, 1024, 768)); + EXPECT_EQ(region.child_count, 2); - region = ®ions[0]; - EXPECT_EQ(region->flags, mojom::kHitTestMine); - EXPECT_EQ(region->frame_sink_id, e_surface_id.frame_sink_id()); - EXPECT_EQ(region->rect, gfx::Rect(0, 0, 1024, 768)); - EXPECT_EQ(region->child_count, 2); + region = host_regions()[1]; + EXPECT_EQ(region.flags, mojom::kHitTestChildSurface); + EXPECT_EQ(region.frame_sink_id, c1_surface_id.frame_sink_id()); + EXPECT_EQ(region.rect, gfx::Rect(100, 100, 200, 300)); + EXPECT_EQ(region.child_count, 0); - region = ®ions[1]; - EXPECT_EQ(region->flags, mojom::kHitTestChildSurface); - EXPECT_EQ(region->frame_sink_id, c1_surface_id.frame_sink_id()); - EXPECT_EQ(region->rect, gfx::Rect(100, 100, 200, 300)); - EXPECT_EQ(region->child_count, 0); - - region = ®ions[2]; - EXPECT_EQ(region->flags, mojom::kHitTestChildSurface); - EXPECT_EQ(region->frame_sink_id, c2_surface_id.frame_sink_id()); - EXPECT_EQ(region->rect, gfx::Rect(400, 100, 400, 300)); - EXPECT_EQ(region->child_count, 0); + region = host_regions()[2]; + EXPECT_EQ(region.flags, mojom::kHitTestChildSurface); + EXPECT_EQ(region.frame_sink_id, c2_surface_id.frame_sink_id()); + EXPECT_EQ(region.rect, gfx::Rect(400, 100, 400, 300)); + EXPECT_EQ(region.child_count, 0); } // Occluded child frame (OOPIF). @@ -516,32 +454,28 @@ local_surface_id_lookup_delegate()->SetSurfaceIdMap(e_surface_id); aggregator->Aggregate(e_surface_id); - aggregator->SwapHandles(); EXPECT_EQ(aggregator->GetRegionCount(), 3); EXPECT_EQ(host_buffer_frame_sink_id(), kDisplayFrameSink); - AggregatedHitTestRegion* regions = host_regions(); - AggregatedHitTestRegion* region = nullptr; + AggregatedHitTestRegion region = host_regions()[0]; + EXPECT_EQ(region.flags, mojom::kHitTestMine); + EXPECT_EQ(region.frame_sink_id, e_surface_id.frame_sink_id()); + EXPECT_EQ(region.rect, gfx::Rect(0, 0, 1024, 768)); + EXPECT_EQ(region.child_count, 2); - region = ®ions[0]; - EXPECT_EQ(region->flags, mojom::kHitTestMine); - EXPECT_EQ(region->frame_sink_id, e_surface_id.frame_sink_id()); - EXPECT_EQ(region->rect, gfx::Rect(0, 0, 1024, 768)); - EXPECT_EQ(region->child_count, 2); + region = host_regions()[1]; + EXPECT_EQ(region.flags, mojom::kHitTestMine); + EXPECT_EQ(region.frame_sink_id, e_surface_id.frame_sink_id()); + EXPECT_EQ(region.rect, gfx::Rect(200, 200, 300, 200)); + EXPECT_EQ(region.child_count, 0); - region = ®ions[1]; - EXPECT_EQ(region->flags, mojom::kHitTestMine); - EXPECT_EQ(region->frame_sink_id, e_surface_id.frame_sink_id()); - EXPECT_EQ(region->rect, gfx::Rect(200, 200, 300, 200)); - EXPECT_EQ(region->child_count, 0); - - region = ®ions[2]; - EXPECT_EQ(mojom::kHitTestChildSurface | mojom::kHitTestMine, region->flags); - EXPECT_EQ(region->frame_sink_id, c_surface_id.frame_sink_id()); - EXPECT_EQ(region->rect, gfx::Rect(100, 100, 200, 500)); - EXPECT_EQ(region->child_count, 0); + region = host_regions()[2]; + EXPECT_EQ(mojom::kHitTestChildSurface | mojom::kHitTestMine, region.flags); + EXPECT_EQ(region.frame_sink_id, c_surface_id.frame_sink_id()); + EXPECT_EQ(region.rect, gfx::Rect(100, 100, 200, 500)); + EXPECT_EQ(region.child_count, 0); } // Foreground child frame (OOPIF). @@ -599,32 +533,28 @@ local_surface_id_lookup_delegate()->SetSurfaceIdMap(e_surface_id); aggregator->Aggregate(e_surface_id); - aggregator->SwapHandles(); EXPECT_EQ(aggregator->GetRegionCount(), 3); EXPECT_EQ(host_buffer_frame_sink_id(), kDisplayFrameSink); - AggregatedHitTestRegion* regions = host_regions(); - AggregatedHitTestRegion* region = nullptr; + AggregatedHitTestRegion region = host_regions()[0]; + EXPECT_EQ(region.flags, mojom::kHitTestMine); + EXPECT_EQ(region.frame_sink_id, e_surface_id.frame_sink_id()); + EXPECT_EQ(region.rect, gfx::Rect(0, 0, 1024, 768)); + EXPECT_EQ(region.child_count, 2); - region = ®ions[0]; - EXPECT_EQ(region->flags, mojom::kHitTestMine); - EXPECT_EQ(region->frame_sink_id, e_surface_id.frame_sink_id()); - EXPECT_EQ(region->rect, gfx::Rect(0, 0, 1024, 768)); - EXPECT_EQ(region->child_count, 2); + region = host_regions()[1]; + EXPECT_EQ(mojom::kHitTestChildSurface | mojom::kHitTestMine, region.flags); + EXPECT_EQ(region.frame_sink_id, c_surface_id.frame_sink_id()); + EXPECT_EQ(region.rect, gfx::Rect(100, 100, 200, 500)); + EXPECT_EQ(region.child_count, 0); - region = ®ions[1]; - EXPECT_EQ(mojom::kHitTestChildSurface | mojom::kHitTestMine, region->flags); - EXPECT_EQ(region->frame_sink_id, c_surface_id.frame_sink_id()); - EXPECT_EQ(region->rect, gfx::Rect(100, 100, 200, 500)); - EXPECT_EQ(region->child_count, 0); - - region = ®ions[2]; - EXPECT_EQ(region->flags, mojom::kHitTestMine); - EXPECT_EQ(region->frame_sink_id, e_surface_id.frame_sink_id()); - EXPECT_EQ(region->rect, gfx::Rect(200, 200, 300, 200)); - EXPECT_EQ(region->child_count, 0); + region = host_regions()[2]; + EXPECT_EQ(region.flags, mojom::kHitTestMine); + EXPECT_EQ(region.frame_sink_id, e_surface_id.frame_sink_id()); + EXPECT_EQ(region.rect, gfx::Rect(200, 200, 300, 200)); + EXPECT_EQ(region.child_count, 0); } // One embedder with a clipped child with a tab and transparent background. @@ -714,43 +644,39 @@ local_surface_id_lookup_delegate()->SetSurfaceIdMap(e_surface_id); aggregator->Aggregate(e_surface_id); - aggregator->SwapHandles(); EXPECT_EQ(aggregator->GetRegionCount(), 4); EXPECT_EQ(host_buffer_frame_sink_id(), kDisplayFrameSink); - AggregatedHitTestRegion* regions = host_regions(); - AggregatedHitTestRegion* region = nullptr; + AggregatedHitTestRegion region = host_regions()[0]; + EXPECT_EQ(region.flags, mojom::kHitTestMine); + EXPECT_EQ(region.frame_sink_id, e_surface_id.frame_sink_id()); + EXPECT_EQ(region.rect, gfx::Rect(0, 0, 1024, 768)); + EXPECT_EQ(region.child_count, 3); - region = ®ions[0]; - EXPECT_EQ(region->flags, mojom::kHitTestMine); - EXPECT_EQ(region->frame_sink_id, e_surface_id.frame_sink_id()); - EXPECT_EQ(region->rect, gfx::Rect(0, 0, 1024, 768)); - EXPECT_EQ(region->child_count, 3); - - region = ®ions[1]; - EXPECT_EQ(mojom::kHitTestChildSurface | mojom::kHitTestIgnore, region->flags); - EXPECT_EQ(region->frame_sink_id, c_surface_id.frame_sink_id()); - EXPECT_EQ(region->rect, gfx::Rect(300, 100, 1600, 800)); - EXPECT_EQ(region->child_count, 2); + region = host_regions()[1]; + EXPECT_EQ(mojom::kHitTestChildSurface | mojom::kHitTestIgnore, region.flags); + EXPECT_EQ(region.frame_sink_id, c_surface_id.frame_sink_id()); + EXPECT_EQ(region.rect, gfx::Rect(300, 100, 1600, 800)); + EXPECT_EQ(region.child_count, 2); gfx::Point point(300, 300); - gfx::Transform transform(region->transform()); + gfx::Transform transform(region.transform()); transform.TransformPointReverse(&point); EXPECT_TRUE(point == gfx::Point(100, 200)); - region = ®ions[2]; - EXPECT_EQ(mojom::kHitTestChildSurface | mojom::kHitTestMine, region->flags); - EXPECT_EQ(region->frame_sink_id, a_surface_id.frame_sink_id()); - EXPECT_EQ(region->rect, gfx::Rect(0, 0, 200, 100)); - EXPECT_EQ(region->child_count, 0); + region = host_regions()[2]; + EXPECT_EQ(mojom::kHitTestChildSurface | mojom::kHitTestMine, region.flags); + EXPECT_EQ(region.frame_sink_id, a_surface_id.frame_sink_id()); + EXPECT_EQ(region.rect, gfx::Rect(0, 0, 200, 100)); + EXPECT_EQ(region.child_count, 0); - region = ®ions[3]; - EXPECT_EQ(mojom::kHitTestChildSurface | mojom::kHitTestMine, region->flags); - EXPECT_EQ(region->frame_sink_id, b_surface_id.frame_sink_id()); - EXPECT_EQ(region->rect, gfx::Rect(0, 100, 800, 600)); - EXPECT_EQ(region->child_count, 0); + region = host_regions()[3]; + EXPECT_EQ(mojom::kHitTestChildSurface | mojom::kHitTestMine, region.flags); + EXPECT_EQ(region.frame_sink_id, b_surface_id.frame_sink_id()); + EXPECT_EQ(region.rect, gfx::Rect(0, 100, 800, 600)); + EXPECT_EQ(region.child_count, 0); } // Three children deep. @@ -841,38 +767,34 @@ local_surface_id_lookup_delegate()->SetSurfaceIdMap(c2_surface_id); aggregator->Aggregate(e_surface_id); - aggregator->SwapHandles(); EXPECT_EQ(aggregator->GetRegionCount(), 4); EXPECT_EQ(host_buffer_frame_sink_id(), kDisplayFrameSink); - AggregatedHitTestRegion* regions = host_regions(); - AggregatedHitTestRegion* region = nullptr; + AggregatedHitTestRegion region = host_regions()[0]; + EXPECT_EQ(region.flags, mojom::kHitTestMine); + EXPECT_EQ(region.frame_sink_id, e_surface_id.frame_sink_id()); + EXPECT_EQ(region.rect, gfx::Rect(0, 0, 1024, 768)); + EXPECT_EQ(region.child_count, 3); - region = ®ions[0]; - EXPECT_EQ(region->flags, mojom::kHitTestMine); - EXPECT_EQ(region->frame_sink_id, e_surface_id.frame_sink_id()); - EXPECT_EQ(region->rect, gfx::Rect(0, 0, 1024, 768)); - EXPECT_EQ(region->child_count, 3); + region = host_regions()[1]; + EXPECT_EQ(mojom::kHitTestChildSurface | mojom::kHitTestMine, region.flags); + EXPECT_EQ(region.frame_sink_id, c1_surface_id.frame_sink_id()); + EXPECT_EQ(region.rect, gfx::Rect(100, 100, 700, 700)); + EXPECT_EQ(region.child_count, 2); - region = ®ions[1]; - EXPECT_EQ(mojom::kHitTestChildSurface | mojom::kHitTestMine, region->flags); - EXPECT_EQ(region->frame_sink_id, c1_surface_id.frame_sink_id()); - EXPECT_EQ(region->rect, gfx::Rect(100, 100, 700, 700)); - EXPECT_EQ(region->child_count, 2); + region = host_regions()[2]; + EXPECT_EQ(mojom::kHitTestChildSurface | mojom::kHitTestMine, region.flags); + EXPECT_EQ(region.frame_sink_id, c2_surface_id.frame_sink_id()); + EXPECT_EQ(region.rect, gfx::Rect(100, 100, 500, 500)); + EXPECT_EQ(region.child_count, 1); - region = ®ions[2]; - EXPECT_EQ(mojom::kHitTestChildSurface | mojom::kHitTestMine, region->flags); - EXPECT_EQ(region->frame_sink_id, c2_surface_id.frame_sink_id()); - EXPECT_EQ(region->rect, gfx::Rect(100, 100, 500, 500)); - EXPECT_EQ(region->child_count, 1); - - region = ®ions[3]; - EXPECT_EQ(mojom::kHitTestChildSurface | mojom::kHitTestMine, region->flags); - EXPECT_EQ(region->frame_sink_id, c3_surface_id.frame_sink_id()); - EXPECT_EQ(region->rect, gfx::Rect(100, 100, 300, 300)); - EXPECT_EQ(region->child_count, 0); + region = host_regions()[3]; + EXPECT_EQ(mojom::kHitTestChildSurface | mojom::kHitTestMine, region.flags); + EXPECT_EQ(region.frame_sink_id, c3_surface_id.frame_sink_id()); + EXPECT_EQ(region.rect, gfx::Rect(100, 100, 300, 300)); + EXPECT_EQ(region.child_count, 0); } // Missing / late child. @@ -922,27 +844,23 @@ local_surface_id_lookup_delegate()->SetSurfaceIdMap(e_surface_id); aggregator->Aggregate(e_surface_id); - aggregator->SwapHandles(); // Child c didn't submit any CompositorFrame. Events should go to parent. EXPECT_EQ(aggregator->GetRegionCount(), 2); EXPECT_EQ(host_buffer_frame_sink_id(), kDisplayFrameSink); - AggregatedHitTestRegion* regions = host_regions(); - AggregatedHitTestRegion* region = nullptr; + AggregatedHitTestRegion region = host_regions()[0]; + EXPECT_EQ(region.flags, mojom::kHitTestMine); + EXPECT_EQ(region.frame_sink_id, e_surface_id.frame_sink_id()); + EXPECT_EQ(region.rect, gfx::Rect(0, 0, 1024, 768)); + EXPECT_EQ(region.child_count, 1); - region = ®ions[0]; - EXPECT_EQ(region->flags, mojom::kHitTestMine); - EXPECT_EQ(region->frame_sink_id, e_surface_id.frame_sink_id()); - EXPECT_EQ(region->rect, gfx::Rect(0, 0, 1024, 768)); - EXPECT_EQ(region->child_count, 1); - - region = ®ions[1]; - EXPECT_EQ(region->flags, mojom::kHitTestMine); - EXPECT_EQ(region->frame_sink_id, e_surface_id.frame_sink_id()); - EXPECT_EQ(region->rect, gfx::Rect(200, 200, 300, 200)); - EXPECT_EQ(region->child_count, 0); + region = host_regions()[1]; + EXPECT_EQ(region.flags, mojom::kHitTestMine); + EXPECT_EQ(region.frame_sink_id, e_surface_id.frame_sink_id()); + EXPECT_EQ(region.rect, gfx::Rect(200, 200, 300, 200)); + EXPECT_EQ(region.child_count, 0); } // Exceed limits to ensure that bounds and resize work. @@ -970,14 +888,13 @@ TestHitTestAggregator* aggregator = hit_test_aggregator(); EXPECT_EQ(aggregator->GetRegionCount(), 0); - EXPECT_LT(aggregator->GetHitTestRegionListSize(), 4096); + EXPECT_LT(aggregator->GetHitTestRegionListCapacity(), 4096); SurfaceId display_surface_id = MakeSurfaceId(kDisplayClientId); CreateAndSubmitHitTestRegionListWith8Children(kDisplayClientId, 3); aggregator->Aggregate(display_surface_id); - aggregator->SwapHandles(); // Expect 4680 regions: // 8 children 4 levels deep 8*8*8*8 is 4096 @@ -985,17 +902,10 @@ // 1 root + 1 // ----- // 4681. - EXPECT_GE(aggregator->GetHitTestRegionListSize(), 4681); + EXPECT_GE(aggregator->GetHitTestRegionListCapacity(), 4681); EXPECT_EQ(host_buffer_frame_sink_id(), kDisplayFrameSink); - AggregatedHitTestRegion* regions = host_regions(); - - uint32_t count = 0; - while (regions->child_count != kEndOfList) { - regions++; - count++; - } - EXPECT_EQ(count, 4681u); + EXPECT_EQ(host_regions().size(), 4681u); } TEST_F(HitTestAggregatorTest, DiscardedSurfaces) { @@ -1045,7 +955,6 @@ local_surface_id_lookup_delegate()->SetSurfaceIdMap(e_surface_id); aggregator->Aggregate(e_surface_id); - aggregator->SwapHandles(); EXPECT_TRUE(hit_test_manager()->GetActiveHitTestRegionList( local_surface_id_lookup_delegate(), e_surface_id.frame_sink_id()));
diff --git a/components/viz/service/hit_test/hit_test_manager_fuzzer.cc b/components/viz/service/hit_test/hit_test_manager_fuzzer.cc index da94df1..a573597 100644 --- a/components/viz/service/hit_test/hit_test_manager_fuzzer.cc +++ b/components/viz/service/hit_test/hit_test_manager_fuzzer.cc
@@ -14,7 +14,6 @@ #include "components/viz/service/hit_test/hit_test_manager.h" #include "components/viz/test/compositor_frame_helpers.h" #include "components/viz/test/test_latest_local_surface_id_lookup_delegate.h" -#include "mojo/edk/embedder/embedder.h" namespace { @@ -127,22 +126,9 @@ fuzz->ConsumeBool() ? std::move(hit_test_region_list) : nullptr); } -class Environment { - public: - Environment() { - // Initialize environment so that we can create the mojo shared memory - // handles. - base::CommandLine::Init(0, nullptr); - mojo::edk::Init(); - } -}; - } // namespace extern "C" int LLVMFuzzerTestOneInput(const uint8_t* data, size_t num_bytes) { - // Initialize the environment only once. - static Environment environment; - base::FuzzedDataProvider fuzz(data, num_bytes); viz::FrameSinkManagerImpl frame_sink_manager; viz::TestLatestLocalSurfaceIdLookupDelegate delegate;
diff --git a/components/viz/test/test_frame_sink_manager_client.h b/components/viz/test/test_frame_sink_manager_client.h index 1663bbcb..962f58027 100644 --- a/components/viz/test/test_frame_sink_manager_client.h +++ b/components/viz/test/test_frame_sink_manager_client.h
@@ -40,13 +40,7 @@ void OnFirstSurfaceActivation(const SurfaceInfo& surface_info) override {} void OnAggregatedHitTestRegionListUpdated( const FrameSinkId& frame_sink_id, - mojo::ScopedSharedBufferHandle active_handle, - uint32_t active_handle_size, - mojo::ScopedSharedBufferHandle idle_handle, - uint32_t idle_handle_sizes) override {} - void SwitchActiveAggregatedHitTestRegionList( - const FrameSinkId& frame_sink_id, - uint8_t active_handle_index) override {} + const std::vector<AggregatedHitTestRegion>& hit_test_data) override {} void OnFrameTokenChanged(const FrameSinkId& frame_sink_id, uint32_t frame_token) override {}
diff --git a/components/zucchini/BUILD.gn b/components/zucchini/BUILD.gn index f36c949..49f54fbd 100644 --- a/components/zucchini/BUILD.gn +++ b/components/zucchini/BUILD.gn
@@ -209,4 +209,9 @@ "//components/zucchini/fuzzers:zucchini_disassembler_win32_fuzzer", "//components/zucchini/fuzzers:zucchini_patch_fuzzer", ] + + # Ensure protoc is available. + if (current_toolchain == host_toolchain) { + deps += [ "//components/zucchini/fuzzers:zucchini_raw_apply_fuzzer" ] + } }
diff --git a/components/zucchini/fuzzers/BUILD.gn b/components/zucchini/fuzzers/BUILD.gn index 2e489fd..66c3d18 100644 --- a/components/zucchini/fuzzers/BUILD.gn +++ b/components/zucchini/fuzzers/BUILD.gn
@@ -3,6 +3,7 @@ # found in the LICENSE file. import("//testing/libfuzzer/fuzzer_test.gni") +import("//third_party/protobuf/proto_library.gni") # To download the corpus for local fuzzing use: # gsutil -m rsync \ @@ -28,3 +29,56 @@ ] seed_corpus = "testdata/patch_fuzzer" } + +proto_library("zucchini_file_pair_proto") { + sources = [ + "file_pair.proto", + ] +} + +# Ensure protoc is available. +if (current_toolchain == host_toolchain) { + action("zucchini_raw_apply_seed") { + script = "generate_fuzzer_data.py" + + args = [ + "--raw", + "old_eventlog_provider.dll", # <old_file> + "new_eventlog_provider.dll", # <new_file> + "eventlog_provider.patch", # <patch_file> (temporary) + + # <output_dir> + rebase_path("$target_gen_dir/testdata/raw_apply_fuzzer", root_build_dir), + ] + + # Files depended upon. + sources = [ + "create_seed_file_pair.py", + "testdata/new_eventlog_provider.dll", + "testdata/old_eventlog_provider.dll", + ] + + # Outputs: necessary for validation. + outputs = [ + "$target_gen_dir/testdata/raw_apply_fuzzer/seed_proto.bin", + ] + deps = [ + "//components/zucchini:zucchini", + "//third_party/protobuf:protoc", + ] + } + + fuzzer_test("zucchini_raw_apply_fuzzer") { + sources = [ + "raw_apply_fuzzer.cc", + ] + deps = [ + ":zucchini_file_pair_proto", + "//base", + "//components/zucchini:zucchini_lib", + "//third_party/libprotobuf-mutator", + ] + seed_corpus = "$target_gen_dir/testdata/raw_apply_fuzzer" + seed_corpus_deps = [ ":zucchini_raw_apply_seed" ] + } +}
diff --git a/components/zucchini/fuzzers/create_seed_file_pair.py b/components/zucchini/fuzzers/create_seed_file_pair.py new file mode 100755 index 0000000..a44db7b --- /dev/null +++ b/components/zucchini/fuzzers/create_seed_file_pair.py
@@ -0,0 +1,73 @@ +#!/usr/bin/env python +# 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. + +"""Create binary protobuf encoding for fuzzer seeds. + +This script is used to generate binary encoded protobuf seeds for fuzzers +related to Zucchini-gen and -apply, which take pairs of files are arguments. The +binary protobuf format is faster to parse so it is the preferred method for +encoding the seeds. For gen related fuzzers this should only need to be run +once. For any apply related fuzzers this should be rerun whenever the patch +format is changed. +""" + +import argparse +import logging +import os +import subprocess +import sys + +ABS_PATH = os.path.abspath(os.path.join(os.path.dirname(__file__))) +PROTO_DEFINITION_FILE = 'file_pair.proto' +OUTPUT_FORMAT = b'old_file: "{}"\nnew_or_patch_file: "{}"' + +def parse_args(): + """Parse commandline args.""" + parser = argparse.ArgumentParser() + parser.add_argument('protoc_path', help='Path to protoc.') + parser.add_argument('old_file', help='Old file to generate/apply patch.') + parser.add_argument('new_or_patch_file', + help='New file to generate or patch to apply.') + parser.add_argument('output_file', help='File to write binary protobuf to.') + return parser.parse_args() + + +def read_to_proto_escaped_string(filename): + """Reads a file and converts it to hex escape sequences.""" + with open(filename, 'rb') as f: + # Note that string_escape escapes all non-ASCII printable characters + # excluding ", which needs to be manually escaped. + return f.read().encode('string_escape').replace('"', '\\"') + + +def main(): + args = parse_args() + # Create an ASCII string representing a protobuf. + content = OUTPUT_FORMAT.format(read_to_proto_escaped_string(args.old_file), + read_to_proto_escaped_string( + args.new_or_patch_file)) + + # Encode the ASCII protobuf as a binary protobuf. + ps = subprocess.Popen([args.protoc_path, '--proto_path=%s' % ABS_PATH, + '--encode=zucchini.fuzzers.FilePair', + os.path.join(ABS_PATH, PROTO_DEFINITION_FILE)], + stdin=subprocess.PIPE, + stdout=subprocess.PIPE) + # Write the string to the subprocess. Single line IO is fine as protoc returns + # a string. + output = ps.communicate(input=content) + ps.wait() + if ps.returncode: + logging.error('Binary protobuf encoding failed.') + return ps.returncode + + # Write stdout of the subprocess for protoc to the |output_file|. + with open(args.output_file, 'wb') as f: + f.write(output[0]) + return 0 + + +if __name__ == '__main__': + sys.exit(main())
diff --git a/components/zucchini/fuzzers/file_pair.proto b/components/zucchini/fuzzers/file_pair.proto new file mode 100644 index 0000000..2216381 --- /dev/null +++ b/components/zucchini/fuzzers/file_pair.proto
@@ -0,0 +1,15 @@ +// 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. + +syntax = "proto2"; + +package zucchini.fuzzers; + +// NEXT_TAG = 3 +message FilePair { + // File to generate patch from or apply patch to. + required bytes old_file = 1; + // New file to generate patch or the patch to apply. + required bytes new_or_patch_file = 2; +}
diff --git a/components/zucchini/fuzzers/generate_fuzzer_data.py b/components/zucchini/fuzzers/generate_fuzzer_data.py new file mode 100755 index 0000000..55e1edcf --- /dev/null +++ b/components/zucchini/fuzzers/generate_fuzzer_data.py
@@ -0,0 +1,89 @@ +#!/usr/bin/env python +# 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. + +"""Script for generating new binary protobuf seeds for fuzzers. + +Currently supports creating a single seed binary protobuf of the form +zucchini.fuzzer.FilePair. +""" + +import argparse +import hashlib +import logging +import os +import platform +import subprocess +import sys + +ABS_PATH = os.path.abspath(os.path.join(os.path.dirname(__file__))) +ABS_TESTDATA_PATH = os.path.join(ABS_PATH, 'testdata') + +def parse_args(): + """Parses arguments from command-line.""" + parser = argparse.ArgumentParser() + parser.add_argument('--raw', help='Whether to use Raw Zucchini.', + action='store_true') + parser.add_argument('old_file', help='Old file to generate/apply patch.') + parser.add_argument('new_file', help='New file to generate patch from.') + parser.add_argument('patch_file', help='Patch filename to use.') + parser.add_argument('output_dir', + help='Directory to write binary protobuf to.') + return parser.parse_args() + + +def gen(old_file, new_file, patch_file, output_dir, is_raw, is_win): + """Generates a new patch and binary encodes a protobuf pair.""" + # Create output directory if missing. + if not os.path.exists(output_dir): + os.makedirs(output_dir) + + # Handle Windows executable names. + zucchini = 'zucchini' + protoc = 'protoc' + # NOTE: Windows can't find Python via #! so we have to help it. + python = sys.executable + if not python: + python = 'python' + if is_win: + if not python.lower().endswith('.exe'): + python += '.exe' + zucchini += '.exe' + protoc += '.exe' + + zuc_cmd = [os.path.abspath(zucchini), '-gen'] + if is_raw: + zuc_cmd.append('-raw') + # Generate a new patch. + ret = subprocess.call(zuc_cmd + [old_file, new_file, patch_file], + stdout=subprocess.PIPE, + stderr=subprocess.PIPE) + if ret: + logging.error('Patch generation failed for ({}, {})'.format(old_file, + new_file)) + return ret + # Binary encode the protobuf pair. + ret = subprocess.call([python, + os.path.join(ABS_PATH, 'create_seed_file_pair.py'), + os.path.abspath(protoc), old_file, patch_file, + os.path.join(output_dir, 'seed_proto.bin')], + stdout=subprocess.PIPE, + stderr=subprocess.PIPE) + os.remove(patch_file) + return ret + + +def main(): + args = parse_args() + return gen(os.path.join(ABS_TESTDATA_PATH, args.old_file), + os.path.join(ABS_TESTDATA_PATH, args.new_file), + os.path.join(ABS_TESTDATA_PATH, args.patch_file), + os.path.abspath(args.output_dir), + args.raw, + platform.system() == 'Windows') + + +if __name__ == '__main__': + sys.exit(main()) +
diff --git a/components/zucchini/fuzzers/raw_apply_fuzzer.cc b/components/zucchini/fuzzers/raw_apply_fuzzer.cc new file mode 100644 index 0000000..da3230a8 --- /dev/null +++ b/components/zucchini/fuzzers/raw_apply_fuzzer.cc
@@ -0,0 +1,59 @@ +// 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 <stdint.h> +#include <stdlib.h> + +#include <iostream> +#include <vector> + +#include "base/environment.h" +#include "base/logging.h" +#include "components/zucchini/buffer_view.h" +#include "components/zucchini/fuzzers/file_pair.pb.h" +#include "components/zucchini/patch_reader.h" +#include "components/zucchini/zucchini.h" +#include "testing/libfuzzer/proto/lpm_interface.h" + +struct Environment { + Environment() { + logging::SetMinLogLevel(3); // Disable console spamming. + } +}; + +Environment* env = new Environment(); + +DEFINE_BINARY_PROTO_FUZZER(const zucchini::fuzzers::FilePair& file_pair) { + // Dump code for debugging. + if (base::Environment::Create()->HasVar("LPM_DUMP_NATIVE_INPUT")) { + std::cout << "Old File: " << file_pair.old_file() << std::endl + << "Patch File: " << file_pair.new_or_patch_file() << std::endl; + } + + // Prepare data. + zucchini::ConstBufferView old_image( + reinterpret_cast<const uint8_t*>(file_pair.old_file().data()), + file_pair.old_file().size()); + zucchini::ConstBufferView patch_file( + reinterpret_cast<const uint8_t*>(file_pair.new_or_patch_file().data()), + file_pair.new_or_patch_file().size()); + + // Generate a patch reader. + auto patch_reader = zucchini::EnsemblePatchReader::Create(patch_file); + // Abort if the patch can't be read. + if (!patch_reader.has_value()) + return; + + // Create the underlying new file. + size_t new_size = patch_reader->header().new_size; + // Reject unreasonably large "new" files that fuzzed patch may specify. + if (new_size > 64 * 1024) + return; + std::vector<uint8_t> new_data(new_size); + zucchini::MutableBufferView new_image(new_data.data(), new_size); + + // Fuzz target. + zucchini::Apply(old_image, *patch_reader, new_image); + // No need to check whether output exist, or if so, whether it's valid. +}
diff --git a/components/zucchini/fuzzers/testdata/.gitignore b/components/zucchini/fuzzers/testdata/.gitignore new file mode 100644 index 0000000..d3458896 --- /dev/null +++ b/components/zucchini/fuzzers/testdata/.gitignore
@@ -0,0 +1,4 @@ +# Exclude testdata binaries. +*.bin +*.dll +*.patch
diff --git a/components/zucchini/fuzzers/testdata/new_eventlog_provider.dll.sha1 b/components/zucchini/fuzzers/testdata/new_eventlog_provider.dll.sha1 new file mode 100644 index 0000000..bbf56f9 --- /dev/null +++ b/components/zucchini/fuzzers/testdata/new_eventlog_provider.dll.sha1
@@ -0,0 +1 @@ +89ce67035d2d2dae33cb2d98d4762e955b93df95 \ No newline at end of file
diff --git a/components/zucchini/fuzzers/testdata/old_eventlog_provider.dll.sha1 b/components/zucchini/fuzzers/testdata/old_eventlog_provider.dll.sha1 new file mode 100644 index 0000000..5daf4406 --- /dev/null +++ b/components/zucchini/fuzzers/testdata/old_eventlog_provider.dll.sha1
@@ -0,0 +1 @@ +c80fdce994ba043956e192f650d894555460ff9b \ No newline at end of file
diff --git a/content/app/strings/translations/content_strings_et.xtb b/content/app/strings/translations/content_strings_et.xtb index f737e60..3561a43 100644 --- a/content/app/strings/translations/content_strings_et.xtb +++ b/content/app/strings/translations/content_strings_et.xtb
@@ -94,7 +94,7 @@ <translation id="5034860022980953847">edenemise näidik</translation> <translation id="5117590920725113268">Järgmise kuu kuvamine</translation> <translation id="512758898067543763">rea päis</translation> -<translation id="5153163864850940242">Videot esitatakse pilt-pildis režiimis</translation> +<translation id="5153163864850940242">Videot esitatakse pilt-pildis-režiimis</translation> <translation id="5164977714490026579">Väärtus peab olema suurem või võrdne <ph name="MINIMUM" />-ga.</translation> <translation id="520299402983819650"><ph name="QUANTITY" /> PB</translation> <translation id="5307600278924710095">Sisestage märgile „<ph name="ATSIGN" />” eelnev osa. Aadress „<ph name="INVALIDADDRESS" />” pole täielik.</translation>
diff --git a/content/browser/android/content_protocol_handler_impl.cc b/content/browser/android/content_protocol_handler_impl.cc index 143dc30..1724873 100644 --- a/content/browser/android/content_protocol_handler_impl.cc +++ b/content/browser/android/content_protocol_handler_impl.cc
@@ -4,7 +4,8 @@ #include "content/browser/android/content_protocol_handler_impl.h" -#include "base/memory/ptr_util.h" +#include <memory> + #include "base/task_runner.h" #include "content/browser/android/url_request_content_job.h" #include "net/base/net_errors.h" @@ -16,7 +17,7 @@ // static std::unique_ptr<ContentProtocolHandler> ContentProtocolHandler::Create( const scoped_refptr<base::TaskRunner>& content_task_runner) { - return base::WrapUnique(new ContentProtocolHandlerImpl(content_task_runner)); + return std::make_unique<ContentProtocolHandlerImpl>(content_task_runner); } ContentProtocolHandlerImpl::ContentProtocolHandlerImpl(
diff --git a/content/browser/browser_context.cc b/content/browser/browser_context.cc index af7cced..ed228ce 100644 --- a/content/browser/browser_context.cc +++ b/content/browser/browser_context.cc
@@ -143,8 +143,11 @@ AppCacheServiceImpl* appcache_service) { net::URLRequestContext* context = context_getter->GetURLRequestContext(); context->cookie_store()->SetForceKeepSessionState(); - context->channel_id_service()->GetChannelIDStore()-> - SetForceKeepSessionState(); + if (context->channel_id_service()) { + context->channel_id_service() + ->GetChannelIDStore() + ->SetForceKeepSessionState(); + } appcache_service->set_force_keep_session_state(); }
diff --git a/content/browser/frame_host/navigation_handle_impl_browsertest.cc b/content/browser/frame_host/navigation_handle_impl_browsertest.cc index d2773b5..b2256821 100644 --- a/content/browser/frame_host/navigation_handle_impl_browsertest.cc +++ b/content/browser/frame_host/navigation_handle_impl_browsertest.cc
@@ -1898,26 +1898,20 @@ GURL url(embedded_test_server()->GetURL("/title1.html")); EXPECT_TRUE(NavigateToURL(shell(), url)); - const struct { - const GURL renderer_debug_url; - const net::Error error_code; - } kTestCases[] = { - {GURL("javascript:window.alert('hello')"), net::ERR_ABORTED}, - {GURL(kChromeUIBadCastCrashURL), net::ERR_UNSAFE_REDIRECT}, - {GURL(kChromeUICrashURL), net::ERR_UNSAFE_REDIRECT}, - {GURL(kChromeUIDumpURL), net::ERR_UNSAFE_REDIRECT}, - {GURL(kChromeUIKillURL), net::ERR_UNSAFE_REDIRECT}, - {GURL(kChromeUIHangURL), net::ERR_UNSAFE_REDIRECT}, - {GURL(kChromeUIShorthangURL), net::ERR_UNSAFE_REDIRECT}, - {GURL(kChromeUIMemoryExhaustURL), net::ERR_UNSAFE_REDIRECT}, - }; + const GURL kTestUrls[] = {GURL("javascript:window.alert('hello')"), + GURL(kChromeUIBadCastCrashURL), + GURL(kChromeUICrashURL), + GURL(kChromeUIDumpURL), + GURL(kChromeUIKillURL), + GURL(kChromeUIHangURL), + GURL(kChromeUIShorthangURL), + GURL(kChromeUIMemoryExhaustURL)}; - for (const auto& test_case : kTestCases) { - SCOPED_TRACE(testing::Message() - << "renderer_debug_url = " << test_case.renderer_debug_url); + for (const auto& test_url : kTestUrls) { + SCOPED_TRACE(testing::Message() << "renderer_debug_url = " << test_url); - GURL redirecting_url = embedded_test_server()->GetURL( - "/server-redirect?" + test_case.renderer_debug_url.spec()); + GURL redirecting_url = + embedded_test_server()->GetURL("/server-redirect?" + test_url.spec()); NavigationHandleObserver observer(shell()->web_contents(), redirecting_url); NavigationLogger logger(shell()->web_contents()); @@ -1925,7 +1919,7 @@ // Try to navigate to the url. The navigation should be canceled and the // NavigationHandle should have the right error code. EXPECT_FALSE(NavigateToURL(shell(), redirecting_url)); - EXPECT_EQ(test_case.error_code, observer.net_error_code()); + EXPECT_EQ(net::ERR_UNSAFE_REDIRECT, observer.net_error_code()); // Both WebContentsObserver::{DidStartNavigation, DidFinishNavigation} // are called, but no WebContentsObserver::DidRedirectNavigation.
diff --git a/content/browser/frame_host/navigation_request.cc b/content/browser/frame_host/navigation_request.cc index 83fe90f..e6f8ac3 100644 --- a/content/browser/frame_host/navigation_request.cc +++ b/content/browser/frame_host/navigation_request.cc
@@ -720,9 +720,7 @@ redirect_info.new_url)) { DVLOG(1) << "Denied redirect for " << redirect_info.new_url.possibly_invalid_spec(); - // TODO(arthursonzogni): Consider switching to net::ERR_UNSAFE_REDIRECT - // when PlzNavigate is launched. - navigation_handle_->set_net_error_code(net::ERR_ABORTED); + navigation_handle_->set_net_error_code(net::ERR_UNSAFE_REDIRECT); frame_tree_node_->ResetNavigationRequest(false, true); return; } @@ -736,7 +734,7 @@ redirect_info.new_url)) { DVLOG(1) << "Denied unauthorized redirect for " << redirect_info.new_url.possibly_invalid_spec(); - navigation_handle_->set_net_error_code(net::ERR_ABORTED); + navigation_handle_->set_net_error_code(net::ERR_UNSAFE_REDIRECT); frame_tree_node_->ResetNavigationRequest(false, true); return; }
diff --git a/content/browser/loader/resource_dispatcher_host_impl.cc b/content/browser/loader/resource_dispatcher_host_impl.cc index e77a2f5..3a2320c 100644 --- a/content/browser/loader/resource_dispatcher_host_impl.cc +++ b/content/browser/loader/resource_dispatcher_host_impl.cc
@@ -84,6 +84,7 @@ #include "content/public/common/content_constants.h" #include "content/public/common/content_features.h" #include "content/public/common/origin_util.h" +#include "content/public/common/resource_type.h" #include "net/base/auth.h" #include "net/base/load_flags.h" #include "net/base/mime_util.h" @@ -546,7 +547,8 @@ ResourceRequestInfoImpl* resource_request_info = ResourceRequestInfoImpl::ForRequest(request); DCHECK(resource_request_info); - bool is_main_frame = resource_request_info->IsMainFrame(); + bool is_main_frame = + resource_request_info->GetResourceType() == RESOURCE_TYPE_MAIN_FRAME; GlobalRequestID request_id = resource_request_info->GetGlobalRequestID(); GURL url = request->url();
diff --git a/content/browser/network_service_client.cc b/content/browser/network_service_client.cc index a74cb35..640e9f6c 100644 --- a/content/browser/network_service_client.cc +++ b/content/browser/network_service_client.cc
@@ -15,8 +15,8 @@ #include "content/public/browser/browser_context.h" #include "content/public/browser/browser_thread.h" #include "content/public/browser/login_delegate.h" -#include "content/public/browser/render_frame_host.h" #include "content/public/browser/resource_request_info.h" +#include "content/public/common/resource_type.h" #include "mojo/public/cpp/bindings/strong_binding.h" #include "net/ssl/client_cert_store.h" @@ -297,11 +297,8 @@ return; } - RenderFrameHost* rfh = - process_id - ? RenderFrameHost::FromID(process_id, routing_id) - : FrameTreeNode::GloballyFindByID(routing_id)->current_frame_host(); - bool is_main_frame = !rfh->GetParent(); + bool is_main_frame = + static_cast<ResourceType>(resource_type) == RESOURCE_TYPE_MAIN_FRAME; new LoginHandlerDelegate( std::move(auth_challenge_responder), std::move(web_contents_getter), auth_info, is_main_frame, process_id, routing_id, request_id, url,
diff --git a/content/public/test/content_browser_test_utils.h b/content/public/test/content_browser_test_utils.h index 6224927..ee772640 100644 --- a/content/public/test/content_browser_test_utils.h +++ b/content/public/test/content_browser_test_utils.h
@@ -141,7 +141,9 @@ class RenderWidgetHostViewCocoaObserver { public: // The method name for 'didAddSubview'. - static const char* kDidAddSubview; + static constexpr char kDidAddSubview[] = "didAddSubview:"; + static constexpr char kShowDefinitionForAttributedString[] = + "showDefinitionForAttributedString:atPoint:"; // Returns the method swizzler for the given |method_name|. This is useful // when the original implementation of the method is needed. @@ -162,6 +164,10 @@ // coordinates. The view will be dismissed shortly after this call. virtual void DidAddSubviewWillBeDismissed( const gfx::Rect& rect_in_root_view) {} + // Called when RenderWidgeHostViewCocoa is asked to show definition of + // |for_word| using Mac's dictionary popup. + virtual void OnShowDefinitionForAttributedString( + const std::string& for_word) {} WebContents* web_contents() const { return web_contents_; }
diff --git a/content/public/test/content_browser_test_utils_mac.mm b/content/public/test/content_browser_test_utils_mac.mm index 17cf6e9..195a978 100644 --- a/content/public/test/content_browser_test_utils_mac.mm +++ b/content/public/test/content_browser_test_utils_mac.mm
@@ -28,6 +28,8 @@ // RenderWidgetHostViewCocoa methods for tests. @interface RenderWidgetHostViewCocoaSwizzler : NSObject - (void)didAddSubview:(NSView*)view; +- (void)showDefinitionForAttributedString:(NSAttributedString*)attrString + atPoint:(NSPoint)textBaselineOrigin; @end namespace content { @@ -35,7 +37,9 @@ using base::mac::ScopedObjCClassSwizzler; // static -const char* RenderWidgetHostViewCocoaObserver::kDidAddSubview = "didAddSubview"; +constexpr char RenderWidgetHostViewCocoaObserver::kDidAddSubview[]; +constexpr char + RenderWidgetHostViewCocoaObserver::kShowDefinitionForAttributedString[]; // static std::map<std::string, std::unique_ptr<base::mac::ScopedObjCClassSwizzler>> @@ -97,20 +101,25 @@ return; // [RenderWidgetHostViewCocoa didAddSubview:NSView*]. - SEL selector = NSSelectorFromString([NSString - stringWithUTF8String:base::StringPrintf("%s:", kDidAddSubview).c_str()]); rwhvcocoa_swizzlers_[kDidAddSubview] = std::make_unique<ScopedObjCClassSwizzler>( GetRenderWidgetHostViewCocoaClassForTesting(), - [RenderWidgetHostViewCocoaSwizzler class], selector); + [RenderWidgetHostViewCocoaSwizzler class], + NSSelectorFromString(@(kDidAddSubview))); + + // [RenderWidgetHostViewCocoa showDefinitionForAttributedString:atPoint]. + rwhvcocoa_swizzlers_[kShowDefinitionForAttributedString] = + std::make_unique<ScopedObjCClassSwizzler>( + GetRenderWidgetHostViewCocoaClassForTesting(), + [RenderWidgetHostViewCocoaSwizzler class], + NSSelectorFromString(@(kShowDefinitionForAttributedString))); } void SetWindowBounds(gfx::NativeWindow window, const gfx::Rect& bounds) { NSRect new_bounds = NSRectFromCGRect(bounds.ToCGRect()); if ([[NSScreen screens] count] > 0) { - new_bounds.origin.y = - [[[NSScreen screens] firstObject] frame].size.height - - new_bounds.origin.y - new_bounds.size.height; + new_bounds.origin.y = [[[NSScreen screens] firstObject] frame].size.height - + new_bounds.origin.y - new_bounds.size.height; } [window setFrame:new_bounds display:NO]; @@ -191,4 +200,22 @@ pressure:1.0]; [[NSApplication sharedApplication] postEvent:dismissal_event atStart:false]; } + +- (void)showDefinitionForAttributedString:(NSAttributedString*)attrString + atPoint:(NSPoint)textBaselineOrigin { + content::RenderWidgetHostViewCocoaObserver::GetSwizzler( + content::RenderWidgetHostViewCocoaObserver:: + kShowDefinitionForAttributedString) + ->GetOriginalImplementation()(self, _cmd, attrString, textBaselineOrigin); + + auto* rwhv_mac = content::GetRenderWidgetHostViewMac(self); + + auto* observer = content::RenderWidgetHostViewCocoaObserver::GetObserver( + rwhv_mac->GetWebContents()); + + if (!observer) + return; + observer->OnShowDefinitionForAttributedString( + base::SysNSStringToUTF8([attrString string])); +} @end
diff --git a/content/renderer/media/audio_renderer_sink_cache.h b/content/renderer/media/audio_renderer_sink_cache.h index 762b1691..4a06a3fc 100644 --- a/content/renderer/media/audio_renderer_sink_cache.h +++ b/content/renderer/media/audio_renderer_sink_cache.h
@@ -17,11 +17,12 @@ } namespace content { +class RenderFrame; // Caches AudioRendererSink instances, provides them to the clients for usage, // tracks their used/unused state, reuses them to obtain output device // information, garbage-collects unused sinks. -// Thread safe. +// Must live on the main render thread. Thread safe. class CONTENT_EXPORT AudioRendererSinkCache { public: virtual ~AudioRendererSinkCache() {} @@ -29,6 +30,10 @@ // Creates default cache, to be used by AudioRendererMixerManager. static std::unique_ptr<AudioRendererSinkCache> Create(); + // If called, the cache will drop sinks belonging to the specified frame on + // navigation. + static void ObserveFrame(RenderFrame* frame); + // Returns output device information for a specified sink. virtual media::OutputDeviceInfo GetSinkInfo(int source_render_frame_id, int session_id, @@ -49,6 +54,7 @@ protected: AudioRendererSinkCache() {} + private: DISALLOW_COPY_AND_ASSIGN(AudioRendererSinkCache); };
diff --git a/content/renderer/media/audio_renderer_sink_cache_impl.cc b/content/renderer/media/audio_renderer_sink_cache_impl.cc index 7bd901a..f33993f8 100644 --- a/content/renderer/media/audio_renderer_sink_cache_impl.cc +++ b/content/renderer/media/audio_renderer_sink_cache_impl.cc
@@ -14,14 +14,44 @@ #include "base/metrics/histogram_macros.h" #include "base/synchronization/lock.h" #include "base/threading/thread_task_runner_handle.h" +#include "content/public/renderer/render_frame.h" +#include "content/public/renderer/render_frame_observer.h" #include "content/renderer/media/audio_device_factory.h" #include "media/audio/audio_device_description.h" #include "media/base/audio_renderer_sink.h" namespace content { +AudioRendererSinkCacheImpl* AudioRendererSinkCacheImpl::instance_ = nullptr; constexpr int kDeleteTimeoutMs = 5000; +class AudioRendererSinkCacheImpl::FrameObserver : public RenderFrameObserver { + public: + explicit FrameObserver(content::RenderFrame* render_frame) + : RenderFrameObserver(render_frame) {} + ~FrameObserver() override{}; + + private: + // content::RenderFrameObserver implementation: + void DidCommitProvisionalLoad(bool is_new_navigation, + bool is_same_document_navigation) override { + if (!is_same_document_navigation) + DropFrameCache(); + } + + void OnDestruct() override { + DropFrameCache(); + delete this; + } + + void DropFrameCache() { + if (AudioRendererSinkCacheImpl::instance_) + AudioRendererSinkCacheImpl::instance_->DropSinksForFrame(routing_id()); + } + + DISALLOW_COPY_AND_ASSIGN(FrameObserver); +}; + namespace { enum GetOutputDeviceInfoCacheUtilization { @@ -56,21 +86,30 @@ // static std::unique_ptr<AudioRendererSinkCache> AudioRendererSinkCache::Create() { - return base::WrapUnique(new AudioRendererSinkCacheImpl( + return std::make_unique<AudioRendererSinkCacheImpl>( base::ThreadTaskRunnerHandle::Get(), base::Bind(&AudioDeviceFactory::NewAudioRendererMixerSink), - base::TimeDelta::FromMilliseconds(kDeleteTimeoutMs))); + base::TimeDelta::FromMilliseconds(kDeleteTimeoutMs)); +} + +// static +void AudioRendererSinkCache::ObserveFrame(RenderFrame* frame) { + new AudioRendererSinkCacheImpl::FrameObserver(frame); } AudioRendererSinkCacheImpl::AudioRendererSinkCacheImpl( scoped_refptr<base::SingleThreadTaskRunner> task_runner, - const CreateSinkCallback& create_sink_cb, + CreateSinkCallback create_sink_cb, base::TimeDelta delete_timeout) : task_runner_(std::move(task_runner)), - create_sink_cb_(create_sink_cb), + create_sink_cb_(std::move(create_sink_cb)), delete_timeout_(delete_timeout), weak_ptr_factory_(this) { weak_this_ = weak_ptr_factory_.GetWeakPtr(); + if (instance_) + LOG(ERROR) << "More that one AudioRendererSinkCache instance created. " + "Allowed in tests only."; + instance_ = this; } AudioRendererSinkCacheImpl::~AudioRendererSinkCacheImpl() { @@ -80,6 +119,9 @@ // is being destroyed anyways. for (auto& entry : cache_) entry.sink->Stop(); + + if (instance_ == this) + instance_ = nullptr; } media::OutputDeviceInfo AudioRendererSinkCacheImpl::GetSinkInfo( @@ -266,6 +308,20 @@ DeleteLaterIfUnused(cache_entry.sink.get()); } +void AudioRendererSinkCacheImpl::DropSinksForFrame(int source_render_frame_id) { + base::AutoLock auto_lock(cache_lock_); + cache_.erase(std::remove_if(cache_.begin(), cache_.end(), + [source_render_frame_id](const CacheEntry& val) { + if (val.source_render_frame_id == + source_render_frame_id) { + val.sink->Stop(); + return true; + } + return false; + }), + cache_.end()); +} + int AudioRendererSinkCacheImpl::GetCacheSizeForTesting() { return cache_.size(); }
diff --git a/content/renderer/media/audio_renderer_sink_cache_impl.h b/content/renderer/media/audio_renderer_sink_cache_impl.h index 80be618..93dd9ad 100644 --- a/content/renderer/media/audio_renderer_sink_cache_impl.h +++ b/content/renderer/media/audio_renderer_sink_cache_impl.h
@@ -23,6 +23,8 @@ class CONTENT_EXPORT AudioRendererSinkCacheImpl : public AudioRendererSinkCache { public: + class FrameObserver; + // Callback to be used for AudioRendererSink creation using CreateSinkCallback = base::RepeatingCallback<scoped_refptr<media::AudioRendererSink>( @@ -32,7 +34,7 @@ AudioRendererSinkCacheImpl( scoped_refptr<base::SingleThreadTaskRunner> task_runner, - const CreateSinkCallback& create_sink_callback, + CreateSinkCallback create_sink_callback, base::TimeDelta delete_timeout); ~AudioRendererSinkCacheImpl() final; @@ -50,6 +52,7 @@ private: friend class AudioRendererSinkCacheTest; friend class CacheEntryFinder; + friend class AudioRendererSinkCacheImpl::FrameObserver; struct CacheEntry; using CacheContainer = std::vector<CacheEntry>; @@ -73,10 +76,15 @@ const std::string& device_id, scoped_refptr<media::AudioRendererSink> sink); + void DropSinksForFrame(int source_render_frame_id); + // To avoid publishing CacheEntry structure in the header. int GetCacheSizeForTesting(); - // Task runner for scheduled sink garbage collection. + // Global instance, set in constructor and unset in destructor. + static AudioRendererSinkCacheImpl* instance_; + + // Renderer main task runner. const scoped_refptr<base::SingleThreadTaskRunner> task_runner_; // Callback used for sink creation.
diff --git a/content/renderer/media/audio_renderer_sink_cache_unittest.cc b/content/renderer/media/audio_renderer_sink_cache_unittest.cc index 8eb53ef..bd51052 100644 --- a/content/renderer/media/audio_renderer_sink_cache_unittest.cc +++ b/content/renderer/media/audio_renderer_sink_cache_unittest.cc
@@ -84,6 +84,8 @@ e.Wait(); } + void DropSinksForFrame(int frame_id) { cache_->DropSinksForFrame(frame_id); } + base::test::ScopedTaskEnvironment task_env_; std::unique_ptr<AudioRendererSinkCacheImpl> cache_; @@ -369,4 +371,36 @@ EXPECT_EQ(0, sink_count()); } +TEST_F(AudioRendererSinkCacheTest, StopsAndDropsSinks) { + EXPECT_EQ(0, sink_count()); + scoped_refptr<media::AudioRendererSink> sink1 = + cache_->GetSink(kRenderFrameId, "device1").get(); + scoped_refptr<media::AudioRendererSink> sink2 = + cache_->GetSink(kRenderFrameId, "device2").get(); + EXPECT_EQ(2, sink_count()); + + EXPECT_CALL(*static_cast<media::MockAudioRendererSink*>(sink1.get()), Stop()); + EXPECT_CALL(*static_cast<media::MockAudioRendererSink*>(sink2.get()), Stop()); + DropSinksForFrame(kRenderFrameId); + EXPECT_EQ(0, sink_count()); +} + +TEST_F(AudioRendererSinkCacheTest, StopsAndDropsCorrectSinks) { + EXPECT_EQ(0, sink_count()); + scoped_refptr<media::AudioRendererSink> sink1 = + cache_->GetSink(kRenderFrameId, "device1").get(); + scoped_refptr<media::AudioRendererSink> another_sink = + cache_->GetSink(kRenderFrameId + 1, "device1").get(); + scoped_refptr<media::AudioRendererSink> sink2 = + cache_->GetSink(kRenderFrameId, "device2").get(); + EXPECT_EQ(3, sink_count()); + + EXPECT_CALL(*static_cast<media::MockAudioRendererSink*>(sink1.get()), Stop()); + EXPECT_CALL(*static_cast<media::MockAudioRendererSink*>(sink2.get()), Stop()); + DropSinksForFrame(kRenderFrameId); + EXPECT_EQ(1, sink_count()); + EXPECT_CALL(*static_cast<media::MockAudioRendererSink*>(another_sink.get()), + Stop()); +} + } // namespace content
diff --git a/content/renderer/render_frame_impl.cc b/content/renderer/render_frame_impl.cc index cba2c9cc..e66b001 100644 --- a/content/renderer/render_frame_impl.cc +++ b/content/renderer/render_frame_impl.cc
@@ -120,6 +120,7 @@ #include "content/renderer/manifest/manifest_manager.h" #include "content/renderer/media/audio_device_factory.h" #include "content/renderer/media/audio_output_ipc_factory.h" +#include "content/renderer/media/audio_renderer_sink_cache.h" #include "content/renderer/media/media_permission_dispatcher.h" #include "content/renderer/media/stream/media_stream_device_observer.h" #include "content/renderer/media/stream/user_media_client_impl.h" @@ -1440,6 +1441,8 @@ if (auto* factory = AudioOutputIPCFactory::get()) factory->RegisterRemoteFactory(GetRoutingID(), GetRemoteInterfaces()); + AudioRendererSinkCache::ObserveFrame(this); + const base::CommandLine& command_line = *base::CommandLine::ForCurrentProcess(); if (command_line.HasSwitch(switches::kDomAutomationController))
diff --git a/content/renderer/render_thread_impl.cc b/content/renderer/render_thread_impl.cc index 03b9de4..5caeefcac 100644 --- a/content/renderer/render_thread_impl.cc +++ b/content/renderer/render_thread_impl.cc
@@ -2377,6 +2377,8 @@ OnTrimMemoryImmediately(); ReleaseFreeMemory(); + if (blink_platform_impl_) + blink::WebMemoryCoordinator::OnPurgeMemory(); } void RenderThreadImpl::RecordPurgeMemory(RendererMemoryMetrics before) { @@ -2510,7 +2512,6 @@ // Purge Skia font cache, resource cache, and image filter. SkGraphics::PurgeAllCaches(); blink::DecommitFreeableMemory(); - blink::WebMemoryCoordinator::OnPurgeMemory(); } }
diff --git a/device/bluetooth/chromeos/bluetooth_utils.cc b/device/bluetooth/chromeos/bluetooth_utils.cc index 605115b..71f45bf0 100644 --- a/device/bluetooth/chromeos/bluetooth_utils.cc +++ b/device/bluetooth/chromeos/bluetooth_utils.cc
@@ -8,6 +8,12 @@ namespace { +// https://www.bluetooth.com/specifications/gatt/services. +const char kHIDServiceUUID[] = "1812"; + +// https://www.bluetooth.com/specifications/assigned-numbers/16-bit-uuids-for-sdos. +const char kSecurityKeyServiceUUID[] = "FFFD"; + // Get limited number of devices from |devices| and // prioritize paired/connecting devices over other devices. BluetoothAdapter::DeviceList GetLimitedNumDevices( @@ -42,8 +48,29 @@ const BluetoothAdapter::DeviceList& devices) { BluetoothAdapter::DeviceList result; for (BluetoothDevice* device : devices) { - if (device->GetDeviceType() != device::BluetoothDeviceType::UNKNOWN) - result.push_back(device); + switch (device->GetType()) { + // Device with invalid bluetooth transport is filtered out. + case BLUETOOTH_TRANSPORT_INVALID: + break; + // For LE devices, check the service UUID to determine if it supports HID + // or second factor authenticator (security key). + case BLUETOOTH_TRANSPORT_LE: + if (base::ContainsKey(device->GetUUIDs(), + device::BluetoothUUID(kHIDServiceUUID)) || + base::ContainsKey(device->GetUUIDs(), + device::BluetoothUUID(kSecurityKeyServiceUUID))) { + result.push_back(device); + } + break; + // For classic and dual mode devices, only filter out if the name is empty + // because the device could have an unknown or even known type and still + // also provide audio/HID functionality. + case BLUETOOTH_TRANSPORT_CLASSIC: + case BLUETOOTH_TRANSPORT_DUAL: + if (device->GetName()) + result.push_back(device); + break; + } } return result; }
diff --git a/device/fido/BUILD.gn b/device/fido/BUILD.gn index cd682f2..def3a2b 100644 --- a/device/fido/BUILD.gn +++ b/device/fido/BUILD.gn
@@ -40,6 +40,7 @@ "ec_public_key.h", "fido_attestation_statement.cc", "fido_attestation_statement.h", + "fido_authenticator.h", "fido_ble_connection.cc", "fido_ble_connection.h", "fido_ble_device.cc", @@ -56,6 +57,8 @@ "fido_constants.h", "fido_device.cc", "fido_device.h", + "fido_device_authenticator.cc", + "fido_device_authenticator.h", "fido_discovery.cc", "fido_discovery.h", "fido_hid_message.cc",
diff --git a/device/fido/fido_authenticator.h b/device/fido/fido_authenticator.h new file mode 100644 index 0000000..1eddfe5 --- /dev/null +++ b/device/fido/fido_authenticator.h
@@ -0,0 +1,53 @@ +// 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 DEVICE_FIDO_FIDO_AUTHENTICATOR_H_ +#define DEVICE_FIDO_FIDO_AUTHENTICATOR_H_ + +#include <string> + +#include "base/callback_forward.h" +#include "base/component_export.h" +#include "base/macros.h" +#include "base/optional.h" +#include "device/fido/authenticator_get_assertion_response.h" +#include "device/fido/authenticator_make_credential_response.h" + +namespace device { + +class AuthenticatorSelectionCriteria; +class CtapGetAssertionRequest; +class CtapMakeCredentialRequest; + +// FidoAuthenticator is an authenticator from the WebAuthn Authenticator model +// (https://www.w3.org/TR/webauthn/#sctn-authenticator-model). It may be a +// physical device, or a built-in (platform) authenticator. +class COMPONENT_EXPORT(DEVICE_FIDO) FidoAuthenticator { + public: + using MakeCredentialCallback = base::OnceCallback<void( + CtapDeviceResponseCode, + base::Optional<AuthenticatorMakeCredentialResponse>)>; + using GetAssertionCallback = base::OnceCallback<void( + CtapDeviceResponseCode, + base::Optional<AuthenticatorGetAssertionResponse>)>; + + FidoAuthenticator() = default; + virtual ~FidoAuthenticator() = default; + + virtual void MakeCredential( + AuthenticatorSelectionCriteria authenticator_selection_criteria, + CtapMakeCredentialRequest request, + MakeCredentialCallback callback) = 0; + virtual void GetAssertion(CtapGetAssertionRequest request, + GetAssertionCallback callback) = 0; + virtual void Cancel() = 0; + virtual std::string GetId() const = 0; + + private: + DISALLOW_COPY_AND_ASSIGN(FidoAuthenticator); +}; + +} // namespace device + +#endif // DEVICE_FIDO_FIDO_AUTHENTICATOR_H_
diff --git a/device/fido/fido_device_authenticator.cc b/device/fido/fido_device_authenticator.cc new file mode 100644 index 0000000..c8aa469 --- /dev/null +++ b/device/fido/fido_device_authenticator.cc
@@ -0,0 +1,56 @@ +// 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 "device/fido/fido_device_authenticator.h" + +#include <utility> + +#include "device/fido/authenticator_selection_criteria.h" +#include "device/fido/ctap_get_assertion_request.h" +#include "device/fido/ctap_make_credential_request.h" +#include "device/fido/fido_device.h" +#include "device/fido/get_assertion_task.h" +#include "device/fido/make_credential_task.h" + +namespace device { + +FidoDeviceAuthenticator::FidoDeviceAuthenticator(FidoDevice* device) + : device_(device) {} +FidoDeviceAuthenticator::~FidoDeviceAuthenticator() = default; + +void FidoDeviceAuthenticator::MakeCredential( + AuthenticatorSelectionCriteria authenticator_selection_criteria, + CtapMakeCredentialRequest request, + MakeCredentialCallback callback) { + DCHECK(!task_); + // TODO(martinkr): Change FidoTasks to take all request parameters by const + // reference, so we can avoid copying these from the RequestHandler. + task_ = std::make_unique<MakeCredentialTask>( + device_, std::move(request), std::move(authenticator_selection_criteria), + std::move(callback)); +} + +void FidoDeviceAuthenticator::GetAssertion(CtapGetAssertionRequest request, + GetAssertionCallback callback) { + task_ = std::make_unique<GetAssertionTask>(device_, std::move(request), + std::move(callback)); +} + +void FidoDeviceAuthenticator::Cancel() { + if (!task_) + return; + + task_->CancelTask(); +} + +std::string FidoDeviceAuthenticator::GetId() const { + return device_->GetId(); +} + +void FidoDeviceAuthenticator::SetTaskForTesting( + std::unique_ptr<FidoTask> task) { + task_ = std::move(task); +} + +} // namespace device
diff --git a/device/fido/fido_device_authenticator.h b/device/fido/fido_device_authenticator.h new file mode 100644 index 0000000..29db9d81 --- /dev/null +++ b/device/fido/fido_device_authenticator.h
@@ -0,0 +1,63 @@ +// 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 DEVICE_FIDO_FIDO_DEVICE_AUTHENTICATOR_H_ +#define DEVICE_FIDO_FIDO_DEVICE_AUTHENTICATOR_H_ + +#include <string> +#include <vector> + +#include "base/component_export.h" +#include "base/macros.h" +#include "base/optional.h" +#include "device/fido/fido_authenticator.h" + +namespace device { + +class AuthenticatorSelectionCriteria; +class CtapGetAssertionRequest; +class CtapMakeCredentialRequest; +class FidoDevice; +class FidoTask; + +// Adaptor class from a |FidoDevice| to the |FidoAuthenticator| interface. +// Responsible for translating WebAuthn-level requests into serializations that +// can be passed to the device for transport. +class COMPONENT_EXPORT(DEVICE_FIDO) FidoDeviceAuthenticator + : public FidoAuthenticator { + public: + FidoDeviceAuthenticator(FidoDevice* device); + ~FidoDeviceAuthenticator() override; + + // FidoAuthenticator: + void MakeCredential( + AuthenticatorSelectionCriteria authenticator_selection_criteria, + CtapMakeCredentialRequest request, + MakeCredentialCallback callback) override; + void GetAssertion(CtapGetAssertionRequest request, + GetAssertionCallback callback) override; + void Cancel() override; + std::string GetId() const override; + + protected: + void OnCtapMakeCredentialResponseReceived( + MakeCredentialCallback callback, + base::Optional<std::vector<uint8_t>> response_data); + void OnCtapGetAssertionResponseReceived( + GetAssertionCallback callback, + base::Optional<std::vector<uint8_t>> response_data); + + FidoDevice* device() { return device_; } + void SetTaskForTesting(std::unique_ptr<FidoTask> task); + + private: + FidoDevice* const device_; + std::unique_ptr<FidoTask> task_; + + DISALLOW_COPY_AND_ASSIGN(FidoDeviceAuthenticator); +}; + +} // namespace device + +#endif // DEVICE_FIDO_FIDO_DEVICE_AUTHENTICATOR_H_
diff --git a/device/fido/fido_request_handler.h b/device/fido/fido_request_handler.h index a72cc9f..a81327c 100644 --- a/device/fido/fido_request_handler.h +++ b/device/fido/fido_request_handler.h
@@ -13,6 +13,7 @@ #include "base/containers/flat_set.h" #include "base/macros.h" #include "base/optional.h" +#include "device/fido/fido_authenticator.h" #include "device/fido/fido_constants.h" #include "device/fido/fido_device.h" #include "device/fido/fido_transport_protocol.h" @@ -41,11 +42,11 @@ bool is_complete() const { return completion_callback_.is_null(); } protected: - // Converts device response code received from CTAP1/CTAP2 device into + // Converts authenticator response code received from CTAP1/CTAP2 device into // FidoReturnCode and passes response data to webauth::mojom::Authenticator. - void OnDeviceResponse(FidoDevice* device, - CtapDeviceResponseCode device_response_code, - base::Optional<Response> response_data) { + void OnAuthenticatorResponse(FidoAuthenticator* authenticator, + CtapDeviceResponseCode device_response_code, + base::Optional<Response> response_data) { if (is_complete()) { DVLOG(2) << "Response from authenticator received after request is complete."; @@ -55,17 +56,17 @@ const auto return_code = ConvertDeviceResponseCodeToFidoReturnCode( device_response_code, response_data.has_value()); - // Any device response codes that do not result from user consent - // imply that the device should be dropped and that other on-going + // Any authenticator response codes that do not result from user consent + // imply that the authenticator should be dropped and that other on-going // requests should continue until timeout is reached. if (!return_code) { - ongoing_tasks().erase(device->GetId()); + active_authenticators().erase(authenticator->GetId()); return; } // Once response has been passed to the relying party, cancel all other on // going requests. - CancelOngoingTasks(device->GetId()); + CancelOngoingTasks(authenticator->GetId()); std::move(completion_callback_).Run(*return_code, std::move(response_data)); } @@ -81,7 +82,7 @@ : FidoReturnCode::kAuthenticatorResponseInvalid; // These errors are only returned after the user interacted with the - // device. + // authenticator. case CtapDeviceResponseCode::kCtap2ErrCredentialExcluded: return FidoReturnCode::kUserConsentButCredentialExcluded; case CtapDeviceResponseCode::kCtap2ErrNoCredentials:
diff --git a/device/fido/fido_request_handler_base.cc b/device/fido/fido_request_handler_base.cc index bcfd85a..81ed65eb 100644 --- a/device/fido/fido_request_handler_base.cc +++ b/device/fido/fido_request_handler_base.cc
@@ -32,13 +32,13 @@ void FidoRequestHandlerBase::CancelOngoingTasks( base::StringPiece exclude_device_id) { - for (auto task_it = ongoing_tasks_.begin(); - task_it != ongoing_tasks_.end();) { + for (auto task_it = active_authenticators_.begin(); + task_it != active_authenticators_.end();) { DCHECK(!task_it->first.empty()); if (task_it->first != exclude_device_id) { DCHECK(task_it->second); - task_it->second->CancelTask(); - task_it = ongoing_tasks_.erase(task_it); + task_it->second->Cancel(); + task_it = active_authenticators_.erase(task_it); } else { ++task_it; } @@ -56,12 +56,21 @@ void FidoRequestHandlerBase::DeviceAdded(FidoDiscovery* discovery, FidoDevice* device) { - DCHECK(!base::ContainsKey(ongoing_tasks(), device->GetId())); + DCHECK(!base::ContainsKey(active_authenticators(), device->GetId())); // All devices are initially assumed to support CTAP protocol and thus // AuthenticatorGetInfo command is sent to all connected devices. If device // errors out, then it is assumed to support U2F protocol. device->set_supported_protocol(ProtocolVersion::kCtap); - ongoing_tasks_.emplace(device->GetId(), CreateTaskForNewDevice(device)); + auto* authenticator = + active_authenticators_ + .emplace(device->GetId(), CreateAuthenticatorFromDevice(device)) + .first->second.get(); + DispatchRequest(authenticator); +} + +std::unique_ptr<FidoDeviceAuthenticator> +FidoRequestHandlerBase::CreateAuthenticatorFromDevice(FidoDevice* device) { + return std::make_unique<FidoDeviceAuthenticator>(device); } void FidoRequestHandlerBase::DeviceRemoved(FidoDiscovery* discovery, @@ -71,7 +80,7 @@ // ongoing_tasks_.erase() will have no effect for the devices that have been // already removed due to processing error or due to invocation of // CancelOngoingTasks(). - ongoing_tasks_.erase(device->GetId()); + active_authenticators_.erase(device->GetId()); } } // namespace device
diff --git a/device/fido/fido_request_handler_base.h b/device/fido/fido_request_handler_base.h index 34e381b6..665a1e2 100644 --- a/device/fido/fido_request_handler_base.h +++ b/device/fido/fido_request_handler_base.h
@@ -15,6 +15,7 @@ #include "base/containers/flat_set.h" #include "base/macros.h" #include "base/strings/string_piece_forward.h" +#include "device/fido/fido_device_authenticator.h" #include "device/fido/fido_discovery.h" #include "device/fido/fido_transport_protocol.h" @@ -24,6 +25,7 @@ namespace device { +class FidoAuthenticator; class FidoDevice; class FidoTask; @@ -35,7 +37,8 @@ class COMPONENT_EXPORT(DEVICE_FIDO) FidoRequestHandlerBase : public FidoDiscovery::Observer { public: - using TaskMap = std::map<std::string, std::unique_ptr<FidoTask>, std::less<>>; + using AuthenticatorMap = + std::map<std::string, std::unique_ptr<FidoAuthenticator>, std::less<>>; FidoRequestHandlerBase( service_manager::Connector* connector, @@ -55,10 +58,18 @@ void CancelOngoingTasks(base::StringPiece exclude_device_id = nullptr); protected: - virtual std::unique_ptr<FidoTask> CreateTaskForNewDevice(FidoDevice*) = 0; + // Subclasses implement this method to dispatch their request onto the given + // FidoAuthenticator. The FidoAuthenticator is owned by this + // FidoRequestHandler and stored in active_authenticators(). + virtual void DispatchRequest(FidoAuthenticator*) = 0; + void Start(); - TaskMap& ongoing_tasks() { return ongoing_tasks_; } + // Testing seam to allow unit tests to inject a fake authenticator. + virtual std::unique_ptr<FidoDeviceAuthenticator> + CreateAuthenticatorFromDevice(FidoDevice* device); + + AuthenticatorMap& active_authenticators() { return active_authenticators_; } private: // FidoDiscovery::Observer @@ -66,7 +77,7 @@ void DeviceAdded(FidoDiscovery* discovery, FidoDevice* device) final; void DeviceRemoved(FidoDiscovery* discovery, FidoDevice* device) final; - TaskMap ongoing_tasks_; + AuthenticatorMap active_authenticators_; std::vector<std::unique_ptr<FidoDiscovery>> discoveries_; DISALLOW_COPY_AND_ASSIGN(FidoRequestHandlerBase);
diff --git a/device/fido/fido_request_handler_unittest.cc b/device/fido/fido_request_handler_unittest.cc index ba663e74..2d5dce3 100644 --- a/device/fido/fido_request_handler_unittest.cc +++ b/device/fido/fido_request_handler_unittest.cc
@@ -6,6 +6,7 @@ #include <utility> #include <vector> +#include "base/bind.h" #include "base/numerics/safe_conversions.h" #include "base/test/scoped_task_environment.h" #include "device/fido/fake_fido_discovery.h" @@ -83,6 +84,16 @@ base::WeakPtrFactory<FakeFidoTask> weak_factory_; }; +class FakeFidoAuthenticator : public FidoDeviceAuthenticator { + public: + FakeFidoAuthenticator(FidoDevice* device) : FidoDeviceAuthenticator(device) {} + + void RunFakeTask(FakeTaskCallback callback) { + SetTaskForTesting( + std::make_unique<FakeFidoTask>(device(), std::move(callback))); + } +}; + class FakeFidoRequestHandler : public FidoRequestHandler<std::vector<uint8_t>> { public: FakeFidoRequestHandler(const base::flat_set<FidoTransportProtocol>& protocols, @@ -95,15 +106,19 @@ } ~FakeFidoRequestHandler() override = default; - std::unique_ptr<FidoTask> CreateTaskForNewDevice( + void DispatchRequest(FidoAuthenticator* authenticator) override { + static_cast<FakeFidoAuthenticator*>(authenticator) + ->RunFakeTask( + base::BindOnce(&FakeFidoRequestHandler::OnAuthenticatorResponse, + weak_factory_.GetWeakPtr(), authenticator)); + } + + std::unique_ptr<FidoDeviceAuthenticator> CreateAuthenticatorFromDevice( FidoDevice* device) override { - return std::make_unique<FakeFidoTask>( - device, base::BindOnce(&FakeFidoRequestHandler::OnDeviceResponse, - weak_factory_.GetWeakPtr(), device)); + return std::make_unique<FakeFidoAuthenticator>(device); } private: - FakeHandlerCallback callback_; base::WeakPtrFactory<FakeFidoRequestHandler> weak_factory_; };
diff --git a/device/fido/get_assertion_request_handler.cc b/device/fido/get_assertion_request_handler.cc index 26c6d21..5a7a0d8e 100644 --- a/device/fido/get_assertion_request_handler.cc +++ b/device/fido/get_assertion_request_handler.cc
@@ -8,7 +8,7 @@ #include "base/bind.h" #include "device/fido/authenticator_get_assertion_response.h" -#include "device/fido/fido_device.h" +#include "device/fido/fido_authenticator.h" #include "device/fido/get_assertion_task.h" namespace device { @@ -26,12 +26,12 @@ GetAssertionRequestHandler::~GetAssertionRequestHandler() = default; -std::unique_ptr<FidoTask> GetAssertionRequestHandler::CreateTaskForNewDevice( - FidoDevice* device) { - return std::make_unique<GetAssertionTask>( - device, request_, - base::BindOnce(&GetAssertionRequestHandler::OnDeviceResponse, - weak_factory_.GetWeakPtr(), device)); +void GetAssertionRequestHandler::DispatchRequest( + FidoAuthenticator* authenticator) { + authenticator->GetAssertion( + request_, + base::BindOnce(&GetAssertionRequestHandler::OnAuthenticatorResponse, + weak_factory_.GetWeakPtr(), authenticator)); } } // namespace device
diff --git a/device/fido/get_assertion_request_handler.h b/device/fido/get_assertion_request_handler.h index 8168bde..4f318334 100644 --- a/device/fido/get_assertion_request_handler.h +++ b/device/fido/get_assertion_request_handler.h
@@ -22,8 +22,7 @@ namespace device { -class FidoDevice; -class FidoTask; +class FidoAuthenticator; class AuthenticatorGetAssertionResponse; using SignResponseCallback = @@ -42,7 +41,7 @@ private: // FidoRequestHandlerBase: - std::unique_ptr<FidoTask> CreateTaskForNewDevice(FidoDevice* device) override; + void DispatchRequest(FidoAuthenticator* authenticator) override; CtapGetAssertionRequest request_; base::WeakPtrFactory<GetAssertionRequestHandler> weak_factory_;
diff --git a/device/fido/make_credential_request_handler.cc b/device/fido/make_credential_request_handler.cc index ea94dbd..f9c16af 100644 --- a/device/fido/make_credential_request_handler.cc +++ b/device/fido/make_credential_request_handler.cc
@@ -8,7 +8,7 @@ #include "base/bind.h" #include "device/fido/authenticator_make_credential_response.h" -#include "device/fido/fido_device.h" +#include "device/fido/fido_authenticator.h" #include "device/fido/make_credential_task.h" #include "services/service_manager/public/cpp/connector.h" @@ -30,12 +30,12 @@ MakeCredentialRequestHandler::~MakeCredentialRequestHandler() = default; -std::unique_ptr<FidoTask> MakeCredentialRequestHandler::CreateTaskForNewDevice( - FidoDevice* device) { - return std::make_unique<MakeCredentialTask>( - device, request_parameter_, authenticator_selection_criteria_, - base::BindOnce(&MakeCredentialRequestHandler::OnDeviceResponse, - weak_factory_.GetWeakPtr(), device)); +void MakeCredentialRequestHandler::DispatchRequest( + FidoAuthenticator* authenticator) { + return authenticator->MakeCredential( + authenticator_selection_criteria_, request_parameter_, + base::BindOnce(&MakeCredentialRequestHandler::OnAuthenticatorResponse, + weak_factory_.GetWeakPtr(), authenticator)); } } // namespace device
diff --git a/device/fido/make_credential_request_handler.h b/device/fido/make_credential_request_handler.h index fb69f181..23cc5b6 100644 --- a/device/fido/make_credential_request_handler.h +++ b/device/fido/make_credential_request_handler.h
@@ -24,8 +24,7 @@ namespace device { -class FidoDevice; -class FidoTask; +class FidoAuthenticator; class AuthenticatorMakeCredentialResponse; using RegisterResponseCallback = base::OnceCallback< @@ -44,7 +43,7 @@ private: // FidoRequestHandlerBase: - std::unique_ptr<FidoTask> CreateTaskForNewDevice(FidoDevice* device) final; + void DispatchRequest(FidoAuthenticator* authenticator) final; CtapMakeCredentialRequest request_parameter_; AuthenticatorSelectionCriteria authenticator_selection_criteria_;
diff --git a/device/vr/buildflags/buildflags.gni b/device/vr/buildflags/buildflags.gni index ea22538..905c56e 100644 --- a/device/vr/buildflags/buildflags.gni +++ b/device/vr/buildflags/buildflags.gni
@@ -31,10 +31,16 @@ # Whether to include VR extras like test APKs in non-VR-specific targets include_vr_data = false - # TODO(crbug.com/837999): We currently only support arm and arm64 and we are - # limiting to canary and dev until binary size issues are resolved. - enable_arcore = is_android && !is_chromecast && - (current_cpu == "arm" || current_cpu == "arm64") && + # TODO(crbug.com/837999, crbug.com/841389): We currently only support arm and + # we are limiting to canary and dev until binary size issues are resolved. + enable_arcore = is_android && !is_chromecast && current_cpu == "arm" && (android_channel == "default" || android_channel == "dev" || android_channel == "canary") + + # TODO(crbug.com/841389): This should not be necessary once 64 bit is properly + # supported and enable_arcore permits arm64 as well. + enable_arcore_java = is_android && !is_chromecast && + (current_cpu == "arm" || current_cpu == "arm64") && + (android_channel == "default" || + android_channel == "dev" || android_channel == "canary") }
diff --git a/docs/gpu/gpu_testing_bot_details.md b/docs/gpu/gpu_testing_bot_details.md index 9f7f524..7c0c29fc 100644 --- a/docs/gpu/gpu_testing_bot_details.md +++ b/docs/gpu/gpu_testing_bot_details.md
@@ -340,11 +340,22 @@ 1. After the Chromium-side CL lands it will take some time for all of the configuration changes to be picked up by the system. The bot - will be in a red or purple state, claiming that it can't find its - configuration. + will probably be in a red or purple state, claiming that it can't + find its configuration. (It might also be in an "empty" state, not + running any jobs at all.) -1. *After* the Chromium-side CL lands and the bot is on the console, but purple, - create a CL in the [`tools/build`][tools/build] workspace which does the +1. (Temporary step only, during the Buildbot -> LUCI migration.) Once the bot is + on the console, go to the [LUCI migration + app](https://luci-migration.appspot.com/), log in with your @google.com + account (sorry, Googlers only), find the new machine on the appropriate + waterfall and flip the "LUCI is Prod" bit to true, pointing out that this is + a LUCI-only bot. Link the automatically-generated LUCI migration bug in that + page to your existing bug. If the automatically-generated bug isn't + auto-closed in a reasonable timeframe, close it as Fixed and point out that + your new bot was LUCI-only from the start. + +1. *After* the Chromium-side CL lands and the bot is on the console, create a CL + in the [`tools/build`][tools/build] workspace which does the following. Here's an [example CL](https://chromium-review.googlesource.com/1041145). 1. Adds the new VMs to [`chromium_gpu_fyi.py`][chromium_gpu_fyi.py] in @@ -362,11 +373,11 @@ appear to be necessary any more, but it's something to watch out for if your CL fails presubmit for some reason. -1. Note that it is crucial that the bot be deployed (and be red/purple) before - hooking it up in the tools/build workspace. In the new LUCI world, if the - parent builder can't find its child testers to trigger, that's a hard error - on the parent. You can and should prepare the tools/build CL in advance, but - make sure it doesn't land until the bot's on the console. +1. Note that it is crucial that the bot be deployed before hooking it up in the + tools/build workspace. In the new LUCI world, if the parent builder can't + find its child testers to trigger, that's a hard error on the parent. This + will cause the builders to fail. You can and should prepare the tools/build + CL in advance, but make sure it doesn't land until the bot's on the console. [bots.cfg]: https://chrome-internal.googlesource.com/infradata/config/+/master/configs/chromium-swarm/bots.cfg [infradata/config]: https://chrome-internal.googlesource.com/infradata/config/
diff --git a/extensions/common/permissions/api_permission.h b/extensions/common/permissions/api_permission.h index 1a695b7..7bd3403 100644 --- a/extensions/common/permissions/api_permission.h +++ b/extensions/common/permissions/api_permission.h
@@ -413,6 +413,7 @@ private: // Instances should only be constructed from within a PermissionsProvider. + friend class CastAPIPermissions; friend class ChromeAPIPermissions; friend class ExtensionsAPIPermissions; // Implementations of APIPermission will want to get the permission message,
diff --git a/gpu/config/BUILD.gn b/gpu/config/BUILD.gn index 39b2b1f5..a5159692 100644 --- a/gpu/config/BUILD.gn +++ b/gpu/config/BUILD.gn
@@ -158,11 +158,6 @@ include_dirs = [ "//third_party/mesa/src/include" ] if (is_win) { - libs = [ - "dxguid.lib", - "setupapi.lib", - ] - if (is_chrome_branded && is_official_build) { sources += [ "//third_party/amd/AmdCfxPxExt.h", @@ -173,7 +168,7 @@ if (is_mac) { libs = [ "OpenGL.framework" ] } - if (is_linux || is_mac) { + if (is_win || is_linux || is_mac) { deps += [ "//third_party/angle:angle_gpu_info_util" ] } }
diff --git a/gpu/config/gpu_info_collector_win.cc b/gpu/config/gpu_info_collector_win.cc index 21fac903..7af001e 100644 --- a/gpu/config/gpu_info_collector_win.cc +++ b/gpu/config/gpu_info_collector_win.cc
@@ -4,61 +4,22 @@ #include "gpu/config/gpu_info_collector.h" -// This has to be included before windows.h. -#include "third_party/re2/src/re2/re2.h" - -#include <windows.h> - -#include <cfgmgr32.h> -#include <d3d11.h> #include <d3d12.h> -#include <d3d9.h> -#include <dxgi.h> -#include <setupapi.h> -#include <stddef.h> -#include <stdint.h> #include "base/file_version_info_win.h" -#include "base/files/file_enumerator.h" -#include "base/files/file_path.h" -#include "base/files/file_util.h" -#include "base/logging.h" -#include "base/metrics/field_trial.h" #include "base/metrics/histogram_functions.h" #include "base/metrics/histogram_macros.h" -#include "base/numerics/safe_conversions.h" #include "base/scoped_native_library.h" -#include "base/strings/string16.h" -#include "base/strings/string_number_conversions.h" -#include "base/strings/string_util.h" #include "base/strings/stringprintf.h" -#include "base/strings/utf_string_conversions.h" -#include "base/threading/thread.h" #include "base/trace_event/trace_event.h" -#include "base/win/scoped_com_initializer.h" +#include "third_party/angle/src/gpu_info_util/SystemInfo.h" +#include "third_party/re2/src/re2/re2.h" #include "third_party/vulkan/include/vulkan/vulkan.h" namespace gpu { namespace { -void DeviceIDToVendorAndDevice(const std::wstring& id, - uint32_t* vendor_id, - uint32_t* device_id) { - *vendor_id = 0; - *device_id = 0; - if (id.length() < 21) - return; - base::string16 vendor_id_string = id.substr(8, 4); - base::string16 device_id_string = id.substr(17, 4); - int vendor = 0; - int device = 0; - base::HexStringToInt(base::UTF16ToASCII(vendor_id_string), &vendor); - base::HexStringToInt(base::UTF16ToASCII(device_id_string), &device); - *vendor_id = vendor; - *device_id = device; -} - // These values are persisted to logs. Entries should not be renumbered and // numeric values should never be reused. // This should match enum D3DFeatureLevel in \tools\metrics\histograms\enums.xml @@ -110,175 +71,6 @@ } // namespace anonymous -#if defined(GOOGLE_CHROME_BUILD) && defined(OFFICIAL_BUILD) -// This function has a real implementation for official builds that can -// be found in src/third_party/amd. -void GetAMDVideocardInfo(GPUInfo* gpu_info); -#else -void GetAMDVideocardInfo(GPUInfo* gpu_info) { - DCHECK(gpu_info); - return; -} -#endif - -bool CollectDriverInfoD3D(const std::wstring& device_id, GPUInfo* gpu_info) { - TRACE_EVENT0("gpu", "CollectDriverInfoD3D"); - - // Display adapter class GUID from - // https://msdn.microsoft.com/en-us/library/windows/hardware/ff553426%28v=vs.85%29.aspx - GUID display_class = {0x4d36e968, - 0xe325, - 0x11ce, - {0xbf, 0xc1, 0x08, 0x00, 0x2b, 0xe1, 0x03, 0x18}}; - - // create device info for the display device - HDEVINFO device_info = - ::SetupDiGetClassDevs(&display_class, NULL, NULL, DIGCF_PRESENT); - if (device_info == INVALID_HANDLE_VALUE) { - LOG(ERROR) << "Creating device info failed"; - return false; - } - - struct GPUDriver { - GPUInfo::GPUDevice device; - std::string driver_vendor; - std::string driver_version; - std::string driver_date; - }; - - std::vector<GPUDriver> drivers; - - size_t primary_device = std::numeric_limits<size_t>::max(); - bool found_amd = false; - bool found_intel = false; - - DWORD index = 0; - SP_DEVINFO_DATA device_info_data; - device_info_data.cbSize = sizeof(device_info_data); - while (SetupDiEnumDeviceInfo(device_info, index++, &device_info_data)) { - WCHAR value[255]; - if (SetupDiGetDeviceRegistryPropertyW(device_info, - &device_info_data, - SPDRP_DRIVER, - NULL, - reinterpret_cast<PBYTE>(value), - sizeof(value), - NULL)) { - HKEY key; - std::wstring driver_key = L"System\\CurrentControlSet\\Control\\Class\\"; - driver_key += value; - LONG result = RegOpenKeyExW( - HKEY_LOCAL_MACHINE, driver_key.c_str(), 0, KEY_QUERY_VALUE, &key); - if (result == ERROR_SUCCESS) { - DWORD dwcb_data = sizeof(value); - std::string driver_version; - result = RegQueryValueExW( - key, L"DriverVersion", NULL, NULL, - reinterpret_cast<LPBYTE>(value), &dwcb_data); - if (result == ERROR_SUCCESS) - driver_version = base::UTF16ToASCII(std::wstring(value)); - - std::string driver_date; - dwcb_data = sizeof(value); - result = RegQueryValueExW( - key, L"DriverDate", NULL, NULL, - reinterpret_cast<LPBYTE>(value), &dwcb_data); - if (result == ERROR_SUCCESS) - driver_date = base::UTF16ToASCII(std::wstring(value)); - - std::string driver_vendor; - dwcb_data = sizeof(value); - result = RegQueryValueExW( - key, L"ProviderName", NULL, NULL, - reinterpret_cast<LPBYTE>(value), &dwcb_data); - if (result == ERROR_SUCCESS) - driver_vendor = base::UTF16ToASCII(std::wstring(value)); - - wchar_t new_device_id[MAX_DEVICE_ID_LEN]; - CONFIGRET status = CM_Get_Device_ID( - device_info_data.DevInst, new_device_id, MAX_DEVICE_ID_LEN, 0); - - if (status == CR_SUCCESS) { - GPUDriver driver; - - driver.driver_vendor = driver_vendor; - driver.driver_version = driver_version; - driver.driver_date = driver_date; - std::wstring id = new_device_id; - - if (id.compare(0, device_id.size(), device_id) == 0) - primary_device = drivers.size(); - - uint32_t vendor_id = 0, device_id = 0; - DeviceIDToVendorAndDevice(id, &vendor_id, &device_id); - driver.device.vendor_id = vendor_id; - driver.device.device_id = device_id; - drivers.push_back(driver); - - if (vendor_id == 0x8086) - found_intel = true; - if (vendor_id == 0x1002) - found_amd = true; - } - - RegCloseKey(key); - } - } - } - SetupDiDestroyDeviceInfoList(device_info); - bool found = false; - if (found_amd && found_intel) { - // Potential AMD Switchable system found. - for (const auto& driver : drivers) { - if (driver.device.vendor_id == 0x8086) { - gpu_info->gpu = driver.device; - } - - if (driver.device.vendor_id == 0x1002) { - gpu_info->driver_vendor = driver.driver_vendor; - gpu_info->driver_version = driver.driver_version; - gpu_info->driver_date = driver.driver_date; - } - } - GetAMDVideocardInfo(gpu_info); - - if (!gpu_info->amd_switchable) { - bool amd_is_primary = false; - for (size_t i = 0; i < drivers.size(); ++i) { - const GPUDriver& driver = drivers[i]; - if (driver.device.vendor_id == 0x1002) { - if (i == primary_device) - amd_is_primary = true; - gpu_info->gpu = driver.device; - } else { - gpu_info->secondary_gpus.push_back(driver.device); - } - } - // Some machines aren't properly detected as AMD switchable, but count - // them anyway. This may erroneously count machines where there are - // independent AMD and Intel cards and the AMD isn't hooked up to - // anything, but that should be rare. - gpu_info->amd_switchable = !amd_is_primary; - } - found = true; - } else { - for (size_t i = 0; i < drivers.size(); ++i) { - const GPUDriver& driver = drivers[i]; - if (i == primary_device) { - found = true; - gpu_info->gpu = driver.device; - gpu_info->driver_vendor = driver.driver_vendor; - gpu_info->driver_version = driver.driver_version; - gpu_info->driver_date = driver.driver_date; - } else { - gpu_info->secondary_gpus.push_back(driver.device); - } - } - } - - return found; -} - // DirectX 12 are included with Windows 10 and Server 2016. void GetGpuSupportedD3D12Version(GPUInfo* gpu_info) { TRACE_EVENT0("gpu", "GetGpuSupportedD3D12Version"); @@ -592,46 +384,84 @@ return true; } -bool CollectBasicGraphicsInfo(GPUInfo* gpu_info) { - TRACE_EVENT0("gpu", "CollectPreliminaryGraphicsInfo"); +#if defined(GOOGLE_CHROME_BUILD) && defined(OFFICIAL_BUILD) +// This function has a real implementation for official builds that can +// be found in src/third_party/amd. +bool GetAMDSwitchableInfo(bool* is_switchable, + uint32_t* active_vendor_id, + uint32_t* active_device_id); +#else +bool GetAMDSwitchableInfo(bool* is_switchable, + uint32_t* active_vendor_id, + uint32_t* active_device_id) { + return false; +} +#endif - DCHECK(gpu_info); +namespace { - // nvd3d9wrap.dll is loaded into all processes when Optimus is enabled. - HMODULE nvd3d9wrap = GetModuleHandleW(L"nvd3d9wrap.dll"); - gpu_info->optimus = nvd3d9wrap != nullptr; +void CorrectAMDSwitchableInfo(angle::SystemInfo* system_info) { + bool is_switchable = false; + uint32_t active_vendor_id = 0; + uint32_t active_device_id = 0; + if (!GetAMDSwitchableInfo(&is_switchable, &active_vendor_id, + &active_device_id)) { + return; + } - // Taken from http://www.nvidia.com/object/device_ids.html - DISPLAY_DEVICE dd; - dd.cb = sizeof(DISPLAY_DEVICE); - std::wstring id; - for (int i = 0; EnumDisplayDevices(NULL, i, &dd, 0); ++i) { - if (dd.StateFlags & DISPLAY_DEVICE_PRIMARY_DEVICE) { - id = dd.DeviceID; + system_info->isAMDSwitchable = is_switchable; + + bool found_active = false; + for (size_t i = 0; i < system_info->gpus.size(); ++i) { + if (system_info->gpus[i].vendorId == active_vendor_id && + system_info->gpus[i].deviceId == active_device_id) { + found_active = true; + system_info->activeGPUIndex = static_cast<int>(i); break; } } + DCHECK(found_active); +} - if (id.length() <= 20) { - // EnumDisplayDevices returns an empty id when called inside a remote - // session (unless that session happens to be attached to the console). In - // that case, we do not want to fail, as we should be able to grab the - // device/vendor ids from the D3D context, below. Therefore, only fail if - // the device string is not one of either the RDP mirror driver "RDPUDD - // Chained DD" or the citrix display driver. - if (wcscmp(dd.DeviceString, L"RDPUDD Chained DD") != 0 && - wcscmp(dd.DeviceString, L"Citrix Systems Inc. Display Driver") != 0) { - // Set vendor_id/device_id for blacklisting purpose. - gpu_info->gpu.vendor_id = 0xffff; - gpu_info->gpu.device_id = 0xfffe; - return false; - } +} // anonymous namespace + +bool CollectBasicGraphicsInfo(GPUInfo* gpu_info) { + TRACE_EVENT0("gpu", "CollectBasicGraphicsInfo"); + + DCHECK(gpu_info); + + angle::SystemInfo system_info; + bool collection_successful = angle::GetSystemInfo(&system_info); + + // We can get more precise information about AMD switchable systems in + // official builds by querying the driver directly. + if (system_info.isAMDSwitchable) { + CorrectAMDSwitchableInfo(&system_info); } - DeviceIDToVendorAndDevice(id, &gpu_info->gpu.vendor_id, - &gpu_info->gpu.device_id); - // TODO(zmo): we only need to call CollectDriverInfoD3D() if we use ANGLE. - return CollectDriverInfoD3D(id, gpu_info); + // Always fill in gpu_info so that information, even partial is displayed in + // about:gpu + FillGPUInfoFromSystemInfo(gpu_info, &system_info); + + if (collection_successful) { + return true; + } + + // angle::GetSystemInfo fails in remote sessions because EnumDisplayDevices + // returns an empty id (unless that session happens to be attached to the + // console). We don't want to fail in that case as we should still have a + // device/vendor id. Only fail if the device string doesn't match the RDP + // mirror driver or the citrix display driver. + if (system_info.primaryDisplayDeviceId == "RDPUDD Chained DD" || + system_info.primaryDisplayDeviceId == + "Citrix Systems Inc. Display Driver") { + return true; + } + + // On failure set fake vendor_id/device_id for blacklisting purpose. + gpu_info->gpu.vendor_id = 0xffff; + gpu_info->gpu.device_id = 0xfffe; + return false; } void CollectDriverInfoGL(GPUInfo* gpu_info) {
diff --git a/infra/config/branch/cq.cfg b/infra/config/branch/cq.cfg index 9fd4c98..eb783299 100644 --- a/infra/config/branch/cq.cfg +++ b/infra/config/branch/cq.cfg
@@ -54,7 +54,7 @@ } builders { name: "android_compile_dbg" - equivalent_to { bucket: "luci.chromium.try" percentage: 0 } + equivalent_to { bucket: "luci.chromium.try" percentage: 10 } } builders { name: "android_n5x_swarming_rel"
diff --git a/infra/config/global/cr-buildbucket.cfg b/infra/config/global/cr-buildbucket.cfg index aa92f27..a6f2bdc9 100644 --- a/infra/config/global/cr-buildbucket.cfg +++ b/infra/config/global/cr-buildbucket.cfg
@@ -651,6 +651,16 @@ mixins: "linux" } + builders { + name: "chromeos-daisy-rel" + mixins: "chromeos-ci" + } + + builders { + name: "linux-chromeos-rel" + mixins: "chromeos-ci" + } + # Fuchsia bots. builders { name: "Fuchsia ARM64" @@ -1325,6 +1335,8 @@ builders { mixins: "android-optional-gpu-try" name: "android_optional_gpu_tests_rel" } builders { mixins: "chromeos-try" name: "chromeos-amd64-generic-rel" } + builders { mixins: "chromeos-try" name: "chromeos-daisy-rel" } + builders { mixins: "chromeos-try" name: "linux-chromeos-rel" } builders { mixins: "linux-angle-try" name: "linux_angle_compile_dbg_ng" } builders { mixins: "linux-angle-try" name: "linux_angle_dbg_ng" }
diff --git a/infra/config/global/luci-milo.cfg b/infra/config/global/luci-milo.cfg index d261c1b..4312f25 100644 --- a/infra/config/global/luci-milo.cfg +++ b/infra/config/global/luci-milo.cfg
@@ -486,6 +486,7 @@ } builders: { name: "buildbot/chromium.chromiumos/linux-chromeos-rel" + name: "buildbucket/luci.chromium.ci/linux-chromeos-rel" category: "chromium.chromiumos|default" short_name: "rel" } @@ -496,11 +497,13 @@ } builders: { name: "buildbot/chromium.chromiumos/chromeos-amd64-generic-rel" + name: "buildbucket/luci.chromium.ci/chromeos-amd64-generic-rel" category: "chromium.chromiumos|simple|release" short_name: "x64" } builders: { name: "buildbot/chromium.chromiumos/chromeos-daisy-rel" + name: "buildbucket/luci.chromium.ci/chromeos-daisy-rel" category: "chromium.chromiumos|simple|release" short_name: "dsy" } @@ -969,6 +972,7 @@ } builders: { name: "buildbot/chromium.chromiumos/linux-chromeos-rel" + name: "buildbucket/luci.chromium.ci/linux-chromeos-rel" category: "default" short_name: "rel" } @@ -979,11 +983,13 @@ } builders: { name: "buildbot/chromium.chromiumos/chromeos-amd64-generic-rel" + name: "buildbucket/luci.chromium.ci/chromeos-amd64-generic-rel" category: "simple" short_name: "x64" } builders: { name: "buildbot/chromium.chromiumos/chromeos-daisy-rel" + name: "buildbucket/luci.chromium.ci/chromeos-daisy-rel" category: "simple" short_name: "dsy" } @@ -1473,17 +1479,6 @@ } builders: { - name: "buildbucket/luci.chromium.ci/Win x64 Builder" - category: "win|release|builder|64" - short_name: "ᕕ(ᐛ)ᕗ" - } - builders: { - name: "buildbot/chromium.win/Win x64 Builder" - category: "win|release|builder|64" - short_name: "(ಥ_ಥ)" - } - - builders: { name: "buildbucket/luci.chromium.ci/Win7 (32) Tests" category: "win|release|tester|7|(32)" short_name: "ᕕ(ᐛ)ᕗ" @@ -1506,28 +1501,6 @@ } builders: { - name: "buildbucket/luci.chromium.ci/Win 7 Tests x64 (1)" - category: "win|release|tester|7|64" - short_name: "ᕕ(ᐛ)ᕗ" - } - builders: { - name: "buildbot/chromium.win/Win 7 Tests x64 (1)" - category: "win|release|tester|7|64" - short_name: "(ಥ_ಥ)" - } - - builders: { - name: "buildbucket/luci.chromium.ci/Win10 Tests x64" - category: "win|release|tester|64" - short_name: "ᕕ(ᐛ)ᕗ" - } - builders: { - name: "buildbot/chromium.win/Win10 Tests x64" - category: "win|release|tester|64" - short_name: "(ಥ_ಥ)" - } - - builders: { name: "buildbot/chromium.memory/Linux ASan LSan Builder" category: "chromium.memory|asan|builder" short_name: "bb" @@ -1658,6 +1631,37 @@ category: "android|builder|arm|tester|32" short_name: "bb" } + + builders: { + name: "buildbucket/luci.chromium.ci/linux-chromeos-rel" + category: "cros|rel" + short_name: "ᕕ(ᐛ)ᕗ" + } + builders: { + name: "buildbot/chromium.chromiumos/linux-chromeos-rel" + category: "cros|rel" + short_name: "(ಥ_ಥ)" + } + builders: { + name: "buildbucket/luci.chromium.ci/chromeos-amd64-generic-rel" + category: "cros|simple|x64" + short_name: "ᕕ(ᐛ)ᕗ" + } + builders: { + name: "buildbot/chromium.chromiumos/chromeos-amd64-generic-rel" + category: "cros|simple|x64" + short_name: "(ಥ_ಥ)" + } + builders: { + name: "buildbucket/luci.chromium.ci/chromeos-daisy-rel" + category: "cros|simple|dsy" + short_name: "ᕕ(ᐛ)ᕗ" + } + builders: { + name: "buildbot/chromium.chromiumos/chromeos-daisy-rel" + category: "cros|simple|dsy" + short_name: "(ಥ_ಥ)" + } } # Everything below was generated from buildermap.json. @@ -3867,9 +3871,11 @@ builders: { name: "buildbot/tryserver.chromium.chromiumos/chromeos-amd64-generic-rel" + name: "buildbucket/luci.chromium.try/chromeos-amd64-generic-rel" } builders: { name: "buildbot/tryserver.chromium.chromiumos/chromeos-daisy-rel" + name: "buildbucket/luci.chromium.try/chromeos-daisy-rel" } builders: { name: "buildbot/tryserver.chromium.chromiumos/linux-chromeos-compile-dbg" @@ -3879,6 +3885,7 @@ } builders: { name: "buildbot/tryserver.chromium.chromiumos/linux-chromeos-rel" + name: "buildbucket/luci.chromium.try/linux-chromeos-rel" } }
diff --git a/infra/config/global/luci-scheduler.cfg b/infra/config/global/luci-scheduler.cfg index 720e626..930a235 100644 --- a/infra/config/global/luci-scheduler.cfg +++ b/infra/config/global/luci-scheduler.cfg
@@ -75,6 +75,8 @@ # ChromeOS. Sorted alphabetically. triggers: "chromeos-amd64-generic-rel" triggers: "chromeos-amd64-generic-rel-vm-tests" + triggers: "chromeos-daisy-rel" + triggers: "linux-chromeos-rel" # iOS. Sorted alphabetically. triggers: "ios-simulator" @@ -557,6 +559,26 @@ } } +job { + id: "chromeos-daisy-rel" + acl_sets: "default" + buildbucket: { + server: "cr-buildbucket.appspot.com" + bucket: "luci.chromium.ci" + builder: "chromeos-daisy-rel" + } +} + +job { + id: "linux-chromeos-rel" + acl_sets: "default" + buildbucket: { + server: "cr-buildbucket.appspot.com" + bucket: "luci.chromium.ci" + builder: "linux-chromeos-rel" + } +} + ################################################################################ # iOS Builders. Sorted alphabetically. ################################################################################
diff --git a/ios/chrome/app/strings/resources/ios_strings_es-419.xtb b/ios/chrome/app/strings/resources/ios_strings_es-419.xtb index 61c0a4b..e0bc6527 100644 --- a/ios/chrome/app/strings/resources/ios_strings_es-419.xtb +++ b/ios/chrome/app/strings/resources/ios_strings_es-419.xtb
@@ -81,6 +81,7 @@ <translation id="2381405137052800939">Configuración básica</translation> <translation id="2386793615875593361">1 foto seleccionada</translation> <translation id="2435457462613246316">Mostrar contraseña</translation> +<translation id="2481538920734869610">AGREGAR CUENTA</translation> <translation id="2523363575747517183">Este sitio web está intentando abrir otra app de forma reiterada.</translation> <translation id="2529021024822217800">Abrir todo</translation> <translation id="2572712655377361602">Una política de dispositivo bloqueó el acceso a tus fotos</translation> @@ -344,6 +345,7 @@ <translation id="7203585745079012652">Decir las respuestas</translation> <translation id="722055596168483966">Personalizar los servicios de Google</translation> <translation id="7272437679830969316">No se puede verificar tu identidad. La contraseña no se copió.</translation> +<translation id="7285236536143823449">SÍ, ACEPTO</translation> <translation id="7291368939935408496">Preparando las contraseñas…</translation> <translation id="7336264872878993241"><ph name="PERCENT" /> % descargado</translation> <translation id="7346909386216857016">Entendido</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_et.xtb b/ios/chrome/app/strings/resources/ios_strings_et.xtb index 5cfdf3b..47a8639 100644 --- a/ios/chrome/app/strings/resources/ios_strings_et.xtb +++ b/ios/chrome/app/strings/resources/ios_strings_et.xtb
@@ -81,6 +81,7 @@ <translation id="2381405137052800939">Põhiteave</translation> <translation id="2386793615875593361">1 on valitud</translation> <translation id="2435457462613246316">Kuva parool</translation> +<translation id="2481538920734869610">LISA KONTO</translation> <translation id="2523363575747517183">See veebisait üritab korduvalt avada teist rakendust.</translation> <translation id="2529021024822217800">Ava kõik</translation> <translation id="2572712655377361602">Seadme reegel blokeeris juurdepääsu teie fotodele</translation> @@ -344,6 +345,7 @@ <translation id="7203585745079012652">Vastuste esitamine</translation> <translation id="722055596168483966">Google'i teenuste isikupärastamine</translation> <translation id="7272437679830969316">Teie isikut ei õnnestu tuvastada. Parooli ei kopeeritud.</translation> +<translation id="7285236536143823449">JAH, SOBIB</translation> <translation id="7291368939935408496">Paroolide ettevalmistamine …</translation> <translation id="7336264872878993241"><ph name="PERCENT" /> protsenti on alla laaditud</translation> <translation id="7346909386216857016">Selge, sain aru</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_it.xtb b/ios/chrome/app/strings/resources/ios_strings_it.xtb index d83aa0d..4b964e45 100644 --- a/ios/chrome/app/strings/resources/ios_strings_it.xtb +++ b/ios/chrome/app/strings/resources/ios_strings_it.xtb
@@ -81,6 +81,7 @@ <translation id="2381405137052800939">Opzioni di base</translation> <translation id="2386793615875593361">Una selezionata</translation> <translation id="2435457462613246316">Mostra password</translation> +<translation id="2481538920734869610">AGGIUNGI ACCOUNT</translation> <translation id="2523363575747517183">Questo sito web sta cercando ripetutamente di aprire un'altra applicazione.</translation> <translation id="2529021024822217800">Apri tutto</translation> <translation id="2572712655377361602">Una norma relativa ai dispositivi ha impedito l'accesso alle tue foto</translation> @@ -344,6 +345,7 @@ <translation id="7203585745079012652">Pronuncia le risposte</translation> <translation id="722055596168483966">Personalizza i servizi Google</translation> <translation id="7272437679830969316">Impossibile verificare la tua identità. Password non copiata.</translation> +<translation id="7285236536143823449">ACCETTO</translation> <translation id="7291368939935408496">Preparazione delle password...</translation> <translation id="7336264872878993241"><ph name="PERCENT" />% scaricato</translation> <translation id="7346909386216857016">OK</translation> @@ -386,7 +388,7 @@ <translation id="8073670137947914548">Download terminato</translation> <translation id="8076014560081431679">Le impostazioni del sito salvate non verranno eliminate e potrebbero rispecchiare le tue abitudini di navigazione. <ph name="BEGIN_LINK" />Ulteriori informazioni<ph name="END_LINK" /></translation> <translation id="8080028325999236607">Chiudi tutte le schede</translation> -<translation id="8114753159095730575">Puoi scaricare il file. Le opzioni sono disponibile nella parte inferiore della schermata.</translation> +<translation id="8114753159095730575">È possibile il download dei file. Le opzioni sono disponibili nella parte inferiore della schermata.</translation> <translation id="8205564605687841303">Annulla</translation> <translation id="8225985093977202398">Immagini e file memorizzati nella cache</translation> <translation id="8261506727792406068">Elimina</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_ko.xtb b/ios/chrome/app/strings/resources/ios_strings_ko.xtb index 2176fb6..c4fbe609 100644 --- a/ios/chrome/app/strings/resources/ios_strings_ko.xtb +++ b/ios/chrome/app/strings/resources/ios_strings_ko.xtb
@@ -81,6 +81,7 @@ <translation id="2381405137052800939">기본설정</translation> <translation id="2386793615875593361">1장 선택됨</translation> <translation id="2435457462613246316">비밀번호 표시</translation> +<translation id="2481538920734869610">계정 추가</translation> <translation id="2523363575747517183">다른 애플리케이션을 열려는 반복적인 시도가 실행되는 웹사이트입니다.</translation> <translation id="2529021024822217800">모두 열기</translation> <translation id="2572712655377361602">기기 정책으로 인해 사진 액세스가 차단되었습니다.</translation> @@ -344,6 +345,7 @@ <translation id="7203585745079012652">음성 응답</translation> <translation id="722055596168483966">Google 서비스 맞춤설정</translation> <translation id="7272437679830969316">신원을 인증할 수 없습니다. 비밀번호가 복사되지 않았습니다.</translation> +<translation id="7285236536143823449">예</translation> <translation id="7291368939935408496">비밀번호 준비 중...</translation> <translation id="7336264872878993241"><ph name="PERCENT" />% 다운로드됨</translation> <translation id="7346909386216857016">확인</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_ml.xtb b/ios/chrome/app/strings/resources/ios_strings_ml.xtb index e615976..ccf6dfc 100644 --- a/ios/chrome/app/strings/resources/ios_strings_ml.xtb +++ b/ios/chrome/app/strings/resources/ios_strings_ml.xtb
@@ -386,7 +386,7 @@ <translation id="8073670137947914548">ഡൗൺലോഡ് പൂർത്തിയായി</translation> <translation id="8076014560081431679">സംരക്ഷിച്ച സൈറ്റ് ക്രമീകരണം ഇല്ലാതാക്കപ്പെടില്ല, ഇത് നിങ്ങളുടെ ബ്രൗസിംഗ് രീതികളെ പ്രതിഫലിപ്പിക്കാനുമിടയുണ്ട്. <ph name="BEGIN_LINK" />കൂടുതലറിയുക<ph name="END_LINK" /></translation> <translation id="8080028325999236607">എല്ലാ ടാബുകളും അടയ്ക്കുക</translation> -<translation id="8114753159095730575">ഫയൽ ഡൗൺലോഡ് ചെയ്യൽ ലഭ്യമാണ്. സ്ക്രീനിന്റെ ചുവടെ ഓപ്ഷനുകൾ ലഭ്യമാണ്.</translation> +<translation id="8114753159095730575">ഫയൽ ഡൗൺലോഡ് ചെയ്യൽ ലഭ്യമാണ്. സ്ക്രീനിന്റെ ചുവടെ ഓപ്ഷനുകളുണ്ട്.</translation> <translation id="8205564605687841303">റദ്ദാക്കുക</translation> <translation id="8225985093977202398">കാഷെ ചെയ്ത ചിത്രങ്ങളും ഫയലുകളും</translation> <translation id="8261506727792406068">ഇല്ലാതാക്കുക</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_ta.xtb b/ios/chrome/app/strings/resources/ios_strings_ta.xtb index 31266e6..0deaa1f8 100644 --- a/ios/chrome/app/strings/resources/ios_strings_ta.xtb +++ b/ios/chrome/app/strings/resources/ios_strings_ta.xtb
@@ -81,6 +81,7 @@ <translation id="2381405137052800939">அடிப்படைகள்</translation> <translation id="2386793615875593361">1 தேர்ந்தெடுப்பட்டது</translation> <translation id="2435457462613246316">கடவுச்சொல்லைக் காண்பி</translation> +<translation id="2481538920734869610">கணக்கைச் சேர்</translation> <translation id="2523363575747517183">இந்த இணையதளம், மற்றொரு பயன்பாட்டைத் திறப்பதற்கு மீண்டும் மீண்டும் முயல்கிறது.</translation> <translation id="2529021024822217800">எல்லாவற்றையும் திற</translation> <translation id="2572712655377361602">உங்கள் படங்களுக்கான அணுகலை, சாதனக் கொள்கை ஒன்று தடுத்துள்ளது</translation> @@ -344,6 +345,7 @@ <translation id="7203585745079012652">பதில்களை மீண்டும் படி</translation> <translation id="722055596168483966">Google சேவைகளைத் தனிப்பயனாக்கு</translation> <translation id="7272437679830969316">அடையாளத்தைச் சரிபார்க்க முடியவில்லை. கடவுச்சொல் நகலெடுக்கப்படவில்லை.</translation> +<translation id="7285236536143823449">ஏற்கிறேன்</translation> <translation id="7291368939935408496">கடவுச்சொற்கள் தயாராகின்றன...</translation> <translation id="7336264872878993241"><ph name="PERCENT" /> சதவீதம் பதிவிறக்கப்பட்டது</translation> <translation id="7346909386216857016">சரி, புரிந்தது</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_zh-CN.xtb b/ios/chrome/app/strings/resources/ios_strings_zh-CN.xtb index 1d7b8d4..73241f50 100644 --- a/ios/chrome/app/strings/resources/ios_strings_zh-CN.xtb +++ b/ios/chrome/app/strings/resources/ios_strings_zh-CN.xtb
@@ -81,6 +81,7 @@ <translation id="2381405137052800939">基本</translation> <translation id="2386793615875593361">已选择 1 张</translation> <translation id="2435457462613246316">显示密码</translation> +<translation id="2481538920734869610">添加帐号</translation> <translation id="2523363575747517183">该网站屡次尝试打开其他应用。</translation> <translation id="2529021024822217800">全部打开</translation> <translation id="2572712655377361602">设备政策已禁用对您的照片的访问权限</translation> @@ -344,6 +345,7 @@ <translation id="7203585745079012652">说出答案</translation> <translation id="722055596168483966">对 Google 服务进行个性化设置</translation> <translation id="7272437679830969316">无法验证您的身份。未复制密码。</translation> +<translation id="7285236536143823449">立即启用</translation> <translation id="7291368939935408496">正在准备密码…</translation> <translation id="7336264872878993241">已下载<ph name="PERCENT" />%</translation> <translation id="7346909386216857016">知道了</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_zh-TW.xtb b/ios/chrome/app/strings/resources/ios_strings_zh-TW.xtb index d49f88d..6bb124f 100644 --- a/ios/chrome/app/strings/resources/ios_strings_zh-TW.xtb +++ b/ios/chrome/app/strings/resources/ios_strings_zh-TW.xtb
@@ -81,6 +81,7 @@ <translation id="2381405137052800939">基本</translation> <translation id="2386793615875593361">已選取 1 張</translation> <translation id="2435457462613246316">顯示密碼</translation> +<translation id="2481538920734869610">新增帳戶</translation> <translation id="2523363575747517183">這個網站不斷嘗試開啟其他應用程式。</translation> <translation id="2529021024822217800">全部開啟</translation> <translation id="2572712655377361602">裝置政策禁止您存取相片</translation> @@ -344,6 +345,7 @@ <translation id="7203585745079012652">語音答覆</translation> <translation id="722055596168483966">享有個人化的 Google 服務</translation> <translation id="7272437679830969316">無法驗證你的身分,因此未複製密碼。</translation> +<translation id="7285236536143823449">是,我同意</translation> <translation id="7291368939935408496">正在準備匯出密碼...</translation> <translation id="7336264872878993241">已下載 <ph name="PERCENT" /> %</translation> <translation id="7346909386216857016">好,我知道了</translation>
diff --git a/ios/chrome/browser/infobars/infobar_manager_impl.mm b/ios/chrome/browser/infobars/infobar_manager_impl.mm index 1eefbed..c67ab9ea 100644 --- a/ios/chrome/browser/infobars/infobar_manager_impl.mm +++ b/ios/chrome/browser/infobars/infobar_manager_impl.mm
@@ -90,5 +90,8 @@ void InfoBarManagerImpl::OpenURL(const GURL& url, WindowOpenDisposition disposition) { - NOTIMPLEMENTED(); + web::WebState::OpenURLParams params(url, web::Referrer(), disposition, + ui::PAGE_TRANSITION_LINK, + /*is_renderer_initiated=*/false); + web_state_->OpenURL(params); }
diff --git a/ios/chrome/browser/ui/bookmarks/BUILD.gn b/ios/chrome/browser/ui/bookmarks/BUILD.gn index fa52c64..1a84806e 100644 --- a/ios/chrome/browser/ui/bookmarks/BUILD.gn +++ b/ios/chrome/browser/ui/bookmarks/BUILD.gn
@@ -13,8 +13,6 @@ "bookmark_empty_background.mm", "bookmark_folder_editor_view_controller.h", "bookmark_folder_editor_view_controller.mm", - "bookmark_folder_table_view_cell.h", - "bookmark_folder_table_view_cell.mm", "bookmark_folder_view_controller.h", "bookmark_folder_view_controller.mm", "bookmark_home_consumer.h", @@ -116,7 +114,6 @@ "//ios/chrome/browser/undo", "//ios/public/provider/chrome/browser", "//ios/public/provider/chrome/browser/ui", - "//ios/third_party/material_components_ios", "//ios/third_party/material_roboto_font_loader_ios", "//ios/web", "//skia",
diff --git a/ios/chrome/browser/ui/bookmarks/bookmark_folder_table_view_cell.h b/ios/chrome/browser/ui/bookmarks/bookmark_folder_table_view_cell.h deleted file mode 100644 index 37e8808..0000000 --- a/ios/chrome/browser/ui/bookmarks/bookmark_folder_table_view_cell.h +++ /dev/null
@@ -1,36 +0,0 @@ -// Copyright 2014 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_BOOKMARKS_BOOKMARK_FOLDER_TABLE_VIEW_CELL_H_ -#define IOS_CHROME_BROWSER_UI_BOOKMARKS_BOOKMARK_FOLDER_TABLE_VIEW_CELL_H_ - -#import <UIKit/UIKit.h> - -// Table view cell that appears in the folder picker. -@interface BookmarkFolderTableViewCell : UITableViewCell - -// Whether the cell is displaying a checkmark. -@property(nonatomic, assign, getter=isChecked) BOOL checked; - -// Whether the cell is enabled for interaction. -@property(nonatomic, assign, getter=isEnabled) BOOL enabled; - -// Returns the reuse identifier for folder cells. -+ (NSString*)folderCellReuseIdentifier; - -// Returns the reuse identifier for the folder creation cell. -+ (NSString*)folderCreationCellReuseIdentifier; - -// Returns a cell to be used to display a given folder. It displays a folder -// icon. The indentation level can be used to signify the depth in a hierarchy. -// The icon and title are then indented according to the indentation level. -+ (instancetype)folderCell; - -// Returns a cell to create a new folder. It displays a folder icon with a '+' -// sign in it. The title prompts the user to create a new folder. -+ (instancetype)folderCreationCell; - -@end - -#endif // IOS_CHROME_BROWSER_UI_BOOKMARKS_BOOKMARK_FOLDER_TABLE_VIEW_CELL_H_
diff --git a/ios/chrome/browser/ui/bookmarks/bookmark_folder_table_view_cell.mm b/ios/chrome/browser/ui/bookmarks/bookmark_folder_table_view_cell.mm deleted file mode 100644 index cb9b398..0000000 --- a/ios/chrome/browser/ui/bookmarks/bookmark_folder_table_view_cell.mm +++ /dev/null
@@ -1,121 +0,0 @@ -// Copyright 2014 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/bookmarks/bookmark_folder_table_view_cell.h" - -#import "ios/chrome/browser/ui/bookmarks/bookmark_utils_ios.h" -#import "ios/chrome/browser/ui/rtl_geometry.h" -#include "ios/chrome/grit/ios_strings.h" -#import "ios/third_party/material_components_ios/src/components/Typography/src/MaterialTypography.h" -#include "ui/base/l10n/l10n_util_mac.h" - -#if !defined(__has_feature) || !__has_feature(objc_arc) -#error "This file requires ARC support." -#endif - -namespace { -// The amount in points by which to offset horizontally the text label. -const CGFloat kTitleLabelLeadingOffset = 18.0; -// The amount in points by which to offset horizontally the image view. -const CGFloat kImageViewLeadingOffset = 1.0; -// Width by which to indent folder cell's content. This is multiplied by the -// |indentationLevel| of the cell. -const CGFloat kFolderCellIndentationWidth = 32.0; -} // namespace - -@implementation BookmarkFolderTableViewCell - -@synthesize checked = _checked; -@synthesize enabled = _enabled; - -+ (NSString*)folderCellReuseIdentifier { - return @"BookmarkFolderCellReuseIdentifier"; -} - -+ (NSString*)folderCreationCellReuseIdentifier { - return @"BookmarkFolderCreationCellReuseIdentifier"; -} - -+ (instancetype)folderCell { - BookmarkFolderTableViewCell* folderCell = - [[[self class] alloc] initWithStyle:UITableViewCellStyleDefault - reuseIdentifier:[self folderCellReuseIdentifier]]; - folderCell.indentationWidth = kFolderCellIndentationWidth; - // TODO(crbug.com/787668): Replace bookmark_gray_folder by - // bookmark_gray_folder_new and use bookmark_gray_folder below. - folderCell.imageView.image = [UIImage imageNamed:@"bookmark_gray_folder_new"]; - return folderCell; -} - -+ (instancetype)folderCreationCell { - BookmarkFolderTableViewCell* newFolderCell = [[[self class] alloc] - initWithStyle:UITableViewCellStyleDefault - reuseIdentifier:[self folderCreationCellReuseIdentifier]]; - newFolderCell.textLabel.text = - l10n_util::GetNSString(IDS_IOS_BOOKMARK_CREATE_GROUP); - newFolderCell.imageView.image = - [UIImage imageNamed:@"bookmark_gray_new_folder"]; - newFolderCell.accessibilityIdentifier = @"Create New Folder"; - return newFolderCell; -} - -- (instancetype)initWithStyle:(UITableViewCellStyle)style - reuseIdentifier:(NSString*)reuseIdentifier { - self = [super initWithStyle:style reuseIdentifier:reuseIdentifier]; - if (self) { - self.textLabel.font = [MDCTypography subheadFont]; - self.textLabel.textColor = bookmark_utils_ios::darkTextColor(); - self.selectionStyle = UITableViewCellSelectionStyleGray; - - // TODO(crbug.com/787668): Replace bookmark_gray_folder by - // bookmark_gray_folder_new and use bookmark_gray_folder below. - self.imageView.image = [UIImage imageNamed:@"bookmark_gray_folder_new"]; - self.accessibilityTraits |= UIAccessibilityTraitButton; - _enabled = YES; - } - return self; -} - -- (void)setChecked:(BOOL)checked { - if (checked != _checked) { - _checked = checked; - UIImageView* checkImageView = - checked ? [[UIImageView alloc] - initWithImage:[UIImage imageNamed:@"bookmark_blue_check"]] - : nil; - self.accessoryView = checkImageView; - } -} - -- (void)setEnabled:(BOOL)enabled { - if (enabled != _enabled) { - _enabled = enabled; - self.userInteractionEnabled = enabled; - self.textLabel.enabled = enabled; - } -} - -- (void)layoutSubviews { - [super layoutSubviews]; - - // Move the text label as required by the design. - UIEdgeInsets insets = - UIEdgeInsetsMakeDirected(0, kTitleLabelLeadingOffset, 0, 0); - self.textLabel.frame = UIEdgeInsetsInsetRect(self.textLabel.frame, insets); - - // Indent the image. An offset is required in the design. - LayoutRect layout = LayoutRectForRectInBoundingRect(self.imageView.frame, - self.contentView.bounds); - layout.position.leading += - self.indentationWidth * self.indentationLevel + kImageViewLeadingOffset; - self.imageView.frame = LayoutRectGetRect(layout); -} - -- (void)prepareForReuse { - [super prepareForReuse]; - self.checked = NO; - self.enabled = YES; -} - -@end
diff --git a/ios/chrome/browser/ui/bookmarks/bookmark_folder_view_controller.h b/ios/chrome/browser/ui/bookmarks/bookmark_folder_view_controller.h index c987f4c..1365698a 100644 --- a/ios/chrome/browser/ui/bookmarks/bookmark_folder_view_controller.h +++ b/ios/chrome/browser/ui/bookmarks/bookmark_folder_view_controller.h
@@ -8,6 +8,8 @@ #import <UIKit/UIKit.h> #include <set> +#import "ios/chrome/browser/ui/table_view/chrome_table_view_controller.h" + @class BookmarkFolderViewController; namespace bookmarks { class BookmarkModel; @@ -29,7 +31,7 @@ // This controller monitors the state of the bookmark model, so changes to the // bookmark model can affect this controller's state. // The bookmark model is assumed to be loaded, thus also not to be NULL. -@interface BookmarkFolderViewController : UIViewController +@interface BookmarkFolderViewController : ChromeTableViewController @property(nonatomic, weak) id<BookmarkFolderViewControllerDelegate> delegate; @@ -55,33 +57,6 @@ // delegate is not notified of the change. - (void)changeSelectedFolder:(const bookmarks::BookmarkNode*)selectedFolder; -#pragma mark UIScrollViewDelegate - -// Updates the MDCAppBar with changes to the collection view scroll state. Must -// be called by subclasses if they override this method in order to maintain -// this functionality. -- (void)scrollViewDidScroll:(UIScrollView*)scrollView NS_REQUIRES_SUPER; - -// Updates the MDCAppBar with changes to the collection view scroll state. Must -// be called by subclasses if they override this method in order to maintain -// this functionality. -- (void)scrollViewDidEndDragging:(UIScrollView*)scrollView - willDecelerate:(BOOL)decelerate NS_REQUIRES_SUPER; - -// Updates the MDCAppBar with changes to the collection view scroll state. Must -// be called by subclasses if they override this method in order to maintain -// this functionality. -- (void)scrollViewDidEndDecelerating:(UIScrollView*)scrollView - NS_REQUIRES_SUPER; - -// Updates the MDCAppBar with changes to the collection view scroll state. Must -// be called by subclasses if they override this method in order to maintain -// this functionality. -- (void)scrollViewWillEndDragging:(UIScrollView*)scrollView - withVelocity:(CGPoint)velocity - targetContentOffset:(inout CGPoint*)targetContentOffset - NS_REQUIRES_SUPER; - @end #endif // IOS_CHROME_BROWSER_UI_BOOKMARKS_BOOKMARK_FOLDER_VIEW_CONTROLLER_H_
diff --git a/ios/chrome/browser/ui/bookmarks/bookmark_folder_view_controller.mm b/ios/chrome/browser/ui/bookmarks/bookmark_folder_view_controller.mm index c7c362b..cb5ec8b 100644 --- a/ios/chrome/browser/ui/bookmarks/bookmark_folder_view_controller.mm +++ b/ios/chrome/browser/ui/bookmarks/bookmark_folder_view_controller.mm
@@ -11,22 +11,19 @@ #include "base/strings/sys_string_conversions.h" #include "components/bookmarks/browser/bookmark_model.h" #import "ios/chrome/browser/ui/bookmarks/bookmark_folder_editor_view_controller.h" -#import "ios/chrome/browser/ui/bookmarks/bookmark_folder_table_view_cell.h" #import "ios/chrome/browser/ui/bookmarks/bookmark_model_bridge_observer.h" #import "ios/chrome/browser/ui/bookmarks/bookmark_navigation_controller.h" #import "ios/chrome/browser/ui/bookmarks/bookmark_utils_ios.h" +#import "ios/chrome/browser/ui/bookmarks/cells/bookmark_folder_item.h" #import "ios/chrome/browser/ui/icons/chrome_icon.h" #import "ios/chrome/browser/ui/material_components/utils.h" #include "ios/chrome/grit/ios_strings.h" -#import "ios/third_party/material_components_ios/src/components/AppBar/src/MaterialAppBar.h" #include "ui/base/l10n/l10n_util_mac.h" #if !defined(__has_feature) || !__has_feature(objc_arc) #error "This file requires ARC support." #endif -using bookmarks::BookmarkNode; - namespace { // The height of every folder cell. @@ -36,17 +33,20 @@ const CGFloat kSectionHeaderHeight = 8.0; const CGFloat kSectionFooterHeight = 8.0; -// Enum for the available sections. -// First section displays a cell to create a new folder. -// The second section displays as many folders as are available. -typedef enum { - BookmarkFolderSectionDefault = 0, - BookmarkFolderSectionFolders, -} BookmarkFolderSection; -const NSInteger BookmarkFolderSectionCount = 2; +typedef NS_ENUM(NSInteger, SectionIdentifier) { + SectionIdentifierAddFolder = kSectionIdentifierEnumZero, + SectionIdentifierBookmarkFolders, +}; + +typedef NS_ENUM(NSInteger, ItemType) { + ItemTypeCreateNewFolder = kItemTypeEnumZero, + ItemTypeBookmarkFolder, +}; } // namespace +using bookmarks::BookmarkNode; + @interface BookmarkFolderViewController ()< BookmarkFolderEditorViewControllerDelegate, BookmarkModelBridgeObserver, @@ -55,7 +55,6 @@ std::set<const BookmarkNode*> _editedNodes; std::vector<const BookmarkNode*> _folders; std::unique_ptr<bookmarks::BookmarkModelBridge> _modelBridge; - MDCAppBar* _appBar; } // Should the controller setup Cancel and Done buttons instead of a back button. @@ -78,17 +77,9 @@ @property(nonatomic, assign, readonly) const std::vector<const BookmarkNode*>& folders; -// The table view that displays the options and folders. -@property(nonatomic, strong) UITableView* tableView; - -// Returns the cell for the default section and the given |row|. -- (BookmarkFolderTableViewCell*)defaultSectionCellForRow:(NSInteger)row; - -// Returns a folder cell for the folder at |row| in |self.folders|. -- (BookmarkFolderTableViewCell*)folderSectionCellForRow:(NSInteger)row; - -// Reloads the folder list. -- (void)reloadFolders; +// Reloads the model and the updates |self.tableView| to reflect any model +// changes. +- (void)reloadModel; // Pushes on the navigation controller a view controller to create a new folder. - (void)pushFolderAddViewController; @@ -111,7 +102,6 @@ @synthesize folderAddController = _folderAddController; @synthesize delegate = _delegate; @synthesize folders = _folders; -@synthesize tableView = _tableView; @synthesize selectedFolder = _selectedFolder; - (instancetype)initWithBookmarkModel:(bookmarks::BookmarkModel*)bookmarkModel @@ -123,7 +113,9 @@ DCHECK(bookmarkModel); DCHECK(bookmarkModel->loaded()); DCHECK(selectedFolder == NULL || selectedFolder->is_folder()); - self = [super initWithNibName:nil bundle:nil]; + self = + [super initWithTableViewStyle:UITableViewStylePlain + appBarStyle:ChromeTableViewControllerStyleWithAppBar]; if (self) { _allowsCancel = allowsCancel; _allowsNewFolders = allowsNewFolders; @@ -134,9 +126,6 @@ // Set up the bookmark model oberver. _modelBridge.reset( new bookmarks::BookmarkModelBridge(self, _bookmarkModel)); - - _appBar = [[MDCAppBar alloc] init]; - [self addChildViewController:[_appBar headerViewController]]; } return self; } @@ -145,23 +134,19 @@ DCHECK(selectedFolder); DCHECK(selectedFolder->is_folder()); _selectedFolder = selectedFolder; - [self.tableView reloadData]; + [self reloadModel]; } - (void)dealloc { - _tableView.dataSource = nil; - _tableView.delegate = nil; _folderAddController.delegate = nil; } -- (UIStatusBarStyle)preferredStatusBarStyle { - return UIStatusBarStyleDefault; -} - #pragma mark - View lifecycle - (void)viewDidLoad { [super viewDidLoad]; + [super loadModel]; + if ([self respondsToSelector:@selector(setEdgesForExtendedLayout:)]) { [self setEdgesForExtendedLayout:UIRectEdgeNone]; } @@ -199,39 +184,24 @@ self.navigationItem.leftBarButtonItem = backItem; } - // The table view. - UITableView* tableView = - [[UITableView alloc] initWithFrame:self.view.bounds - style:UITableViewStylePlain]; - tableView.dataSource = self; - tableView.delegate = self; - tableView.autoresizingMask = + // Configure the table view. + self.tableView.autoresizingMask = UIViewAutoresizingFlexibleWidth | UIViewAutoresizingFlexibleHeight; - tableView.separatorStyle = UITableViewCellSeparatorStyleNone; - [self.view addSubview:tableView]; - [self.view sendSubviewToBack:tableView]; - self.tableView = tableView; + self.tableView.separatorStyle = UITableViewCellSeparatorStyleNone; - // Add the app bar to the view hierarchy. This must be done last, so that the - // app bar's views are the frontmost. - ConfigureAppBarWithCardStyle(_appBar); - [_appBar headerViewController].headerView.trackingScrollView = self.tableView; - [_appBar addSubviewsToParent]; + // To support the pre UIRefresh we need to set the insets since + // UITableViewCell lines itself up with the tableView separator insets. The + // following line won't be needed for UIRefresh. + [self.tableView setSeparatorInset:UIEdgeInsetsMake(0, 51, 0, 0)]; } - (void)viewWillAppear:(BOOL)animated { [super viewWillAppear:animated]; // Whevener this VC is displayed the bottom toolbar will be hidden. self.navigationController.toolbarHidden = YES; - [self reloadFolders]; -} -- (UIViewController*)childViewControllerForStatusBarHidden { - return [_appBar headerViewController]; -} - -- (UIViewController*)childViewControllerForStatusBarStyle { - return [_appBar headerViewController]; + // Load the model. + [self reloadModel]; } #pragma mark - Accessibility @@ -241,75 +211,6 @@ return YES; } -#pragma mark - UIScrollViewDelegate - -- (void)scrollViewDidScroll:(UIScrollView*)scrollView { - MDCFlexibleHeaderView* headerView = [_appBar headerViewController].headerView; - if (scrollView == headerView.trackingScrollView) { - [headerView trackingScrollViewDidScroll]; - } -} - -- (void)scrollViewDidEndDecelerating:(UIScrollView*)scrollView { - MDCFlexibleHeaderView* headerView = [_appBar headerViewController].headerView; - if (scrollView == headerView.trackingScrollView) { - [headerView trackingScrollViewDidEndDecelerating]; - } -} - -- (void)scrollViewDidEndDragging:(UIScrollView*)scrollView - willDecelerate:(BOOL)decelerate { - MDCFlexibleHeaderView* headerView = [_appBar headerViewController].headerView; - if (scrollView == headerView.trackingScrollView) { - [headerView trackingScrollViewDidEndDraggingWillDecelerate:decelerate]; - } -} - -- (void)scrollViewWillEndDragging:(UIScrollView*)scrollView - withVelocity:(CGPoint)velocity - targetContentOffset:(inout CGPoint*)targetContentOffset { - MDCFlexibleHeaderView* headerView = [_appBar headerViewController].headerView; - if (scrollView == headerView.trackingScrollView) { - [headerView - trackingScrollViewWillEndDraggingWithVelocity:velocity - targetContentOffset:targetContentOffset]; - } -} - -#pragma mark - UITableViewDataSource - -- (NSInteger)numberOfSectionsInTableView:(UITableView*)tableView { - return BookmarkFolderSectionCount; -} - -- (NSInteger)tableView:(UITableView*)tableView - numberOfRowsInSection:(NSInteger)section { - switch (static_cast<BookmarkFolderSection>(section)) { - case BookmarkFolderSectionDefault: - return [self shouldShowDefaultSection] ? 1 : 0; - - case BookmarkFolderSectionFolders: - return self.folders.size(); - } - NOTREACHED(); - return 0; -} - -- (UITableViewCell*)tableView:(UITableView*)tableView - cellForRowAtIndexPath:(NSIndexPath*)indexPath { - BookmarkFolderTableViewCell* cell = nil; - switch (static_cast<BookmarkFolderSection>(indexPath.section)) { - case BookmarkFolderSectionDefault: - cell = [self defaultSectionCellForRow:indexPath.row]; - break; - - case BookmarkFolderSectionFolders: - cell = [self folderSectionCellForRow:indexPath.row]; - break; - } - return cell; -} - #pragma mark - UITableViewDelegate - (CGFloat)tableView:(UITableView*)tableView @@ -319,15 +220,7 @@ - (CGFloat)tableView:(UITableView*)tableView heightForHeaderInSection:(NSInteger)section { - switch (static_cast<BookmarkFolderSection>(section)) { - case BookmarkFolderSectionDefault: - return [self shouldShowDefaultSection] ? kSectionHeaderHeight : 0; - - case BookmarkFolderSectionFolders: - return kSectionHeaderHeight; - } - NOTREACHED(); - return 0; + return kSectionHeaderHeight; } - (UIView*)tableView:(UITableView*)tableView @@ -336,7 +229,9 @@ CGRectMake(0, 0, CGRectGetWidth(tableView.frame), [self tableView:tableView heightForHeaderInSection:section]); UIView* headerView = [[UIView alloc] initWithFrame:headerViewFrame]; - if (section == BookmarkFolderSectionFolders && + if (section == + [self.tableViewModel + sectionForSectionIdentifier:SectionIdentifierBookmarkFolders] && [self shouldShowDefaultSection]) { CGRect separatorFrame = CGRectMake(0, 0, CGRectGetWidth(headerView.bounds), @@ -352,15 +247,7 @@ - (CGFloat)tableView:(UITableView*)tableView heightForFooterInSection:(NSInteger)section { - switch (static_cast<BookmarkFolderSection>(section)) { - case BookmarkFolderSectionDefault: - return [self shouldShowDefaultSection] ? kSectionFooterHeight : 0; - - case BookmarkFolderSectionFolders: - return kSectionFooterHeight; - } - NOTREACHED(); - return 0; + return kSectionFooterHeight; } - (UIView*)tableView:(UITableView*)tableView @@ -371,12 +258,12 @@ - (void)tableView:(UITableView*)tableView didSelectRowAtIndexPath:(NSIndexPath*)indexPath { [tableView deselectRowAtIndexPath:indexPath animated:YES]; - switch (static_cast<BookmarkFolderSection>(indexPath.section)) { - case BookmarkFolderSectionDefault: + switch ([self.tableViewModel sectionIdentifierForSection:indexPath.section]) { + case SectionIdentifierAddFolder: [self pushFolderAddViewController]; break; - case BookmarkFolderSectionFolders: { + case SectionIdentifierBookmarkFolders: { const BookmarkNode* folder = self.folders[indexPath.row]; [self changeSelectedFolder:folder]; [self delayedNotifyDelegateOfSelection]; @@ -390,7 +277,7 @@ - (void)bookmarkFolderEditor:(BookmarkFolderEditorViewController*)folderEditor didFinishEditingFolder:(const BookmarkNode*)folder { DCHECK(folder); - [self reloadFolders]; + [self reloadModel]; [self changeSelectedFolder:folder]; [self delayedNotifyDelegateOfSelection]; } @@ -422,18 +309,18 @@ - (void)bookmarkNodeChanged:(const BookmarkNode*)bookmarkNode { if (!bookmarkNode->is_folder()) return; - [self reloadFolders]; + [self reloadModel]; } - (void)bookmarkNodeChildrenChanged:(const BookmarkNode*)bookmarkNode { - [self reloadFolders]; + [self reloadModel]; } - (void)bookmarkNode:(const BookmarkNode*)bookmarkNode movedFromParent:(const BookmarkNode*)oldParent toParent:(const BookmarkNode*)newParent { if (bookmarkNode->is_folder()) { - [self reloadFolders]; + [self reloadModel]; } } @@ -460,14 +347,14 @@ // node. [self changeSelectedFolder:self.bookmarkModel->mobile_node()]; } - [self reloadFolders]; + [self reloadModel]; } - (void)bookmarkModelRemovedAllNodes { // The selected folder is no longer valid. Fallback on the Mobile Bookmarks // node. [self changeSelectedFolder:self.bookmarkModel->mobile_node()]; - [self reloadFolders]; + [self reloadModel]; } #pragma mark - Actions @@ -490,52 +377,57 @@ return self.allowsNewFolders; } -- (BookmarkFolderTableViewCell*)defaultSectionCellForRow:(NSInteger)row { - DCHECK([self shouldShowDefaultSection]); - DCHECK_EQ(0, row); - BookmarkFolderTableViewCell* cell = [self.tableView - dequeueReusableCellWithIdentifier:[BookmarkFolderTableViewCell - folderCreationCellReuseIdentifier]]; - if (!cell) { - cell = [BookmarkFolderTableViewCell folderCreationCell]; - } - return cell; -} - -- (BookmarkFolderTableViewCell*)folderSectionCellForRow:(NSInteger)row { - DCHECK(row < - [self.tableView numberOfRowsInSection:BookmarkFolderSectionFolders]); - BookmarkFolderTableViewCell* cell = [self.tableView - dequeueReusableCellWithIdentifier:[BookmarkFolderTableViewCell - folderCellReuseIdentifier]]; - if (!cell) { - cell = [BookmarkFolderTableViewCell folderCell]; - } - const BookmarkNode* folder = self.folders[row]; - NSString* title = bookmark_utils_ios::TitleForBookmarkNode(folder); - cell.textLabel.text = title; - cell.accessibilityIdentifier = title; - cell.accessibilityLabel = title; - cell.checked = (self.selectedFolder == folder); - - // Indentation level. - NSInteger level = 0; - const BookmarkNode* node = folder; - while (node && !(self.bookmarkModel->is_root_node(node))) { - ++level; - node = node->parent(); - } - // The root node is not shown as a folder, so top level folders have a - // level strictly positive. - DCHECK(level > 0); - cell.indentationLevel = level - 1; - - return cell; -} - -- (void)reloadFolders { +- (void)reloadModel { _folders = bookmark_utils_ios::VisibleNonDescendantNodes(self.editedNodes, self.bookmarkModel); + + // Delete any existing section. + if ([self.tableViewModel + hasSectionForSectionIdentifier:SectionIdentifierAddFolder]) + [self.tableViewModel + removeSectionWithIdentifier:SectionIdentifierAddFolder]; + if ([self.tableViewModel + hasSectionForSectionIdentifier:SectionIdentifierBookmarkFolders]) + [self.tableViewModel + removeSectionWithIdentifier:SectionIdentifierBookmarkFolders]; + + // Add default add Folder section if needed. + if ([self shouldShowDefaultSection]) { + [self.tableViewModel addSectionWithIdentifier:SectionIdentifierAddFolder]; + BookmarkFolderItem* createFolderItem = + [[BookmarkFolderItem alloc] initWithType:ItemTypeBookmarkFolder + style:BookmarkFolderStyleNewFolder]; + [self.tableViewModel addItem:createFolderItem + toSectionWithIdentifier:SectionIdentifierAddFolder]; + } + + // Add Folders entries. + [self.tableViewModel + addSectionWithIdentifier:SectionIdentifierBookmarkFolders]; + for (NSUInteger row = 0; row < _folders.size(); row++) { + const BookmarkNode* folderNode = self.folders[row]; + BookmarkFolderItem* folderItem = [[BookmarkFolderItem alloc] + initWithType:ItemTypeBookmarkFolder + style:BookmarkFolderStyleFolderEntry]; + folderItem.title = bookmark_utils_ios::TitleForBookmarkNode(folderNode); + folderItem.currentFolder = (self.selectedFolder == folderNode); + + // Indentation level. + NSInteger level = 0; + const BookmarkNode* node = folderNode; + while (node && !(self.bookmarkModel->is_root_node(node))) { + ++level; + node = node->parent(); + } + // The root node is not shown as a folder, so top level folders have a + // level strictly positive. + DCHECK(level > 0); + folderItem.indentationLevel = level - 1; + + [self.tableViewModel addItem:folderItem + toSectionWithIdentifier:SectionIdentifierBookmarkFolders]; + } + [self.tableView reloadData]; }
diff --git a/ios/chrome/browser/ui/bookmarks/bookmark_home_consumer.h b/ios/chrome/browser/ui/bookmarks/bookmark_home_consumer.h index e6803a0..8d8a4c3 100644 --- a/ios/chrome/browser/ui/bookmarks/bookmark_home_consumer.h +++ b/ios/chrome/browser/ui/bookmarks/bookmark_home_consumer.h
@@ -7,9 +7,32 @@ #import "ios/chrome/browser/ui/table_view/chrome_table_view_consumer.h" +typedef NS_ENUM(NSInteger, BookmarkHomeBackgroundStyle) { + // The default background style. + BookmarkHomeBackgroundStyleDefault, + + // A background style that indicates that bookmarks are loading. + BookmarkHomeBackgroundStyleLoading, + + // A background style that indicates that no bookmarks are present. + BookmarkHomeBackgroundStyleEmpty, +}; + // BookmarkHomeConsumer provides methods that allow mediators to update the UI. @protocol BookmarkHomeConsumer<ChromeTableViewConsumer> +// Refreshes the UI. +- (void)refreshContents; + +// Starts an asynchronous favicon load for the row at the given |indexPath|. Can +// optionally fetch a favicon from a Google server if nothing suitable is found +// locally; otherwise uses the fallback icon style. +- (void)loadFaviconAtIndexPath:(NSIndexPath*)indexPath + continueToGoogleServer:(BOOL)continueToGoogleServer; + +// Displays the table view background for the given |style|. +- (void)updateTableViewBackgroundStyle:(BookmarkHomeBackgroundStyle)style; + @end #endif // IOS_CHROME_BROWSER_UI_BOOKMARKS_BOOKMARK_HOME_CONSUMER_H_
diff --git a/ios/chrome/browser/ui/bookmarks/bookmark_home_mediator.h b/ios/chrome/browser/ui/bookmarks/bookmark_home_mediator.h index e746582..0c87bda0 100644 --- a/ios/chrome/browser/ui/bookmarks/bookmark_home_mediator.h +++ b/ios/chrome/browser/ui/bookmarks/bookmark_home_mediator.h
@@ -10,6 +10,10 @@ @protocol BookmarkHomeConsumer; @class BookmarkHomeSharedState; +namespace ios { +class ChromeBrowserState; +} + // BookmarkHomeMediator manages model interactions for the // BookmarkHomeViewController. @interface BookmarkHomeMediator : NSObject @@ -17,6 +21,7 @@ @property(nonatomic, weak) id<BookmarkHomeConsumer> consumer; - (instancetype)initWithSharedState:(BookmarkHomeSharedState*)sharedState + browserState:(ios::ChromeBrowserState*)browserState NS_DESIGNATED_INITIALIZER; - (instancetype)init NS_UNAVAILABLE; @@ -27,6 +32,10 @@ // Stops mediating and disconnects from backend models. - (void)disconnect; +// Rebuilds the table view model data for the Bookmarks section. Deletes any +// existing data first. +- (void)computeBookmarkTableViewData; + @end #endif // IOS_CHROME_BROWSER_UI_BOOKMARKS_BOOKMARK_HOME_MEDIATOR_H_
diff --git a/ios/chrome/browser/ui/bookmarks/bookmark_home_mediator.mm b/ios/chrome/browser/ui/bookmarks/bookmark_home_mediator.mm index a3f0dbb2..64d0017 100644 --- a/ios/chrome/browser/ui/bookmarks/bookmark_home_mediator.mm +++ b/ios/chrome/browser/ui/bookmarks/bookmark_home_mediator.mm
@@ -5,25 +5,48 @@ #import "ios/chrome/browser/ui/bookmarks/bookmark_home_mediator.h" #include "base/logging.h" +#include "base/mac/foundation_util.h" +#include "components/bookmarks/browser/bookmark_model.h" +#include "ios/chrome/browser/browser_state/chrome_browser_state.h" +#import "ios/chrome/browser/sync/synced_sessions_bridge.h" +#import "ios/chrome/browser/ui/bookmarks/bookmark_home_consumer.h" #import "ios/chrome/browser/ui/bookmarks/bookmark_home_shared_state.h" +#include "ios/chrome/browser/ui/bookmarks/bookmark_model_bridge_observer.h" +#import "ios/chrome/browser/ui/bookmarks/cells/bookmark_home_node_item.h" +#import "ios/chrome/browser/ui/table_view/table_view_model.h" #if !defined(__has_feature) || !__has_feature(objc_arc) #error "This file requires ARC support." #endif -@interface BookmarkHomeMediator () +using bookmarks::BookmarkNode; + +@interface BookmarkHomeMediator ()<BookmarkModelBridgeObserver, + SyncedSessionsObserver> { + // Bridge to register for bookmark changes. + std::unique_ptr<bookmarks::BookmarkModelBridge> _modelBridge; + + // Observer to keep track of the signin and syncing status. + std::unique_ptr<synced_sessions::SyncedSessionsObserverBridge> + _syncedSessionsObserver; +} @property(nonatomic, strong) BookmarkHomeSharedState* sharedState; +@property(nonatomic, assign) ios::ChromeBrowserState* browserState; + @end @implementation BookmarkHomeMediator +@synthesize browserState = _browserState; @synthesize consumer = _consumer; @synthesize sharedState = _sharedState; -- (instancetype)initWithSharedState:(BookmarkHomeSharedState*)sharedState { +- (instancetype)initWithSharedState:(BookmarkHomeSharedState*)sharedState + browserState:(ios::ChromeBrowserState*)browserState { if ((self = [super init])) { _sharedState = sharedState; + _browserState = browserState; } return self; } @@ -31,11 +54,257 @@ - (void)startMediating { DCHECK(self.consumer); DCHECK(self.sharedState); + + // Set up observers. + _modelBridge = std::make_unique<bookmarks::BookmarkModelBridge>( + self, self.sharedState.bookmarkModel); + _syncedSessionsObserver = + std::make_unique<synced_sessions::SyncedSessionsObserverBridge>( + self, self.browserState); + + [self computeBookmarkTableViewData]; } - (void)disconnect { + _modelBridge = nullptr; + _syncedSessionsObserver = nullptr; + self.browserState = nullptr; self.consumer = nil; self.sharedState = nil; } +#pragma mark - Initial Model Setup + +// Computes the bookmarks table view based on the current root node. +- (void)computeBookmarkTableViewData { + // Regenerate the list of all bookmarks. + if ([self.sharedState.tableViewModel + hasSectionForSectionIdentifier: + BookmarkHomeSectionIdentifierBookmarks]) { + [self.sharedState.tableViewModel + removeSectionWithIdentifier:BookmarkHomeSectionIdentifierBookmarks]; + } + [self.sharedState.tableViewModel + addSectionWithIdentifier:BookmarkHomeSectionIdentifierBookmarks]; + + if (!self.sharedState.bookmarkModel->loaded() || + !self.sharedState.tableViewDisplayedRootNode) { + [self updateTableViewBackground]; + return; + } + + if (self.sharedState.tableViewDisplayedRootNode == + self.sharedState.bookmarkModel->root_node()) { + [self generateTableViewDataForRootNode]; + [self updateTableViewBackground]; + return; + } + [self generateTableViewData]; + [self updateTableViewBackground]; +} + +// Generate the table view data when the current root node is a child node. +- (void)generateTableViewData { + if (!self.sharedState.tableViewDisplayedRootNode) { + return; + } + // Add all bookmarks and folders of the current root node to the table. + int childCount = self.sharedState.tableViewDisplayedRootNode->child_count(); + for (int i = 0; i < childCount; ++i) { + const BookmarkNode* node = + self.sharedState.tableViewDisplayedRootNode->GetChild(i); + BookmarkHomeNodeItem* nodeItem = + [[BookmarkHomeNodeItem alloc] initWithType:BookmarkHomeItemTypeBookmark + bookmarkNode:node]; + [self.sharedState.tableViewModel + addItem:nodeItem + toSectionWithIdentifier:BookmarkHomeSectionIdentifierBookmarks]; + } +} + +// Generate the table view data when the current root node is the outermost +// root. +- (void)generateTableViewDataForRootNode { + // Add "Mobile Bookmarks" to the table. + const BookmarkNode* mobileNode = + self.sharedState.bookmarkModel->mobile_node(); + BookmarkHomeNodeItem* mobileItem = + [[BookmarkHomeNodeItem alloc] initWithType:BookmarkHomeItemTypeBookmark + bookmarkNode:mobileNode]; + [self.sharedState.tableViewModel + addItem:mobileItem + toSectionWithIdentifier:BookmarkHomeSectionIdentifierBookmarks]; + + // Add "Bookmarks Bar" and "Other Bookmarks" only when they are not empty. + const BookmarkNode* bookmarkBar = + self.sharedState.bookmarkModel->bookmark_bar_node(); + if (!bookmarkBar->empty()) { + BookmarkHomeNodeItem* barItem = + [[BookmarkHomeNodeItem alloc] initWithType:BookmarkHomeItemTypeBookmark + bookmarkNode:bookmarkBar]; + [self.sharedState.tableViewModel + addItem:barItem + toSectionWithIdentifier:BookmarkHomeSectionIdentifierBookmarks]; + } + + const BookmarkNode* otherBookmarks = + self.sharedState.bookmarkModel->other_node(); + if (!otherBookmarks->empty()) { + BookmarkHomeNodeItem* otherItem = + [[BookmarkHomeNodeItem alloc] initWithType:BookmarkHomeItemTypeBookmark + bookmarkNode:otherBookmarks]; + [self.sharedState.tableViewModel + addItem:otherItem + toSectionWithIdentifier:BookmarkHomeSectionIdentifierBookmarks]; + } +} + +- (void)updateTableViewBackground { + // If the current root node is the outermost root, check if we need to show + // the spinner backgound. Otherwise, check if we need to show the empty + // background. + if (self.sharedState.tableViewDisplayedRootNode == + self.sharedState.bookmarkModel->root_node()) { + if (self.sharedState.bookmarkModel->HasNoUserCreatedBookmarksOrFolders() && + _syncedSessionsObserver->IsSyncing()) { + [self.consumer + updateTableViewBackgroundStyle:BookmarkHomeBackgroundStyleLoading]; + } else { + [self.consumer + updateTableViewBackgroundStyle:BookmarkHomeBackgroundStyleDefault]; + } + return; + } + + if (![self hasBookmarksOrFolders]) { + [self.consumer + updateTableViewBackgroundStyle:BookmarkHomeBackgroundStyleEmpty]; + } else { + [self.consumer + updateTableViewBackgroundStyle:BookmarkHomeBackgroundStyleDefault]; + } +} + +#pragma mark - BookmarkModelBridgeObserver Callbacks + +// BookmarkModelBridgeObserver Callbacks +// Instances of this class automatically observe the bookmark model. +// The bookmark model has loaded. +- (void)bookmarkModelLoaded { + [self.consumer refreshContents]; +} + +// The node has changed, but not its children. +- (void)bookmarkNodeChanged:(const BookmarkNode*)bookmarkNode { + // The root folder changed. Do nothing. + if (bookmarkNode == self.sharedState.tableViewDisplayedRootNode) { + return; + } + + // A specific cell changed. Reload, if currently shown. + if ([self itemForNode:bookmarkNode] != nil) { + [self.consumer refreshContents]; + } +} + +// The node has not changed, but its children have. +- (void)bookmarkNodeChildrenChanged:(const BookmarkNode*)bookmarkNode { + // The current root folder's children changed. Reload everything. + // (When adding new folder, table is already been updated. So no need to + // reload here.) + if (bookmarkNode == self.sharedState.tableViewDisplayedRootNode && + !self.sharedState.addingNewFolder) { + [self.consumer refreshContents]; + return; + } +} + +// The node has moved to a new parent folder. +- (void)bookmarkNode:(const BookmarkNode*)bookmarkNode + movedFromParent:(const BookmarkNode*)oldParent + toParent:(const BookmarkNode*)newParent { + if (oldParent == self.sharedState.tableViewDisplayedRootNode || + newParent == self.sharedState.tableViewDisplayedRootNode) { + // A folder was added or removed from the current root folder. + [self.consumer refreshContents]; + } +} + +// |node| was deleted from |folder|. +- (void)bookmarkNodeDeleted:(const BookmarkNode*)node + fromFolder:(const BookmarkNode*)folder { + if (self.sharedState.tableViewDisplayedRootNode == node) { + self.sharedState.tableViewDisplayedRootNode = NULL; + [self.consumer refreshContents]; + } +} + +// All non-permanent nodes have been removed. +- (void)bookmarkModelRemovedAllNodes { + // TODO(crbug.com/695749) Check if this case is applicable in the new UI. +} + +- (void)bookmarkNodeFaviconChanged: + (const bookmarks::BookmarkNode*)bookmarkNode { + // Only urls have favicons. + DCHECK(bookmarkNode->is_url()); + + // Update image of corresponding cell. + BookmarkHomeNodeItem* nodeItem = [self itemForNode:bookmarkNode]; + if (!nodeItem) { + return; + } + + // Check that this cell is visible. + NSIndexPath* indexPath = + [self.sharedState.tableViewModel indexPathForItem:nodeItem]; + NSArray* visiblePaths = [self.sharedState.tableView indexPathsForVisibleRows]; + if (![visiblePaths containsObject:indexPath]) { + return; + } + + // Get the favicon from cache directly. (no need to fetch from server) + [self.consumer loadFaviconAtIndexPath:indexPath continueToGoogleServer:NO]; +} + +- (BookmarkHomeNodeItem*)itemForNode: + (const bookmarks::BookmarkNode*)bookmarkNode { + NSArray<TableViewItem*>* items = [self.sharedState.tableViewModel + itemsInSectionWithIdentifier:BookmarkHomeSectionIdentifierBookmarks]; + for (TableViewItem* item in items) { + if (item.type == BookmarkHomeItemTypeBookmark) { + BookmarkHomeNodeItem* nodeItem = + base::mac::ObjCCastStrict<BookmarkHomeNodeItem>(item); + if (nodeItem.bookmarkNode == bookmarkNode) { + return nodeItem; + } + } + } + return nil; +} + +#pragma mark - SyncedSessionsObserver + +- (void)reloadSessions { + // Nothing to do. +} + +- (void)onSyncStateChanged { + // Permanent nodes ("Bookmarks Bar", "Other Bookmarks") at the root node might + // be added after syncing. So we need to refresh here. + if (self.sharedState.tableViewDisplayedRootNode == + self.sharedState.bookmarkModel->root_node()) { + [self.consumer refreshContents]; + return; + } + [self updateTableViewBackground]; +} + +#pragma mark - Private Helpers + +- (BOOL)hasBookmarksOrFolders { + return self.sharedState.tableViewDisplayedRootNode && + !self.sharedState.tableViewDisplayedRootNode->empty(); +} + @end
diff --git a/ios/chrome/browser/ui/bookmarks/bookmark_home_view_controller.mm b/ios/chrome/browser/ui/bookmarks/bookmark_home_view_controller.mm index 7188188..9893581e 100644 --- a/ios/chrome/browser/ui/bookmarks/bookmark_home_view_controller.mm +++ b/ios/chrome/browser/ui/bookmarks/bookmark_home_view_controller.mm
@@ -317,7 +317,8 @@ // Create the mediator and hook up the table view. self.mediator = - [[BookmarkHomeMediator alloc] initWithSharedState:self.sharedState]; + [[BookmarkHomeMediator alloc] initWithSharedState:self.sharedState + browserState:self.browserState]; self.mediator.consumer = self; [self.mediator startMediating]; self.sharedState.tableView.dataSource = self; @@ -376,6 +377,37 @@ } } +- (void)refreshContents { + [self.mediator computeBookmarkTableViewData]; + [self.bookmarksTableView cancelAllFaviconLoads]; + [self bookmarkTableViewRefreshContextBar:self.bookmarksTableView]; + [self.sharedState.editingFolderCell stopEdit]; + [self.sharedState.tableView reloadData]; + if (self.sharedState.currentlyInEditMode && + !self.sharedState.editNodes.empty()) { + [self.bookmarksTableView restoreRowSelection]; + } +} + +- (void)loadFaviconAtIndexPath:(NSIndexPath*)indexPath + continueToGoogleServer:(BOOL)continueToGoogleServer { + [self.bookmarksTableView loadFaviconAtIndexPath:indexPath + continueToGoogleServer:continueToGoogleServer]; +} + +- (void)updateTableViewBackgroundStyle:(BookmarkHomeBackgroundStyle)style { + if (style == BookmarkHomeBackgroundStyleDefault) { + [self.bookmarksTableView hideLoadingSpinnerBackground]; + [self.bookmarksTableView hideEmptyBackground]; + } else if (style == BookmarkHomeBackgroundStyleLoading) { + [self.bookmarksTableView hideEmptyBackground]; + [self.bookmarksTableView showLoadingSpinnerBackground]; + } else if (style == BookmarkHomeBackgroundStyleEmpty) { + [self.bookmarksTableView hideLoadingSpinnerBackground]; + [self.bookmarksTableView showEmptyBackground]; + } +} + #pragma mark - BookmarkPromoControllerDelegate - (void)promoStateChanged:(BOOL)promoEnabled { @@ -504,7 +536,7 @@ if (nodes.size() == 0) { // if nothing to select, exit edit mode. - if (![self.bookmarksTableView hasBookmarksOrFolders]) { + if (![self hasBookmarksOrFolders]) { [self setTableViewEditing:NO]; return; } @@ -592,6 +624,10 @@ return (self.navigationController.topViewController == self); } +- (void)bookmarkTableViewRefreshContents:(BookmarkTableView*)view { + [self refreshContents]; +} + #pragma mark - BookmarkTableCellTitleEditDelegate - (void)textDidChangeTo:(NSString*)newName { @@ -603,7 +639,7 @@ } self.sharedState.editingFolderNode = nullptr; self.sharedState.editingFolderCell = nil; - [self.bookmarksTableView refreshContents]; + [self refreshContents]; } #pragma mark - BookmarkFolderViewControllerDelegate @@ -965,6 +1001,11 @@ return nullptr; } +- (BOOL)hasBookmarksOrFolders { + return self.sharedState.tableViewDisplayedRootNode && + !self.sharedState.tableViewDisplayedRootNode->empty(); +} + #pragma mark - ContextBarDelegate implementation // Called when the leading button is clicked. @@ -1111,9 +1152,8 @@ setButtonTitle:l10n_util::GetNSString(IDS_IOS_BOOKMARK_CONTEXT_BAR_SELECT) forButton:ContextBarTrailingButton]; [self.contextBar setButtonVisibility:YES forButton:ContextBarTrailingButton]; - [self.contextBar - setButtonEnabled:[self.bookmarksTableView hasBookmarksOrFolders] - forButton:ContextBarTrailingButton]; + [self.contextBar setButtonEnabled:[self hasBookmarksOrFolders] + forButton:ContextBarTrailingButton]; } - (void)setBookmarksContextBarSelectionStartState {
diff --git a/ios/chrome/browser/ui/bookmarks/bookmark_table_view.h b/ios/chrome/browser/ui/bookmarks/bookmark_table_view.h index fa1ebac..f267306 100644 --- a/ios/chrome/browser/ui/bookmarks/bookmark_table_view.h +++ b/ios/chrome/browser/ui/bookmarks/bookmark_table_view.h
@@ -68,6 +68,10 @@ // Returns true if this table is at the top of the navigation stack. - (BOOL)isAtTopOfNavigation:(BookmarkTableView*)view; +// TODO(crbug.com/840381): Temporarily made public while migrating code +// out of BookmarkTableView. +- (void)bookmarkTableViewRefreshContents:(BookmarkTableView*)view; + @end @interface BookmarkTableView : UIView @@ -103,9 +107,6 @@ // Returns a vector of edit nodes. - (std::vector<const bookmarks::BookmarkNode*>)getEditNodesInVector; -// Returns if current root node has bookmarks or folders. -- (BOOL)hasBookmarksOrFolders; - // Returns if current root node allows new folder to be created on it. - (BOOL)allowsNewFolder; @@ -123,7 +124,12 @@ - (void)loadFaviconAtIndexPath:(NSIndexPath*)indexPath continueToGoogleServer:(BOOL)continueToGoogleServer; - (void)cancelLoadingFaviconAtIndexPath:(NSIndexPath*)indexPath; -- (void)refreshContents; +- (void)cancelAllFaviconLoads; +- (void)restoreRowSelection; +- (void)showLoadingSpinnerBackground; +- (void)hideLoadingSpinnerBackground; +- (void)showEmptyBackground; +- (void)hideEmptyBackground; @end
diff --git a/ios/chrome/browser/ui/bookmarks/bookmark_table_view.mm b/ios/chrome/browser/ui/bookmarks/bookmark_table_view.mm index 755be44d..31c807a65b 100644 --- a/ios/chrome/browser/ui/bookmarks/bookmark_table_view.mm +++ b/ios/chrome/browser/ui/bookmarks/bookmark_table_view.mm
@@ -17,7 +17,6 @@ #include "ios/chrome/browser/bookmarks/bookmarks_utils.h" #include "ios/chrome/browser/experimental_flags.h" #include "ios/chrome/browser/favicon/ios_chrome_large_icon_service_factory.h" -#import "ios/chrome/browser/sync/synced_sessions_bridge.h" #import "ios/chrome/browser/ui/authentication/signin_promo_view.h" #import "ios/chrome/browser/ui/authentication/signin_promo_view_configurator.h" #import "ios/chrome/browser/ui/authentication/signin_promo_view_consumer.h" @@ -74,16 +73,7 @@ // collections. using IntegerPair = std::pair<NSInteger, NSInteger>; -@interface BookmarkTableView ()<BookmarkModelBridgeObserver, - SyncedSessionsObserver, - UIGestureRecognizerDelegate> { - // Bridge to register for bookmark changes. - std::unique_ptr<bookmarks::BookmarkModelBridge> _modelBridge; - - // Observer to keep track of the signin and syncing status. - std::unique_ptr<synced_sessions::SyncedSessionsObserverBridge> - _syncedSessionsObserver; - +@interface BookmarkTableView () { // Map of favicon load tasks for each index path. Used to keep track of // pending favicon load operations so that they can be cancelled upon cell // reuse. Keys are (section, item) pairs of cell index paths. @@ -129,16 +119,6 @@ DCHECK_EQ(self.sharedState.bookmarkModel, ios::BookmarkModelFactory::GetForBrowserState(browserState)); - // Set up observers. - _modelBridge = std::make_unique<bookmarks::BookmarkModelBridge>( - self, self.sharedState.bookmarkModel); - _syncedSessionsObserver = - std::make_unique<synced_sessions::SyncedSessionsObserverBridge>( - self, _browserState); - - // Populate the model. - [self computeBookmarkTableViewData]; - // Set promo state before the tableview is created. [self promoStateChangedAnimated:NO]; @@ -151,7 +131,6 @@ [self addSubview:self.sharedState.tableView]; [self bringSubviewToFront:self.sharedState.tableView]; - [self showEmptyOrLoadingSpinnerBackgroundIfNeeded]; } return self; } @@ -286,11 +265,6 @@ return nodes; } -- (BOOL)hasBookmarksOrFolders { - return self.sharedState.tableViewDisplayedRootNode && - !self.sharedState.tableViewDisplayedRootNode->empty(); -} - - (BOOL)allowsNewFolder { // When the current root node has been removed remotely (becomes NULL), // creating new folder is forbidden. @@ -328,88 +302,6 @@ [self.sharedState.editingFolderCell stopEdit]; } -#pragma mark - BookmarkModelBridgeObserver Callbacks - -// BookmarkModelBridgeObserver Callbacks -// Instances of this class automatically observe the bookmark model. -// The bookmark model has loaded. -- (void)bookmarkModelLoaded { - [self refreshContents]; -} - -// The node has changed, but not its children. -- (void)bookmarkNodeChanged:(const BookmarkNode*)bookmarkNode { - // The root folder changed. Do nothing. - if (bookmarkNode == self.sharedState.tableViewDisplayedRootNode) { - return; - } - - // A specific cell changed. Reload, if currently shown. - if ([self itemForNode:bookmarkNode] != nil) { - [self refreshContents]; - } -} - -// The node has not changed, but its children have. -- (void)bookmarkNodeChildrenChanged:(const BookmarkNode*)bookmarkNode { - // The current root folder's children changed. Reload everything. - // (When adding new folder, table is already been updated. So no need to - // reload here.) - if (bookmarkNode == self.sharedState.tableViewDisplayedRootNode && - !self.sharedState.addingNewFolder) { - [self refreshContents]; - return; - } -} - -// The node has moved to a new parent folder. -- (void)bookmarkNode:(const BookmarkNode*)bookmarkNode - movedFromParent:(const BookmarkNode*)oldParent - toParent:(const BookmarkNode*)newParent { - if (oldParent == self.sharedState.tableViewDisplayedRootNode || - newParent == self.sharedState.tableViewDisplayedRootNode) { - // A folder was added or removed from the current root folder. - [self refreshContents]; - } -} - -// |node| was deleted from |folder|. -- (void)bookmarkNodeDeleted:(const BookmarkNode*)node - fromFolder:(const BookmarkNode*)folder { - if (self.sharedState.tableViewDisplayedRootNode == node) { - self.sharedState.tableViewDisplayedRootNode = NULL; - [self refreshContents]; - } -} - -// All non-permanent nodes have been removed. -- (void)bookmarkModelRemovedAllNodes { - // TODO(crbug.com/695749) Check if this case is applicable in the new UI. -} - -- (void)bookmarkNodeFaviconChanged: - (const bookmarks::BookmarkNode*)bookmarkNode { - // Only urls have favicons. - DCHECK(bookmarkNode->is_url()); - - // Update image of corresponding cell. - BookmarkHomeNodeItem* nodeItem = [self itemForNode:bookmarkNode]; - if (!nodeItem) { - return; - } - - // Check that this cell is visible. - NSIndexPath* indexPath = - [self.sharedState.tableViewModel indexPathForItem:nodeItem]; - NSArray* visiblePaths = [self.sharedState.tableView indexPathsForVisibleRows]; - if (![visiblePaths containsObject:indexPath]) { - return; - } - - // Get the favicon from cache directly. (no need to fetch from server) - [self loadFaviconAtIndexPath:indexPath continueToGoogleServer:NO]; -} - // Row selection of the tableView will be cleared after reloadData. This // function is used to restore the row selection. It also updates editNodes in // case some selected nodes are removed. @@ -450,19 +342,6 @@ return self.sharedState.promoVisible; } -- (void)refreshContents { - [self computeBookmarkTableViewData]; - [self showEmptyOrLoadingSpinnerBackgroundIfNeeded]; - [self cancelAllFaviconLoads]; - [self.delegate bookmarkTableViewRefreshContextBar:self]; - [self.sharedState.editingFolderCell stopEdit]; - [self.sharedState.tableView reloadData]; - if (self.sharedState.currentlyInEditMode && - !self.sharedState.editNodes.empty()) { - [self restoreRowSelection]; - } -} - // Returns the bookmark node associated with |indexPath|. - (const BookmarkNode*)nodeAtIndexPath:(NSIndexPath*)indexPath { TableViewItem* item = @@ -478,109 +357,6 @@ return nullptr; } -// Computes the bookmarks table view based on the current root node. -- (void)computeBookmarkTableViewData { - // Regenerate the list of all bookmarks. - if ([self.sharedState.tableViewModel - hasSectionForSectionIdentifier: - BookmarkHomeSectionIdentifierBookmarks]) { - [self.sharedState.tableViewModel - removeSectionWithIdentifier:BookmarkHomeSectionIdentifierBookmarks]; - } - [self.sharedState.tableViewModel - addSectionWithIdentifier:BookmarkHomeSectionIdentifierBookmarks]; - - if (!self.sharedState.bookmarkModel->loaded() || - !self.sharedState.tableViewDisplayedRootNode) { - return; - } - - if (self.sharedState.tableViewDisplayedRootNode == - self.sharedState.bookmarkModel->root_node()) { - [self generateTableViewDataForRootNode]; - return; - } - [self generateTableViewData]; -} - -// Generate the table view data when the current root node is a child node. -- (void)generateTableViewData { - if (!self.sharedState.tableViewDisplayedRootNode) { - return; - } - // Add all bookmarks and folders of the current root node to the table. - int childCount = self.sharedState.tableViewDisplayedRootNode->child_count(); - for (int i = 0; i < childCount; ++i) { - const BookmarkNode* node = - self.sharedState.tableViewDisplayedRootNode->GetChild(i); - BookmarkHomeNodeItem* nodeItem = - [[BookmarkHomeNodeItem alloc] initWithType:BookmarkHomeItemTypeBookmark - bookmarkNode:node]; - [self.sharedState.tableViewModel - addItem:nodeItem - toSectionWithIdentifier:BookmarkHomeSectionIdentifierBookmarks]; - } -} - -// Generate the table view data when the current root node is the outermost -// root. -- (void)generateTableViewDataForRootNode { - // Add "Mobile Bookmarks" to the table. - const BookmarkNode* mobileNode = - self.sharedState.bookmarkModel->mobile_node(); - BookmarkHomeNodeItem* mobileItem = - [[BookmarkHomeNodeItem alloc] initWithType:BookmarkHomeItemTypeBookmark - bookmarkNode:mobileNode]; - [self.sharedState.tableViewModel - addItem:mobileItem - toSectionWithIdentifier:BookmarkHomeSectionIdentifierBookmarks]; - - // Add "Bookmarks Bar" and "Other Bookmarks" only when they are not empty. - const BookmarkNode* bookmarkBar = - self.sharedState.bookmarkModel->bookmark_bar_node(); - if (!bookmarkBar->empty()) { - BookmarkHomeNodeItem* barItem = - [[BookmarkHomeNodeItem alloc] initWithType:BookmarkHomeItemTypeBookmark - bookmarkNode:bookmarkBar]; - [self.sharedState.tableViewModel - addItem:barItem - toSectionWithIdentifier:BookmarkHomeSectionIdentifierBookmarks]; - } - - const BookmarkNode* otherBookmarks = - self.sharedState.bookmarkModel->other_node(); - if (!otherBookmarks->empty()) { - BookmarkHomeNodeItem* otherItem = - [[BookmarkHomeNodeItem alloc] initWithType:BookmarkHomeItemTypeBookmark - bookmarkNode:otherBookmarks]; - [self.sharedState.tableViewModel - addItem:otherItem - toSectionWithIdentifier:BookmarkHomeSectionIdentifierBookmarks]; - } -} - -// If the current root node is the outermost root, check if we need to show the -// spinner backgound. Otherwise, check if we need to show the empty background. -- (void)showEmptyOrLoadingSpinnerBackgroundIfNeeded { - if (self.sharedState.tableViewDisplayedRootNode == - self.sharedState.bookmarkModel->root_node()) { - if (self.sharedState.bookmarkModel->HasNoUserCreatedBookmarksOrFolders() && - _syncedSessionsObserver->IsSyncing()) { - [self showLoadingSpinnerBackground]; - } else { - [self hideLoadingSpinnerBackground]; - } - return; - } - - if (![self hasBookmarksOrFolders]) { - [self showEmptyBackground]; - } else { - // Hides the empty bookmarks background if it is showing. - self.sharedState.tableView.backgroundView = nil; - } -} - // Shows loading spinner background view. - (void)showLoadingSpinnerBackground { if (!self.spinnerView) { @@ -623,20 +399,8 @@ self.sharedState.tableView.backgroundView = self.emptyTableBackgroundView; } -- (BookmarkHomeNodeItem*)itemForNode: - (const bookmarks::BookmarkNode*)bookmarkNode { - NSArray<TableViewItem*>* items = [self.sharedState.tableViewModel - itemsInSectionWithIdentifier:BookmarkHomeSectionIdentifierBookmarks]; - for (TableViewItem* item in items) { - if (item.type == BookmarkHomeItemTypeBookmark) { - BookmarkHomeNodeItem* nodeItem = - base::mac::ObjCCastStrict<BookmarkHomeNodeItem>(item); - if (nodeItem.bookmarkNode == bookmarkNode) { - return nodeItem; - } - } - } - return nil; +- (void)hideEmptyBackground { + self.sharedState.tableView.backgroundView = nil; } - (void)updateCellAtIndexPath:(NSIndexPath*)indexPath @@ -783,21 +547,4 @@ node->type() == BookmarkNode::FOLDER; } -#pragma mark - SyncedSessionsObserver - -- (void)reloadSessions { - // Nothing to do. -} - -- (void)onSyncStateChanged { - // Permanent nodes ("Bookmarks Bar", "Other Bookmarks") at the root node might - // be added after syncing. So we need to refresh here. - if (self.sharedState.tableViewDisplayedRootNode == - self.sharedState.bookmarkModel->root_node()) { - [self refreshContents]; - return; - } - [self showEmptyOrLoadingSpinnerBackgroundIfNeeded]; -} - @end
diff --git a/ios/chrome/browser/ui/bookmarks/cells/BUILD.gn b/ios/chrome/browser/ui/bookmarks/cells/BUILD.gn index ba9e245..4a7bb6c0 100644 --- a/ios/chrome/browser/ui/bookmarks/cells/BUILD.gn +++ b/ios/chrome/browser/ui/bookmarks/cells/BUILD.gn
@@ -4,6 +4,8 @@ source_set("cells") { sources = [ + "bookmark_folder_item.h", + "bookmark_folder_item.mm", "bookmark_home_node_item.h", "bookmark_home_node_item.mm", "bookmark_home_promo_item.h",
diff --git a/ios/chrome/browser/ui/bookmarks/cells/bookmark_folder_item.h b/ios/chrome/browser/ui/bookmarks/cells/bookmark_folder_item.h new file mode 100644 index 0000000..ca2c145 --- /dev/null +++ b/ios/chrome/browser/ui/bookmarks/cells/bookmark_folder_item.h
@@ -0,0 +1,47 @@ +// 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 IOS_CHROME_BROWSER_UI_BOOKMARKS_CELLS_BOOKMARK_FOLDER_ITEM_H_ +#define IOS_CHROME_BROWSER_UI_BOOKMARKS_CELLS_BOOKMARK_FOLDER_ITEM_H_ + +#import "ios/chrome/browser/ui/table_view/cells/table_view_item.h" + +typedef NS_ENUM(NSInteger, BookmarkFolderStyle) { + BookmarkFolderStyleFolderEntry, + BookmarkFolderStyleNewFolder, +}; + +// BookmarkFolderItem provides data for a table view row that displays a +// single bookmark folder. +@interface BookmarkFolderItem : TableViewItem + +// The Item's designated initializer. If |style| is +// BookmarkFolderStyle then all other property values will be +// ignored. +- (instancetype)initWithType:(NSInteger)type + style:(BookmarkFolderStyle)style + NS_DESIGNATED_INITIALIZER; +- (instancetype)initWithType:(NSInteger)type NS_UNAVAILABLE; + +// The item's title. +@property(nonatomic, copy) NSString* title; +// YES if the FolderItem is the current folder. +@property(nonatomic, assign, getter=isCurrentFolder) BOOL currentFolder; +// The item's left indentation level. +@property(nonatomic, assign) NSInteger indentationLevel; + +@end + +// TableViewCell that displays BookmarkFolderItem data. +@interface LegacyTableViewBookmarkFolderCell : UITableViewCell + +// Whether the cell is displaying a checkmark. +@property(nonatomic, assign, getter=isChecked) BOOL checked; + +// Whether the cell is enabled for interaction. +@property(nonatomic, assign, getter=isEnabled) BOOL enabled; + +@end + +#endif // IOS_CHROME_BROWSER_UI_BOOKMARKS_CELLS_BOOKMARK_FOLDER_ITEM_H_
diff --git a/ios/chrome/browser/ui/bookmarks/cells/bookmark_folder_item.mm b/ios/chrome/browser/ui/bookmarks/cells/bookmark_folder_item.mm new file mode 100644 index 0000000..40e83a4 --- /dev/null +++ b/ios/chrome/browser/ui/bookmarks/cells/bookmark_folder_item.mm
@@ -0,0 +1,141 @@ +// 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 "ios/chrome/browser/ui/bookmarks/cells/bookmark_folder_item.h" + +#include "base/mac/foundation_util.h" +#import "ios/chrome/browser/ui/bookmarks/bookmark_utils_ios.h" +#import "ios/chrome/browser/ui/rtl_geometry.h" +#include "ios/chrome/grit/ios_strings.h" +#import "ios/third_party/material_components_ios/src/components/Typography/src/MaterialTypography.h" +#include "ui/base/l10n/l10n_util_mac.h" + +#if !defined(__has_feature) || !__has_feature(objc_arc) +#error "This file requires ARC support." +#endif + +namespace { +// The amount in points by which to offset horizontally the text label. +const CGFloat kTitleLabelLeadingOffset = 18.0; +// The amount in points by which to offset horizontally the image view. +const CGFloat kImageViewLeadingOffset = 1.0; +// Width by which to indent folder cell's content. This is multiplied by the +// |indentationLevel| of the cell. +const CGFloat kFolderCellIndentationWidth = 32.0; +} // namespace + +#pragma mark - BookmarkFolderItem + +@interface BookmarkFolderItem () +@property(nonatomic, assign) BookmarkFolderStyle style; +@end + +@implementation BookmarkFolderItem +@synthesize currentFolder = _currentFolder; +@synthesize indentationLevel = _indentationLevel; +@synthesize style = _style; +@synthesize title = _title; + +- (instancetype)initWithType:(NSInteger)type style:(BookmarkFolderStyle)style { + if ((self = [super initWithType:type])) { + self.cellClass = [LegacyTableViewBookmarkFolderCell class]; + self.style = style; + } + return self; +} + +- (void)configureCell:(UITableViewCell*)cell + withStyler:(ChromeTableViewStyler*)styler { + [super configureCell:cell withStyler:styler]; + LegacyTableViewBookmarkFolderCell* folderCell = + base::mac::ObjCCastStrict<LegacyTableViewBookmarkFolderCell>(cell); + + switch (self.style) { + case BookmarkFolderStyleNewFolder: { + folderCell.textLabel.text = + l10n_util::GetNSString(IDS_IOS_BOOKMARK_CREATE_GROUP); + folderCell.imageView.image = + [UIImage imageNamed:@"bookmark_gray_new_folder"]; + folderCell.accessibilityIdentifier = @"Create New Folder"; + break; + } + case BookmarkFolderStyleFolderEntry: { + folderCell.textLabel.text = self.title; + folderCell.accessibilityIdentifier = self.title; + folderCell.accessibilityLabel = self.title; + folderCell.checked = self.isCurrentFolder; + folderCell.indentationLevel = self.indentationLevel; + folderCell.indentationWidth = kFolderCellIndentationWidth; + folderCell.imageView.image = + [UIImage imageNamed:@"bookmark_gray_folder_new"]; + break; + } + } +} + +@end + +#pragma mark - LegacyTableViewBookmarkFolderCell + +@implementation LegacyTableViewBookmarkFolderCell +@synthesize checked = _checked; +@synthesize enabled = _enabled; + +- (instancetype)initWithStyle:(UITableViewCellStyle)style + reuseIdentifier:(NSString*)reuseIdentifier { + self = [super initWithStyle:style reuseIdentifier:reuseIdentifier]; + if (self) { + self.textLabel.font = [MDCTypography subheadFont]; + self.textLabel.textColor = bookmark_utils_ios::darkTextColor(); + self.selectionStyle = UITableViewCellSelectionStyleGray; + self.accessibilityTraits |= UIAccessibilityTraitButton; + _enabled = YES; + } + return self; +} + +- (void)setChecked:(BOOL)checked { + if (checked != _checked) { + _checked = checked; + UIImageView* checkImageView = + checked ? [[UIImageView alloc] + initWithImage:[UIImage imageNamed:@"bookmark_blue_check"]] + : nil; + self.accessoryView = checkImageView; + } +} + +- (void)setEnabled:(BOOL)enabled { + if (enabled != _enabled) { + _enabled = enabled; + self.userInteractionEnabled = enabled; + self.textLabel.enabled = enabled; + } +} + +- (void)layoutSubviews { + [super layoutSubviews]; + + // Move the text label as required by the design. + UIEdgeInsets insets = + UIEdgeInsetsMakeDirected(0, kTitleLabelLeadingOffset, 0, 0); + self.textLabel.frame = UIEdgeInsetsInsetRect(self.textLabel.frame, insets); + + // Indent the image. An offset is required in the design. + LayoutRect layout = LayoutRectForRectInBoundingRect(self.imageView.frame, + self.contentView.bounds); + layout.position.leading += + self.indentationWidth * self.indentationLevel + kImageViewLeadingOffset; + self.imageView.frame = LayoutRectGetRect(layout); +} + +- (void)prepareForReuse { + [super prepareForReuse]; + self.checked = NO; + self.enabled = YES; + self.indentationWidth = 0; + self.imageView.image = nil; +} + +@end
diff --git a/ios/chrome/browser/ui/main_content/main_content_ui_state_unittest.mm b/ios/chrome/browser/ui/main_content/main_content_ui_state_unittest.mm index 708b9a0..ce8c0c7c 100644 --- a/ios/chrome/browser/ui/main_content/main_content_ui_state_unittest.mm +++ b/ios/chrome/browser/ui/main_content/main_content_ui_state_unittest.mm
@@ -74,3 +74,16 @@ EXPECT_FALSE(state().scrolling); EXPECT_FALSE(state().dragging); } + +// Tests resetting state for interrupted scrolls. +TEST_F(MainContentUIStateUpdaterTest, ScrollInterruption) { + UIPanGestureRecognizer* pan = [[UIPanGestureRecognizer alloc] init]; + ASSERT_FALSE(state().scrolling); + ASSERT_FALSE(state().dragging); + [updater() scrollViewWillBeginDraggingWithGesture:pan]; + EXPECT_TRUE(state().scrolling); + EXPECT_TRUE(state().dragging); + [updater() scrollWasInterrupted]; + ASSERT_FALSE(state().scrolling); + ASSERT_FALSE(state().dragging); +}
diff --git a/ios/chrome/browser/ui/main_content/web_scroll_view_main_content_ui_forwarder.mm b/ios/chrome/browser/ui/main_content/web_scroll_view_main_content_ui_forwarder.mm index 452f128f..1628b30a 100644 --- a/ios/chrome/browser/ui/main_content/web_scroll_view_main_content_ui_forwarder.mm +++ b/ios/chrome/browser/ui/main_content/web_scroll_view_main_content_ui_forwarder.mm
@@ -10,6 +10,7 @@ #import "ios/chrome/browser/ui/main_content/main_content_ui_state.h" #import "ios/chrome/browser/web_state_list/web_state_list.h" #import "ios/chrome/browser/web_state_list/web_state_list_observer_bridge.h" +#import "ios/web/public/web_state/navigation_context.h" #import "ios/web/public/web_state/ui/crw_web_view_proxy.h" #import "ios/web/public/web_state/ui/crw_web_view_scroll_view_proxy.h" #import "ios/web/public/web_state/web_state.h" @@ -122,7 +123,8 @@ - (void)webState:(web::WebState*)webState didFinishNavigation:(web::NavigationContext*)navigation { - [self.updater scrollWasInterrupted]; + if (!navigation->IsSameDocument()) + [self.updater scrollWasInterrupted]; } #pragma mark CRWWebViewScrollViewObserver
diff --git a/ios/chrome/browser/ui/webui/net_export/net_export_ui.mm b/ios/chrome/browser/ui/webui/net_export/net_export_ui.mm index 148d83d..c3a5281 100644 --- a/ios/chrome/browser/ui/webui/net_export/net_export_ui.mm +++ b/ios/chrome/browser/ui/webui/net_export/net_export_ui.mm
@@ -148,8 +148,12 @@ // Determine the max file size. uint64_t max_log_file_size = net_log::NetExportFileWriter::kNoLimit; - if (params.size() > 1 && params[1].is_int() && params[1].GetInt() > 0) { - max_log_file_size = params[1].GetInt(); + // Unlike in desktop/Android net_export_ui, the size limit here is encoded + // into a base::Value as a double; this is a behavior difference between + // ValueResultFromWKResult and V8ValueConverter[Impl]::FromV8Value[Impl]. + if (params.size() > 1 && (params[1].is_int() || params[1].is_double()) && + params[1].GetDouble() > 0.0) { + max_log_file_size = params[1].GetDouble(); } file_writer_->StartNetLog(
diff --git a/media/base/channel_mixer.cc b/media/base/channel_mixer.cc index a73a0b1..8419338 100644 --- a/media/base/channel_mixer.cc +++ b/media/base/channel_mixer.cc
@@ -42,12 +42,20 @@ ChannelMixer::~ChannelMixer() = default; void ChannelMixer::Transform(const AudioBus* input, AudioBus* output) { + CHECK_EQ(input->frames(), output->frames()); + TransformPartial(input, input->frames(), output); +} + +void ChannelMixer::TransformPartial(const AudioBus* input, + int frame_count, + AudioBus* output) { CHECK_EQ(matrix_.size(), static_cast<size_t>(output->channels())); CHECK_EQ(matrix_[0].size(), static_cast<size_t>(input->channels())); - CHECK_EQ(input->frames(), output->frames()); + CHECK_LE(frame_count, input->frames()); + CHECK_LE(frame_count, output->frames()); // Zero initialize |output| so we're accumulating from zero. - output->Zero(); + output->ZeroFrames(frame_count); // If we're just remapping we can simply copy the correct input to output. if (remapping_) { @@ -57,7 +65,7 @@ if (scale > 0) { DCHECK_EQ(scale, 1.0f); memcpy(output->channel(output_ch), input->channel(input_ch), - sizeof(*output->channel(output_ch)) * output->frames()); + sizeof(*output->channel(output_ch)) * frame_count); break; } } @@ -71,7 +79,7 @@ // Scale should always be positive. Don't bother scaling by zero. DCHECK_GE(scale, 0); if (scale > 0) { - vector_math::FMAC(input->channel(input_ch), scale, output->frames(), + vector_math::FMAC(input->channel(input_ch), scale, frame_count, output->channel(output_ch)); } }
diff --git a/media/base/channel_mixer.h b/media/base/channel_mixer.h index a629b681..a7ed653 100644 --- a/media/base/channel_mixer.h +++ b/media/base/channel_mixer.h
@@ -35,6 +35,14 @@ // Transforms all channels from |input| into |output| channels. void Transform(const AudioBus* input, AudioBus* output); + // Transforms all channels from |input| into |output| channels, for just the + // initial part of the input. Callers can use this to avoid reallocating + // AudioBuses, if the length of the data changes frequently for their use + // case. + void TransformPartial(const AudioBus* input, + int frame_count, + AudioBus* output); + private: void Initialize(ChannelLayout input_layout, int input_channels, ChannelLayout output_layout, int output_channels);
diff --git a/media/filters/decoder_stream_traits.cc b/media/filters/decoder_stream_traits.cc index 5f2f99b..707919d 100644 --- a/media/filters/decoder_stream_traits.cc +++ b/media/filters/decoder_stream_traits.cc
@@ -31,7 +31,7 @@ // static scoped_refptr<DecoderStreamTraits<DemuxerStream::AUDIO>::OutputType> - DecoderStreamTraits<DemuxerStream::AUDIO>::CreateEOSOutput() { +DecoderStreamTraits<DemuxerStream::AUDIO>::CreateEOSOutput() { return OutputType::CreateEOSBuffer(); } @@ -156,6 +156,7 @@ waiting_for_decryption_key_cb) { DCHECK(config.IsValidConfig()); stats_.video_decoder_name = decoder->GetDisplayName(); + DVLOG(2) << stats_.video_decoder_name; decoder->Initialize(config, low_delay, cdm_context, init_cb, output_cb, waiting_for_decryption_key_cb); }
diff --git a/media/gpu/BUILD.gn b/media/gpu/BUILD.gn index 08bb413c..d9b6a76 100644 --- a/media/gpu/BUILD.gn +++ b/media/gpu/BUILD.gn
@@ -190,6 +190,8 @@ "android/promotion_hint_aggregator_impl.h", "android/surface_chooser_helper.cc", "android/surface_chooser_helper.h", + "android/surface_texture_gl_owner.cc", + "android/surface_texture_gl_owner.h", "android/texture_owner.cc", "android/texture_owner.h", "android/texture_pool.cc",
diff --git a/media/gpu/android/avda_picture_buffer_manager.h b/media/gpu/android/avda_picture_buffer_manager.h index 76821f9..b93e324 100644 --- a/media/gpu/android/avda_picture_buffer_manager.h +++ b/media/gpu/android/avda_picture_buffer_manager.h
@@ -11,7 +11,7 @@ #include "base/macros.h" #include "media/gpu/android/avda_state_provider.h" #include "media/gpu/android/avda_surface_bundle.h" -#include "media/gpu/android/texture_owner.h" +#include "media/gpu/android/surface_texture_gl_owner.h" #include "media/gpu/media_gpu_export.h" namespace gpu {
diff --git a/media/gpu/android/avda_surface_bundle.h b/media/gpu/android/avda_surface_bundle.h index 7e08b2a..c24eebe 100644 --- a/media/gpu/android/avda_surface_bundle.h +++ b/media/gpu/android/avda_surface_bundle.h
@@ -8,7 +8,7 @@ #include "base/memory/ref_counted_delete_on_sequence.h" #include "media/base/android/android_overlay.h" #include "media/base/surface_manager.h" -#include "media/gpu/android/texture_owner.h" +#include "media/gpu/android/surface_texture_gl_owner.h" #include "media/gpu/media_gpu_export.h" #include "ui/gl/android/scoped_java_surface.h"
diff --git a/media/gpu/android/codec_image.h b/media/gpu/android/codec_image.h index df4a12a..2b35e7d 100644 --- a/media/gpu/android/codec_image.h +++ b/media/gpu/android/codec_image.h
@@ -14,7 +14,7 @@ #include "gpu/command_buffer/service/gl_stream_texture_image.h" #include "media/gpu/android/codec_wrapper.h" #include "media/gpu/android/promotion_hint_aggregator.h" -#include "media/gpu/android/texture_owner.h" +#include "media/gpu/android/surface_texture_gl_owner.h" #include "media/gpu/media_gpu_export.h" namespace media {
diff --git a/media/gpu/android/surface_texture_gl_owner.cc b/media/gpu/android/surface_texture_gl_owner.cc new file mode 100644 index 0000000..2efa8f9 --- /dev/null +++ b/media/gpu/android/surface_texture_gl_owner.cc
@@ -0,0 +1,156 @@ +// Copyright 2017 The Chromium Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +#include "media/gpu/android/surface_texture_gl_owner.h" + +#include "base/logging.h" +#include "base/memory/ptr_util.h" +#include "base/metrics/histogram_macros.h" +#include "base/synchronization/waitable_event.h" +#include "base/threading/thread_task_runner_handle.h" +#include "ui/gl/scoped_binders.h" +#include "ui/gl/scoped_make_current.h" + +namespace media { + +// FrameAvailableEvent is a RefCounted wrapper for a WaitableEvent +// (it's not possible to put one in RefCountedData). +// This lets us safely signal an event on any thread. +struct FrameAvailableEvent + : public base::RefCountedThreadSafe<FrameAvailableEvent> { + FrameAvailableEvent() + : event(base::WaitableEvent::ResetPolicy::AUTOMATIC, + base::WaitableEvent::InitialState::NOT_SIGNALED) {} + void Signal() { event.Signal(); } + base::WaitableEvent event; + + private: + friend class RefCountedThreadSafe<FrameAvailableEvent>; + ~FrameAvailableEvent() = default; +}; + +scoped_refptr<TextureOwner> SurfaceTextureGLOwner::Create() { + GLuint texture_id; + glGenTextures(1, &texture_id); + if (!texture_id) + return nullptr; + + // Set the parameters on the texture. + gl::ScopedActiveTexture active_texture(GL_TEXTURE0); + gl::ScopedTextureBinder texture_binder(GL_TEXTURE_EXTERNAL_OES, texture_id); + glTexParameteri(GL_TEXTURE_EXTERNAL_OES, GL_TEXTURE_MAG_FILTER, GL_LINEAR); + glTexParameteri(GL_TEXTURE_EXTERNAL_OES, GL_TEXTURE_MIN_FILTER, GL_LINEAR); + glTexParameteri(GL_TEXTURE_EXTERNAL_OES, GL_TEXTURE_WRAP_S, GL_CLAMP_TO_EDGE); + glTexParameteri(GL_TEXTURE_EXTERNAL_OES, GL_TEXTURE_WRAP_T, GL_CLAMP_TO_EDGE); + DCHECK_EQ(static_cast<GLenum>(GL_NO_ERROR), glGetError()); + + return new SurfaceTextureGLOwner(texture_id); +} + +SurfaceTextureGLOwner::SurfaceTextureGLOwner(GLuint texture_id) + : surface_texture_(gl::SurfaceTexture::Create(texture_id)), + texture_id_(texture_id), + context_(gl::GLContext::GetCurrent()), + surface_(gl::GLSurface::GetCurrent()), + frame_available_event_(new FrameAvailableEvent()) { + DCHECK(context_); + DCHECK(surface_); + surface_texture_->SetFrameAvailableCallbackOnAnyThread(base::BindRepeating( + &FrameAvailableEvent::Signal, frame_available_event_)); +} + +SurfaceTextureGLOwner::~SurfaceTextureGLOwner() { + DCHECK_CALLED_ON_VALID_THREAD(thread_checker_); + + // Make sure that the SurfaceTexture isn't using the GL objects. + surface_texture_ = nullptr; + + ui::ScopedMakeCurrent scoped_make_current(context_.get(), surface_.get()); + if (scoped_make_current.Succeeded()) { + glDeleteTextures(1, &texture_id_); + DCHECK_EQ(static_cast<GLenum>(GL_NO_ERROR), glGetError()); + } +} + +GLuint SurfaceTextureGLOwner::GetTextureId() const { + DCHECK_CALLED_ON_VALID_THREAD(thread_checker_); + return texture_id_; +} + +gl::ScopedJavaSurface SurfaceTextureGLOwner::CreateJavaSurface() const { + return gl::ScopedJavaSurface(surface_texture_.get()); +} + +void SurfaceTextureGLOwner::UpdateTexImage() { + DCHECK_CALLED_ON_VALID_THREAD(thread_checker_); + surface_texture_->UpdateTexImage(); +} + +void SurfaceTextureGLOwner::GetTransformMatrix(float mtx[]) { + DCHECK_CALLED_ON_VALID_THREAD(thread_checker_); + surface_texture_->GetTransformMatrix(mtx); +} + +void SurfaceTextureGLOwner::ReleaseBackBuffers() { + DCHECK_CALLED_ON_VALID_THREAD(thread_checker_); + surface_texture_->ReleaseBackBuffers(); +} + +gl::GLContext* SurfaceTextureGLOwner::GetContext() const { + DCHECK_CALLED_ON_VALID_THREAD(thread_checker_); + return context_.get(); +} + +gl::GLSurface* SurfaceTextureGLOwner::GetSurface() const { + DCHECK_CALLED_ON_VALID_THREAD(thread_checker_); + return surface_.get(); +} + +void SurfaceTextureGLOwner::SetReleaseTimeToNow() { + DCHECK_CALLED_ON_VALID_THREAD(thread_checker_); + release_time_ = base::TimeTicks::Now(); +} + +void SurfaceTextureGLOwner::IgnorePendingRelease() { + DCHECK_CALLED_ON_VALID_THREAD(thread_checker_); + release_time_ = base::TimeTicks(); +} + +bool SurfaceTextureGLOwner::IsExpectingFrameAvailable() { + DCHECK_CALLED_ON_VALID_THREAD(thread_checker_); + return !release_time_.is_null(); +} + +void SurfaceTextureGLOwner::WaitForFrameAvailable() { + DCHECK_CALLED_ON_VALID_THREAD(thread_checker_); + DCHECK(!release_time_.is_null()); + + // 5msec covers >99.9% of cases, so just wait for up to that much before + // giving up. If an error occurs, we might not ever get a notification. + const base::TimeDelta max_wait = base::TimeDelta::FromMilliseconds(5); + const base::TimeTicks call_time = base::TimeTicks::Now(); + const base::TimeDelta elapsed = call_time - release_time_; + const base::TimeDelta remaining = max_wait - elapsed; + release_time_ = base::TimeTicks(); + + if (remaining <= base::TimeDelta()) { + if (!frame_available_event_->event.IsSignaled()) { + DVLOG(1) << "Deferred WaitForFrameAvailable() timed out, elapsed: " + << elapsed.InMillisecondsF() << "ms"; + } + return; + } + + DCHECK_LE(remaining, max_wait); + SCOPED_UMA_HISTOGRAM_TIMER("Media.AvdaCodecImage.WaitTimeForFrame"); + if (!frame_available_event_->event.TimedWait(remaining)) { + DVLOG(1) << "WaitForFrameAvailable() timed out, elapsed: " + << elapsed.InMillisecondsF() + << "ms, additionally waited: " << remaining.InMillisecondsF() + << "ms, total: " << (elapsed + remaining).InMillisecondsF() + << "ms"; + } +} + +} // namespace media
diff --git a/media/gpu/android/surface_texture_gl_owner.h b/media/gpu/android/surface_texture_gl_owner.h new file mode 100644 index 0000000..5277ef9 --- /dev/null +++ b/media/gpu/android/surface_texture_gl_owner.h
@@ -0,0 +1,61 @@ +// Copyright 2017 The Chromium Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +#ifndef MEDIA_GPU_ANDROID_SURFACE_TEXTURE_GL_OWNER_H_ +#define MEDIA_GPU_ANDROID_SURFACE_TEXTURE_GL_OWNER_H_ + +#include "media/gpu/android/texture_owner.h" + +#include "base/memory/ref_counted.h" +#include "base/threading/thread_checker.h" +#include "media/gpu/media_gpu_export.h" +#include "ui/gl/android/surface_texture.h" + +namespace media { + +struct FrameAvailableEvent; + +class MEDIA_GPU_EXPORT SurfaceTextureGLOwner : public TextureOwner { + public: + // Creates a GL texture using the current platform GL context and returns a + // new SurfaceTextureGLOwner attached to it. Returns null on failure. + static scoped_refptr<TextureOwner> Create(); + + GLuint GetTextureId() const override; + gl::GLContext* GetContext() const override; + gl::GLSurface* GetSurface() const override; + gl::ScopedJavaSurface CreateJavaSurface() const override; + void UpdateTexImage() override; + void GetTransformMatrix(float mtx[16]) override; + void ReleaseBackBuffers() override; + void SetReleaseTimeToNow() override; + void IgnorePendingRelease() override; + bool IsExpectingFrameAvailable() override; + void WaitForFrameAvailable() override; + + private: + SurfaceTextureGLOwner(GLuint texture_id); + ~SurfaceTextureGLOwner() override; + + scoped_refptr<gl::SurfaceTexture> surface_texture_; + GLuint texture_id_; + + // The context and surface that were used to create |texture_id_|. + scoped_refptr<gl::GLContext> context_; + scoped_refptr<gl::GLSurface> surface_; + + // When SetReleaseTimeToNow() was last called. i.e., when the last + // codec buffer was released to this surface. Or null if + // IgnorePendingRelease() or WaitForFrameAvailable() have been called since. + base::TimeTicks release_time_; + scoped_refptr<FrameAvailableEvent> frame_available_event_; + + THREAD_CHECKER(thread_checker_); + + DISALLOW_COPY_AND_ASSIGN(SurfaceTextureGLOwner); +}; + +} // namespace media + +#endif // MEDIA_GPU_ANDROID_SURFACE_TEXTURE_GL_OWNER_H_
diff --git a/media/gpu/android/surface_texture_gl_owner_unittest.cc b/media/gpu/android/surface_texture_gl_owner_unittest.cc index a8898b9..39b2da8 100644 --- a/media/gpu/android/surface_texture_gl_owner_unittest.cc +++ b/media/gpu/android/surface_texture_gl_owner_unittest.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 "media/gpu/android/texture_owner.h" +#include "media/gpu/android/surface_texture_gl_owner.h" #include <stdint.h>
diff --git a/media/gpu/android/texture_owner.cc b/media/gpu/android/texture_owner.cc index 7dd014b..8b3801f1 100644 --- a/media/gpu/android/texture_owner.cc +++ b/media/gpu/android/texture_owner.cc
@@ -1,35 +1,13 @@ -// Copyright 2017 The Chromium Authors. All rights reserved. +// 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 "media/gpu/android/texture_owner.h" -#include "base/logging.h" -#include "base/memory/ptr_util.h" -#include "base/metrics/histogram_macros.h" -#include "base/synchronization/waitable_event.h" #include "base/threading/thread_task_runner_handle.h" -#include "ui/gl/scoped_binders.h" -#include "ui/gl/scoped_make_current.h" namespace media { -// FrameAvailableEvent is a RefCounted wrapper for a WaitableEvent -// (it's not possible to put one in RefCountedData). -// This lets us safely signal an event on any thread. -struct FrameAvailableEvent - : public base::RefCountedThreadSafe<FrameAvailableEvent> { - FrameAvailableEvent() - : event(base::WaitableEvent::ResetPolicy::AUTOMATIC, - base::WaitableEvent::InitialState::NOT_SIGNALED) {} - void Signal() { event.Signal(); } - base::WaitableEvent event; - - private: - friend class RefCountedThreadSafe<FrameAvailableEvent>; - ~FrameAvailableEvent() = default; -}; - TextureOwner::TextureOwner() : base::RefCountedDeleteOnSequence<TextureOwner>( base::ThreadTaskRunnerHandle::Get()), @@ -37,127 +15,4 @@ TextureOwner::~TextureOwner() = default; -scoped_refptr<TextureOwner> SurfaceTextureGLOwner::Create() { - GLuint texture_id; - glGenTextures(1, &texture_id); - if (!texture_id) - return nullptr; - - // Set the parameters on the texture. - gl::ScopedActiveTexture active_texture(GL_TEXTURE0); - gl::ScopedTextureBinder texture_binder(GL_TEXTURE_EXTERNAL_OES, texture_id); - glTexParameteri(GL_TEXTURE_EXTERNAL_OES, GL_TEXTURE_MAG_FILTER, GL_LINEAR); - glTexParameteri(GL_TEXTURE_EXTERNAL_OES, GL_TEXTURE_MIN_FILTER, GL_LINEAR); - glTexParameteri(GL_TEXTURE_EXTERNAL_OES, GL_TEXTURE_WRAP_S, GL_CLAMP_TO_EDGE); - glTexParameteri(GL_TEXTURE_EXTERNAL_OES, GL_TEXTURE_WRAP_T, GL_CLAMP_TO_EDGE); - DCHECK_EQ(static_cast<GLenum>(GL_NO_ERROR), glGetError()); - - return new SurfaceTextureGLOwner(texture_id); -} - -SurfaceTextureGLOwner::SurfaceTextureGLOwner(GLuint texture_id) - : surface_texture_(gl::SurfaceTexture::Create(texture_id)), - texture_id_(texture_id), - context_(gl::GLContext::GetCurrent()), - surface_(gl::GLSurface::GetCurrent()), - frame_available_event_(new FrameAvailableEvent()) { - DCHECK(context_); - DCHECK(surface_); - surface_texture_->SetFrameAvailableCallbackOnAnyThread(base::BindRepeating( - &FrameAvailableEvent::Signal, frame_available_event_)); -} - -SurfaceTextureGLOwner::~SurfaceTextureGLOwner() { - DCHECK_CALLED_ON_VALID_THREAD(thread_checker_); - - // Make sure that the SurfaceTexture isn't using the GL objects. - surface_texture_ = nullptr; - - ui::ScopedMakeCurrent scoped_make_current(context_.get(), surface_.get()); - if (scoped_make_current.Succeeded()) { - glDeleteTextures(1, &texture_id_); - DCHECK_EQ(static_cast<GLenum>(GL_NO_ERROR), glGetError()); - } -} - -GLuint SurfaceTextureGLOwner::GetTextureId() const { - DCHECK_CALLED_ON_VALID_THREAD(thread_checker_); - return texture_id_; -} - -gl::ScopedJavaSurface SurfaceTextureGLOwner::CreateJavaSurface() const { - return gl::ScopedJavaSurface(surface_texture_.get()); -} - -void SurfaceTextureGLOwner::UpdateTexImage() { - DCHECK_CALLED_ON_VALID_THREAD(thread_checker_); - surface_texture_->UpdateTexImage(); -} - -void SurfaceTextureGLOwner::GetTransformMatrix(float mtx[]) { - DCHECK_CALLED_ON_VALID_THREAD(thread_checker_); - surface_texture_->GetTransformMatrix(mtx); -} - -void SurfaceTextureGLOwner::ReleaseBackBuffers() { - DCHECK_CALLED_ON_VALID_THREAD(thread_checker_); - surface_texture_->ReleaseBackBuffers(); -} - -gl::GLContext* SurfaceTextureGLOwner::GetContext() const { - DCHECK_CALLED_ON_VALID_THREAD(thread_checker_); - return context_.get(); -} - -gl::GLSurface* SurfaceTextureGLOwner::GetSurface() const { - DCHECK_CALLED_ON_VALID_THREAD(thread_checker_); - return surface_.get(); -} - -void SurfaceTextureGLOwner::SetReleaseTimeToNow() { - DCHECK_CALLED_ON_VALID_THREAD(thread_checker_); - release_time_ = base::TimeTicks::Now(); -} - -void SurfaceTextureGLOwner::IgnorePendingRelease() { - DCHECK_CALLED_ON_VALID_THREAD(thread_checker_); - release_time_ = base::TimeTicks(); -} - -bool SurfaceTextureGLOwner::IsExpectingFrameAvailable() { - DCHECK_CALLED_ON_VALID_THREAD(thread_checker_); - return !release_time_.is_null(); -} - -void SurfaceTextureGLOwner::WaitForFrameAvailable() { - DCHECK_CALLED_ON_VALID_THREAD(thread_checker_); - DCHECK(!release_time_.is_null()); - - // 5msec covers >99.9% of cases, so just wait for up to that much before - // giving up. If an error occurs, we might not ever get a notification. - const base::TimeDelta max_wait = base::TimeDelta::FromMilliseconds(5); - const base::TimeTicks call_time = base::TimeTicks::Now(); - const base::TimeDelta elapsed = call_time - release_time_; - const base::TimeDelta remaining = max_wait - elapsed; - release_time_ = base::TimeTicks(); - - if (remaining <= base::TimeDelta()) { - if (!frame_available_event_->event.IsSignaled()) { - DVLOG(1) << "Deferred WaitForFrameAvailable() timed out, elapsed: " - << elapsed.InMillisecondsF() << "ms"; - } - return; - } - - DCHECK_LE(remaining, max_wait); - SCOPED_UMA_HISTOGRAM_TIMER("Media.AvdaCodecImage.WaitTimeForFrame"); - if (!frame_available_event_->event.TimedWait(remaining)) { - DVLOG(1) << "WaitForFrameAvailable() timed out, elapsed: " - << elapsed.InMillisecondsF() - << "ms, additionally waited: " << remaining.InMillisecondsF() - << "ms, total: " << (elapsed + remaining).InMillisecondsF() - << "ms"; - } -} - } // namespace media
diff --git a/media/gpu/android/texture_owner.h b/media/gpu/android/texture_owner.h index f07ca23..8660d783 100644 --- a/media/gpu/android/texture_owner.h +++ b/media/gpu/android/texture_owner.h
@@ -1,4 +1,4 @@ -// Copyright 2017 The Chromium Authors. All rights reserved. +// 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. @@ -7,29 +7,21 @@ #include "base/memory/ref_counted.h" #include "base/memory/ref_counted_delete_on_sequence.h" -#include "base/sequenced_task_runner_helpers.h" #include "base/single_thread_task_runner.h" -#include "base/synchronization/waitable_event.h" -#include "base/threading/thread_checker.h" #include "media/gpu/media_gpu_export.h" #include "ui/gl/android/scoped_java_surface.h" -#include "ui/gl/android/surface_texture.h" #include "ui/gl/gl_bindings.h" #include "ui/gl/gl_context.h" #include "ui/gl/gl_surface.h" namespace media { -struct FrameAvailableEvent; - -// A SurfaceTexture wrapper that creates and maintains ownership of the -// attached GL texture. The texture is destroyed with the object but it's -// possible to call ReleaseSurfaceTexture() without destroying the GL texture. +// A Texture wrapper interface that creates and maintains ownership of the +// attached GL or Vulkan texture. The texture is destroyed with the object. // It should only be accessed on the thread it was created on, with the -// exception of CreateJavaSurface(), which can be called on any thread. -// It's safe to keep and drop refptrs to it on any thread; it will be -// automatically destructed on the thread it was constructed on. -// Virtual for testing; see SurfaceTextureGLOwner. +// exception of CreateJavaSurface(), which can be called on any thread. It's +// safe to keep and drop refptrs to it on any thread; it will be automatically +// destructed on the thread it was constructed on. class MEDIA_GPU_EXPORT TextureOwner : public base::RefCountedDeleteOnSequence<TextureOwner> { public: @@ -47,8 +39,9 @@ // Create a java surface for the TextureOwner. virtual gl::ScopedJavaSurface CreateJavaSurface() const = 0; - // See gl::SurfaceTexture for the following. + // Update the texture image using the latest available image data. virtual void UpdateTexImage() = 0; + // Transformation matrix if any associated with the texture image. virtual void GetTransformMatrix(float mtx[16]) = 0; virtual void ReleaseBackBuffers() = 0; @@ -57,10 +50,9 @@ virtual void SetReleaseTimeToNow() = 0; // Ignores a pending release that was previously indicated with - // SetReleaseTimeToNow(). - // TODO(watk): This doesn't seem necessary. It actually may be detrimental - // because the next time we release a buffer we may confuse its - // onFrameAvailable with the one we're ignoring. + // SetReleaseTimeToNow(). TODO(watk): This doesn't seem necessary. It + // actually may be detrimental because the next time we release a buffer we + // may confuse its onFrameAvailable with the one we're ignoring. virtual void IgnorePendingRelease() = 0; // Whether we're expecting onFrameAvailable. True when SetReleaseTimeToNow() @@ -83,46 +75,6 @@ DISALLOW_COPY_AND_ASSIGN(TextureOwner); }; -class MEDIA_GPU_EXPORT SurfaceTextureGLOwner : public TextureOwner { - public: - // Creates a GL texture using the current platform GL context and returns a - // new SurfaceTextureGLOwner attached to it. Returns null on failure. - static scoped_refptr<TextureOwner> Create(); - - GLuint GetTextureId() const override; - gl::GLContext* GetContext() const override; - gl::GLSurface* GetSurface() const override; - gl::ScopedJavaSurface CreateJavaSurface() const override; - void UpdateTexImage() override; - void GetTransformMatrix(float mtx[16]) override; - void ReleaseBackBuffers() override; - void SetReleaseTimeToNow() override; - void IgnorePendingRelease() override; - bool IsExpectingFrameAvailable() override; - void WaitForFrameAvailable() override; - - private: - SurfaceTextureGLOwner(GLuint texture_id); - ~SurfaceTextureGLOwner() override; - - scoped_refptr<gl::SurfaceTexture> surface_texture_; - GLuint texture_id_; - - // The context and surface that were used to create |texture_id_|. - scoped_refptr<gl::GLContext> context_; - scoped_refptr<gl::GLSurface> surface_; - - // When SetReleaseTimeToNow() was last called. i.e., when the last - // codec buffer was released to this surface. Or null if - // IgnorePendingRelease() or WaitForFrameAvailable() have been called since. - base::TimeTicks release_time_; - scoped_refptr<FrameAvailableEvent> frame_available_event_; - - THREAD_CHECKER(thread_checker_); - - DISALLOW_COPY_AND_ASSIGN(SurfaceTextureGLOwner); -}; - } // namespace media #endif // MEDIA_GPU_ANDROID_TEXTURE_OWNER_H_
diff --git a/media/gpu/android/video_frame_factory_impl.h b/media/gpu/android/video_frame_factory_impl.h index b8b7621..4974508 100644 --- a/media/gpu/android/video_frame_factory_impl.h +++ b/media/gpu/android/video_frame_factory_impl.h
@@ -13,7 +13,7 @@ #include "media/base/video_frame.h" #include "media/gpu/android/codec_image.h" #include "media/gpu/android/codec_wrapper.h" -#include "media/gpu/android/texture_owner.h" +#include "media/gpu/android/surface_texture_gl_owner.h" #include "media/gpu/android/video_frame_factory.h" #include "media/gpu/gles2_decoder_helper.h" #include "media/gpu/media_gpu_export.h"
diff --git a/media/gpu/windows/d3d11_video_decoder.cc b/media/gpu/windows/d3d11_video_decoder.cc index 354aea0..ab4a0512 100644 --- a/media/gpu/windows/d3d11_video_decoder.cc +++ b/media/gpu/windows/d3d11_video_decoder.cc
@@ -93,6 +93,7 @@ const OutputCB& output_cb, const WaitingForDecryptionKeyCB& waiting_for_decryption_key_cb) { if (!IsPotentiallySupported(config)) { + DVLOG(3) << "D3D11 video decoder not supported for the config."; init_cb.Run(false); return; } @@ -152,27 +153,37 @@ const bool is_h264 = config.profile() >= H264PROFILE_MIN && config.profile() <= H264PROFILE_MAX; - if (!is_h264) + if (!is_h264) { + DVLOG(2) << "Profile is not H264."; return false; + } // Must use NV12, which excludes HDR. - if (config.profile() == H264PROFILE_HIGH10PROFILE) + if (config.profile() == H264PROFILE_HIGH10PROFILE) { + DVLOG(2) << "High 10 profile is not supported."; return false; + } // TODO(liberato): dxva checks IsHDR() in the target colorspace, but we don't // have the target colorspace. It's commented as being for vpx, though, so // we skip it here for now. // Must use the validating decoder. - if (gpu_preferences_.use_passthrough_cmd_decoder) + if (gpu_preferences_.use_passthrough_cmd_decoder) { + DVLOG(2) << "Must use validating decoder."; return false; + } // Must allow zero-copy of nv12 textures. - if (!gpu_preferences_.enable_zero_copy_dxgi_video) + if (!gpu_preferences_.enable_zero_copy_dxgi_video) { + DVLOG(2) << "Must allow zero-copy NV12."; return false; + } - if (gpu_workarounds_.disable_dxgi_zero_copy_video) + if (gpu_workarounds_.disable_dxgi_zero_copy_video) { + DVLOG(2) << "Must allow zero-copy video."; return false; + } return true; }
diff --git a/net/quic/chromium/quic_chromium_client_session.cc b/net/quic/chromium/quic_chromium_client_session.cc index 5501e4c..7b4bd86 100644 --- a/net/quic/chromium/quic_chromium_client_session.cc +++ b/net/quic/chromium/quic_chromium_client_session.cc
@@ -922,13 +922,6 @@ exclusive, std::move(ack_notifier_delegate)); } -void QuicChromiumClientSession::OnHeadersHeadOfLineBlocking( - QuicTime::Delta delta) { - UMA_HISTOGRAM_TIMES( - "Net.QuicSession.HeadersHOLBlockedTime", - base::TimeDelta::FromMicroseconds(delta.ToMicroseconds())); -} - void QuicChromiumClientSession::UnregisterStreamPriority(QuicStreamId id, bool is_static) { if (headers_include_h2_stream_dependency_ && !is_static) {
diff --git a/net/quic/chromium/quic_chromium_client_session.h b/net/quic/chromium/quic_chromium_client_session.h index 3327453..2c5efc58 100644 --- a/net/quic/chromium/quic_chromium_client_session.h +++ b/net/quic/chromium/quic_chromium_client_session.h
@@ -454,7 +454,6 @@ SpdyPriority priority, QuicReferenceCountedPointer<QuicAckListenerInterface> ack_listener) override; - void OnHeadersHeadOfLineBlocking(QuicTime::Delta delta) override; void UnregisterStreamPriority(QuicStreamId id, bool is_static) override; void UpdateStreamPriority(QuicStreamId id, SpdyPriority new_priority) override;
diff --git a/net/quic/core/quic_headers_stream.cc b/net/quic/core/quic_headers_stream.cc index 52e6c419..bf3566d93 100644 --- a/net/quic/core/quic_headers_stream.cc +++ b/net/quic/core/quic_headers_stream.cc
@@ -37,15 +37,14 @@ void QuicHeadersStream::OnDataAvailable() { char buffer[1024]; struct iovec iov; - QuicTime timestamp(QuicTime::Zero()); while (true) { iov.iov_base = buffer; iov.iov_len = QUIC_ARRAYSIZE(buffer); - if (!sequencer()->GetReadableRegion(&iov, ×tamp)) { + if (!sequencer()->GetReadableRegion(&iov)) { // No more data to read. break; } - if (spdy_session_->ProcessHeaderData(iov, timestamp) != iov.iov_len) { + if (spdy_session_->ProcessHeaderData(iov) != iov.iov_len) { // Error processing data. return; }
diff --git a/net/quic/core/quic_headers_stream_test.cc b/net/quic/core/quic_headers_stream_test.cc index 608fc127..39b0d215 100644 --- a/net/quic/core/quic_headers_stream_test.cc +++ b/net/quic/core/quic_headers_stream_test.cc
@@ -59,7 +59,8 @@ class MockVisitor : public SpdyFramerVisitorInterface { public: - MOCK_METHOD1(OnError, void(Http2DecoderAdapter::SpdyFramerError error)); + MOCK_METHOD1(OnError, + void(http2::Http2DecoderAdapter::SpdyFramerError error)); MOCK_METHOD3(OnDataFrameHeader, void(SpdyStreamId stream_id, size_t length, bool fin)); MOCK_METHOD3(OnStreamFrameData, @@ -113,26 +114,6 @@ bool(SpdyStreamId stream_id, uint8_t frame_type)); }; -class ForceHolAckListener : public QuicAckListenerInterface { - public: - ForceHolAckListener() : total_acked_bytes_(0) {} - - void OnPacketAcked(int acked_bytes, QuicTime::Delta ack_delay_time) override { - total_acked_bytes_ += acked_bytes; - } - - void OnPacketRetransmitted(int retransmitted_bytes) override {} - - size_t total_acked_bytes() { return total_acked_bytes_; } - - private: - ~ForceHolAckListener() override {} - - size_t total_acked_bytes_; - - DISALLOW_COPY_AND_ASSIGN(ForceHolAckListener); -}; - struct TestParams { TestParams(const ParsedQuicVersion& version, Perspective perspective) : version(version), perspective(perspective) { @@ -177,7 +158,8 @@ headers_["content-length"] = "11"; framer_ = std::unique_ptr<SpdyFramer>( new SpdyFramer(SpdyFramer::ENABLE_COMPRESSION)); - deframer_ = std::unique_ptr<Http2DecoderAdapter>(new Http2DecoderAdapter()); + deframer_ = std::unique_ptr<http2::Http2DecoderAdapter>( + new http2::Http2DecoderAdapter()); deframer_->set_visitor(&visitor_); EXPECT_EQ(transport_version(), session_.connection()->transport_version()); EXPECT_TRUE(headers_stream_ != nullptr); @@ -286,7 +268,7 @@ } deframer_->ProcessInput(saved_data_.data(), saved_data_.length()); EXPECT_FALSE(deframer_->HasError()) - << Http2DecoderAdapter::SpdyFramerErrorToString( + << http2::Http2DecoderAdapter::SpdyFramerErrorToString( deframer_->spdy_framer_error()); CheckHeaders(); @@ -333,7 +315,7 @@ QuicString saved_header_data_; QuicString saved_payloads_; std::unique_ptr<SpdyFramer> framer_; - std::unique_ptr<Http2DecoderAdapter> deframer_; + std::unique_ptr<http2::Http2DecoderAdapter> deframer_; StrictMock<MockVisitor> visitor_; QuicStreamFrame stream_frame_; QuicStreamId next_promised_stream_id_; @@ -389,7 +371,7 @@ EXPECT_CALL(visitor_, OnHeaderFrameEnd(stream_id)).Times(1); deframer_->ProcessInput(saved_data_.data(), saved_data_.length()); EXPECT_FALSE(deframer_->HasError()) - << Http2DecoderAdapter::SpdyFramerErrorToString( + << http2::Http2DecoderAdapter::SpdyFramerErrorToString( deframer_->spdy_framer_error()); CheckHeaders(); saved_data_.clear(); @@ -516,80 +498,6 @@ perspective() == Perspective::IS_CLIENT); } -TEST_P(QuicHeadersStreamTest, EmptyHeaderHOLBlockedTime) { - EXPECT_CALL(session_, OnHeadersHeadOfLineBlocking(_)).Times(0); - InSequence seq; - bool fin = true; - for (int stream_num = 0; stream_num < 10; stream_num++) { - QuicStreamId stream_id = GetNthClientInitiatedId(stream_num); - // Replace with "WriteHeadersAndSaveData" - SpdySerializedFrame frame; - if (perspective() == Perspective::IS_SERVER) { - SpdyHeadersIR headers_frame(stream_id, headers_.Clone()); - headers_frame.set_fin(fin); - headers_frame.set_has_priority(true); - headers_frame.set_weight(Spdy3PriorityToHttp2Weight(0)); - frame = framer_->SerializeFrame(headers_frame); - EXPECT_CALL(session_, OnStreamHeadersPriority(stream_id, 0)); - } else { - SpdyHeadersIR headers_frame(stream_id, headers_.Clone()); - headers_frame.set_fin(fin); - frame = framer_->SerializeFrame(headers_frame); - } - EXPECT_CALL(session_, OnStreamHeaderList(stream_id, fin, frame.size(), _)) - .Times(1); - stream_frame_.data_buffer = frame.data(); - stream_frame_.data_length = frame.size(); - headers_stream_->OnStreamFrame(stream_frame_); - connection_->AdvanceTime(QuicTime::Delta::FromMilliseconds(1)); - stream_frame_.offset += frame.size(); - } -} - -TEST_P(QuicHeadersStreamTest, NonEmptyHeaderHOLBlockedTime) { - QuicStreamId stream_id; - bool fin = true; - QuicStreamFrame stream_frames[10]; - SpdySerializedFrame frames[10]; - // First create all the frames in order - { - InSequence seq; - for (int stream_num = 0; stream_num < 10; ++stream_num) { - stream_id = GetNthClientInitiatedId(stream_num); - if (perspective() == Perspective::IS_SERVER) { - SpdyHeadersIR headers_frame(stream_id, headers_.Clone()); - headers_frame.set_fin(fin); - headers_frame.set_has_priority(true); - headers_frame.set_weight(Spdy3PriorityToHttp2Weight(0)); - frames[stream_num] = framer_->SerializeFrame(headers_frame); - EXPECT_CALL(session_, OnStreamHeadersPriority(stream_id, 0)).Times(1); - } else { - SpdyHeadersIR headers_frame(stream_id, headers_.Clone()); - headers_frame.set_fin(fin); - frames[stream_num] = framer_->SerializeFrame(headers_frame); - } - stream_frames[stream_num].stream_id = stream_frame_.stream_id; - stream_frames[stream_num].offset = stream_frame_.offset; - stream_frames[stream_num].data_buffer = frames[stream_num].data(); - stream_frames[stream_num].data_length = frames[stream_num].size(); - QUIC_DVLOG(1) << "make frame for stream " << stream_num << " offset " - << stream_frames[stream_num].offset; - stream_frame_.offset += frames[stream_num].size(); - EXPECT_CALL(session_, OnStreamHeaderList(stream_id, fin, _, _)).Times(1); - } - } - - // Actually writing the frames in reverse order will cause HOL blocking. - EXPECT_CALL(session_, OnHeadersHeadOfLineBlocking(_)).Times(9); - - for (int stream_num = 9; stream_num >= 0; --stream_num) { - QUIC_DVLOG(1) << "OnStreamFrame for stream " << stream_num << " offset " - << stream_frames[stream_num].offset; - headers_stream_->OnStreamFrame(stream_frames[stream_num]); - connection_->AdvanceTime(QuicTime::Delta::FromMilliseconds(1)); - } -} - TEST_P(QuicHeadersStreamTest, ProcessLargeRawData) { QuicSpdySessionPeer::SetMaxUncompressedHeaderBytes(&session_, 256 * 1024); // We want to create a frame that is more than the SPDY Framer's max control
diff --git a/net/quic/core/quic_spdy_session.cc b/net/quic/core/quic_spdy_session.cc index 822a3fd..f25ca5d 100644 --- a/net/quic/core/quic_spdy_session.cc +++ b/net/quic/core/quic_spdy_session.cc
@@ -92,10 +92,10 @@ QUIC_INVALID_HEADERS_STREAM_DATA); } - void OnError(Http2DecoderAdapter::SpdyFramerError error) override { + void OnError(http2::Http2DecoderAdapter::SpdyFramerError error) override { QuicErrorCode code = QUIC_INVALID_HEADERS_STREAM_DATA; switch (error) { - case Http2DecoderAdapter::SpdyFramerError::SPDY_DECOMPRESS_FAILURE: + case http2::Http2DecoderAdapter::SpdyFramerError::SPDY_DECOMPRESS_FAILURE: code = QUIC_HEADERS_STREAM_DATA_DECOMPRESS_FAILURE; break; default: @@ -103,7 +103,7 @@ } CloseConnection( QuicStrCat("SPDY framing error: ", - Http2DecoderAdapter::SpdyFramerErrorToString(error)), + http2::Http2DecoderAdapter::SpdyFramerErrorToString(error)), code); } @@ -287,8 +287,6 @@ frame_len_(0), uncompressed_frame_len_(0), supports_push_promise_(perspective() == Perspective::IS_CLIENT), - cur_max_timestamp_(QuicTime::Zero()), - prev_max_timestamp_(QuicTime::Zero()), spdy_framer_(SpdyFramer::ENABLE_COMPRESSION), spdy_framer_visitor_(new SpdyFramerVisitor(this)) { hq_deframer_.set_visitor(spdy_framer_visitor_.get()); @@ -382,10 +380,7 @@ stream->OnPriorityFrame(priority); } -size_t QuicSpdySession::ProcessHeaderData(const struct iovec& iov, - QuicTime timestamp) { - DCHECK(timestamp.IsInitialized()); - UpdateCurMaxTimeStamp(timestamp); +size_t QuicSpdySession::ProcessHeaderData(const struct iovec& iov) { return hq_deframer_.ProcessInput(static_cast<char*>(iov.iov_base), iov.iov_len); } @@ -469,10 +464,6 @@ return frame.size(); } -void QuicSpdySession::OnHeadersHeadOfLineBlocking(QuicTime::Delta delta) { - // Implemented in Chromium for stats tracking. -} - QuicSpdyStream* QuicSpdySession::GetSpdyDataStream( const QuicStreamId stream_id) { return static_cast<QuicSpdyStream*>(GetOrCreateDynamicStream(stream_id)); @@ -556,19 +547,6 @@ void QuicSpdySession::OnHeaderList(const QuicHeaderList& header_list) { QUIC_DVLOG(1) << "Received header list for stream " << stream_id_ << ": " << header_list.DebugString(); - if (prev_max_timestamp_ > cur_max_timestamp_) { - // prev_max_timestamp_ > cur_max_timestamp_ implies that - // headers from lower numbered streams actually came off the - // wire after headers for the current stream, hence there was - // HOL blocking. - QuicTime::Delta delta = prev_max_timestamp_ - cur_max_timestamp_; - QUIC_DLOG(INFO) << "stream " << stream_id_ - << ": Net.QuicSession.HeadersHOLBlockedTime " - << delta.ToMilliseconds(); - OnHeadersHeadOfLineBlocking(delta); - } - prev_max_timestamp_ = std::max(prev_max_timestamp_, cur_max_timestamp_); - cur_max_timestamp_ = QuicTime::Zero(); if (promised_stream_id_ == kInvalidStreamId) { OnStreamHeaderList(stream_id_, fin_, frame_len_, header_list); } else {
diff --git a/net/quic/core/quic_spdy_session.h b/net/quic/core/quic_spdy_session.h index 0bd5bf7..5c6020e 100644 --- a/net/quic/core/quic_spdy_session.h +++ b/net/quic/core/quic_spdy_session.h
@@ -83,7 +83,7 @@ virtual void OnPriorityFrame(QuicStreamId stream_id, SpdyPriority priority); // Sends contents of |iov| to hq_deframer_, returns number of bytes processed. - size_t ProcessHeaderData(const struct iovec& iov, QuicTime timestamp); + size_t ProcessHeaderData(const struct iovec& iov); // Writes |headers| for the stream |id| to the dedicated headers stream. // If |fin| is true, then no more data will be sent for the stream |id|. @@ -116,18 +116,10 @@ QuicHeadersStream* headers_stream() { return headers_stream_.get(); } - // Called when Head of Line Blocking happens in the headers stream. - // |delta| indicates how long that piece of data has been blocked. - virtual void OnHeadersHeadOfLineBlocking(QuicTime::Delta delta); - void OnConfigNegotiated() override; bool server_push_enabled() const { return server_push_enabled_; } - void UpdateCurMaxTimeStamp(QuicTime timestamp) { - cur_max_timestamp_ = std::max(timestamp, cur_max_timestamp_); - } - // Called by |QuicHeadersStream::UpdateEnableServerPush()| with // value from SETTINGS_ENABLE_PUSH. void set_server_push_enabled(bool enable) { server_push_enabled_ = enable; } @@ -250,15 +242,6 @@ bool supports_push_promise_; - // Timestamps used to measure HOL blocking, these are recorded by - // the sequencer approximate to the time of arrival off the wire. - // |cur_max_timestamp_| tracks the most recent arrival time of - // frames for current (at the headers stream level) processed - // stream's headers, and |prev_max_timestamp_| tracks the most - // recent arrival time of lower numbered streams. - QuicTime cur_max_timestamp_; - QuicTime prev_max_timestamp_; - SpdyFramer spdy_framer_; QuicHttpDecoderAdapter hq_deframer_; std::unique_ptr<SpdyFramerVisitor> spdy_framer_visitor_;
diff --git a/net/quic/core/quic_stream.cc b/net/quic/core/quic_stream.cc index 0cefab11..e43815c 100644 --- a/net/quic/core/quic_stream.cc +++ b/net/quic/core/quic_stream.cc
@@ -46,7 +46,7 @@ const SpdyPriority QuicStream::kDefaultPriority; QuicStream::QuicStream(QuicStreamId id, QuicSession* session, bool is_static) - : sequencer_(this, session->connection()->clock()), + : sequencer_(this), id_(id), session_(session), priority_(kDefaultPriority),
diff --git a/net/quic/core/quic_stream_sequencer.cc b/net/quic/core/quic_stream_sequencer.cc index 176b0c9..bddcb557 100644 --- a/net/quic/core/quic_stream_sequencer.cc +++ b/net/quic/core/quic_stream_sequencer.cc
@@ -22,15 +22,13 @@ namespace net { -QuicStreamSequencer::QuicStreamSequencer(QuicStream* quic_stream, - const QuicClock* clock) +QuicStreamSequencer::QuicStreamSequencer(QuicStream* quic_stream) : stream_(quic_stream), buffered_frames_(kStreamReceiveWindowLimit), close_offset_(std::numeric_limits<QuicStreamOffset>::max()), blocked_(false), num_frames_received_(0), num_duplicate_frames_received_(0), - clock_(clock), ignore_read_data_(false), level_triggered_(false) {} @@ -52,7 +50,7 @@ QuicString error_details; QuicErrorCode result = buffered_frames_.OnStreamData( byte_offset, QuicStringPiece(frame.data_buffer, frame.data_length), - clock_->ApproximateNow(), &bytes_written, &error_details); + &bytes_written, &error_details); if (result != QUIC_NO_ERROR) { QuicString details = QuicStrCat( "Stream ", stream_->id(), ": ", QuicErrorCodeToString(result), ": ", @@ -135,10 +133,9 @@ return buffered_frames_.GetReadableRegions(iov, iov_len); } -bool QuicStreamSequencer::GetReadableRegion(iovec* iov, - QuicTime* timestamp) const { +bool QuicStreamSequencer::GetReadableRegion(iovec* iov) const { DCHECK(!blocked_); - return buffered_frames_.GetReadableRegion(iov, timestamp); + return buffered_frames_.GetReadableRegion(iov); } int QuicStreamSequencer::Readv(const struct iovec* iov, size_t iov_len) {
diff --git a/net/quic/core/quic_stream_sequencer.h b/net/quic/core/quic_stream_sequencer.h index 4ee7ad3..f5301e3 100644 --- a/net/quic/core/quic_stream_sequencer.h +++ b/net/quic/core/quic_stream_sequencer.h
@@ -20,14 +20,13 @@ class QuicStreamSequencerPeer; } // namespace test -class QuicClock; class QuicStream; // Buffers frames until we have something which can be passed // up to the next layer. class QUIC_EXPORT_PRIVATE QuicStreamSequencer { public: - QuicStreamSequencer(QuicStream* quic_stream, const QuicClock* clock); + explicit QuicStreamSequencer(QuicStream* quic_stream); virtual ~QuicStreamSequencer(); // If the frame is the next one we need in order to process in-order data, @@ -44,11 +43,9 @@ // number of iovs used. Non-destructive of the underlying data. int GetReadableRegions(iovec* iov, size_t iov_len) const; - // Fills in one iovec with the next readable region. |timestamp| is - // data arrived at the sequencer, and is used for measuring head of - // line blocking (HOL). Returns false if there is no readable - // region available. - bool GetReadableRegion(iovec* iov, QuicTime* timestamp) const; + // Fills in one iovec with the next readable region. Returns false if there + // is no readable region available. + bool GetReadableRegion(iovec* iov) const; // Copies the data into the iov_len buffers provided. Returns the number of // bytes read. Any buffered data no longer in use will be released. @@ -145,9 +142,6 @@ // Count of the number of duplicate frames received. int num_duplicate_frames_received_; - // Not owned. - const QuicClock* clock_; - // If true, all incoming data will be discarded. bool ignore_read_data_;
diff --git a/net/quic/core/quic_stream_sequencer_buffer.cc b/net/quic/core/quic_stream_sequencer_buffer.cc index ac3a42e..d0cd21f 100644 --- a/net/quic/core/quic_stream_sequencer_buffer.cc +++ b/net/quic/core/quic_stream_sequencer_buffer.cc
@@ -33,13 +33,6 @@ QuicStreamOffset end_offset) : begin_offset(begin_offset), end_offset(end_offset) {} -QuicStreamSequencerBuffer::FrameInfo::FrameInfo() - : length(1), timestamp(QuicTime::Zero()) {} - -QuicStreamSequencerBuffer::FrameInfo::FrameInfo(size_t length, - QuicTime timestamp) - : length(length), timestamp(timestamp) {} - QuicStreamSequencerBuffer::QuicStreamSequencerBuffer(size_t max_capacity_bytes) : max_buffer_capacity_bytes_(max_capacity_bytes), blocks_count_(CalculateBlockCount(max_capacity_bytes)), @@ -68,8 +61,6 @@ num_bytes_buffered_ = 0; bytes_received_.Clear(); bytes_received_.Add(0, total_bytes_read_); - - frame_arrival_time_map_.clear(); } bool QuicStreamSequencerBuffer::RetireBlock(size_t idx) { @@ -86,7 +77,6 @@ QuicErrorCode QuicStreamSequencerBuffer::OnStreamData( QuicStreamOffset starting_offset, QuicStringPiece data, - QuicTime timestamp, size_t* const bytes_buffered, QuicString* error_details) { CHECK_EQ(destruction_indicator_, 123456) << "This object has been destructed"; @@ -131,8 +121,6 @@ return QUIC_STREAM_SEQUENCER_INVALID_STATE; } *bytes_buffered += bytes_copy; - frame_arrival_time_map_.insert( - std::make_pair(starting_offset, FrameInfo(size, timestamp))); num_bytes_buffered_ += *bytes_buffered; return QUIC_NO_ERROR; } @@ -160,8 +148,6 @@ return QUIC_STREAM_SEQUENCER_INVALID_STATE; } *bytes_buffered += bytes_copy; - frame_arrival_time_map_.insert( - std::make_pair(copy_offset, FrameInfo(copy_length, timestamp))); } num_bytes_buffered_ += *bytes_buffered; return QUIC_NO_ERROR; @@ -302,9 +288,6 @@ } } - if (*bytes_read > 0) { - UpdateFrameArrivalMap(total_bytes_read_); - } return QUIC_NO_ERROR; } @@ -368,45 +351,8 @@ return iov_used; } -bool QuicStreamSequencerBuffer::GetReadableRegion(iovec* iov, - QuicTime* timestamp) const { - CHECK_EQ(destruction_indicator_, 123456) << "This object has been destructed"; - - if (ReadableBytes() == 0) { - iov[0].iov_base = nullptr; - iov[0].iov_len = 0; - return false; - } - - size_t start_block_idx = NextBlockToRead(); - iov->iov_base = blocks_[start_block_idx]->buffer + ReadOffset(); - size_t readable_bytes_in_block = std::min<size_t>( - GetBlockCapacity(start_block_idx) - ReadOffset(), ReadableBytes()); - size_t region_len = 0; - auto iter = frame_arrival_time_map_.begin(); - *timestamp = iter->second.timestamp; - QUIC_DVLOG(1) << "Readable bytes in block: " << readable_bytes_in_block; - for (; iter != frame_arrival_time_map_.end() && - region_len + iter->second.length <= readable_bytes_in_block; - ++iter) { - if (iter->second.timestamp != *timestamp) { - // If reaches a frame arrive at another timestamp, stop expanding current - // region. - QUIC_DVLOG(1) << "Meet frame with different timestamp."; - break; - } - region_len += iter->second.length; - QUIC_DVLOG(1) << "Added bytes to region: " << iter->second.length; - } - if (iter == frame_arrival_time_map_.end() || - iter->second.timestamp == *timestamp) { - // If encountered the end of readable bytes before reaching a different - // timestamp. - QUIC_DVLOG(1) << "Got all readable bytes in first block."; - region_len = readable_bytes_in_block; - } - iov->iov_len = region_len; - return true; +bool QuicStreamSequencerBuffer::GetReadableRegion(iovec* iov) const { + return GetReadableRegions(iov, 1) == 1; } bool QuicStreamSequencerBuffer::MarkConsumed(size_t bytes_used) { @@ -431,9 +377,6 @@ RetireBlockIfEmpty(block_idx); } } - if (bytes_used > 0) { - UpdateFrameArrivalMap(total_bytes_read_); - } return true; } @@ -532,44 +475,13 @@ } } -void QuicStreamSequencerBuffer::UpdateFrameArrivalMap(QuicStreamOffset offset) { - // Get the frame before which all frames should be removed. - auto next_frame = frame_arrival_time_map_.upper_bound(offset); - DCHECK(next_frame != frame_arrival_time_map_.begin()); - auto iter = frame_arrival_time_map_.begin(); - while (iter != next_frame) { - auto erased = *iter; - iter = frame_arrival_time_map_.erase(iter); - QUIC_DVLOG(1) << "Removed FrameInfo with offset: " << erased.first - << " and length: " << erased.second.length; - if (erased.first + erased.second.length > offset) { - // If last frame is partially read out, update this FrameInfo and insert - // it back. - auto updated = std::make_pair( - offset, FrameInfo(erased.first + erased.second.length - offset, - erased.second.timestamp)); - QUIC_DVLOG(1) << "Inserted FrameInfo with offset: " << updated.first - << " and length: " << updated.second.length; - frame_arrival_time_map_.insert(updated); - } - } -} - QuicString QuicStreamSequencerBuffer::GapsDebugString() { + // TODO(vasilvv): this should return the complement of |bytes_received_|. return bytes_received_.ToString(); } QuicString QuicStreamSequencerBuffer::ReceivedFramesDebugString() { - QuicString current_frames_string; - for (auto it : frame_arrival_time_map_) { - QuicStreamOffset current_frame_begin_offset = it.first; - QuicStreamOffset current_frame_end_offset = - it.second.length + current_frame_begin_offset; - current_frames_string.append(QuicStrCat( - "[", current_frame_begin_offset, ", ", current_frame_end_offset, - ") receiving time ", it.second.timestamp.ToDebuggingValue())); - } - return current_frames_string; + return bytes_received_.ToString(); } QuicStreamOffset QuicStreamSequencerBuffer::FirstMissingByte() const {
diff --git a/net/quic/core/quic_stream_sequencer_buffer.h b/net/quic/core/quic_stream_sequencer_buffer.h index af5555a..5c2af9b 100644 --- a/net/quic/core/quic_stream_sequencer_buffer.h +++ b/net/quic/core/quic_stream_sequencer_buffer.h
@@ -46,10 +46,9 @@ // iovec{dest + 80, 40}}; // size_t read = buffer.Readv(iovecs, 3); // -// // Get single readable region with timestamp. -// QuicTime t; +// // Get single readable region. // iovec iov; -// buffer.GetReadableRegion(iov, &t); +// buffer.GetReadableRegion(iov); // // // Get readable regions from [256, 1024) and consume some of it. // iovec iovs[2]; @@ -86,15 +85,6 @@ QuicStreamOffset end_offset; }; - // A FrameInfo stores the length of a frame and the time it arrived. - struct QUIC_EXPORT_PRIVATE FrameInfo { - FrameInfo(); - FrameInfo(size_t length, QuicTime timestamp); - - size_t length; - QuicTime timestamp; - }; - // Size of blocks used by this buffer. // Choose 8K to make block large enough to hold multiple frames, each of // which could be up to 1.5 KB. @@ -117,10 +107,8 @@ // Called to buffer new data received for this stream. If the data was // successfully buffered, returns QUIC_NO_ERROR and stores the number of // bytes buffered in |bytes_buffered|. Returns an error otherwise. - // |timestamp| is the time the data arrived. QuicErrorCode OnStreamData(QuicStreamOffset offset, QuicStringPiece data, - QuicTime timestamp, size_t* bytes_buffered, QuicString* error_details); @@ -137,15 +125,13 @@ // Returns the number of iovec entries in |iov| which were populated. // If the region is empty, one iovec entry with 0 length // is returned, and the function returns 0. If there are more readable - // regions than iov_size, the function only processes the first - // iov_size of them. + // regions than |iov_size|, the function only processes the first + // |iov_size| of them. int GetReadableRegions(struct iovec* iov, int iov_len) const; - // Fills in one iovec with data which all arrived at the same time from the - // next readable region. - // Populates |timestamp| with the time that this data arrived. + // Fills in one iovec with data from the next readable region. // Returns false if there is no readable region available. - bool GetReadableRegion(iovec* iov, QuicTime* timestamp) const; + bool GetReadableRegion(iovec* iov) const; // Called after GetReadableRegions() to free up |bytes_used| space if these // bytes are processed. @@ -218,12 +204,6 @@ // Returns offset of highest received byte + 1. QuicStreamOffset NextExpectedByte() const; - // Called after Readv() and MarkConsumed() to keep frame_arrival_time_map_ - // up to date. - // |offset| is the byte next read should start from. All frames before it - // should be removed from the map. - void UpdateFrameArrivalMap(QuicStreamOffset offset); - // Return |gaps_| as a string: [1024, 1500) [1800, 2048)... for debugging. QuicString GapsDebugString(); @@ -247,10 +227,6 @@ // Number of bytes in buffer. size_t num_bytes_buffered_; - // Stores all the buffered frames' start offset, length and arrival time. - // TODO(fayang): Remove this as it is obsolete. - std::map<QuicStreamOffset, FrameInfo> frame_arrival_time_map_; - // For debugging use after free, assigned to 123456 in constructor and 654321 // in destructor. As long as it's not 123456, this means either use after free // or memory corruption.
diff --git a/net/quic/core/quic_stream_sequencer_buffer_test.cc b/net/quic/core/quic_stream_sequencer_buffer_test.cc index 9b5cc85..0eb589c 100644 --- a/net/quic/core/quic_stream_sequencer_buffer_test.cc +++ b/net/quic/core/quic_stream_sequencer_buffer_test.cc
@@ -5,7 +5,7 @@ #include "net/quic/core/quic_stream_sequencer_buffer.h" #include <algorithm> -#include <limits> +#include <cstdint> #include <map> #include <utility> @@ -15,7 +15,6 @@ #include "net/quic/platform/api/quic_str_cat.h" #include "net/quic/platform/api/quic_string.h" #include "net/quic/platform/api/quic_test.h" -#include "net/quic/test_tools/mock_clock.h" #include "net/quic/test_tools/quic_stream_sequencer_buffer_peer.h" #include "net/quic/test_tools/quic_test_utils.h" #include "net/test/gtest_util.h" @@ -52,11 +51,10 @@ QuicStreamSequencerBuffer::kBlockSizeBytes; typedef QuicStreamSequencerBuffer::BufferBlock BufferBlock; typedef QuicStreamSequencerBuffer::Gap Gap; -typedef QuicStreamSequencerBuffer::FrameInfo FrameInfo; namespace { -class QuicStreamSequencerBufferTest : public testing::Test { +class QuicStreamSequencerBufferTest : public QuicTest { public: void SetUp() override { Initialize(); } @@ -76,7 +74,6 @@ // calculation. size_t max_capacity_bytes_ = 2.5 * kBlockSizeBytes; - MockClock clock_; std::unique_ptr<QuicStreamSequencerBuffer> buffer_; std::unique_ptr<QuicStreamSequencerBufferPeer> helper_; QuicString error_details_; @@ -109,8 +106,8 @@ TEST_F(QuicStreamSequencerBufferTest, OnStreamData0length) { size_t written; - QuicErrorCode error = buffer_->OnStreamData(800, "", clock_.ApproximateNow(), - &written, &error_details_); + QuicErrorCode error = + buffer_->OnStreamData(800, "", &written, &error_details_); EXPECT_EQ(error, QUIC_EMPTY_STREAM_FRAME_NO_FIN); EXPECT_TRUE(helper_->CheckBufferInvariants()); } @@ -119,10 +116,8 @@ EXPECT_FALSE(helper_->IsBufferAllocated()); QuicString source(1024, 'a'); size_t written; - clock_.AdvanceTime(QuicTime::Delta::FromSeconds(1)); - QuicTime t = clock_.ApproximateNow(); EXPECT_EQ(QUIC_NO_ERROR, - buffer_->OnStreamData(800, source, t, &written, &error_details_)); + buffer_->OnStreamData(800, source, &written, &error_details_)); BufferBlock* block_ptr = helper_->GetBlock(0); for (size_t i = 0; i < source.size(); ++i) { ASSERT_EQ('a', block_ptr->buffer[helper_->GetInBlockOffset(800) + i]); @@ -132,10 +127,6 @@ EXPECT_EQ(1u, helper_->bytes_received().Size()); EXPECT_EQ(800u, helper_->bytes_received().begin()->min()); EXPECT_EQ(1824u, helper_->bytes_received().begin()->max()); - auto* frame_map = helper_->frame_arrival_time_map(); - EXPECT_EQ(1u, frame_map->size()); - EXPECT_EQ(800u, frame_map->begin()->first); - EXPECT_EQ(t, (*frame_map)[800].timestamp); EXPECT_TRUE(helper_->CheckBufferInvariants()); EXPECT_TRUE(helper_->IsBufferAllocated()); } @@ -145,10 +136,8 @@ QuicStringPiece source; source = QuicStringPiece(nullptr, 1024); size_t written; - clock_.AdvanceTime(QuicTime::Delta::FromSeconds(1)); - QuicTime t = clock_.ApproximateNow(); EXPECT_EQ(QUIC_STREAM_SEQUENCER_INVALID_STATE, - buffer_->OnStreamData(800, source, t, &written, &error_details_)); + buffer_->OnStreamData(800, source, &written, &error_details_)); EXPECT_EQ(0u, error_details_.find(QuicStrCat( "QuicStreamSequencerBuffer error: OnStreamData() " "dest == nullptr: ", @@ -159,22 +148,13 @@ QuicString source(1024, 'a'); // Write something into [800, 1824) size_t written; - clock_.AdvanceTime(QuicTime::Delta::FromSeconds(1)); - QuicTime t1 = clock_.ApproximateNow(); EXPECT_EQ(QUIC_NO_ERROR, - buffer_->OnStreamData(800, source, t1, &written, &error_details_)); + buffer_->OnStreamData(800, source, &written, &error_details_)); // Try to write to [0, 1024) and [1024, 2048). - clock_.AdvanceTime(QuicTime::Delta::FromSeconds(1)); - QuicTime t2 = clock_.ApproximateNow(); - auto* frame_map = helper_->frame_arrival_time_map(); EXPECT_EQ(QUIC_NO_ERROR, - buffer_->OnStreamData(0, source, t2, &written, &error_details_)); + buffer_->OnStreamData(0, source, &written, &error_details_)); EXPECT_EQ(QUIC_NO_ERROR, - buffer_->OnStreamData(1024, source, t2, &written, &error_details_)); - EXPECT_EQ(3u, frame_map->size()); - EXPECT_EQ(t1, (*frame_map)[800].timestamp); - EXPECT_EQ(t2, (*frame_map)[0].timestamp); - EXPECT_EQ(t2, (*frame_map)[1824].timestamp); + buffer_->OnStreamData(1024, source, &written, &error_details_)); } TEST_F(QuicStreamSequencerBufferTest, @@ -182,29 +162,22 @@ QuicString source(1024, 'a'); // Write something into [800, 1824) size_t written; - buffer_->OnStreamData(800, source, clock_.ApproximateNow(), &written, - &error_details_); + buffer_->OnStreamData(800, source, &written, &error_details_); source = QuicString(800, 'b'); QuicString one_byte = "c"; - auto* frame_map = helper_->frame_arrival_time_map(); // Write [1, 801). EXPECT_EQ(QUIC_NO_ERROR, - buffer_->OnStreamData(1, source, clock_.ApproximateNow(), &written, - &error_details_)); + buffer_->OnStreamData(1, source, &written, &error_details_)); // Write [0, 800). EXPECT_EQ(QUIC_NO_ERROR, - buffer_->OnStreamData(0, source, clock_.ApproximateNow(), &written, - &error_details_)); + buffer_->OnStreamData(0, source, &written, &error_details_)); // Write [1823, 1824). EXPECT_EQ(QUIC_NO_ERROR, - buffer_->OnStreamData(1823, one_byte, clock_.ApproximateNow(), - &written, &error_details_)); + buffer_->OnStreamData(1823, one_byte, &written, &error_details_)); EXPECT_EQ(0u, written); // write one byte to [1824, 1825) EXPECT_EQ(QUIC_NO_ERROR, - buffer_->OnStreamData(1824, one_byte, clock_.ApproximateNow(), - &written, &error_details_)); - EXPECT_EQ(4u, frame_map->size()); + buffer_->OnStreamData(1824, one_byte, &written, &error_details_)); EXPECT_TRUE(helper_->CheckBufferInvariants()); } @@ -213,13 +186,11 @@ // Write something into [800, 1824). size_t written; EXPECT_EQ(QUIC_NO_ERROR, - buffer_->OnStreamData(800, source, clock_.ApproximateNow(), - &written, &error_details_)); + buffer_->OnStreamData(800, source, &written, &error_details_)); source = QuicString(100, 'b'); // Write something into [kBlockSizeBytes * 2 - 20, kBlockSizeBytes * 2 + 80). EXPECT_EQ(QUIC_NO_ERROR, - buffer_->OnStreamData(kBlockSizeBytes * 2 - 20, source, - clock_.ApproximateNow(), &written, + buffer_->OnStreamData(kBlockSizeBytes * 2 - 20, source, &written, &error_details_)); EXPECT_EQ(3, helper_->IntervalSize()); EXPECT_EQ(1024u + 100u, buffer_->BytesBuffered()); @@ -239,22 +210,19 @@ // Frame [2^32 + 500, 2^32 + 600). QuicStreamOffset offset = pow(2, 32) + 500; EXPECT_EQ(QUIC_NO_ERROR, - buffer_->OnStreamData(offset, source, clock_.ApproximateNow(), - &written, &error_details_)); + buffer_->OnStreamData(offset, source, &written, &error_details_)); EXPECT_EQ(2, helper_->IntervalSize()); // Frame [2^32 + 700, 2^32 + 800). offset = pow(2, 32) + 700; EXPECT_EQ(QUIC_NO_ERROR, - buffer_->OnStreamData(offset, source, clock_.ApproximateNow(), - &written, &error_details_)); + buffer_->OnStreamData(offset, source, &written, &error_details_)); EXPECT_EQ(3, helper_->IntervalSize()); // Another frame [2^32 + 300, 2^32 + 400). offset = pow(2, 32) + 300; EXPECT_EQ(QUIC_NO_ERROR, - buffer_->OnStreamData(offset, source, clock_.ApproximateNow(), - &written, &error_details_)); + buffer_->OnStreamData(offset, source, &written, &error_details_)); EXPECT_EQ(4, helper_->IntervalSize()); } @@ -265,8 +233,7 @@ size_t written; EXPECT_EQ(QUIC_NO_ERROR, buffer_->OnStreamData(max_capacity_bytes_ - kBytesToWrite, source, - clock_.ApproximateNow(), &written, - &error_details_)); + &written, &error_details_)); EXPECT_EQ(50u, buffer_->BytesBuffered()); EXPECT_TRUE(helper_->CheckBufferInvariants()); } @@ -278,8 +245,7 @@ size_t written; EXPECT_EQ(QUIC_NO_ERROR, buffer_->OnStreamData(max_capacity_bytes_ - kBytesToWrite, source, - clock_.ApproximateNow(), &written, - &error_details_)); + &written, &error_details_)); EXPECT_EQ(1u, buffer_->BytesBuffered()); EXPECT_TRUE(helper_->CheckBufferInvariants()); } @@ -288,56 +254,46 @@ QuicString source(60, 'a'); size_t written; EXPECT_EQ(QUIC_INTERNAL_ERROR, - buffer_->OnStreamData(max_capacity_bytes_ - 50, source, - clock_.ApproximateNow(), &written, + buffer_->OnStreamData(max_capacity_bytes_ - 50, source, &written, &error_details_)); EXPECT_TRUE(helper_->CheckBufferInvariants()); source = "b"; EXPECT_EQ(QUIC_INTERNAL_ERROR, - buffer_->OnStreamData(max_capacity_bytes_, source, - clock_.ApproximateNow(), &written, + buffer_->OnStreamData(max_capacity_bytes_, source, &written, &error_details_)); EXPECT_TRUE(helper_->CheckBufferInvariants()); EXPECT_EQ(QUIC_INTERNAL_ERROR, - buffer_->OnStreamData(max_capacity_bytes_ * 1000, source, - clock_.ApproximateNow(), &written, + buffer_->OnStreamData(max_capacity_bytes_ * 1000, source, &written, &error_details_)); EXPECT_TRUE(helper_->CheckBufferInvariants()); // Disallow current_gap != gaps_.end() EXPECT_EQ(QUIC_INTERNAL_ERROR, buffer_->OnStreamData(static_cast<QuicStreamOffset>(-1), source, - clock_.ApproximateNow(), &written, - &error_details_)); + &written, &error_details_)); EXPECT_TRUE(helper_->CheckBufferInvariants()); // Disallow offset + size overflow source = "bbb"; EXPECT_EQ(QUIC_INTERNAL_ERROR, buffer_->OnStreamData(static_cast<QuicStreamOffset>(-2), source, - clock_.ApproximateNow(), &written, - &error_details_)); + &written, &error_details_)); EXPECT_TRUE(helper_->CheckBufferInvariants()); EXPECT_EQ(0u, buffer_->BytesBuffered()); } TEST_F(QuicStreamSequencerBufferTest, Readv100Bytes) { QuicString source(1024, 'a'); - clock_.AdvanceTime(QuicTime::Delta::FromSeconds(1)); - QuicTime t1 = clock_.ApproximateNow(); // Write something into [kBlockSizeBytes, kBlockSizeBytes + 1024). size_t written; - buffer_->OnStreamData(kBlockSizeBytes, source, t1, &written, &error_details_); + buffer_->OnStreamData(kBlockSizeBytes, source, &written, &error_details_); EXPECT_FALSE(buffer_->HasBytesToRead()); source = QuicString(100, 'b'); - clock_.AdvanceTime(QuicTime::Delta::FromSeconds(1)); - QuicTime t2 = clock_.ApproximateNow(); // Write something into [0, 100). - buffer_->OnStreamData(0, source, t2, &written, &error_details_); + buffer_->OnStreamData(0, source, &written, &error_details_); EXPECT_TRUE(buffer_->HasBytesToRead()); - EXPECT_EQ(2u, helper_->frame_arrival_time_map()->size()); // Read into a iovec array with total capacity of 120 bytes. char dest[120]; iovec iovecs[3]{iovec{dest, 40}, iovec{dest + 40, 40}, iovec{dest + 80, 40}}; @@ -347,7 +303,6 @@ EXPECT_EQ(100u, read); EXPECT_EQ(100u, buffer_->BytesConsumed()); EXPECT_EQ(source, QuicString(dest, read)); - EXPECT_EQ(1u, helper_->frame_arrival_time_map()->size()); // The first block should be released as its data has been read out. EXPECT_EQ(nullptr, helper_->GetBlock(0)); EXPECT_TRUE(helper_->CheckBufferInvariants()); @@ -357,8 +312,7 @@ QuicString source(kBlockSizeBytes + 50, 'a'); // Write 1st block to full and extand 50 bytes to next block. size_t written; - buffer_->OnStreamData(0, source, clock_.ApproximateNow(), &written, - &error_details_); + buffer_->OnStreamData(0, source, &written, &error_details_); EXPECT_EQ(source.size(), helper_->ReadableBytes()); // Iteratively read 512 bytes from buffer_-> Overwrite dest[] each time. char dest[512]; @@ -380,8 +334,7 @@ QuicString source(kBlockSizeBytes + 50, 'a'); // Write 1st block to full with 'a'. size_t written; - buffer_->OnStreamData(0, source, clock_.ApproximateNow(), &written, - &error_details_); + buffer_->OnStreamData(0, source, &written, &error_details_); // Read first 512 bytes from buffer to make space at the beginning. char dest[512]{0}; const iovec iov{dest, 512}; @@ -398,8 +351,7 @@ QuicString source(kBlockSizeBytes + 50, 'a'); // Write 1st block to full with 'a'. size_t written; - buffer_->OnStreamData(0, source, clock_.ApproximateNow(), &written, - &error_details_); + buffer_->OnStreamData(0, source, &written, &error_details_); // Read first 512 bytes from buffer to make space at the beginning. char dest[512]{0}; const iovec iov{dest, 512}; @@ -411,7 +363,6 @@ // will wrap to the beginning and reaches the full capacity. source = QuicString(0.5 * kBlockSizeBytes + 512, 'b'); EXPECT_EQ(QUIC_NO_ERROR, buffer_->OnStreamData(2 * kBlockSizeBytes, source, - clock_.ApproximateNow(), &written, &error_details_)); EXPECT_EQ(source.size(), written); EXPECT_TRUE(helper_->CheckBufferInvariants()); @@ -422,8 +373,7 @@ QuicString source(kBlockSizeBytes + 50, 'a'); // Write 1st block to full. size_t written; - buffer_->OnStreamData(0, source, clock_.ApproximateNow(), &written, - &error_details_); + buffer_->OnStreamData(0, source, &written, &error_details_); // Read first 512 bytes from buffer to make space at the beginning. char dest[512]{0}; const iovec iov{dest, 512}; @@ -434,8 +384,7 @@ // max_capacity_bytes_ + 512 + 1). But last bytes exceeds current capacity. source = QuicString(0.5 * kBlockSizeBytes + 512 + 1, 'b'); EXPECT_EQ(QUIC_INTERNAL_ERROR, - buffer_->OnStreamData(2 * kBlockSizeBytes, source, - clock_.ApproximateNow(), &written, + buffer_->OnStreamData(2 * kBlockSizeBytes, source, &written, &error_details_)); EXPECT_TRUE(helper_->CheckBufferInvariants()); } @@ -444,21 +393,15 @@ // Write to full capacity and read out 512 bytes at beginning and continue // appending 256 bytes. QuicString source(max_capacity_bytes_, 'a'); - clock_.AdvanceTime(QuicTime::Delta::FromSeconds(1)); - QuicTime t = clock_.ApproximateNow(); size_t written; - buffer_->OnStreamData(0, source, t, &written, &error_details_); + buffer_->OnStreamData(0, source, &written, &error_details_); char dest[512]{0}; const iovec iov{dest, 512}; size_t read; EXPECT_EQ(QUIC_NO_ERROR, buffer_->Readv(&iov, 1, &read, &error_details_)); source = QuicString(256, 'b'); - clock_.AdvanceTime(QuicTime::Delta::FromSeconds(1)); - QuicTime t2 = clock_.ApproximateNow(); - buffer_->OnStreamData(max_capacity_bytes_, source, t2, &written, - &error_details_); + buffer_->OnStreamData(max_capacity_bytes_, source, &written, &error_details_); EXPECT_TRUE(helper_->CheckBufferInvariants()); - EXPECT_EQ(2u, helper_->frame_arrival_time_map()->size()); // Read all data out. std::unique_ptr<char[]> dest1{new char[max_capacity_bytes_]}; @@ -469,7 +412,6 @@ EXPECT_EQ(max_capacity_bytes_ + 256, buffer_->BytesConsumed()); EXPECT_TRUE(buffer_->Empty()); EXPECT_TRUE(helper_->CheckBufferInvariants()); - EXPECT_EQ(0u, helper_->frame_arrival_time_map()->size()); } TEST_F(QuicStreamSequencerBufferTest, ReadvEmpty) { @@ -492,11 +434,9 @@ TEST_F(QuicStreamSequencerBufferTest, ReleaseWholeBuffer) { // Tests that buffer is not deallocated unless ReleaseWholeBuffer() is called. QuicString source(100, 'b'); - clock_.AdvanceTime(QuicTime::Delta::FromSeconds(1)); - QuicTime t1 = clock_.ApproximateNow(); // Write something into [0, 100). size_t written; - buffer_->OnStreamData(0, source, t1, &written, &error_details_); + buffer_->OnStreamData(0, source, &written, &error_details_); EXPECT_TRUE(buffer_->HasBytesToRead()); char dest[120]; iovec iovecs[3]{iovec{dest, 40}, iovec{dest + 40, 40}, iovec{dest + 80, 40}}; @@ -514,8 +454,7 @@ // Write into [1, 1024). QuicString source(1023, 'a'); size_t written; - buffer_->OnStreamData(1, source, clock_.ApproximateNow(), &written, - &error_details_); + buffer_->OnStreamData(1, source, &written, &error_details_); // Try to get readable regions, but none is there. iovec iovs[2]; int iov_count = buffer_->GetReadableRegions(iovs, 2); @@ -527,8 +466,7 @@ // [0, 256) QuicString source(kBlockSizeBytes, 'a'); size_t written; - buffer_->OnStreamData(0, source, clock_.ApproximateNow(), &written, - &error_details_); + buffer_->OnStreamData(0, source, &written, &error_details_); char dest[256]; helper_->Read(dest, 256); // Get readable region from [256, 1024) @@ -544,8 +482,7 @@ // Write into [0, 1024) and then read out [0, 256) QuicString source(1024, 'a'); size_t written; - buffer_->OnStreamData(0, source, clock_.ApproximateNow(), &written, - &error_details_); + buffer_->OnStreamData(0, source, &written, &error_details_); char dest[256]; helper_->Read(dest, 256); // Get readable region from [256, 1024) @@ -562,8 +499,7 @@ // Write into [0, 2 * kBlockSizeBytes + 1024) and then read out [0, 1024) QuicString source(2 * kBlockSizeBytes + 1024, 'a'); size_t written; - buffer_->OnStreamData(0, source, clock_.ApproximateNow(), &written, - &error_details_); + buffer_->OnStreamData(0, source, &written, &error_details_); char dest[1024]; helper_->Read(dest, 1024); @@ -581,14 +517,13 @@ // and then append 1024 + 512 bytes. QuicString source(2.5 * kBlockSizeBytes - 1024, 'a'); size_t written; - buffer_->OnStreamData(0, source, clock_.ApproximateNow(), &written, - &error_details_); + buffer_->OnStreamData(0, source, &written, &error_details_); char dest[1024]; helper_->Read(dest, 1024); // Write across the end. source = QuicString(1024 + 512, 'b'); - buffer_->OnStreamData(2.5 * kBlockSizeBytes - 1024, source, - clock_.ApproximateNow(), &written, &error_details_); + buffer_->OnStreamData(2.5 * kBlockSizeBytes - 1024, source, &written, + &error_details_); // Use short iovec's. iovec iovs[2]; int iov_count = buffer_->GetReadableRegions(iovs, 2); @@ -607,8 +542,7 @@ TEST_F(QuicStreamSequencerBufferTest, GetReadableRegionEmpty) { iovec iov; - QuicTime t = QuicTime::Zero(); - EXPECT_FALSE(buffer_->GetReadableRegion(&iov, &t)); + EXPECT_FALSE(buffer_->GetReadableRegion(&iov)); EXPECT_EQ(nullptr, iov.iov_base); EXPECT_EQ(0u, iov.iov_len); } @@ -617,29 +551,23 @@ // Write into [1, 1024). QuicString source(1023, 'a'); size_t written; - buffer_->OnStreamData(1, source, clock_.ApproximateNow(), &written, - &error_details_); + buffer_->OnStreamData(1, source, &written, &error_details_); // GetReadableRegion should return false because range [0,1) hasn't been // filled yet. iovec iov; - QuicTime t = QuicTime::Zero(); - EXPECT_FALSE(buffer_->GetReadableRegion(&iov, &t)); + EXPECT_FALSE(buffer_->GetReadableRegion(&iov)); } TEST_F(QuicStreamSequencerBufferTest, GetReadableRegionTillEndOfBlock) { // Write into [0, kBlockSizeBytes + 1) and then read out [0, 256) QuicString source(kBlockSizeBytes + 1, 'a'); size_t written; - clock_.AdvanceTime(QuicTime::Delta::FromSeconds(1)); - QuicTime t = clock_.ApproximateNow(); - buffer_->OnStreamData(0, source, t, &written, &error_details_); + buffer_->OnStreamData(0, source, &written, &error_details_); char dest[256]; helper_->Read(dest, 256); // Get readable region from [256, 1024) iovec iov; - QuicTime t2 = QuicTime::Zero(); - EXPECT_TRUE(buffer_->GetReadableRegion(&iov, &t2)); - EXPECT_EQ(t, t2); + EXPECT_TRUE(buffer_->GetReadableRegion(&iov)); EXPECT_EQ( QuicString(kBlockSizeBytes - 256, 'a'), QuicString(reinterpret_cast<const char*>(iov.iov_base), iov.iov_len)); @@ -649,68 +577,29 @@ // Write into [0, kBlockSizeBytes - 1) and then read out [0, 256) QuicString source(kBlockSizeBytes - 1, 'a'); size_t written; - clock_.AdvanceTime(QuicTime::Delta::FromSeconds(1)); - QuicTime t = clock_.ApproximateNow(); - buffer_->OnStreamData(0, source, t, &written, &error_details_); + buffer_->OnStreamData(0, source, &written, &error_details_); char dest[256]; helper_->Read(dest, 256); // Get readable region from [256, 1023) iovec iov; - QuicTime t2 = QuicTime::Zero(); - EXPECT_TRUE(buffer_->GetReadableRegion(&iov, &t2)); - EXPECT_EQ(t, t2); + EXPECT_TRUE(buffer_->GetReadableRegion(&iov)); EXPECT_EQ( QuicString(kBlockSizeBytes - 1 - 256, 'a'), QuicString(reinterpret_cast<const char*>(iov.iov_base), iov.iov_len)); } -TEST_F(QuicStreamSequencerBufferTest, GetReadableRegionByArrivalTime) { - // Write into [0, kBlockSizeBytes - 100) and then read out [0, 256) - QuicString source(kBlockSizeBytes - 100, 'a'); - size_t written; - clock_.AdvanceTime(QuicTime::Delta::FromSeconds(1)); - QuicTime t = clock_.ApproximateNow(); - buffer_->OnStreamData(0, source, t, &written, &error_details_); - char dest[256]; - helper_->Read(dest, 256); - // Write into [kBlockSizeBytes - 100, kBlockSizeBytes - 50)] in same time - QuicString source2(50, 'b'); - clock_.AdvanceTime(QuicTime::Delta::FromSeconds(1)); - buffer_->OnStreamData(kBlockSizeBytes - 100, source2, t, &written, - &error_details_); - - // Write into [kBlockSizeBytes - 50, kBlockSizeBytes)] in another time - QuicString source3(50, 'c'); - clock_.AdvanceTime(QuicTime::Delta::FromSeconds(1)); - QuicTime t3 = clock_.ApproximateNow(); - buffer_->OnStreamData(kBlockSizeBytes - 50, source3, t3, &written, - &error_details_); - - // Get readable region from [256, 1024 - 50) - iovec iov; - QuicTime t4 = QuicTime::Zero(); - EXPECT_TRUE(buffer_->GetReadableRegion(&iov, &t4)); - EXPECT_EQ(t, t4); - EXPECT_EQ( - QuicString(kBlockSizeBytes - 100 - 256, 'a') + source2, - QuicString(reinterpret_cast<const char*>(iov.iov_base), iov.iov_len)); -} - TEST_F(QuicStreamSequencerBufferTest, MarkConsumedInOneBlock) { // Write into [0, 1024) and then read out [0, 256) QuicString source(1024, 'a'); size_t written; - buffer_->OnStreamData(0, source, clock_.ApproximateNow(), &written, - &error_details_); + buffer_->OnStreamData(0, source, &written, &error_details_); char dest[256]; helper_->Read(dest, 256); EXPECT_TRUE(buffer_->MarkConsumed(512)); EXPECT_EQ(256u + 512u, buffer_->BytesConsumed()); EXPECT_EQ(256u, helper_->ReadableBytes()); - EXPECT_EQ(1u, helper_->frame_arrival_time_map()->size()); buffer_->MarkConsumed(256); - EXPECT_EQ(0u, helper_->frame_arrival_time_map()->size()); EXPECT_TRUE(buffer_->Empty()); EXPECT_TRUE(helper_->CheckBufferInvariants()); } @@ -719,8 +608,7 @@ // Write into [0, 1024) and then read out [0, 256) QuicString source(1024, 'a'); size_t written; - QuicTime t = clock_.ApproximateNow(); - buffer_->OnStreamData(0, source, t, &written, &error_details_); + buffer_->OnStreamData(0, source, &written, &error_details_); char dest[256]; helper_->Read(dest, 256); @@ -731,10 +619,8 @@ // Try to consume one bytes more than available. Should return false. EXPECT_FALSE(buffer_->MarkConsumed(257)); EXPECT_EQ(256u + 512u, buffer_->BytesConsumed()); - QuicTime t2 = QuicTime::Zero(); iovec iov; - EXPECT_TRUE(buffer_->GetReadableRegion(&iov, &t2)); - EXPECT_EQ(t, t2); + EXPECT_TRUE(buffer_->GetReadableRegion(&iov)); EXPECT_TRUE(helper_->CheckBufferInvariants()); } @@ -742,8 +628,7 @@ // Write into [0, 2 * kBlockSizeBytes + 1024) and then read out [0, 1024) QuicString source(2 * kBlockSizeBytes + 1024, 'a'); size_t written; - buffer_->OnStreamData(0, source, clock_.ApproximateNow(), &written, - &error_details_); + buffer_->OnStreamData(0, source, &written, &error_details_); char dest[1024]; helper_->Read(dest, 1024); @@ -758,13 +643,12 @@ // and then append 1024 + 512 bytes. QuicString source(2.5 * kBlockSizeBytes - 1024, 'a'); size_t written; - buffer_->OnStreamData(0, source, clock_.ApproximateNow(), &written, - &error_details_); + buffer_->OnStreamData(0, source, &written, &error_details_); char dest[1024]; helper_->Read(dest, 1024); source = QuicString(1024 + 512, 'b'); - buffer_->OnStreamData(2.5 * kBlockSizeBytes - 1024, source, - clock_.ApproximateNow(), &written, &error_details_); + buffer_->OnStreamData(2.5 * kBlockSizeBytes - 1024, source, &written, + &error_details_); EXPECT_EQ(1024u, buffer_->BytesConsumed()); // Consume to the end of 2nd block. @@ -785,15 +669,13 @@ // Write into [0, 2.5 * kBlockSizeBytes - 1024) and then read out [0, 1024). QuicString source(max_capacity_bytes_ - 1024, 'a'); size_t written; - buffer_->OnStreamData(0, source, clock_.ApproximateNow(), &written, - &error_details_); + buffer_->OnStreamData(0, source, &written, &error_details_); char dest[1024]; helper_->Read(dest, 1024); EXPECT_EQ(1024u, buffer_->BytesConsumed()); // Write [1024, 512) to the physical beginning. source = QuicString(512, 'b'); - buffer_->OnStreamData(max_capacity_bytes_, source, clock_.ApproximateNow(), - &written, &error_details_); + buffer_->OnStreamData(max_capacity_bytes_, source, &written, &error_details_); EXPECT_EQ(512u, written); EXPECT_EQ(max_capacity_bytes_ - 1024 + 512, buffer_->FlushBufferedFrames()); EXPECT_EQ(max_capacity_bytes_ + 512, buffer_->BytesConsumed()); @@ -812,8 +694,8 @@ // Feed buffer with 1-byte discontiguous frames. e.g. [1,2), [3,4), [5,6)... for (QuicStreamOffset begin = 1; begin <= max_capacity_bytes_; begin += 2) { size_t written; - QuicErrorCode rs = buffer_->OnStreamData( - begin, "a", clock_.ApproximateNow(), &written, &error_details_); + QuicErrorCode rs = + buffer_->OnStreamData(begin, "a", &written, &error_details_); QuicStreamOffset last_straw = 2 * kMaxNumGapsAllowed - 1; if (begin == last_straw) { @@ -892,9 +774,8 @@ } QuicStringPiece string_piece_w(write_buf.get(), num_to_write); size_t written; - auto result = - buffer_->OnStreamData(offset, string_piece_w, clock_.ApproximateNow(), - &written, &error_details_); + auto result = buffer_->OnStreamData(offset, string_piece_w, &written, + &error_details_); if (result == QUIC_NO_ERROR) { shuffled_buf_.pop_front(); total_bytes_written_ += num_to_write;
diff --git a/net/quic/core/quic_stream_sequencer_test.cc b/net/quic/core/quic_stream_sequencer_test.cc index 3d608e4..d03aea2 100644 --- a/net/quic/core/quic_stream_sequencer_test.cc +++ b/net/quic/core/quic_stream_sequencer_test.cc
@@ -76,7 +76,7 @@ Perspective::IS_CLIENT)), session_(connection_), stream_(&session_, 1), - sequencer_(new QuicStreamSequencer(&stream_, &clock_)) {} + sequencer_(new QuicStreamSequencer(&stream_)) {} // Verify that the data in first region match with the expected[0]. bool VerifyReadableRegion(const std::vector<QuicString>& expected) { @@ -152,7 +152,6 @@ MockQuicConnectionHelper helper_; MockAlarmFactory alarm_factory_; MockQuicConnection* connection_; - MockClock clock_; MockQuicSpdySession session_; testing::StrictMock<MockStream> stream_; std::unique_ptr<QuicStreamSequencer> sequencer_; @@ -455,13 +454,12 @@ bool has_bytes = sequencer_->HasBytesToRead(); iovec peek_iov[20]; int iovs_peeked = sequencer_->GetReadableRegions(peek_iov, 20); - QuicTime timestamp = clock_.ApproximateNow(); if (has_bytes) { ASSERT_LT(0, iovs_peeked); - ASSERT_TRUE(sequencer_->GetReadableRegion(peek_iov, ×tamp)); + ASSERT_TRUE(sequencer_->GetReadableRegion(peek_iov)); } else { ASSERT_EQ(0, iovs_peeked); - ASSERT_FALSE(sequencer_->GetReadableRegion(peek_iov, ×tamp)); + ASSERT_FALSE(sequencer_->GetReadableRegion(peek_iov)); } int total_bytes_to_peek = QUIC_ARRAYSIZE(buffer); for (int i = 0; i < iovs_peeked; ++i) { @@ -640,88 +638,6 @@ EXPECT_EQ(11u, sequencer_->NumBytesBuffered()); } -TEST_F(QuicStreamSequencerTest, InOrderTimestamps) { - // This test verifies that timestamps returned by - // GetReadableRegion() are in the correct sequence when frames - // arrive at the sequencer in order. - EXPECT_CALL(stream_, OnDataAvailable()); - - clock_.AdvanceTime(QuicTime::Delta::FromSeconds(1)); - - // Buffer the first frame. - clock_.AdvanceTime(QuicTime::Delta::FromSeconds(1)); - QuicTime t1 = clock_.ApproximateNow(); - OnFrame(0, "abc"); - EXPECT_EQ(3u, NumBufferedBytes()); - EXPECT_EQ(0u, sequencer_->NumBytesConsumed()); - EXPECT_EQ(3u, sequencer_->NumBytesBuffered()); - // Buffer the second frame. - QuicTime t2 = clock_.ApproximateNow(); - OnFrame(3, "def"); - clock_.AdvanceTime(QuicTime::Delta::FromSeconds(1)); - EXPECT_EQ(6u, NumBufferedBytes()); - EXPECT_EQ(0u, sequencer_->NumBytesConsumed()); - EXPECT_EQ(6u, sequencer_->NumBytesBuffered()); - - iovec iovecs[1]; - QuicTime timestamp(QuicTime::Zero()); - - EXPECT_TRUE(sequencer_->GetReadableRegion(iovecs, ×tamp)); - EXPECT_EQ(timestamp, t1); - QuicStreamSequencerTest::ConsumeData(3); - EXPECT_EQ(3u, NumBufferedBytes()); - EXPECT_EQ(3u, sequencer_->NumBytesConsumed()); - EXPECT_EQ(3u, sequencer_->NumBytesBuffered()); - - EXPECT_TRUE(sequencer_->GetReadableRegion(iovecs, ×tamp)); - EXPECT_EQ(timestamp, t2); - QuicStreamSequencerTest::ConsumeData(3); - EXPECT_EQ(0u, NumBufferedBytes()); - EXPECT_EQ(6u, sequencer_->NumBytesConsumed()); - EXPECT_EQ(0u, sequencer_->NumBytesBuffered()); -} - -TEST_F(QuicStreamSequencerTest, OutOfOrderTimestamps) { - // This test verifies that timestamps returned by - // GetReadableRegion() are in the correct sequence when frames - // arrive at the sequencer out of order. - EXPECT_CALL(stream_, OnDataAvailable()); - - clock_.AdvanceTime(QuicTime::Delta::FromSeconds(1)); - - // Buffer the first frame - clock_.AdvanceTime(QuicTime::Delta::FromSeconds(1)); - QuicTime t1 = clock_.ApproximateNow(); - OnFrame(3, "def"); - EXPECT_EQ(3u, NumBufferedBytes()); - EXPECT_EQ(0u, sequencer_->NumBytesConsumed()); - EXPECT_EQ(3u, sequencer_->NumBytesBuffered()); - // Buffer the second frame - QuicTime t2 = clock_.ApproximateNow(); - OnFrame(0, "abc"); - clock_.AdvanceTime(QuicTime::Delta::FromSeconds(1)); - EXPECT_EQ(6u, NumBufferedBytes()); - EXPECT_EQ(0u, sequencer_->NumBytesConsumed()); - EXPECT_EQ(6u, sequencer_->NumBytesBuffered()); - - iovec iovecs[1]; - QuicTime timestamp(QuicTime::Zero()); - - EXPECT_TRUE(sequencer_->GetReadableRegion(iovecs, ×tamp)); - EXPECT_EQ(timestamp, t2); - QuicStreamSequencerTest::ConsumeData(3); - EXPECT_EQ(3u, NumBufferedBytes()); - EXPECT_EQ(3u, sequencer_->NumBytesConsumed()); - EXPECT_EQ(3u, sequencer_->NumBytesBuffered()); - - EXPECT_TRUE(sequencer_->GetReadableRegion(iovecs, ×tamp)); - EXPECT_EQ(timestamp, t1); - QuicStreamSequencerTest::ConsumeData(3); - EXPECT_EQ(0u, NumBufferedBytes()); - EXPECT_EQ(6u, sequencer_->NumBytesConsumed()); - EXPECT_EQ(0u, sequencer_->NumBytesBuffered()); -} - TEST_F(QuicStreamSequencerTest, OnStreamFrameWithNullSource) { // Pass in a frame with data pointing to null address, expect to close // connection with error.
diff --git a/net/quic/http/decoder/quic_http_frame_decoder_adapter.cc b/net/quic/http/decoder/quic_http_frame_decoder_adapter.cc index 49a2bd5..b77b646 100644 --- a/net/quic/http/decoder/quic_http_frame_decoder_adapter.cc +++ b/net/quic/http/decoder/quic_http_frame_decoder_adapter.cc
@@ -52,7 +52,7 @@ namespace net { -using SpdyFramerError = Http2DecoderAdapter::SpdyFramerError; +using SpdyFramerError = http2::Http2DecoderAdapter::SpdyFramerError; namespace { @@ -664,7 +664,8 @@ DetermineSpdyState(status); } else { VLOG(1) << "ProcessInputFrame spdy_framer_error_=" - << Http2DecoderAdapter::SpdyFramerErrorToString(spdy_framer_error_); + << http2::Http2DecoderAdapter::SpdyFramerErrorToString( + spdy_framer_error_); if (spdy_framer_error_ == SpdyFramerError::SPDY_INVALID_PADDING && has_frame_header_ && frame_type() != QuicHttpFrameType::DATA) { // spdy_framer_test checks that all of the available frame payload @@ -733,7 +734,7 @@ SetSpdyErrorAndNotify(SpdyFramerError::SPDY_INTERNAL_FRAMER_ERROR); } else if (spdy_framer_error_ != SpdyFramerError::SPDY_NO_ERROR) { SPDY_BUG << "Expected to have no error, not " - << Http2DecoderAdapter::SpdyFramerErrorToString( + << http2::Http2DecoderAdapter::SpdyFramerErrorToString( spdy_framer_error_); } else { ResetBetweenFrames(); @@ -785,7 +786,8 @@ DCHECK_EQ(spdy_state_, SpdyState::SPDY_ERROR); } else { VLOG(2) << "SetSpdyErrorAndNotify(" - << Http2DecoderAdapter::SpdyFramerErrorToString(error) << ")"; + << http2::Http2DecoderAdapter::SpdyFramerErrorToString(error) + << ")"; DCHECK_NE(error, SpdyFramerError::SPDY_NO_ERROR); spdy_framer_error_ = error; set_spdy_state(SpdyState::SPDY_ERROR);
diff --git a/net/quic/http/decoder/quic_http_frame_decoder_adapter.h b/net/quic/http/decoder/quic_http_frame_decoder_adapter.h index 8acdf0de..71cd10e 100644 --- a/net/quic/http/decoder/quic_http_frame_decoder_adapter.h +++ b/net/quic/http/decoder/quic_http_frame_decoder_adapter.h
@@ -102,7 +102,7 @@ SpdyState state() const; // Current error code (NO_ERROR if state != ERROR). - Http2DecoderAdapter::SpdyFramerError spdy_framer_error() const; + http2::Http2DecoderAdapter::SpdyFramerError spdy_framer_error() const; // Has any frame header looked like the start of an HTTP/1.1 (or earlier) // response? Used to detect if a backend/server that we sent a request to @@ -172,7 +172,7 @@ void set_spdy_state(SpdyState v); - void SetSpdyErrorAndNotify(Http2DecoderAdapter::SpdyFramerError error); + void SetSpdyErrorAndNotify(http2::Http2DecoderAdapter::SpdyFramerError error); const QuicHttpFrameHeader& frame_header() const; @@ -250,7 +250,7 @@ // Attempt to duplicate the SpdyState and SpdyFramer::Error values that // SpdyFramer sets. Values determined by getting tests to pass. SpdyState spdy_state_; - Http2DecoderAdapter::SpdyFramerError spdy_framer_error_; + http2::Http2DecoderAdapter::SpdyFramerError spdy_framer_error_; // The limit on the size of received HTTP/2 payloads as specified in the // SETTINGS_MAX_FRAME_SIZE advertised to peer.
diff --git a/net/quic/test_tools/quic_stream_sequencer_buffer_peer.cc b/net/quic/test_tools/quic_stream_sequencer_buffer_peer.cc index 64f6454..447affd0 100644 --- a/net/quic/test_tools/quic_stream_sequencer_buffer_peer.cc +++ b/net/quic/test_tools/quic_stream_sequencer_buffer_peer.cc
@@ -10,7 +10,6 @@ #include "net/test/gtest_util.h" typedef net::QuicStreamSequencerBuffer::BufferBlock BufferBlock; -typedef net::QuicStreamSequencerBuffer::FrameInfo FrameInfo; typedef net::QuicStreamSequencerBuffer::Gap Gap; static const size_t kBlockSizeBytes = @@ -131,11 +130,6 @@ return buffer_->ReadableBytes(); } -std::map<QuicStreamOffset, FrameInfo>* -QuicStreamSequencerBufferPeer::frame_arrival_time_map() { - return &(buffer_->frame_arrival_time_map_); -} - void QuicStreamSequencerBufferPeer::set_total_bytes_read( QuicStreamOffset total_bytes_read) { buffer_->total_bytes_read_ = total_bytes_read;
diff --git a/net/quic/test_tools/quic_stream_sequencer_buffer_peer.h b/net/quic/test_tools/quic_stream_sequencer_buffer_peer.h index dd8b4b34..7d177aa 100644 --- a/net/quic/test_tools/quic_stream_sequencer_buffer_peer.h +++ b/net/quic/test_tools/quic_stream_sequencer_buffer_peer.h
@@ -40,9 +40,6 @@ size_t ReadableBytes(); - std::map<QuicStreamOffset, QuicStreamSequencerBuffer::FrameInfo>* - frame_arrival_time_map(); - void set_total_bytes_read(QuicStreamOffset total_bytes_read); void AddBytesReceived(QuicStreamOffset offset, QuicByteCount length);
diff --git a/net/spdy/chromium/buffered_spdy_framer.cc b/net/spdy/chromium/buffered_spdy_framer.cc index 4c7d099..9d9baeb 100644 --- a/net/spdy/chromium/buffered_spdy_framer.cc +++ b/net/spdy/chromium/buffered_spdy_framer.cc
@@ -47,7 +47,7 @@ } void BufferedSpdyFramer::OnError( - Http2DecoderAdapter::SpdyFramerError spdy_framer_error) { + http2::Http2DecoderAdapter::SpdyFramerError spdy_framer_error) { visitor_->OnError(spdy_framer_error); } @@ -227,17 +227,17 @@ deframer_.Reset(); } -Http2DecoderAdapter::SpdyFramerError BufferedSpdyFramer::spdy_framer_error() - const { +http2::Http2DecoderAdapter::SpdyFramerError +BufferedSpdyFramer::spdy_framer_error() const { return deframer_.spdy_framer_error(); } -Http2DecoderAdapter::SpdyState BufferedSpdyFramer::state() const { +http2::Http2DecoderAdapter::SpdyState BufferedSpdyFramer::state() const { return deframer_.state(); } bool BufferedSpdyFramer::MessageFullyRead() { - return state() == Http2DecoderAdapter::SPDY_FRAME_COMPLETE; + return state() == http2::Http2DecoderAdapter::SPDY_FRAME_COMPLETE; } bool BufferedSpdyFramer::HasError() {
diff --git a/net/spdy/chromium/buffered_spdy_framer.h b/net/spdy/chromium/buffered_spdy_framer.h index a264c555..e69f14025 100644 --- a/net/spdy/chromium/buffered_spdy_framer.h +++ b/net/spdy/chromium/buffered_spdy_framer.h
@@ -30,7 +30,7 @@ // Called if an error is detected in the SpdySerializedFrame protocol. virtual void OnError( - Http2DecoderAdapter::SpdyFramerError spdy_framer_error) = 0; + http2::Http2DecoderAdapter::SpdyFramerError spdy_framer_error) = 0; // Called if an error is detected in a HTTP2 stream. virtual void OnStreamError(SpdyStreamId stream_id, @@ -140,7 +140,8 @@ void set_debug_visitor(SpdyFramerDebugVisitorInterface* debug_visitor); // SpdyFramerVisitorInterface - void OnError(Http2DecoderAdapter::SpdyFramerError spdy_framer_error) override; + void OnError( + http2::Http2DecoderAdapter::SpdyFramerError spdy_framer_error) override; void OnHeaders(SpdyStreamId stream_id, bool has_priority, int weight, @@ -188,8 +189,8 @@ size_t ProcessInput(const char* data, size_t len); void UpdateHeaderDecoderTableSize(uint32_t value); void Reset(); - Http2DecoderAdapter::SpdyFramerError spdy_framer_error() const; - Http2DecoderAdapter::SpdyState state() const; + http2::Http2DecoderAdapter::SpdyFramerError spdy_framer_error() const; + http2::Http2DecoderAdapter::SpdyState state() const; bool MessageFullyRead(); bool HasError(); std::unique_ptr<SpdySerializedFrame> CreateRstStream( @@ -224,7 +225,7 @@ private: SpdyFramer spdy_framer_; - Http2DecoderAdapter deframer_; + http2::Http2DecoderAdapter deframer_; BufferedSpdyFramerVisitorInterface* visitor_; int frames_received_;
diff --git a/net/spdy/chromium/buffered_spdy_framer_unittest.cc b/net/spdy/chromium/buffered_spdy_framer_unittest.cc index a35e4e1..8c4d0c1 100644 --- a/net/spdy/chromium/buffered_spdy_framer_unittest.cc +++ b/net/spdy/chromium/buffered_spdy_framer_unittest.cc
@@ -30,7 +30,7 @@ promised_stream_id_(static_cast<SpdyStreamId>(-1)) {} void OnError( - Http2DecoderAdapter::SpdyFramerError spdy_framer_error) override { + http2::Http2DecoderAdapter::SpdyFramerError spdy_framer_error) override { VLOG(1) << "SpdyFramer Error: " << spdy_framer_error; error_count_++; } @@ -134,8 +134,9 @@ const char* input_ptr = frame.data(); size_t input_remaining = frame.size(); buffered_spdy_framer_.set_visitor(this); - while (input_remaining > 0 && buffered_spdy_framer_.spdy_framer_error() == - Http2DecoderAdapter::SPDY_NO_ERROR) { + while (input_remaining > 0 && + buffered_spdy_framer_.spdy_framer_error() == + http2::Http2DecoderAdapter::SPDY_NO_ERROR) { // To make the tests more interesting, we feed random (amd small) chunks // into the framer. This simulates getting strange-sized reads from // the socket.
diff --git a/net/spdy/chromium/spdy_session.cc b/net/spdy/chromium/spdy_session.cc index 645a314e..78e0c289 100644 --- a/net/spdy/chromium/spdy_session.cc +++ b/net/spdy/chromium/spdy_session.cc
@@ -464,86 +464,87 @@ } // namespace SpdyProtocolErrorDetails MapFramerErrorToProtocolError( - Http2DecoderAdapter::SpdyFramerError err) { + http2::Http2DecoderAdapter::SpdyFramerError err) { switch (err) { - case Http2DecoderAdapter::SPDY_NO_ERROR: + case http2::Http2DecoderAdapter::SPDY_NO_ERROR: return SPDY_ERROR_NO_ERROR; - case Http2DecoderAdapter::SPDY_INVALID_STREAM_ID: + case http2::Http2DecoderAdapter::SPDY_INVALID_STREAM_ID: return SPDY_ERROR_INVALID_STREAM_ID; - case Http2DecoderAdapter::SPDY_INVALID_CONTROL_FRAME: + case http2::Http2DecoderAdapter::SPDY_INVALID_CONTROL_FRAME: return SPDY_ERROR_INVALID_CONTROL_FRAME; - case Http2DecoderAdapter::SPDY_CONTROL_PAYLOAD_TOO_LARGE: + case http2::Http2DecoderAdapter::SPDY_CONTROL_PAYLOAD_TOO_LARGE: return SPDY_ERROR_CONTROL_PAYLOAD_TOO_LARGE; - case Http2DecoderAdapter::SPDY_ZLIB_INIT_FAILURE: + case http2::Http2DecoderAdapter::SPDY_ZLIB_INIT_FAILURE: return SPDY_ERROR_ZLIB_INIT_FAILURE; - case Http2DecoderAdapter::SPDY_UNSUPPORTED_VERSION: + case http2::Http2DecoderAdapter::SPDY_UNSUPPORTED_VERSION: return SPDY_ERROR_UNSUPPORTED_VERSION; - case Http2DecoderAdapter::SPDY_DECOMPRESS_FAILURE: + case http2::Http2DecoderAdapter::SPDY_DECOMPRESS_FAILURE: return SPDY_ERROR_DECOMPRESS_FAILURE; - case Http2DecoderAdapter::SPDY_COMPRESS_FAILURE: + case http2::Http2DecoderAdapter::SPDY_COMPRESS_FAILURE: return SPDY_ERROR_COMPRESS_FAILURE; - case Http2DecoderAdapter::SPDY_GOAWAY_FRAME_CORRUPT: + case http2::Http2DecoderAdapter::SPDY_GOAWAY_FRAME_CORRUPT: return SPDY_ERROR_GOAWAY_FRAME_CORRUPT; - case Http2DecoderAdapter::SPDY_RST_STREAM_FRAME_CORRUPT: + case http2::Http2DecoderAdapter::SPDY_RST_STREAM_FRAME_CORRUPT: return SPDY_ERROR_RST_STREAM_FRAME_CORRUPT; - case Http2DecoderAdapter::SPDY_INVALID_PADDING: + case http2::Http2DecoderAdapter::SPDY_INVALID_PADDING: return SPDY_ERROR_INVALID_PADDING; - case Http2DecoderAdapter::SPDY_INVALID_DATA_FRAME_FLAGS: + case http2::Http2DecoderAdapter::SPDY_INVALID_DATA_FRAME_FLAGS: return SPDY_ERROR_INVALID_DATA_FRAME_FLAGS; - case Http2DecoderAdapter::SPDY_INVALID_CONTROL_FRAME_FLAGS: + case http2::Http2DecoderAdapter::SPDY_INVALID_CONTROL_FRAME_FLAGS: return SPDY_ERROR_INVALID_CONTROL_FRAME_FLAGS; - case Http2DecoderAdapter::SPDY_UNEXPECTED_FRAME: + case http2::Http2DecoderAdapter::SPDY_UNEXPECTED_FRAME: return SPDY_ERROR_UNEXPECTED_FRAME; - case Http2DecoderAdapter::SPDY_INTERNAL_FRAMER_ERROR: + case http2::Http2DecoderAdapter::SPDY_INTERNAL_FRAMER_ERROR: return SPDY_ERROR_INTERNAL_FRAMER_ERROR; - case Http2DecoderAdapter::SPDY_INVALID_CONTROL_FRAME_SIZE: + case http2::Http2DecoderAdapter::SPDY_INVALID_CONTROL_FRAME_SIZE: return SPDY_ERROR_INVALID_CONTROL_FRAME_SIZE; - case Http2DecoderAdapter::SPDY_OVERSIZED_PAYLOAD: + case http2::Http2DecoderAdapter::SPDY_OVERSIZED_PAYLOAD: return SPDY_ERROR_OVERSIZED_PAYLOAD; - case Http2DecoderAdapter::LAST_ERROR: + case http2::Http2DecoderAdapter::LAST_ERROR: NOTREACHED(); } NOTREACHED(); return static_cast<SpdyProtocolErrorDetails>(-1); } -Error MapFramerErrorToNetError(Http2DecoderAdapter::SpdyFramerError err) { +Error MapFramerErrorToNetError( + http2::Http2DecoderAdapter::SpdyFramerError err) { switch (err) { - case Http2DecoderAdapter::SPDY_NO_ERROR: + case http2::Http2DecoderAdapter::SPDY_NO_ERROR: return OK; - case Http2DecoderAdapter::SPDY_INVALID_CONTROL_FRAME: + case http2::Http2DecoderAdapter::SPDY_INVALID_CONTROL_FRAME: return ERR_SPDY_PROTOCOL_ERROR; - case Http2DecoderAdapter::SPDY_CONTROL_PAYLOAD_TOO_LARGE: + case http2::Http2DecoderAdapter::SPDY_CONTROL_PAYLOAD_TOO_LARGE: return ERR_SPDY_FRAME_SIZE_ERROR; - case Http2DecoderAdapter::SPDY_ZLIB_INIT_FAILURE: + case http2::Http2DecoderAdapter::SPDY_ZLIB_INIT_FAILURE: return ERR_SPDY_COMPRESSION_ERROR; - case Http2DecoderAdapter::SPDY_UNSUPPORTED_VERSION: + case http2::Http2DecoderAdapter::SPDY_UNSUPPORTED_VERSION: return ERR_SPDY_PROTOCOL_ERROR; - case Http2DecoderAdapter::SPDY_DECOMPRESS_FAILURE: + case http2::Http2DecoderAdapter::SPDY_DECOMPRESS_FAILURE: return ERR_SPDY_COMPRESSION_ERROR; - case Http2DecoderAdapter::SPDY_COMPRESS_FAILURE: + case http2::Http2DecoderAdapter::SPDY_COMPRESS_FAILURE: return ERR_SPDY_COMPRESSION_ERROR; - case Http2DecoderAdapter::SPDY_GOAWAY_FRAME_CORRUPT: + case http2::Http2DecoderAdapter::SPDY_GOAWAY_FRAME_CORRUPT: return ERR_SPDY_PROTOCOL_ERROR; - case Http2DecoderAdapter::SPDY_RST_STREAM_FRAME_CORRUPT: + case http2::Http2DecoderAdapter::SPDY_RST_STREAM_FRAME_CORRUPT: return ERR_SPDY_PROTOCOL_ERROR; - case Http2DecoderAdapter::SPDY_INVALID_PADDING: + case http2::Http2DecoderAdapter::SPDY_INVALID_PADDING: return ERR_SPDY_PROTOCOL_ERROR; - case Http2DecoderAdapter::SPDY_INVALID_DATA_FRAME_FLAGS: + case http2::Http2DecoderAdapter::SPDY_INVALID_DATA_FRAME_FLAGS: return ERR_SPDY_PROTOCOL_ERROR; - case Http2DecoderAdapter::SPDY_INVALID_CONTROL_FRAME_FLAGS: + case http2::Http2DecoderAdapter::SPDY_INVALID_CONTROL_FRAME_FLAGS: return ERR_SPDY_PROTOCOL_ERROR; - case Http2DecoderAdapter::SPDY_UNEXPECTED_FRAME: + case http2::Http2DecoderAdapter::SPDY_UNEXPECTED_FRAME: return ERR_SPDY_PROTOCOL_ERROR; - case Http2DecoderAdapter::SPDY_INTERNAL_FRAMER_ERROR: + case http2::Http2DecoderAdapter::SPDY_INTERNAL_FRAMER_ERROR: return ERR_SPDY_PROTOCOL_ERROR; - case Http2DecoderAdapter::SPDY_INVALID_CONTROL_FRAME_SIZE: + case http2::Http2DecoderAdapter::SPDY_INVALID_CONTROL_FRAME_SIZE: return ERR_SPDY_FRAME_SIZE_ERROR; - case Http2DecoderAdapter::SPDY_INVALID_STREAM_ID: + case http2::Http2DecoderAdapter::SPDY_INVALID_STREAM_ID: return ERR_SPDY_PROTOCOL_ERROR; - case Http2DecoderAdapter::SPDY_OVERSIZED_PAYLOAD: + case http2::Http2DecoderAdapter::SPDY_OVERSIZED_PAYLOAD: return ERR_SPDY_FRAME_SIZE_ERROR; - case Http2DecoderAdapter::LAST_ERROR: + case http2::Http2DecoderAdapter::LAST_ERROR: NOTREACHED(); } NOTREACHED(); @@ -2086,7 +2087,7 @@ } DCHECK_EQ(buffered_spdy_framer_->spdy_framer_error(), - Http2DecoderAdapter::SPDY_NO_ERROR); + http2::Http2DecoderAdapter::SPDY_NO_ERROR); } read_buffer_ = nullptr; @@ -2734,14 +2735,14 @@ } void SpdySession::OnError( - Http2DecoderAdapter::SpdyFramerError spdy_framer_error) { + http2::Http2DecoderAdapter::SpdyFramerError spdy_framer_error) { CHECK(in_io_loop_); RecordProtocolErrorHistogram( MapFramerErrorToProtocolError(spdy_framer_error)); SpdyString description = SpdyStringPrintf( "Framer error: %d (%s).", spdy_framer_error, - Http2DecoderAdapter::SpdyFramerErrorToString(spdy_framer_error)); + http2::Http2DecoderAdapter::SpdyFramerErrorToString(spdy_framer_error)); DoDrainSession(MapFramerErrorToNetError(spdy_framer_error), description); }
diff --git a/net/spdy/chromium/spdy_session.h b/net/spdy/chromium/spdy_session.h index e5f4eb53..be58f957 100644 --- a/net/spdy/chromium/spdy_session.h +++ b/net/spdy/chromium/spdy_session.h
@@ -98,7 +98,7 @@ // NOTE: There's an enum of the same name (also with numeric suffixes) // in histograms.xml. Be sure to add new values there also. enum SpdyProtocolErrorDetails { - // Http2DecoderAdapter::SpdyFramerError mappings. + // http2::Http2DecoderAdapter::SpdyFramerError mappings. SPDY_ERROR_NO_ERROR = 0, SPDY_ERROR_INVALID_STREAM_ID = 38, SPDY_ERROR_INVALID_CONTROL_FRAME = 1, @@ -148,17 +148,17 @@ // Next free value. NUM_SPDY_PROTOCOL_ERROR_DETAILS = 43, }; -SpdyProtocolErrorDetails NET_EXPORT_PRIVATE -MapFramerErrorToProtocolError(Http2DecoderAdapter::SpdyFramerError error); +SpdyProtocolErrorDetails NET_EXPORT_PRIVATE MapFramerErrorToProtocolError( + http2::Http2DecoderAdapter::SpdyFramerError error); Error NET_EXPORT_PRIVATE -MapFramerErrorToNetError(Http2DecoderAdapter::SpdyFramerError error); +MapFramerErrorToNetError(http2::Http2DecoderAdapter::SpdyFramerError error); SpdyProtocolErrorDetails NET_EXPORT_PRIVATE MapRstStreamStatusToProtocolError(SpdyErrorCode error_code); SpdyErrorCode NET_EXPORT_PRIVATE MapNetErrorToGoAwayStatus(Error err); // If these compile asserts fail then SpdyProtocolErrorDetails needs // to be updated with new values, as do the mapping functions above. -static_assert(17 == Http2DecoderAdapter::LAST_ERROR, +static_assert(17 == http2::Http2DecoderAdapter::LAST_ERROR, "SpdyProtocolErrorDetails / Spdy Errors mismatch"); static_assert(13 == SpdyErrorCode::ERROR_CODE_MAX, "SpdyProtocolErrorDetails / SpdyErrorCode mismatch"); @@ -771,7 +771,8 @@ void CancelPushedStreamIfUnclaimed(SpdyStreamId stream_id); // BufferedSpdyFramerVisitorInterface: - void OnError(Http2DecoderAdapter::SpdyFramerError spdy_framer_error) override; + void OnError( + http2::Http2DecoderAdapter::SpdyFramerError spdy_framer_error) override; void OnStreamError(SpdyStreamId stream_id, const SpdyString& description) override; void OnPing(SpdyPingId unique_id, bool is_ack) override;
diff --git a/net/spdy/chromium/spdy_session_unittest.cc b/net/spdy/chromium/spdy_session_unittest.cc index bf304dd8..0b6aaf1 100644 --- a/net/spdy/chromium/spdy_session_unittest.cc +++ b/net/spdy/chromium/spdy_session_unittest.cc
@@ -6351,34 +6351,34 @@ TEST(MapFramerErrorToProtocolError, MapsValues) { CHECK_EQ(SPDY_ERROR_INVALID_CONTROL_FRAME, MapFramerErrorToProtocolError( - Http2DecoderAdapter::SPDY_INVALID_CONTROL_FRAME)); + http2::Http2DecoderAdapter::SPDY_INVALID_CONTROL_FRAME)); CHECK_EQ(SPDY_ERROR_INVALID_DATA_FRAME_FLAGS, MapFramerErrorToProtocolError( - Http2DecoderAdapter::SPDY_INVALID_DATA_FRAME_FLAGS)); + http2::Http2DecoderAdapter::SPDY_INVALID_DATA_FRAME_FLAGS)); CHECK_EQ(SPDY_ERROR_GOAWAY_FRAME_CORRUPT, MapFramerErrorToProtocolError( - Http2DecoderAdapter::SPDY_GOAWAY_FRAME_CORRUPT)); + http2::Http2DecoderAdapter::SPDY_GOAWAY_FRAME_CORRUPT)); CHECK_EQ(SPDY_ERROR_UNEXPECTED_FRAME, MapFramerErrorToProtocolError( - Http2DecoderAdapter::SPDY_UNEXPECTED_FRAME)); + http2::Http2DecoderAdapter::SPDY_UNEXPECTED_FRAME)); } TEST(MapFramerErrorToNetError, MapsValue) { CHECK_EQ(ERR_SPDY_PROTOCOL_ERROR, MapFramerErrorToNetError( - Http2DecoderAdapter::SPDY_INVALID_CONTROL_FRAME)); - CHECK_EQ( - ERR_SPDY_COMPRESSION_ERROR, - MapFramerErrorToNetError(Http2DecoderAdapter::SPDY_COMPRESS_FAILURE)); - CHECK_EQ( - ERR_SPDY_COMPRESSION_ERROR, - MapFramerErrorToNetError(Http2DecoderAdapter::SPDY_DECOMPRESS_FAILURE)); + http2::Http2DecoderAdapter::SPDY_INVALID_CONTROL_FRAME)); + CHECK_EQ(ERR_SPDY_COMPRESSION_ERROR, + MapFramerErrorToNetError( + http2::Http2DecoderAdapter::SPDY_COMPRESS_FAILURE)); + CHECK_EQ(ERR_SPDY_COMPRESSION_ERROR, + MapFramerErrorToNetError( + http2::Http2DecoderAdapter::SPDY_DECOMPRESS_FAILURE)); CHECK_EQ(ERR_SPDY_FRAME_SIZE_ERROR, MapFramerErrorToNetError( - Http2DecoderAdapter::SPDY_CONTROL_PAYLOAD_TOO_LARGE)); - CHECK_EQ( - ERR_SPDY_FRAME_SIZE_ERROR, - MapFramerErrorToNetError(Http2DecoderAdapter::SPDY_OVERSIZED_PAYLOAD)); + http2::Http2DecoderAdapter::SPDY_CONTROL_PAYLOAD_TOO_LARGE)); + CHECK_EQ(ERR_SPDY_FRAME_SIZE_ERROR, + MapFramerErrorToNetError( + http2::Http2DecoderAdapter::SPDY_OVERSIZED_PAYLOAD)); } TEST(MapRstStreamStatusToProtocolError, MapsValues) {
diff --git a/net/spdy/chromium/spdy_test_util_common.cc b/net/spdy/chromium/spdy_test_util_common.cc index 6145d25..7f2c121 100644 --- a/net/spdy/chromium/spdy_test_util_common.cc +++ b/net/spdy/chromium/spdy_test_util_common.cc
@@ -166,7 +166,7 @@ } void OnError( - Http2DecoderAdapter::SpdyFramerError spdy_framer_error) override {} + http2::Http2DecoderAdapter::SpdyFramerError spdy_framer_error) override {} void OnStreamError(SpdyStreamId stream_id, const SpdyString& description) override {} void OnHeaders(SpdyStreamId stream_id,
diff --git a/net/third_party/http2/decoder/decode_buffer.cc b/net/third_party/http2/decoder/decode_buffer.cc index 121831df..2db632a 100644 --- a/net/third_party/http2/decoder/decode_buffer.cc +++ b/net/third_party/http2/decoder/decode_buffer.cc
@@ -4,7 +4,7 @@ #include "net/third_party/http2/decoder/decode_buffer.h" -namespace net { +namespace http2 { uint8_t DecodeBuffer::DecodeUInt8() { return static_cast<uint8_t>(DecodeChar()); @@ -90,4 +90,4 @@ } #endif -} // namespace net +} // namespace http2
diff --git a/net/third_party/http2/decoder/decode_buffer.h b/net/third_party/http2/decoder/decode_buffer.h index 8f3fd0a..1c135d1 100644 --- a/net/third_party/http2/decoder/decode_buffer.h +++ b/net/third_party/http2/decoder/decode_buffer.h
@@ -22,7 +22,7 @@ #include "net/third_party/http2/platform/api/http2_export.h" #include "net/third_party/http2/platform/api/http2_string_piece.h" -namespace net { +namespace http2 { class DecodeBufferSubset; class HTTP2_EXPORT_PRIVATE DecodeBuffer { @@ -160,6 +160,6 @@ DISALLOW_COPY_AND_ASSIGN(DecodeBufferSubset); }; -} // namespace net +} // namespace http2 #endif // NET_THIRD_PARTY_HTTP2_DECODER_DECODE_BUFFER_H_
diff --git a/net/third_party/http2/decoder/decode_buffer_test.cc b/net/third_party/http2/decoder/decode_buffer_test.cc index 483d823..007f844 100644 --- a/net/third_party/http2/decoder/decode_buffer_test.cc +++ b/net/third_party/http2/decoder/decode_buffer_test.cc
@@ -8,7 +8,7 @@ #include "net/third_party/http2/tools/http2_random.h" #include "testing/gtest/include/gtest/gtest.h" -namespace net { +namespace http2 { namespace test { namespace { @@ -201,4 +201,4 @@ } // namespace } // namespace test -} // namespace net +} // namespace http2
diff --git a/net/third_party/http2/decoder/decode_http2_structures.cc b/net/third_party/http2/decoder/decode_http2_structures.cc index 4b838d2f..1b439a54 100644 --- a/net/third_party/http2/decoder/decode_http2_structures.cc +++ b/net/third_party/http2/decoder/decode_http2_structures.cc
@@ -8,7 +8,7 @@ #include "net/third_party/http2/decoder/decode_buffer.h" #include "net/third_party/http2/http2_constants.h" -namespace net { +namespace http2 { // Http2FrameHeader decoding: @@ -106,4 +106,4 @@ out->origin_length = b->DecodeUInt16(); } -} // namespace net +} // namespace http2
diff --git a/net/third_party/http2/decoder/decode_http2_structures.h b/net/third_party/http2/decoder/decode_http2_structures.h index 4c0b555..7875334 100644 --- a/net/third_party/http2/decoder/decode_http2_structures.h +++ b/net/third_party/http2/decoder/decode_http2_structures.h
@@ -11,7 +11,7 @@ #include "net/third_party/http2/http2_structures.h" #include "net/third_party/http2/platform/api/http2_export.h" -namespace net { +namespace http2 { // DoDecode(STRUCTURE* out, DecodeBuffer* b) decodes the structure from start // to end, advancing the cursor by STRUCTURE::EncodedSize(). The decode buffer @@ -29,6 +29,6 @@ DecodeBuffer* b); HTTP2_EXPORT_PRIVATE void DoDecode(Http2AltSvcFields* out, DecodeBuffer* b); -} // namespace net +} // namespace http2 #endif // NET_THIRD_PARTY_HTTP2_DECODER_DECODE_HTTP2_STRUCTURES_H_
diff --git a/net/third_party/http2/decoder/decode_http2_structures_test.cc b/net/third_party/http2/decoder/decode_http2_structures_test.cc index 5453637..5f1c42a 100644 --- a/net/third_party/http2/decoder/decode_http2_structures_test.cc +++ b/net/third_party/http2/decoder/decode_http2_structures_test.cc
@@ -22,7 +22,7 @@ using ::testing::AssertionResult; -namespace net { +namespace http2 { namespace test { namespace { @@ -49,7 +49,7 @@ } // Set the fields of |*p| to random values. - void Randomize(S* p) { ::net::test::Randomize(p, &random_); } + void Randomize(S* p) { ::http2::test::Randomize(p, &random_); } // Fully decodes the Structure at the start of data, and confirms it matches // *expected (if provided). @@ -457,4 +457,4 @@ } // namespace } // namespace test -} // namespace net +} // namespace http2
diff --git a/net/third_party/http2/decoder/decode_status.cc b/net/third_party/http2/decoder/decode_status.cc index f8828860..10b2602 100644 --- a/net/third_party/http2/decoder/decode_status.cc +++ b/net/third_party/http2/decoder/decode_status.cc
@@ -7,7 +7,7 @@ #include "base/logging.h" #include "net/third_party/http2/tools/http2_bug_tracker.h" -namespace net { +namespace http2 { std::ostream& operator<<(std::ostream& out, DecodeStatus v) { switch (v) { @@ -25,4 +25,4 @@ return out << "DecodeStatus(" << unknown << ")"; } -} // namespace net +} // namespace http2
diff --git a/net/third_party/http2/decoder/decode_status.h b/net/third_party/http2/decoder/decode_status.h index 298b9e2..51f2847 100644 --- a/net/third_party/http2/decoder/decode_status.h +++ b/net/third_party/http2/decoder/decode_status.h
@@ -12,7 +12,7 @@ #include "net/third_party/http2/platform/api/http2_export.h" -namespace net { +namespace http2 { enum class DecodeStatus { // Decoding is done. @@ -28,6 +28,6 @@ HTTP2_EXPORT_PRIVATE std::ostream& operator<<(std::ostream& out, DecodeStatus v); -} // namespace net +} // namespace http2 #endif // NET_THIRD_PARTY_HTTP2_DECODER_DECODE_STATUS_H_
diff --git a/net/third_party/http2/decoder/frame_decoder_state.cc b/net/third_party/http2/decoder/frame_decoder_state.cc index 5d0f4e93..c464282b 100644 --- a/net/third_party/http2/decoder/frame_decoder_state.cc +++ b/net/third_party/http2/decoder/frame_decoder_state.cc
@@ -4,7 +4,7 @@ #include "net/third_party/http2/decoder/frame_decoder_state.h" -namespace net { +namespace http2 { DecodeStatus FrameDecoderState::ReadPadLength(DecodeBuffer* db, bool report_pad_length) { @@ -78,4 +78,4 @@ return DecodeStatus::kDecodeError; } -} // namespace net +} // namespace http2
diff --git a/net/third_party/http2/decoder/frame_decoder_state.h b/net/third_party/http2/decoder/frame_decoder_state.h index b514b144..f99af25 100644 --- a/net/third_party/http2/decoder/frame_decoder_state.h +++ b/net/third_party/http2/decoder/frame_decoder_state.h
@@ -23,7 +23,7 @@ #include "net/third_party/http2/http2_structures.h" #include "net/third_party/http2/platform/api/http2_export.h" -namespace net { +namespace http2 { namespace test { class FrameDecoderStatePeer; } // namespace test @@ -243,6 +243,6 @@ Http2StructureDecoder structure_decoder_; }; -} // namespace net +} // namespace http2 #endif // NET_THIRD_PARTY_HTTP2_DECODER_FRAME_DECODER_STATE_H_
diff --git a/net/third_party/http2/decoder/frame_decoder_state_test_util.cc b/net/third_party/http2/decoder/frame_decoder_state_test_util.cc index c753f1a..9cd9c9d 100644 --- a/net/third_party/http2/decoder/frame_decoder_state_test_util.cc +++ b/net/third_party/http2/decoder/frame_decoder_state_test_util.cc
@@ -11,13 +11,13 @@ #include "net/third_party/http2/tools/http2_random.h" #include "net/third_party/http2/tools/random_decoder_test.h" -namespace net { +namespace http2 { namespace test { // static void FrameDecoderStatePeer::Randomize(FrameDecoderState* p, RandomBase* rng) { VLOG(1) << "FrameDecoderStatePeer::Randomize"; - ::net::test::Randomize(&p->frame_header_, rng); + ::http2::test::Randomize(&p->frame_header_, rng); p->remaining_payload_ = rng->Rand32(); p->remaining_padding_ = rng->Rand32(); Http2StructureDecoderPeer::Randomize(&p->structure_decoder_, rng); @@ -31,4 +31,4 @@ } } // namespace test -} // namespace net +} // namespace http2
diff --git a/net/third_party/http2/decoder/frame_decoder_state_test_util.h b/net/third_party/http2/decoder/frame_decoder_state_test_util.h index d8672971..54a703b 100644 --- a/net/third_party/http2/decoder/frame_decoder_state_test_util.h +++ b/net/third_party/http2/decoder/frame_decoder_state_test_util.h
@@ -9,7 +9,7 @@ #include "net/third_party/http2/http2_structures.h" #include "net/third_party/http2/tools/random_decoder_test.h" -namespace net { +namespace http2 { namespace test { class FrameDecoderStatePeer { @@ -31,6 +31,6 @@ }; } // namespace test -} // namespace net +} // namespace http2 #endif // NET_THIRD_PARTY_HTTP2_DECODER_FRAME_DECODER_STATE_TEST_UTIL_H_
diff --git a/net/third_party/http2/decoder/http2_frame_decoder.cc b/net/third_party/http2/decoder/http2_frame_decoder.cc index 5f2bb1f..b5158d6 100644 --- a/net/third_party/http2/decoder/http2_frame_decoder.cc +++ b/net/third_party/http2/decoder/http2_frame_decoder.cc
@@ -7,7 +7,7 @@ #include "net/third_party/http2/http2_constants.h" #include "net/third_party/http2/tools/http2_bug_tracker.h" -namespace net { +namespace http2 { std::ostream& operator<<(std::ostream& out, Http2FrameDecoder::State v) { switch (v) { @@ -427,4 +427,4 @@ return DecodeStatus::kDecodeInProgress; } -} // namespace net +} // namespace http2
diff --git a/net/third_party/http2/decoder/http2_frame_decoder.h b/net/third_party/http2/decoder/http2_frame_decoder.h index 80f85418..01ee47e1 100644 --- a/net/third_party/http2/decoder/http2_frame_decoder.h +++ b/net/third_party/http2/decoder/http2_frame_decoder.h
@@ -40,7 +40,7 @@ #include "net/third_party/http2/http2_structures.h" #include "net/third_party/http2/platform/api/http2_export.h" -namespace net { +namespace http2 { namespace test { class Http2FrameDecoderPeer; } // namespace test @@ -198,6 +198,6 @@ DISALLOW_COPY_AND_ASSIGN(Http2FrameDecoder); }; -} // namespace net +} // namespace http2 #endif // NET_THIRD_PARTY_HTTP2_DECODER_HTTP2_FRAME_DECODER_H_
diff --git a/net/third_party/http2/decoder/http2_frame_decoder_fuzzer.cc b/net/third_party/http2/decoder/http2_frame_decoder_fuzzer.cc index e462e5d4e..b1bf746 100644 --- a/net/third_party/http2/decoder/http2_frame_decoder_fuzzer.cc +++ b/net/third_party/http2/decoder/http2_frame_decoder_fuzzer.cc
@@ -11,12 +11,12 @@ // Entry point for LibFuzzer. extern "C" int LLVMFuzzerTestOneInput(const uint8_t* data, size_t size) { base::FuzzedDataProvider fuzzed_data_provider(data, size); - net::Http2FrameDecoder decoder; + http2::Http2FrameDecoder decoder; while (fuzzed_data_provider.remaining_bytes() > 0) { size_t chunk_size = fuzzed_data_provider.ConsumeUint32InRange(1, 32); std::string chunk = fuzzed_data_provider.ConsumeBytes(chunk_size); - net::DecodeBuffer frame_data(chunk.data(), chunk.size()); + http2::DecodeBuffer frame_data(chunk.data(), chunk.size()); decoder.DecodeFrame(&frame_data); } return 0; -} \ No newline at end of file +}
diff --git a/net/third_party/http2/decoder/http2_frame_decoder_listener.cc b/net/third_party/http2/decoder/http2_frame_decoder_listener.cc index e16ca037..21d7979 100644 --- a/net/third_party/http2/decoder/http2_frame_decoder_listener.cc +++ b/net/third_party/http2/decoder/http2_frame_decoder_listener.cc
@@ -4,11 +4,11 @@ #include "net/third_party/http2/decoder/http2_frame_decoder_listener.h" -namespace net { +namespace http2 { bool Http2FrameDecoderNoOpListener::OnFrameHeader( const Http2FrameHeader& header) { return true; } -} // namespace net +} // namespace http2
diff --git a/net/third_party/http2/decoder/http2_frame_decoder_listener.h b/net/third_party/http2/decoder/http2_frame_decoder_listener.h index 0129d5ae..d7376c3e 100644 --- a/net/third_party/http2/decoder/http2_frame_decoder_listener.h +++ b/net/third_party/http2/decoder/http2_frame_decoder_listener.h
@@ -33,7 +33,7 @@ #include "net/third_party/http2/http2_constants.h" #include "net/third_party/http2/http2_structures.h" -namespace net { +namespace http2 { // TODO(jamessynge): Consider sorting the methods by frequency of call, if that // helps at all. @@ -351,6 +351,6 @@ static_assert(!std::is_abstract<Http2FrameDecoderNoOpListener>(), "Http2FrameDecoderNoOpListener ought to be concrete."); -} // namespace net +} // namespace http2 #endif // NET_THIRD_PARTY_HTTP2_DECODER_HTTP2_FRAME_DECODER_LISTENER_H_
diff --git a/net/third_party/http2/decoder/http2_frame_decoder_listener_test_util.cc b/net/third_party/http2/decoder/http2_frame_decoder_listener_test_util.cc index c3803c0..691cbcd2 100644 --- a/net/third_party/http2/decoder/http2_frame_decoder_listener_test_util.cc +++ b/net/third_party/http2/decoder/http2_frame_decoder_listener_test_util.cc
@@ -7,7 +7,7 @@ #include "base/logging.h" #include "testing/gtest/include/gtest/gtest.h" -namespace net { +namespace http2 { FailingHttp2FrameDecoderListener::FailingHttp2FrameDecoderListener() = default; FailingHttp2FrameDecoderListener::~FailingHttp2FrameDecoderListener() = default; @@ -482,4 +482,4 @@ } } -} // namespace net +} // namespace http2
diff --git a/net/third_party/http2/decoder/http2_frame_decoder_listener_test_util.h b/net/third_party/http2/decoder/http2_frame_decoder_listener_test_util.h index f6659e5..5bfbefc2 100644 --- a/net/third_party/http2/decoder/http2_frame_decoder_listener_test_util.h +++ b/net/third_party/http2/decoder/http2_frame_decoder_listener_test_util.h
@@ -11,7 +11,7 @@ #include "net/third_party/http2/http2_constants.h" #include "net/third_party/http2/http2_structures.h" -namespace net { +namespace http2 { // Fail if any of the methods are called. Allows a test to override only the // expected calls. @@ -136,6 +136,6 @@ Http2FrameDecoderListener* wrapped_; }; -} // namespace net +} // namespace http2 #endif // NET_THIRD_PARTY_HTTP2_DECODER_HTTP2_FRAME_DECODER_LISTENER_TEST_UTIL_H_
diff --git a/net/third_party/http2/decoder/http2_frame_decoder_test.cc b/net/third_party/http2/decoder/http2_frame_decoder_test.cc index fc17aae..f1d2e3c 100644 --- a/net/third_party/http2/decoder/http2_frame_decoder_test.cc +++ b/net/third_party/http2/decoder/http2_frame_decoder_test.cc
@@ -23,7 +23,7 @@ using ::testing::AssertionResult; using ::testing::AssertionSuccess; -namespace net { +namespace http2 { namespace test { class Http2FrameDecoderPeer { public: @@ -922,4 +922,4 @@ } // namespace } // namespace test -} // namespace net +} // namespace http2
diff --git a/net/third_party/http2/decoder/http2_structure_decoder.cc b/net/third_party/http2/decoder/http2_structure_decoder.cc index eee5708b..c6b8381 100644 --- a/net/third_party/http2/decoder/http2_structure_decoder.cc +++ b/net/third_party/http2/decoder/http2_structure_decoder.cc
@@ -8,7 +8,7 @@ #include "net/third_party/http2/tools/http2_bug_tracker.h" -namespace net { +namespace http2 { // Below we have some defensive coding: if we somehow run off the end, don't // overwrite lots of memory. Note that most of this decoder is not defensive @@ -87,4 +87,4 @@ return needed == num_to_copy; } -} // namespace net +} // namespace http2
diff --git a/net/third_party/http2/decoder/http2_structure_decoder.h b/net/third_party/http2/decoder/http2_structure_decoder.h index a8d6ad5..6157b91 100644 --- a/net/third_party/http2/decoder/http2_structure_decoder.h +++ b/net/third_party/http2/decoder/http2_structure_decoder.h
@@ -20,7 +20,7 @@ #include "net/third_party/http2/http2_structures.h" #include "net/third_party/http2/platform/api/http2_export.h" -namespace net { +namespace http2 { namespace test { class Http2StructureDecoderPeer; } // namespace test @@ -124,6 +124,6 @@ char buffer_[Http2FrameHeader::EncodedSize()]; }; -} // namespace net +} // namespace http2 #endif // NET_THIRD_PARTY_HTTP2_DECODER_HTTP2_STRUCTURE_DECODER_H_
diff --git a/net/third_party/http2/decoder/http2_structure_decoder_test.cc b/net/third_party/http2/decoder/http2_structure_decoder_test.cc index 4f91b65..7448a5e 100644 --- a/net/third_party/http2/decoder/http2_structure_decoder_test.cc +++ b/net/third_party/http2/decoder/http2_structure_decoder_test.cc
@@ -37,7 +37,7 @@ using ::testing::AssertionResult; using ::testing::AssertionSuccess; -namespace net { +namespace http2 { namespace test { namespace { const bool kMayReturnZeroOnFirst = false; @@ -536,4 +536,4 @@ } // namespace } // namespace test -} // namespace net +} // namespace http2
diff --git a/net/third_party/http2/decoder/http2_structure_decoder_test_util.cc b/net/third_party/http2/decoder/http2_structure_decoder_test_util.cc index 682d739..74e0f88 100644 --- a/net/third_party/http2/decoder/http2_structure_decoder_test_util.cc +++ b/net/third_party/http2/decoder/http2_structure_decoder_test_util.cc
@@ -6,7 +6,7 @@ #include <cstddef> -namespace net { +namespace http2 { namespace test { // static @@ -19,4 +19,4 @@ } } // namespace test -} // namespace net +} // namespace http2
diff --git a/net/third_party/http2/decoder/http2_structure_decoder_test_util.h b/net/third_party/http2/decoder/http2_structure_decoder_test_util.h index 5eb6a43..da65a26 100644 --- a/net/third_party/http2/decoder/http2_structure_decoder_test_util.h +++ b/net/third_party/http2/decoder/http2_structure_decoder_test_util.h
@@ -9,7 +9,7 @@ #include "net/third_party/http2/tools/http2_random.h" -namespace net { +namespace http2 { namespace test { class Http2StructureDecoderPeer { @@ -19,6 +19,6 @@ }; } // namespace test -} // namespace net +} // namespace http2 #endif // NET_THIRD_PARTY_HTTP2_DECODER_HTTP2_STRUCTURE_DECODER_TEST_UTIL_H_
diff --git a/net/third_party/http2/decoder/payload_decoders/altsvc_payload_decoder.cc b/net/third_party/http2/decoder/payload_decoders/altsvc_payload_decoder.cc index 7405717..a6cd5b6d 100644 --- a/net/third_party/http2/decoder/payload_decoders/altsvc_payload_decoder.cc +++ b/net/third_party/http2/decoder/payload_decoders/altsvc_payload_decoder.cc
@@ -14,7 +14,7 @@ #include "net/third_party/http2/http2_structures.h" #include "net/third_party/http2/tools/http2_bug_tracker.h" -namespace net { +namespace http2 { std::ostream& operator<<(std::ostream& out, AltSvcPayloadDecoder::PayloadState v) { @@ -144,4 +144,4 @@ return DecodeStatus::kDecodeInProgress; } -} // namespace net +} // namespace http2
diff --git a/net/third_party/http2/decoder/payload_decoders/altsvc_payload_decoder.h b/net/third_party/http2/decoder/payload_decoders/altsvc_payload_decoder.h index 3fb0dcc1..7057bb6a 100644 --- a/net/third_party/http2/decoder/payload_decoders/altsvc_payload_decoder.h +++ b/net/third_party/http2/decoder/payload_decoders/altsvc_payload_decoder.h
@@ -13,7 +13,7 @@ #include "net/third_party/http2/http2_structures.h" #include "net/third_party/http2/platform/api/http2_export.h" -namespace net { +namespace http2 { namespace test { class AltSvcPayloadDecoderPeer; } // namespace test @@ -59,6 +59,6 @@ PayloadState payload_state_; }; -} // namespace net +} // namespace http2 #endif // NET_THIRD_PARTY_HTTP2_DECODER_PAYLOAD_DECODERS_ALTSVC_PAYLOAD_DECODER_H_
diff --git a/net/third_party/http2/decoder/payload_decoders/altsvc_payload_decoder_test.cc b/net/third_party/http2/decoder/payload_decoders/altsvc_payload_decoder_test.cc index dc1b2f9c..b5f79e50 100644 --- a/net/third_party/http2/decoder/payload_decoders/altsvc_payload_decoder_test.cc +++ b/net/third_party/http2/decoder/payload_decoders/altsvc_payload_decoder_test.cc
@@ -19,7 +19,7 @@ #include "net/third_party/http2/tools/random_decoder_test.h" #include "testing/gtest/include/gtest/gtest.h" -namespace net { +namespace http2 { namespace test { // Provides friend access to an instance of the payload decoder, and also @@ -118,4 +118,4 @@ } // namespace } // namespace test -} // namespace net +} // namespace http2
diff --git a/net/third_party/http2/decoder/payload_decoders/continuation_payload_decoder.cc b/net/third_party/http2/decoder/payload_decoders/continuation_payload_decoder.cc index 1b7cf9ba..90f5360 100644 --- a/net/third_party/http2/decoder/payload_decoders/continuation_payload_decoder.cc +++ b/net/third_party/http2/decoder/payload_decoders/continuation_payload_decoder.cc
@@ -12,7 +12,7 @@ #include "net/third_party/http2/http2_constants.h" #include "net/third_party/http2/http2_structures.h" -namespace net { +namespace http2 { DecodeStatus ContinuationPayloadDecoder::StartDecodingPayload( FrameDecoderState* state, @@ -55,4 +55,4 @@ return DecodeStatus::kDecodeInProgress; } -} // namespace net +} // namespace http2
diff --git a/net/third_party/http2/decoder/payload_decoders/continuation_payload_decoder.h b/net/third_party/http2/decoder/payload_decoders/continuation_payload_decoder.h index 35ed821..6ca2b5fa 100644 --- a/net/third_party/http2/decoder/payload_decoders/continuation_payload_decoder.h +++ b/net/third_party/http2/decoder/payload_decoders/continuation_payload_decoder.h
@@ -12,7 +12,7 @@ #include "net/third_party/http2/decoder/frame_decoder_state.h" #include "net/third_party/http2/platform/api/http2_export.h" -namespace net { +namespace http2 { class HTTP2_EXPORT_PRIVATE ContinuationPayloadDecoder { public: @@ -26,6 +26,6 @@ DecodeBuffer* db); }; -} // namespace net +} // namespace http2 #endif // NET_THIRD_PARTY_HTTP2_DECODER_PAYLOAD_DECODERS_CONTINUATION_PAYLOAD_DECODER_H_
diff --git a/net/third_party/http2/decoder/payload_decoders/continuation_payload_decoder_test.cc b/net/third_party/http2/decoder/payload_decoders/continuation_payload_decoder_test.cc index 9c13cbfe..62075a6 100644 --- a/net/third_party/http2/decoder/payload_decoders/continuation_payload_decoder_test.cc +++ b/net/third_party/http2/decoder/payload_decoders/continuation_payload_decoder_test.cc
@@ -19,7 +19,7 @@ #include "net/third_party/http2/tools/random_decoder_test.h" #include "testing/gtest/include/gtest/gtest.h" -namespace net { +namespace http2 { namespace test { // Provides friend access to an instance of the payload decoder, and also @@ -82,4 +82,4 @@ } // namespace } // namespace test -} // namespace net +} // namespace http2
diff --git a/net/third_party/http2/decoder/payload_decoders/data_payload_decoder.cc b/net/third_party/http2/decoder/payload_decoders/data_payload_decoder.cc index 324582b..c7f2487e 100644 --- a/net/third_party/http2/decoder/payload_decoders/data_payload_decoder.cc +++ b/net/third_party/http2/decoder/payload_decoders/data_payload_decoder.cc
@@ -14,7 +14,7 @@ #include "net/third_party/http2/http2_structures.h" #include "net/third_party/http2/tools/http2_bug_tracker.h" -namespace net { +namespace http2 { std::ostream& operator<<(std::ostream& out, DataPayloadDecoder::PayloadState v) { @@ -123,4 +123,4 @@ return DecodeStatus::kDecodeError; } -} // namespace net +} // namespace http2
diff --git a/net/third_party/http2/decoder/payload_decoders/data_payload_decoder.h b/net/third_party/http2/decoder/payload_decoders/data_payload_decoder.h index e84a372..218631b 100644 --- a/net/third_party/http2/decoder/payload_decoders/data_payload_decoder.h +++ b/net/third_party/http2/decoder/payload_decoders/data_payload_decoder.h
@@ -12,7 +12,7 @@ #include "net/third_party/http2/decoder/frame_decoder_state.h" #include "net/third_party/http2/platform/api/http2_export.h" -namespace net { +namespace http2 { namespace test { class DataPayloadDecoderPeer; } // namespace test @@ -49,6 +49,6 @@ PayloadState payload_state_; }; -} // namespace net +} // namespace http2 #endif // NET_THIRD_PARTY_HTTP2_DECODER_PAYLOAD_DECODERS_DATA_PAYLOAD_DECODER_H_
diff --git a/net/third_party/http2/decoder/payload_decoders/data_payload_decoder_test.cc b/net/third_party/http2/decoder/payload_decoders/data_payload_decoder_test.cc index a43040a9..245f9f1 100644 --- a/net/third_party/http2/decoder/payload_decoders/data_payload_decoder_test.cc +++ b/net/third_party/http2/decoder/payload_decoders/data_payload_decoder_test.cc
@@ -23,7 +23,7 @@ using ::testing::AssertionResult; -namespace net { +namespace http2 { namespace test { // Provides friend access to an instance of the payload decoder, and also @@ -110,4 +110,4 @@ } // namespace } // namespace test -} // namespace net +} // namespace http2
diff --git a/net/third_party/http2/decoder/payload_decoders/goaway_payload_decoder.cc b/net/third_party/http2/decoder/payload_decoders/goaway_payload_decoder.cc index cefb63f..7180cd98 100644 --- a/net/third_party/http2/decoder/payload_decoders/goaway_payload_decoder.cc +++ b/net/third_party/http2/decoder/payload_decoders/goaway_payload_decoder.cc
@@ -14,7 +14,7 @@ #include "net/third_party/http2/http2_structures.h" #include "net/third_party/http2/tools/http2_bug_tracker.h" -namespace net { +namespace http2 { std::ostream& operator<<(std::ostream& out, GoAwayPayloadDecoder::PayloadState v) { @@ -117,4 +117,4 @@ } } -} // namespace net +} // namespace http2
diff --git a/net/third_party/http2/decoder/payload_decoders/goaway_payload_decoder.h b/net/third_party/http2/decoder/payload_decoders/goaway_payload_decoder.h index 3eebc5a..f0868fb 100644 --- a/net/third_party/http2/decoder/payload_decoders/goaway_payload_decoder.h +++ b/net/third_party/http2/decoder/payload_decoders/goaway_payload_decoder.h
@@ -16,7 +16,7 @@ #include "net/third_party/http2/http2_structures.h" #include "net/third_party/http2/platform/api/http2_export.h" -namespace net { +namespace http2 { namespace test { class GoAwayPayloadDecoderPeer; } // namespace test @@ -61,6 +61,6 @@ PayloadState payload_state_; }; -} // namespace net +} // namespace http2 #endif // NET_THIRD_PARTY_HTTP2_DECODER_PAYLOAD_DECODERS_GOAWAY_PAYLOAD_DECODER_H_
diff --git a/net/third_party/http2/decoder/payload_decoders/goaway_payload_decoder_test.cc b/net/third_party/http2/decoder/payload_decoders/goaway_payload_decoder_test.cc index 0a3c4ba..5648c91 100644 --- a/net/third_party/http2/decoder/payload_decoders/goaway_payload_decoder_test.cc +++ b/net/third_party/http2/decoder/payload_decoders/goaway_payload_decoder_test.cc
@@ -19,7 +19,7 @@ #include "net/third_party/http2/tools/random_decoder_test.h" #include "testing/gtest/include/gtest/gtest.h" -namespace net { +namespace http2 { namespace test { class GoAwayPayloadDecoderPeer { @@ -104,4 +104,4 @@ } // namespace } // namespace test -} // namespace net +} // namespace http2
diff --git a/net/third_party/http2/decoder/payload_decoders/headers_payload_decoder.cc b/net/third_party/http2/decoder/payload_decoders/headers_payload_decoder.cc index 3be48b5..6a6cb13 100644 --- a/net/third_party/http2/decoder/payload_decoders/headers_payload_decoder.cc +++ b/net/third_party/http2/decoder/payload_decoders/headers_payload_decoder.cc
@@ -14,7 +14,7 @@ #include "net/third_party/http2/http2_structures.h" #include "net/third_party/http2/tools/http2_bug_tracker.h" -namespace net { +namespace http2 { std::ostream& operator<<(std::ostream& out, HeadersPayloadDecoder::PayloadState v) { @@ -171,4 +171,4 @@ } } -} // namespace net +} // namespace http2
diff --git a/net/third_party/http2/decoder/payload_decoders/headers_payload_decoder.h b/net/third_party/http2/decoder/payload_decoders/headers_payload_decoder.h index a8618d0..82ca2032 100644 --- a/net/third_party/http2/decoder/payload_decoders/headers_payload_decoder.h +++ b/net/third_party/http2/decoder/payload_decoders/headers_payload_decoder.h
@@ -13,7 +13,7 @@ #include "net/third_party/http2/http2_structures.h" #include "net/third_party/http2/platform/api/http2_export.h" -namespace net { +namespace http2 { namespace test { class HeadersPayloadDecoderPeer; } // namespace test @@ -62,6 +62,6 @@ Http2PriorityFields priority_fields_; }; -} // namespace net +} // namespace http2 #endif // NET_THIRD_PARTY_HTTP2_DECODER_PAYLOAD_DECODERS_HEADERS_PAYLOAD_DECODER_H_
diff --git a/net/third_party/http2/decoder/payload_decoders/headers_payload_decoder_test.cc b/net/third_party/http2/decoder/payload_decoders/headers_payload_decoder_test.cc index 76716d89..4a70b13 100644 --- a/net/third_party/http2/decoder/payload_decoders/headers_payload_decoder_test.cc +++ b/net/third_party/http2/decoder/payload_decoders/headers_payload_decoder_test.cc
@@ -19,7 +19,7 @@ #include "net/third_party/http2/tools/random_decoder_test.h" #include "testing/gtest/include/gtest/gtest.h" -namespace net { +namespace http2 { namespace test { class HeadersPayloadDecoderPeer { @@ -155,4 +155,4 @@ } // namespace } // namespace test -} // namespace net +} // namespace http2
diff --git a/net/third_party/http2/decoder/payload_decoders/payload_decoder_base_test_util.cc b/net/third_party/http2/decoder/payload_decoders/payload_decoder_base_test_util.cc index b3237b78..bf829510 100644 --- a/net/third_party/http2/decoder/payload_decoders/payload_decoder_base_test_util.cc +++ b/net/third_party/http2/decoder/payload_decoders/payload_decoder_base_test_util.cc
@@ -8,7 +8,7 @@ #include "net/third_party/http2/http2_structures_test_util.h" #include "testing/gtest/include/gtest/gtest.h" -namespace net { +namespace http2 { namespace test { PayloadDecoderBaseTest::PayloadDecoderBaseTest() { // If the test adds more data after the frame payload, @@ -94,4 +94,4 @@ } } // namespace test -} // namespace net +} // namespace http2
diff --git a/net/third_party/http2/decoder/payload_decoders/payload_decoder_base_test_util.h b/net/third_party/http2/decoder/payload_decoders/payload_decoder_base_test_util.h index e838c78..65b4b83 100644 --- a/net/third_party/http2/decoder/payload_decoders/payload_decoder_base_test_util.h +++ b/net/third_party/http2/decoder/payload_decoders/payload_decoder_base_test_util.h
@@ -25,7 +25,7 @@ #include "net/third_party/http2/tools/random_decoder_test.h" #include "testing/gtest/include/gtest/gtest.h" -namespace net { +namespace http2 { namespace test { // Base class for tests of payload decoders. Below this there is a templated @@ -450,6 +450,6 @@ }; } // namespace test -} // namespace net +} // namespace http2 #endif // NET_THIRD_PARTY_HTTP2_DECODER_PAYLOAD_DECODERS_PAYLOAD_DECODER_BASE_TEST_UTIL_H_
diff --git a/net/third_party/http2/decoder/payload_decoders/ping_payload_decoder.cc b/net/third_party/http2/decoder/payload_decoders/ping_payload_decoder.cc index f8fbbfa..b3c1883 100644 --- a/net/third_party/http2/decoder/payload_decoders/ping_payload_decoder.cc +++ b/net/third_party/http2/decoder/payload_decoders/ping_payload_decoder.cc
@@ -8,7 +8,7 @@ #include "net/third_party/http2/decoder/http2_frame_decoder_listener.h" #include "net/third_party/http2/http2_constants.h" -namespace net { +namespace http2 { namespace { constexpr auto kOpaqueSize = Http2PingFields::EncodedSize(); } @@ -86,4 +86,4 @@ return status; } -} // namespace net +} // namespace http2
diff --git a/net/third_party/http2/decoder/payload_decoders/ping_payload_decoder.h b/net/third_party/http2/decoder/payload_decoders/ping_payload_decoder.h index fb678be..6cb661a 100644 --- a/net/third_party/http2/decoder/payload_decoders/ping_payload_decoder.h +++ b/net/third_party/http2/decoder/payload_decoders/ping_payload_decoder.h
@@ -14,7 +14,7 @@ #include "net/third_party/http2/http2_structures.h" #include "net/third_party/http2/platform/api/http2_export.h" -namespace net { +namespace http2 { namespace test { class PingPayloadDecoderPeer; } // namespace test @@ -38,6 +38,6 @@ Http2PingFields ping_fields_; }; -} // namespace net +} // namespace http2 #endif // NET_THIRD_PARTY_HTTP2_DECODER_PAYLOAD_DECODERS_PING_PAYLOAD_DECODER_H_
diff --git a/net/third_party/http2/decoder/payload_decoders/ping_payload_decoder_test.cc b/net/third_party/http2/decoder/payload_decoders/ping_payload_decoder_test.cc index aa4dc27..dcac2f77 100644 --- a/net/third_party/http2/decoder/payload_decoders/ping_payload_decoder_test.cc +++ b/net/third_party/http2/decoder/payload_decoders/ping_payload_decoder_test.cc
@@ -18,7 +18,7 @@ #include "net/third_party/http2/tools/random_decoder_test.h" #include "testing/gtest/include/gtest/gtest.h" -namespace net { +namespace http2 { namespace test { class PingPayloadDecoderPeer { @@ -107,4 +107,4 @@ } // namespace } // namespace test -} // namespace net +} // namespace http2
diff --git a/net/third_party/http2/decoder/payload_decoders/priority_payload_decoder.cc b/net/third_party/http2/decoder/payload_decoders/priority_payload_decoder.cc index ae5be00..dd503bb 100644 --- a/net/third_party/http2/decoder/payload_decoders/priority_payload_decoder.cc +++ b/net/third_party/http2/decoder/payload_decoders/priority_payload_decoder.cc
@@ -10,7 +10,7 @@ #include "net/third_party/http2/http2_constants.h" #include "net/third_party/http2/http2_structures.h" -namespace net { +namespace http2 { DecodeStatus PriorityPayloadDecoder::StartDecodingPayload( FrameDecoderState* state, @@ -61,4 +61,4 @@ return status; } -} // namespace net +} // namespace http2
diff --git a/net/third_party/http2/decoder/payload_decoders/priority_payload_decoder.h b/net/third_party/http2/decoder/payload_decoders/priority_payload_decoder.h index dd316932..d258475 100644 --- a/net/third_party/http2/decoder/payload_decoders/priority_payload_decoder.h +++ b/net/third_party/http2/decoder/payload_decoders/priority_payload_decoder.h
@@ -13,7 +13,7 @@ #include "net/third_party/http2/http2_structures.h" #include "net/third_party/http2/platform/api/http2_export.h" -namespace net { +namespace http2 { namespace test { class PriorityPayloadDecoderPeer; } // namespace test @@ -39,6 +39,6 @@ Http2PriorityFields priority_fields_; }; -} // namespace net +} // namespace http2 #endif // NET_THIRD_PARTY_HTTP2_DECODER_PAYLOAD_DECODERS_PRIORITY_PAYLOAD_DECODER_H_
diff --git a/net/third_party/http2/decoder/payload_decoders/priority_payload_decoder_test.cc b/net/third_party/http2/decoder/payload_decoders/priority_payload_decoder_test.cc index 018f99e..27167e0 100644 --- a/net/third_party/http2/decoder/payload_decoders/priority_payload_decoder_test.cc +++ b/net/third_party/http2/decoder/payload_decoders/priority_payload_decoder_test.cc
@@ -18,7 +18,7 @@ #include "net/third_party/http2/tools/random_decoder_test.h" #include "testing/gtest/include/gtest/gtest.h" -namespace net { +namespace http2 { namespace test { class PriorityPayloadDecoderPeer { @@ -87,4 +87,4 @@ } // namespace } // namespace test -} // namespace net +} // namespace http2
diff --git a/net/third_party/http2/decoder/payload_decoders/push_promise_payload_decoder.cc b/net/third_party/http2/decoder/payload_decoders/push_promise_payload_decoder.cc index f165c2b..3ea121f 100644 --- a/net/third_party/http2/decoder/payload_decoders/push_promise_payload_decoder.cc +++ b/net/third_party/http2/decoder/payload_decoders/push_promise_payload_decoder.cc
@@ -14,7 +14,7 @@ #include "net/third_party/http2/http2_structures.h" #include "net/third_party/http2/tools/http2_bug_tracker.h" -namespace net { +namespace http2 { std::ostream& operator<<(std::ostream& out, PushPromisePayloadDecoder::PayloadState v) { @@ -168,4 +168,4 @@ } } -} // namespace net +} // namespace http2
diff --git a/net/third_party/http2/decoder/payload_decoders/push_promise_payload_decoder.h b/net/third_party/http2/decoder/payload_decoders/push_promise_payload_decoder.h index 3876032..1861805 100644 --- a/net/third_party/http2/decoder/payload_decoders/push_promise_payload_decoder.h +++ b/net/third_party/http2/decoder/payload_decoders/push_promise_payload_decoder.h
@@ -13,7 +13,7 @@ #include "net/third_party/http2/http2_structures.h" #include "net/third_party/http2/platform/api/http2_export.h" -namespace net { +namespace http2 { namespace test { class PushPromisePayloadDecoderPeer; } // namespace test @@ -61,6 +61,6 @@ Http2PushPromiseFields push_promise_fields_; }; -} // namespace net +} // namespace http2 #endif // NET_THIRD_PARTY_HTTP2_DECODER_PAYLOAD_DECODERS_PUSH_PROMISE_PAYLOAD_DECODER_H_
diff --git a/net/third_party/http2/decoder/payload_decoders/push_promise_payload_decoder_test.cc b/net/third_party/http2/decoder/payload_decoders/push_promise_payload_decoder_test.cc index 81ffcb34..381b922b 100644 --- a/net/third_party/http2/decoder/payload_decoders/push_promise_payload_decoder_test.cc +++ b/net/third_party/http2/decoder/payload_decoders/push_promise_payload_decoder_test.cc
@@ -19,7 +19,7 @@ #include "net/third_party/http2/tools/random_decoder_test.h" #include "testing/gtest/include/gtest/gtest.h" -namespace net { +namespace http2 { namespace test { // Provides friend access to an instance of the payload decoder, and also @@ -134,4 +134,4 @@ } // namespace } // namespace test -} // namespace net +} // namespace http2
diff --git a/net/third_party/http2/decoder/payload_decoders/rst_stream_payload_decoder.cc b/net/third_party/http2/decoder/payload_decoders/rst_stream_payload_decoder.cc index f31c83bf..a2000e5a 100644 --- a/net/third_party/http2/decoder/payload_decoders/rst_stream_payload_decoder.cc +++ b/net/third_party/http2/decoder/payload_decoders/rst_stream_payload_decoder.cc
@@ -10,7 +10,7 @@ #include "net/third_party/http2/http2_constants.h" #include "net/third_party/http2/http2_structures.h" -namespace net { +namespace http2 { DecodeStatus RstStreamPayloadDecoder::StartDecodingPayload( FrameDecoderState* state, @@ -63,4 +63,4 @@ return status; } -} // namespace net +} // namespace http2
diff --git a/net/third_party/http2/decoder/payload_decoders/rst_stream_payload_decoder.h b/net/third_party/http2/decoder/payload_decoders/rst_stream_payload_decoder.h index 56eeaca2..c92da53 100644 --- a/net/third_party/http2/decoder/payload_decoders/rst_stream_payload_decoder.h +++ b/net/third_party/http2/decoder/payload_decoders/rst_stream_payload_decoder.h
@@ -13,7 +13,7 @@ #include "net/third_party/http2/http2_structures.h" #include "net/third_party/http2/platform/api/http2_export.h" -namespace net { +namespace http2 { namespace test { class RstStreamPayloadDecoderPeer; } // namespace test @@ -37,6 +37,6 @@ Http2RstStreamFields rst_stream_fields_; }; -} // namespace net +} // namespace http2 #endif // NET_THIRD_PARTY_HTTP2_DECODER_PAYLOAD_DECODERS_RST_STREAM_PAYLOAD_DECODER_H_
diff --git a/net/third_party/http2/decoder/payload_decoders/rst_stream_payload_decoder_test.cc b/net/third_party/http2/decoder/payload_decoders/rst_stream_payload_decoder_test.cc index 850e40f..ff9bf259 100644 --- a/net/third_party/http2/decoder/payload_decoders/rst_stream_payload_decoder_test.cc +++ b/net/third_party/http2/decoder/payload_decoders/rst_stream_payload_decoder_test.cc
@@ -19,7 +19,7 @@ #include "net/third_party/http2/tools/random_decoder_test.h" #include "testing/gtest/include/gtest/gtest.h" -namespace net { +namespace http2 { namespace test { class RstStreamPayloadDecoderPeer { @@ -89,4 +89,4 @@ } // namespace } // namespace test -} // namespace net +} // namespace http2
diff --git a/net/third_party/http2/decoder/payload_decoders/settings_payload_decoder.cc b/net/third_party/http2/decoder/payload_decoders/settings_payload_decoder.cc index 394b74e..2981a26 100644 --- a/net/third_party/http2/decoder/payload_decoders/settings_payload_decoder.cc +++ b/net/third_party/http2/decoder/payload_decoders/settings_payload_decoder.cc
@@ -10,7 +10,7 @@ #include "net/third_party/http2/http2_constants.h" #include "net/third_party/http2/http2_structures.h" -namespace net { +namespace http2 { DecodeStatus SettingsPayloadDecoder::StartDecodingPayload( FrameDecoderState* state, @@ -94,4 +94,4 @@ return status; } -} // namespace net +} // namespace http2
diff --git a/net/third_party/http2/decoder/payload_decoders/settings_payload_decoder.h b/net/third_party/http2/decoder/payload_decoders/settings_payload_decoder.h index ed9e2b8..3f58a5e 100644 --- a/net/third_party/http2/decoder/payload_decoders/settings_payload_decoder.h +++ b/net/third_party/http2/decoder/payload_decoders/settings_payload_decoder.h
@@ -14,7 +14,7 @@ #include "net/third_party/http2/http2_structures.h" #include "net/third_party/http2/platform/api/http2_export.h" -namespace net { +namespace http2 { namespace test { class SettingsPayloadDecoderPeer; } // namespace test @@ -49,6 +49,6 @@ Http2SettingFields setting_fields_; }; -} // namespace net +} // namespace http2 #endif // NET_THIRD_PARTY_HTTP2_DECODER_PAYLOAD_DECODERS_SETTINGS_PAYLOAD_DECODER_H_
diff --git a/net/third_party/http2/decoder/payload_decoders/settings_payload_decoder_test.cc b/net/third_party/http2/decoder/payload_decoders/settings_payload_decoder_test.cc index b0a64b9..9190c20 100644 --- a/net/third_party/http2/decoder/payload_decoders/settings_payload_decoder_test.cc +++ b/net/third_party/http2/decoder/payload_decoders/settings_payload_decoder_test.cc
@@ -21,7 +21,7 @@ #include "net/third_party/http2/tools/random_decoder_test.h" #include "testing/gtest/include/gtest/gtest.h" -namespace net { +namespace http2 { namespace test { class SettingsPayloadDecoderPeer { @@ -157,4 +157,4 @@ } // namespace } // namespace test -} // namespace net +} // namespace http2
diff --git a/net/third_party/http2/decoder/payload_decoders/unknown_payload_decoder.cc b/net/third_party/http2/decoder/payload_decoders/unknown_payload_decoder.cc index 24ee2d8..3f7cbf4 100644 --- a/net/third_party/http2/decoder/payload_decoders/unknown_payload_decoder.cc +++ b/net/third_party/http2/decoder/payload_decoders/unknown_payload_decoder.cc
@@ -12,7 +12,7 @@ #include "net/third_party/http2/http2_constants.h" #include "net/third_party/http2/http2_structures.h" -namespace net { +namespace http2 { DecodeStatus UnknownPayloadDecoder::StartDecodingPayload( FrameDecoderState* state, @@ -52,4 +52,4 @@ return DecodeStatus::kDecodeInProgress; } -} // namespace net +} // namespace http2
diff --git a/net/third_party/http2/decoder/payload_decoders/unknown_payload_decoder.h b/net/third_party/http2/decoder/payload_decoders/unknown_payload_decoder.h index 61c077a57..c649f7b8 100644 --- a/net/third_party/http2/decoder/payload_decoders/unknown_payload_decoder.h +++ b/net/third_party/http2/decoder/payload_decoders/unknown_payload_decoder.h
@@ -15,7 +15,7 @@ #include "net/third_party/http2/decoder/frame_decoder_state.h" #include "net/third_party/http2/platform/api/http2_export.h" -namespace net { +namespace http2 { class HTTP2_EXPORT_PRIVATE UnknownPayloadDecoder { public: @@ -28,6 +28,6 @@ DecodeBuffer* db); }; -} // namespace net +} // namespace http2 #endif // NET_THIRD_PARTY_HTTP2_DECODER_PAYLOAD_DECODERS_UNKNOWN_PAYLOAD_DECODER_H_
diff --git a/net/third_party/http2/decoder/payload_decoders/unknown_payload_decoder_test.cc b/net/third_party/http2/decoder/payload_decoders/unknown_payload_decoder_test.cc index 8ecf57b..75d40cd 100644 --- a/net/third_party/http2/decoder/payload_decoders/unknown_payload_decoder_test.cc +++ b/net/third_party/http2/decoder/payload_decoders/unknown_payload_decoder_test.cc
@@ -20,7 +20,7 @@ #include "net/third_party/http2/tools/random_decoder_test.h" #include "testing/gtest/include/gtest/gtest.h" -namespace net { +namespace http2 { namespace test { namespace { Http2FrameType g_unknown_frame_type; @@ -97,4 +97,4 @@ } // namespace } // namespace test -} // namespace net +} // namespace http2
diff --git a/net/third_party/http2/decoder/payload_decoders/window_update_payload_decoder.cc b/net/third_party/http2/decoder/payload_decoders/window_update_payload_decoder.cc index 949f4ca..97b1cdf 100644 --- a/net/third_party/http2/decoder/payload_decoders/window_update_payload_decoder.cc +++ b/net/third_party/http2/decoder/payload_decoders/window_update_payload_decoder.cc
@@ -11,7 +11,7 @@ #include "net/third_party/http2/http2_constants.h" #include "net/third_party/http2/http2_structures.h" -namespace net { +namespace http2 { DecodeStatus WindowUpdatePayloadDecoder::StartDecodingPayload( FrameDecoderState* state, @@ -79,4 +79,4 @@ return status; } -} // namespace net +} // namespace http2
diff --git a/net/third_party/http2/decoder/payload_decoders/window_update_payload_decoder.h b/net/third_party/http2/decoder/payload_decoders/window_update_payload_decoder.h index f8626d8..0344b25d 100644 --- a/net/third_party/http2/decoder/payload_decoders/window_update_payload_decoder.h +++ b/net/third_party/http2/decoder/payload_decoders/window_update_payload_decoder.h
@@ -13,7 +13,7 @@ #include "net/third_party/http2/http2_structures.h" #include "net/third_party/http2/platform/api/http2_export.h" -namespace net { +namespace http2 { namespace test { class WindowUpdatePayloadDecoderPeer; } // namespace test @@ -37,6 +37,6 @@ Http2WindowUpdateFields window_update_fields_; }; -} // namespace net +} // namespace http2 #endif // NET_THIRD_PARTY_HTTP2_DECODER_PAYLOAD_DECODERS_WINDOW_UPDATE_PAYLOAD_DECODER_H_
diff --git a/net/third_party/http2/decoder/payload_decoders/window_update_payload_decoder_test.cc b/net/third_party/http2/decoder/payload_decoders/window_update_payload_decoder_test.cc index 51d8647..5c69f212 100644 --- a/net/third_party/http2/decoder/payload_decoders/window_update_payload_decoder_test.cc +++ b/net/third_party/http2/decoder/payload_decoders/window_update_payload_decoder_test.cc
@@ -18,7 +18,7 @@ #include "net/third_party/http2/tools/random_decoder_test.h" #include "testing/gtest/include/gtest/gtest.h" -namespace net { +namespace http2 { namespace test { class WindowUpdatePayloadDecoderPeer { @@ -92,4 +92,4 @@ } // namespace } // namespace test -} // namespace net +} // namespace http2
diff --git a/net/third_party/http2/hpack/decoder/hpack_block_collector.cc b/net/third_party/http2/hpack/decoder/hpack_block_collector.cc index 6ef1456a..8e8d7b06 100644 --- a/net/third_party/http2/hpack/decoder/hpack_block_collector.cc +++ b/net/third_party/http2/hpack/decoder/hpack_block_collector.cc
@@ -15,7 +15,7 @@ using ::testing::AssertionResult; using ::testing::AssertionSuccess; -namespace net { +namespace http2 { namespace test { HpackBlockCollector::HpackBlockCollector() = default; @@ -150,4 +150,4 @@ } } // namespace test -} // namespace net +} // namespace http2
diff --git a/net/third_party/http2/hpack/decoder/hpack_block_collector.h b/net/third_party/http2/hpack/decoder/hpack_block_collector.h index 81c5f53..1195b74 100644 --- a/net/third_party/http2/hpack/decoder/hpack_block_collector.h +++ b/net/third_party/http2/hpack/decoder/hpack_block_collector.h
@@ -24,7 +24,7 @@ #include "net/third_party/http2/platform/api/http2_string.h" #include "net/third_party/http2/platform/api/http2_string_piece.h" -namespace net { +namespace http2 { namespace test { class RandomBase; @@ -123,6 +123,6 @@ }; } // namespace test -} // namespace net +} // namespace http2 #endif // NET_THIRD_PARTY_HTTP2_HPACK_DECODER_HPACK_BLOCK_COLLECTOR_H_
diff --git a/net/third_party/http2/hpack/decoder/hpack_block_decoder.cc b/net/third_party/http2/hpack/decoder/hpack_block_decoder.cc index 057ebb7..3db1792 100644 --- a/net/third_party/http2/hpack/decoder/hpack_block_decoder.cc +++ b/net/third_party/http2/hpack/decoder/hpack_block_decoder.cc
@@ -11,7 +11,7 @@ #include "base/logging.h" #include "net/third_party/http2/platform/api/http2_string_utils.h" -namespace net { +namespace http2 { DecodeStatus HpackBlockDecoder::Decode(DecodeBuffer* db) { if (!before_entry_) { @@ -61,4 +61,4 @@ return out << v.DebugString(); } -} // namespace net +} // namespace http2
diff --git a/net/third_party/http2/hpack/decoder/hpack_block_decoder.h b/net/third_party/http2/hpack/decoder/hpack_block_decoder.h index b26de3b..c05fb8ec 100644 --- a/net/third_party/http2/hpack/decoder/hpack_block_decoder.h +++ b/net/third_party/http2/hpack/decoder/hpack_block_decoder.h
@@ -19,7 +19,7 @@ #include "net/third_party/http2/platform/api/http2_export.h" #include "net/third_party/http2/platform/api/http2_string.h" -namespace net { +namespace http2 { class HTTP2_EXPORT_PRIVATE HpackBlockDecoder { public: @@ -59,6 +59,6 @@ HTTP2_EXPORT_PRIVATE std::ostream& operator<<(std::ostream& out, const HpackBlockDecoder& v); -} // namespace net +} // namespace http2 #endif // NET_THIRD_PARTY_HTTP2_HPACK_DECODER_HPACK_BLOCK_DECODER_H_
diff --git a/net/third_party/http2/hpack/decoder/hpack_block_decoder_test.cc b/net/third_party/http2/hpack/decoder/hpack_block_decoder_test.cc index 6e3fd8b..9bd94eb3 100644 --- a/net/third_party/http2/hpack/decoder/hpack_block_decoder_test.cc +++ b/net/third_party/http2/hpack/decoder/hpack_block_decoder_test.cc
@@ -23,7 +23,7 @@ using ::testing::AssertionSuccess; -namespace net { +namespace http2 { namespace test { namespace { @@ -293,4 +293,4 @@ } // namespace } // namespace test -} // namespace net +} // namespace http2
diff --git a/net/third_party/http2/hpack/decoder/hpack_decoder.cc b/net/third_party/http2/hpack/decoder/hpack_decoder.cc index d22cd31..18adff53 100644 --- a/net/third_party/http2/hpack/decoder/hpack_decoder.cc +++ b/net/third_party/http2/hpack/decoder/hpack_decoder.cc
@@ -8,7 +8,7 @@ #include "base/trace_event/memory_usage_estimator.h" #include "net/third_party/http2/decoder/decode_status.h" -namespace net { +namespace http2 { HpackDecoder::HpackDecoder(HpackDecoderListener* listener, size_t max_string_size) @@ -119,4 +119,4 @@ } } -} // namespace net +} // namespace http2
diff --git a/net/third_party/http2/hpack/decoder/hpack_decoder.h b/net/third_party/http2/hpack/decoder/hpack_decoder.h index 17a8acb..a82a22b9 100644 --- a/net/third_party/http2/hpack/decoder/hpack_decoder.h +++ b/net/third_party/http2/hpack/decoder/hpack_decoder.h
@@ -32,7 +32,7 @@ #include "net/third_party/http2/platform/api/http2_export.h" #include "net/third_party/http2/platform/api/http2_string_piece.h" -namespace net { +namespace http2 { namespace test { class HpackDecoderPeer; } // namespace test @@ -117,6 +117,6 @@ DISALLOW_COPY_AND_ASSIGN(HpackDecoder); }; -} // namespace net +} // namespace http2 #endif // NET_THIRD_PARTY_HTTP2_HPACK_DECODER_HPACK_DECODER_H_
diff --git a/net/third_party/http2/hpack/decoder/hpack_decoder_fuzzer.cc b/net/third_party/http2/hpack/decoder/hpack_decoder_fuzzer.cc index 8e40e532..954180d 100644 --- a/net/third_party/http2/hpack/decoder/hpack_decoder_fuzzer.cc +++ b/net/third_party/http2/hpack/decoder/hpack_decoder_fuzzer.cc
@@ -17,15 +17,15 @@ base::FuzzedDataProvider fuzzed_data_provider(data, size); size_t max_string_size = fuzzed_data_provider.ConsumeUint32InRange(1, 10 * size); - net::HpackDecoder decoder(net::HpackDecoderNoOpListener::NoOpListener(), - max_string_size); + http2::HpackDecoder decoder(http2::HpackDecoderNoOpListener::NoOpListener(), + max_string_size); decoder.StartDecodingBlock(); while (fuzzed_data_provider.remaining_bytes() > 0) { size_t chunk_size = fuzzed_data_provider.ConsumeUint32InRange(1, 32); std::string chunk = fuzzed_data_provider.ConsumeBytes(chunk_size); - net::DecodeBuffer fragment(chunk.data(), chunk.size()); + http2::DecodeBuffer fragment(chunk.data(), chunk.size()); decoder.DecodeFragment(&fragment); } decoder.EndDecodingBlock(); return 0; -} \ No newline at end of file +}
diff --git a/net/third_party/http2/hpack/decoder/hpack_decoder_listener.cc b/net/third_party/http2/hpack/decoder/hpack_decoder_listener.cc index e3212f0..c68937df 100644 --- a/net/third_party/http2/hpack/decoder/hpack_decoder_listener.cc +++ b/net/third_party/http2/hpack/decoder/hpack_decoder_listener.cc
@@ -4,7 +4,7 @@ #include "net/third_party/http2/hpack/decoder/hpack_decoder_listener.h" -namespace net { +namespace http2 { HpackDecoderListener::HpackDecoderListener() = default; HpackDecoderListener::~HpackDecoderListener() = default; @@ -27,4 +27,4 @@ return static_instance; } -} // namespace net +} // namespace http2
diff --git a/net/third_party/http2/hpack/decoder/hpack_decoder_listener.h b/net/third_party/http2/hpack/decoder/hpack_decoder_listener.h index def73b4e..40afafd 100644 --- a/net/third_party/http2/hpack/decoder/hpack_decoder_listener.h +++ b/net/third_party/http2/hpack/decoder/hpack_decoder_listener.h
@@ -13,7 +13,7 @@ #include "net/third_party/http2/platform/api/http2_export.h" #include "net/third_party/http2/platform/api/http2_string_piece.h" -namespace net { +namespace http2 { class HTTP2_EXPORT_PRIVATE HpackDecoderListener { public: @@ -61,6 +61,6 @@ static HpackDecoderNoOpListener* NoOpListener(); }; -} // namespace net +} // namespace http2 #endif // NET_THIRD_PARTY_HTTP2_HPACK_DECODER_HPACK_DECODER_LISTENER_H_
diff --git a/net/third_party/http2/hpack/decoder/hpack_decoder_state.cc b/net/third_party/http2/hpack/decoder/hpack_decoder_state.cc index c4207e5..8dd48f5 100644 --- a/net/third_party/http2/hpack/decoder/hpack_decoder_state.cc +++ b/net/third_party/http2/hpack/decoder/hpack_decoder_state.cc
@@ -8,7 +8,7 @@ #include "net/third_party/http2/hpack/hpack_string.h" #include "net/third_party/http2/http2_constants.h" -namespace net { +namespace http2 { namespace { HpackString ExtractHpackString(HpackDecoderStringBuffer* string_buffer) { @@ -216,4 +216,4 @@ } } -} // namespace net +} // namespace http2
diff --git a/net/third_party/http2/hpack/decoder/hpack_decoder_state.h b/net/third_party/http2/hpack/decoder/hpack_decoder_state.h index c713bd3..4ada9c1 100644 --- a/net/third_party/http2/hpack/decoder/hpack_decoder_state.h +++ b/net/third_party/http2/hpack/decoder/hpack_decoder_state.h
@@ -24,7 +24,7 @@ #include "net/third_party/http2/platform/api/http2_export.h" #include "net/third_party/http2/platform/api/http2_string_piece.h" -namespace net { +namespace http2 { namespace test { class HpackDecoderStatePeer; } // namespace test @@ -123,6 +123,6 @@ DISALLOW_COPY_AND_ASSIGN(HpackDecoderState); }; -} // namespace net +} // namespace http2 #endif // NET_THIRD_PARTY_HTTP2_HPACK_DECODER_HPACK_DECODER_STATE_H_
diff --git a/net/third_party/http2/hpack/decoder/hpack_decoder_state_test.cc b/net/third_party/http2/hpack/decoder/hpack_decoder_state_test.cc index 96d430e..4bf5bab 100644 --- a/net/third_party/http2/hpack/decoder/hpack_decoder_state_test.cc +++ b/net/third_party/http2/hpack/decoder/hpack_decoder_state_test.cc
@@ -27,7 +27,7 @@ using ::testing::Mock; using ::testing::StrictMock; -namespace net { +namespace http2 { namespace test { class HpackDecoderStatePeer { public: @@ -41,10 +41,10 @@ // Define HasSubstr() for Http2StringPiece arguments. // This shadows ::testing::HasSubstr(), which only works on argument types // that can be implicilty converted to a Http2String. -inline ::testing::PolymorphicMatcher<StringPieceHasSubstrMatcher> HasSubstr( - const Http2String& substring) { +inline ::testing::PolymorphicMatcher<net::test::StringPieceHasSubstrMatcher> +HasSubstr(const Http2String& substring) { return ::testing::MakePolymorphicMatcher( - StringPieceHasSubstrMatcher(substring)); + net::test::StringPieceHasSubstrMatcher(substring)); } class MockHpackDecoderListener : public HpackDecoderListener { @@ -547,4 +547,4 @@ } // namespace } // namespace test -} // namespace net +} // namespace http2
diff --git a/net/third_party/http2/hpack/decoder/hpack_decoder_string_buffer.cc b/net/third_party/http2/hpack/decoder/hpack_decoder_string_buffer.cc index ecf0f155..bb95d14 100644 --- a/net/third_party/http2/hpack/decoder/hpack_decoder_string_buffer.cc +++ b/net/third_party/http2/hpack/decoder/hpack_decoder_string_buffer.cc
@@ -11,7 +11,7 @@ #include "net/third_party/http2/platform/api/http2_string.h" #include "net/third_party/http2/tools/http2_bug_tracker.h" -namespace net { +namespace http2 { std::ostream& operator<<(std::ostream& out, const HpackDecoderStringBuffer::State v) { @@ -232,4 +232,4 @@ return out; } -} // namespace net +} // namespace http2
diff --git a/net/third_party/http2/hpack/decoder/hpack_decoder_string_buffer.h b/net/third_party/http2/hpack/decoder/hpack_decoder_string_buffer.h index 5e89e7b..84b1355 100644 --- a/net/third_party/http2/hpack/decoder/hpack_decoder_string_buffer.h +++ b/net/third_party/http2/hpack/decoder/hpack_decoder_string_buffer.h
@@ -19,7 +19,7 @@ #include "net/third_party/http2/platform/api/http2_string.h" #include "net/third_party/http2/platform/api/http2_string_piece.h" -namespace net { +namespace http2 { class HTTP2_EXPORT_PRIVATE HpackDecoderStringBuffer { public: @@ -97,6 +97,6 @@ std::ostream& out, const HpackDecoderStringBuffer& v); -} // namespace net +} // namespace http2 #endif // NET_THIRD_PARTY_HTTP2_HPACK_DECODER_HPACK_DECODER_STRING_BUFFER_H_
diff --git a/net/third_party/http2/hpack/decoder/hpack_decoder_string_buffer_test.cc b/net/third_party/http2/hpack/decoder/hpack_decoder_string_buffer_test.cc index 6d69c03..7f78884 100644 --- a/net/third_party/http2/hpack/decoder/hpack_decoder_string_buffer_test.cc +++ b/net/third_party/http2/hpack/decoder/hpack_decoder_string_buffer_test.cc
@@ -18,7 +18,7 @@ using ::testing::AssertionSuccess; using ::testing::HasSubstr; -namespace net { +namespace http2 { namespace test { namespace { @@ -247,4 +247,4 @@ } // namespace } // namespace test -} // namespace net +} // namespace http2
diff --git a/net/third_party/http2/hpack/decoder/hpack_decoder_tables.cc b/net/third_party/http2/hpack/decoder/hpack_decoder_tables.cc index 5c309089..3ab13c6 100644 --- a/net/third_party/http2/hpack/decoder/hpack_decoder_tables.cc +++ b/net/third_party/http2/hpack/decoder/hpack_decoder_tables.cc
@@ -7,7 +7,7 @@ #include "base/logging.h" #include "net/third_party/http2/hpack/http2_hpack_constants.h" -namespace net { +namespace http2 { namespace { std::vector<HpackStringPair>* MakeStaticTable() { @@ -150,4 +150,4 @@ } } -} // namespace net +} // namespace http2
diff --git a/net/third_party/http2/hpack/decoder/hpack_decoder_tables.h b/net/third_party/http2/hpack/decoder/hpack_decoder_tables.h index 7b1a80f2..94d4f00 100644 --- a/net/third_party/http2/hpack/decoder/hpack_decoder_tables.h +++ b/net/third_party/http2/hpack/decoder/hpack_decoder_tables.h
@@ -26,7 +26,7 @@ //#include "net/third_party/http2/http2_constants.h" #include "net/third_party/http2/platform/api/http2_export.h" -namespace net { +namespace http2 { namespace test { class HpackDecoderTablesPeer; } // namespace test @@ -188,6 +188,6 @@ DISALLOW_COPY_AND_ASSIGN(HpackDecoderTables); }; -} // namespace net +} // namespace http2 #endif // NET_THIRD_PARTY_HTTP2_HPACK_DECODER_HPACK_DECODER_TABLES_H_
diff --git a/net/third_party/http2/hpack/decoder/hpack_decoder_tables_test.cc b/net/third_party/http2/hpack/decoder/hpack_decoder_tables_test.cc index dd761c0..121f5500 100644 --- a/net/third_party/http2/hpack/decoder/hpack_decoder_tables_test.cc +++ b/net/third_party/http2/hpack/decoder/hpack_decoder_tables_test.cc
@@ -20,7 +20,7 @@ using ::testing::AssertionResult; using ::testing::AssertionSuccess; -namespace net { +namespace http2 { namespace test { class HpackDecoderTablesPeer { public: @@ -262,4 +262,4 @@ } // namespace } // namespace test -} // namespace net +} // namespace http2
diff --git a/net/third_party/http2/hpack/decoder/hpack_decoder_test.cc b/net/third_party/http2/hpack/decoder/hpack_decoder_test.cc index bae29793..1694f6e 100644 --- a/net/third_party/http2/hpack/decoder/hpack_decoder_test.cc +++ b/net/third_party/http2/hpack/decoder/hpack_decoder_test.cc
@@ -33,7 +33,7 @@ using ::testing::ElementsAreArray; using ::testing::HasSubstr; -namespace net { +namespace http2 { namespace test { class HpackDecoderStatePeer { public: @@ -1217,4 +1217,4 @@ } // namespace } // namespace test -} // namespace net +} // namespace http2
diff --git a/net/third_party/http2/hpack/decoder/hpack_entry_collector.cc b/net/third_party/http2/hpack/decoder/hpack_entry_collector.cc index f3665fd..4b213a6 100644 --- a/net/third_party/http2/hpack/decoder/hpack_entry_collector.cc +++ b/net/third_party/http2/hpack/decoder/hpack_entry_collector.cc
@@ -15,7 +15,7 @@ using ::testing::AssertionResult; -namespace net { +namespace http2 { namespace test { namespace { @@ -305,4 +305,4 @@ } } // namespace test -} // namespace net +} // namespace http2
diff --git a/net/third_party/http2/hpack/decoder/hpack_entry_collector.h b/net/third_party/http2/hpack/decoder/hpack_entry_collector.h index 2f3a10b..a07d46ce 100644 --- a/net/third_party/http2/hpack/decoder/hpack_entry_collector.h +++ b/net/third_party/http2/hpack/decoder/hpack_entry_collector.h
@@ -21,7 +21,7 @@ #include "net/third_party/http2/platform/api/http2_string.h" #include "net/third_party/http2/platform/api/http2_string_piece.h" -namespace net { +namespace http2 { namespace test { class HpackEntryCollector : public HpackEntryDecoderListener { @@ -149,6 +149,6 @@ std::ostream& operator<<(std::ostream& out, const HpackEntryCollector& v); } // namespace test -} // namespace net +} // namespace http2 #endif // NET_THIRD_PARTY_HTTP2_HPACK_DECODER_HPACK_ENTRY_COLLECTOR_H_
diff --git a/net/third_party/http2/hpack/decoder/hpack_entry_decoder.cc b/net/third_party/http2/hpack/decoder/hpack_entry_decoder.cc index a5a0333..60582830 100644 --- a/net/third_party/http2/hpack/decoder/hpack_entry_decoder.cc +++ b/net/third_party/http2/hpack/decoder/hpack_entry_decoder.cc
@@ -10,7 +10,7 @@ #include "base/macros.h" #include "net/third_party/http2/tools/http2_bug_tracker.h" -namespace net { +namespace http2 { namespace { // Converts calls from HpackStringDecoder when decoding a header name into the // appropriate HpackEntryDecoderListener::OnName* calls. @@ -261,4 +261,4 @@ return out << static_cast<int>(state); } -} // namespace net +} // namespace http2
diff --git a/net/third_party/http2/hpack/decoder/hpack_entry_decoder.h b/net/third_party/http2/hpack/decoder/hpack_entry_decoder.h index 9cf46061..b1ff138 100644 --- a/net/third_party/http2/hpack/decoder/hpack_entry_decoder.h +++ b/net/third_party/http2/hpack/decoder/hpack_entry_decoder.h
@@ -20,7 +20,7 @@ #include "net/third_party/http2/platform/api/http2_export.h" #include "net/third_party/http2/platform/api/http2_string.h" -namespace net { +namespace http2 { class HTTP2_EXPORT_PRIVATE HpackEntryDecoder { public: @@ -80,6 +80,6 @@ std::ostream& out, HpackEntryDecoder::EntryDecoderState state); -} // namespace net +} // namespace http2 #endif // NET_THIRD_PARTY_HTTP2_HPACK_DECODER_HPACK_ENTRY_DECODER_H_
diff --git a/net/third_party/http2/hpack/decoder/hpack_entry_decoder_listener.cc b/net/third_party/http2/hpack/decoder/hpack_entry_decoder_listener.cc index 80f68ba6..8c73301 100644 --- a/net/third_party/http2/hpack/decoder/hpack_entry_decoder_listener.cc +++ b/net/third_party/http2/hpack/decoder/hpack_entry_decoder_listener.cc
@@ -6,7 +6,7 @@ #include "base/logging.h" -namespace net { +namespace http2 { void HpackEntryDecoderVLoggingListener::OnIndexedHeader(size_t index) { VLOG(1) << "OnIndexedHeader, index=" << index; @@ -78,4 +78,4 @@ } } -} // namespace net +} // namespace http2
diff --git a/net/third_party/http2/hpack/decoder/hpack_entry_decoder_listener.h b/net/third_party/http2/hpack/decoder/hpack_entry_decoder_listener.h index 4722859..d60119a 100644 --- a/net/third_party/http2/hpack/decoder/hpack_entry_decoder_listener.h +++ b/net/third_party/http2/hpack/decoder/hpack_entry_decoder_listener.h
@@ -14,7 +14,7 @@ #include "net/third_party/http2/hpack/http2_hpack_constants.h" #include "net/third_party/http2/platform/api/http2_export.h" -namespace net { +namespace http2 { class HTTP2_EXPORT_PRIVATE HpackEntryDecoderListener { public: @@ -105,6 +105,6 @@ void OnDynamicTableSizeUpdate(size_t size) override {} }; -} // namespace net +} // namespace http2 #endif // NET_THIRD_PARTY_HTTP2_HPACK_DECODER_HPACK_ENTRY_DECODER_LISTENER_H_
diff --git a/net/third_party/http2/hpack/decoder/hpack_entry_decoder_test.cc b/net/third_party/http2/hpack/decoder/hpack_entry_decoder_test.cc index a18eb9d..5b7500e 100644 --- a/net/third_party/http2/hpack/decoder/hpack_entry_decoder_test.cc +++ b/net/third_party/http2/hpack/decoder/hpack_entry_decoder_test.cc
@@ -17,7 +17,7 @@ using ::testing::AssertionResult; -namespace net { +namespace http2 { namespace test { namespace { @@ -209,4 +209,4 @@ } // namespace } // namespace test -} // namespace net +} // namespace http2
diff --git a/net/third_party/http2/hpack/decoder/hpack_entry_type_decoder.cc b/net/third_party/http2/hpack/decoder/hpack_entry_type_decoder.cc index 90b87055a..e3b2a3c 100644 --- a/net/third_party/http2/hpack/decoder/hpack_entry_type_decoder.cc +++ b/net/third_party/http2/hpack/decoder/hpack_entry_type_decoder.cc
@@ -8,7 +8,7 @@ #include "net/third_party/http2/platform/api/http2_string_utils.h" #include "net/third_party/http2/tools/http2_bug_tracker.h" -namespace net { +namespace http2 { Http2String HpackEntryTypeDecoder::DebugString() const { return Http2StrCat( @@ -355,4 +355,4 @@ return DecodeStatus::kDecodeError; } -} // namespace net +} // namespace http2
diff --git a/net/third_party/http2/hpack/decoder/hpack_entry_type_decoder.h b/net/third_party/http2/hpack/decoder/hpack_entry_type_decoder.h index 1e8f7aea..9d4d0229 100644 --- a/net/third_party/http2/hpack/decoder/hpack_entry_type_decoder.h +++ b/net/third_party/http2/hpack/decoder/hpack_entry_type_decoder.h
@@ -18,7 +18,7 @@ #include "net/third_party/http2/platform/api/http2_export.h" #include "net/third_party/http2/platform/api/http2_string.h" -namespace net { +namespace http2 { class HTTP2_EXPORT_PRIVATE HpackEntryTypeDecoder { public: @@ -51,5 +51,5 @@ HTTP2_EXPORT_PRIVATE std::ostream& operator<<(std::ostream& out, const HpackEntryTypeDecoder& v); -} // namespace net +} // namespace http2 #endif // NET_THIRD_PARTY_HTTP2_HPACK_DECODER_HPACK_ENTRY_TYPE_DECODER_H_
diff --git a/net/third_party/http2/hpack/decoder/hpack_entry_type_decoder_test.cc b/net/third_party/http2/hpack/decoder/hpack_entry_type_decoder_test.cc index 1782a2e..81341b2 100644 --- a/net/third_party/http2/hpack/decoder/hpack_entry_type_decoder_test.cc +++ b/net/third_party/http2/hpack/decoder/hpack_entry_type_decoder_test.cc
@@ -16,7 +16,7 @@ using ::testing::AssertionResult; using ::testing::AssertionSuccess; -namespace net { +namespace http2 { namespace test { namespace { const bool kReturnNonZeroOnFirst = true; @@ -84,4 +84,4 @@ } // namespace } // namespace test -} // namespace net +} // namespace http2
diff --git a/net/third_party/http2/hpack/decoder/hpack_string_collector.cc b/net/third_party/http2/hpack/decoder/hpack_string_collector.cc index 9fe31a7..b52aa82 100644 --- a/net/third_party/http2/hpack/decoder/hpack_string_collector.cc +++ b/net/third_party/http2/hpack/decoder/hpack_string_collector.cc
@@ -14,7 +14,9 @@ #include "net/third_party/http2/tools/failure.h" #include "testing/gtest/include/gtest/gtest.h" -namespace net { +using net::EscapeQueryParamValue; + +namespace http2 { namespace test { namespace { @@ -121,4 +123,4 @@ } } // namespace test -} // namespace net +} // namespace http2
diff --git a/net/third_party/http2/hpack/decoder/hpack_string_collector.h b/net/third_party/http2/hpack/decoder/hpack_string_collector.h index adfdfcd..af4aa6e8 100644 --- a/net/third_party/http2/hpack/decoder/hpack_string_collector.h +++ b/net/third_party/http2/hpack/decoder/hpack_string_collector.h
@@ -16,7 +16,7 @@ #include "net/third_party/http2/platform/api/http2_string_piece.h" #include "testing/gtest/include/gtest/gtest.h" -namespace net { +namespace http2 { namespace test { // Records the callbacks associated with a decoding a string; must @@ -58,6 +58,6 @@ std::ostream& operator<<(std::ostream& out, const HpackStringCollector& v); } // namespace test -} // namespace net +} // namespace http2 #endif // NET_THIRD_PARTY_HTTP2_HPACK_DECODER_HPACK_STRING_COLLECTOR_H_
diff --git a/net/third_party/http2/hpack/decoder/hpack_string_decoder.cc b/net/third_party/http2/hpack/decoder/hpack_string_decoder.cc index 6d4594a9..4ffabc8 100644 --- a/net/third_party/http2/hpack/decoder/hpack_string_decoder.cc +++ b/net/third_party/http2/hpack/decoder/hpack_string_decoder.cc
@@ -6,7 +6,7 @@ #include "net/third_party/http2/platform/api/http2_string_utils.h" -namespace net { +namespace http2 { Http2String HpackStringDecoder::DebugString() const { return Http2StrCat("HpackStringDecoder(state=", StateToString(state_), @@ -32,4 +32,4 @@ return out << v.DebugString(); } -} // namespace net +} // namespace http2
diff --git a/net/third_party/http2/hpack/decoder/hpack_string_decoder.h b/net/third_party/http2/hpack/decoder/hpack_string_decoder.h index 52b7cf5a..395d78b 100644 --- a/net/third_party/http2/hpack/decoder/hpack_string_decoder.h +++ b/net/third_party/http2/hpack/decoder/hpack_string_decoder.h
@@ -21,7 +21,7 @@ #include "net/third_party/http2/platform/api/http2_export.h" #include "net/third_party/http2/platform/api/http2_string.h" -namespace net { +namespace http2 { // Decodes a single string in an HPACK header entry. The high order bit of // the first byte of the length is the H (Huffman) bit indicating whether @@ -202,5 +202,5 @@ HTTP2_EXPORT_PRIVATE std::ostream& operator<<(std::ostream& out, const HpackStringDecoder& v); -} // namespace net +} // namespace http2 #endif // NET_THIRD_PARTY_HTTP2_HPACK_DECODER_HPACK_STRING_DECODER_H_
diff --git a/net/third_party/http2/hpack/decoder/hpack_string_decoder_listener.cc b/net/third_party/http2/hpack/decoder/hpack_string_decoder_listener.cc index 35666db..b373408 100644 --- a/net/third_party/http2/hpack/decoder/hpack_string_decoder_listener.cc +++ b/net/third_party/http2/hpack/decoder/hpack_string_decoder_listener.cc
@@ -6,7 +6,7 @@ #include "base/logging.h" -namespace net { +namespace http2 { namespace test { void HpackStringDecoderVLoggingListener::OnStringStart(bool huffman_encoded, @@ -33,4 +33,4 @@ } } // namespace test -} // namespace net +} // namespace http2
diff --git a/net/third_party/http2/hpack/decoder/hpack_string_decoder_listener.h b/net/third_party/http2/hpack/decoder/hpack_string_decoder_listener.h index 768ad4e..b5bd3cc 100644 --- a/net/third_party/http2/hpack/decoder/hpack_string_decoder_listener.h +++ b/net/third_party/http2/hpack/decoder/hpack_string_decoder_listener.h
@@ -14,7 +14,7 @@ #include "net/third_party/http2/platform/api/http2_export.h" -namespace net { +namespace http2 { namespace test { // HpackStringDecoder methods require a listener that implements the methods @@ -57,6 +57,6 @@ }; } // namespace test -} // namespace net +} // namespace http2 #endif // NET_THIRD_PARTY_HTTP2_HPACK_DECODER_HPACK_STRING_DECODER_LISTENER_H_
diff --git a/net/third_party/http2/hpack/decoder/hpack_string_decoder_test.cc b/net/third_party/http2/hpack/decoder/hpack_string_decoder_test.cc index 87277b4..ae0cb13 100644 --- a/net/third_party/http2/hpack/decoder/hpack_string_decoder_test.cc +++ b/net/third_party/http2/hpack/decoder/hpack_string_decoder_test.cc
@@ -17,7 +17,7 @@ using ::testing::AssertionResult; -namespace net { +namespace http2 { namespace test { namespace { @@ -153,4 +153,4 @@ } // namespace } // namespace test -} // namespace net +} // namespace http2
diff --git a/net/third_party/http2/hpack/decoder/hpack_varint_decoder.cc b/net/third_party/http2/hpack/decoder/hpack_varint_decoder.cc index a9e3798dc..148640d6 100644 --- a/net/third_party/http2/hpack/decoder/hpack_varint_decoder.cc +++ b/net/third_party/http2/hpack/decoder/hpack_varint_decoder.cc
@@ -6,7 +6,7 @@ #include "net/third_party/http2/platform/api/http2_string_utils.h" -namespace net { +namespace http2 { DecodeStatus HpackVarintDecoder::Start(uint8_t prefix_value, uint8_t prefix_mask, @@ -92,4 +92,4 @@ return Resume(db); } -} // namespace net +} // namespace http2
diff --git a/net/third_party/http2/hpack/decoder/hpack_varint_decoder.h b/net/third_party/http2/hpack/decoder/hpack_varint_decoder.h index 29d71699..f5fa3f2 100644 --- a/net/third_party/http2/hpack/decoder/hpack_varint_decoder.h +++ b/net/third_party/http2/hpack/decoder/hpack_varint_decoder.h
@@ -33,7 +33,7 @@ #include "net/third_party/http2/platform/api/http2_export.h" #include "net/third_party/http2/platform/api/http2_string.h" -namespace net { +namespace http2 { // Decodes an HPACK variable length unsigned integer, in a resumable fashion // so it can handle running out of input in the DecodeBuffer. Call Start or // StartExtended the first time (when decoding the byte that contains the @@ -113,6 +113,6 @@ uint32_t offset_ = 0; }; -} // namespace net +} // namespace http2 #endif // NET_THIRD_PARTY_HTTP2_HPACK_DECODER_HPACK_VARINT_DECODER_H_
diff --git a/net/third_party/http2/hpack/decoder/hpack_varint_decoder_test.cc b/net/third_party/http2/hpack/decoder/hpack_varint_decoder_test.cc index 66c2f283..c9fcb13 100644 --- a/net/third_party/http2/hpack/decoder/hpack_varint_decoder_test.cc +++ b/net/third_party/http2/hpack/decoder/hpack_varint_decoder_test.cc
@@ -28,7 +28,7 @@ using ::testing::AssertionFailure; using ::testing::AssertionSuccess; -namespace net { +namespace http2 { namespace test { namespace { @@ -380,4 +380,4 @@ } // namespace } // namespace test -} // namespace net +} // namespace http2
diff --git a/net/third_party/http2/hpack/decoder/hpack_whole_entry_buffer.cc b/net/third_party/http2/hpack/decoder/hpack_whole_entry_buffer.cc index 1d178e3..ad70a68 100644 --- a/net/third_party/http2/hpack/decoder/hpack_whole_entry_buffer.cc +++ b/net/third_party/http2/hpack/decoder/hpack_whole_entry_buffer.cc
@@ -8,7 +8,7 @@ #include "base/trace_event/memory_usage_estimator.h" #include "net/third_party/http2/platform/api/http2_string_utils.h" -namespace net { +namespace http2 { HpackWholeEntryBuffer::HpackWholeEntryBuffer(HpackWholeEntryListener* listener, size_t max_string_size_bytes) @@ -137,4 +137,4 @@ } } -} // namespace net +} // namespace http2
diff --git a/net/third_party/http2/hpack/decoder/hpack_whole_entry_buffer.h b/net/third_party/http2/hpack/decoder/hpack_whole_entry_buffer.h index 836a5c2..35c9ad3 100644 --- a/net/third_party/http2/hpack/decoder/hpack_whole_entry_buffer.h +++ b/net/third_party/http2/hpack/decoder/hpack_whole_entry_buffer.h
@@ -20,7 +20,7 @@ #include "net/third_party/http2/platform/api/http2_export.h" #include "net/third_party/http2/platform/api/http2_string_piece.h" -namespace net { +namespace http2 { // TODO(jamessynge): Consider renaming HpackEntryDecoderListener to // HpackEntryPartsListener or HpackEntryFragmentsListener. @@ -99,6 +99,6 @@ DISALLOW_COPY_AND_ASSIGN(HpackWholeEntryBuffer); }; -} // namespace net +} // namespace http2 #endif // NET_THIRD_PARTY_HTTP2_HPACK_DECODER_HPACK_WHOLE_ENTRY_BUFFER_H_
diff --git a/net/third_party/http2/hpack/decoder/hpack_whole_entry_buffer_test.cc b/net/third_party/http2/hpack/decoder/hpack_whole_entry_buffer_test.cc index 20670898..bbf2964 100644 --- a/net/third_party/http2/hpack/decoder/hpack_whole_entry_buffer_test.cc +++ b/net/third_party/http2/hpack/decoder/hpack_whole_entry_buffer_test.cc
@@ -20,7 +20,7 @@ using ::testing::StrictMock; using ::testing::_; -namespace net { +namespace http2 { namespace test { namespace { @@ -29,10 +29,10 @@ // Define HasSubstr() for Http2StringPiece arguments. // This shadows ::testing::HasSubstr(), which only works on argument types // that can be implicitly converted to a Http2String. -inline ::testing::PolymorphicMatcher<StringPieceHasSubstrMatcher> HasSubstr( - const Http2String& substring) { +inline ::testing::PolymorphicMatcher<net::test::StringPieceHasSubstrMatcher> +HasSubstr(const Http2String& substring) { return ::testing::MakePolymorphicMatcher( - StringPieceHasSubstrMatcher(substring)); + net::test::StringPieceHasSubstrMatcher(substring)); } class MockHpackWholeEntryListener : public HpackWholeEntryListener { @@ -216,4 +216,4 @@ } // namespace } // namespace test -} // namespace net +} // namespace http2
diff --git a/net/third_party/http2/hpack/decoder/hpack_whole_entry_listener.cc b/net/third_party/http2/hpack/decoder/hpack_whole_entry_listener.cc index 52e46f1..cf0a8538 100644 --- a/net/third_party/http2/hpack/decoder/hpack_whole_entry_listener.cc +++ b/net/third_party/http2/hpack/decoder/hpack_whole_entry_listener.cc
@@ -4,7 +4,7 @@ #include "net/third_party/http2/hpack/decoder/hpack_whole_entry_listener.h" -namespace net { +namespace http2 { HpackWholeEntryListener::~HpackWholeEntryListener() = default; @@ -30,4 +30,4 @@ return static_instance; } -} // namespace net +} // namespace http2
diff --git a/net/third_party/http2/hpack/decoder/hpack_whole_entry_listener.h b/net/third_party/http2/hpack/decoder/hpack_whole_entry_listener.h index 8b5dedb..ca47099 100644 --- a/net/third_party/http2/hpack/decoder/hpack_whole_entry_listener.h +++ b/net/third_party/http2/hpack/decoder/hpack_whole_entry_listener.h
@@ -16,7 +16,7 @@ #include "net/third_party/http2/platform/api/http2_export.h" #include "net/third_party/http2/platform/api/http2_string_piece.h" -namespace net { +namespace http2 { class HTTP2_EXPORT_PRIVATE HpackWholeEntryListener { public: @@ -75,6 +75,6 @@ static HpackWholeEntryNoOpListener* NoOpListener(); }; -} // namespace net +} // namespace http2 #endif // NET_THIRD_PARTY_HTTP2_HPACK_DECODER_HPACK_WHOLE_ENTRY_LISTENER_H_
diff --git a/net/third_party/http2/hpack/hpack_string.cc b/net/third_party/http2/hpack/hpack_string.cc index 5e9423d..f08bd58 100644 --- a/net/third_party/http2/hpack/hpack_string.cc +++ b/net/third_party/http2/hpack/hpack_string.cc
@@ -9,7 +9,7 @@ #include "base/logging.h" #include "net/third_party/http2/platform/api/http2_string_utils.h" -namespace net { +namespace http2 { HpackString::HpackString(const char* data) : str_(data) {} HpackString::HpackString(Http2StringPiece str) : str_(str.as_string()) {} @@ -69,4 +69,4 @@ return os; } -} // namespace net +} // namespace http2
diff --git a/net/third_party/http2/hpack/hpack_string.h b/net/third_party/http2/hpack/hpack_string.h index 6452911..12acbe2 100644 --- a/net/third_party/http2/hpack/hpack_string.h +++ b/net/third_party/http2/hpack/hpack_string.h
@@ -18,7 +18,7 @@ #include "net/third_party/http2/platform/api/http2_string.h" #include "net/third_party/http2/platform/api/http2_string_piece.h" -namespace net { +namespace http2 { class HTTP2_EXPORT_PRIVATE HpackString { public: @@ -72,6 +72,6 @@ HTTP2_EXPORT_PRIVATE std::ostream& operator<<(std::ostream& os, const HpackStringPair& p); -} // namespace net +} // namespace http2 #endif // NET_THIRD_PARTY_HTTP2_HPACK_HPACK_STRING_H_
diff --git a/net/third_party/http2/hpack/hpack_string_test.cc b/net/third_party/http2/hpack/hpack_string_test.cc index 97de9e4..b4fa7e4c 100644 --- a/net/third_party/http2/hpack/hpack_string_test.cc +++ b/net/third_party/http2/hpack/hpack_string_test.cc
@@ -16,7 +16,7 @@ using ::testing::AssertionResult; using ::testing::AssertionSuccess; -namespace net { +namespace http2 { namespace test { namespace { @@ -146,4 +146,4 @@ } // namespace } // namespace test -} // namespace net +} // namespace http2
diff --git a/net/third_party/http2/hpack/http2_hpack_constants.cc b/net/third_party/http2/hpack/http2_hpack_constants.cc index dc866af..2dc39a5e 100644 --- a/net/third_party/http2/hpack/http2_hpack_constants.cc +++ b/net/third_party/http2/hpack/http2_hpack_constants.cc
@@ -8,7 +8,7 @@ #include "net/third_party/http2/platform/api/http2_string_utils.h" -namespace net { +namespace http2 { Http2String HpackEntryTypeToString(HpackEntryType v) { switch (v) { @@ -30,4 +30,4 @@ return out << HpackEntryTypeToString(v); } -} // namespace net +} // namespace http2
diff --git a/net/third_party/http2/hpack/http2_hpack_constants.h b/net/third_party/http2/hpack/http2_hpack_constants.h index 72ea817..896fbd5 100644 --- a/net/third_party/http2/hpack/http2_hpack_constants.h +++ b/net/third_party/http2/hpack/http2_hpack_constants.h
@@ -15,7 +15,7 @@ #include "net/third_party/http2/platform/api/http2_export.h" #include "net/third_party/http2/platform/api/http2_string.h" -namespace net { +namespace http2 { const size_t kFirstDynamicTableIndex = 62; @@ -57,6 +57,6 @@ // Inserts the name of the enum member into |out|. HTTP2_EXPORT_PRIVATE std::ostream& operator<<(std::ostream& out, HpackEntryType v); -} // namespace net +} // namespace http2 #endif // NET_THIRD_PARTY_HTTP2_HPACK_HTTP2_HPACK_CONSTANTS_H_
diff --git a/net/third_party/http2/hpack/http2_hpack_constants_test.cc b/net/third_party/http2/hpack/http2_hpack_constants_test.cc index 87f2783..06ea44e 100644 --- a/net/third_party/http2/hpack/http2_hpack_constants_test.cc +++ b/net/third_party/http2/hpack/http2_hpack_constants_test.cc
@@ -8,7 +8,7 @@ #include "testing/gmock/include/gmock/gmock.h" #include "testing/gtest/include/gtest/gtest.h" -namespace net { +namespace http2 { namespace test { namespace { @@ -31,4 +31,4 @@ } // namespace } // namespace test -} // namespace net +} // namespace http2
diff --git a/net/third_party/http2/hpack/huffman/hpack_huffman_decoder.cc b/net/third_party/http2/hpack/huffman/hpack_huffman_decoder.cc index 4a81830..72566e3 100644 --- a/net/third_party/http2/hpack/huffman/hpack_huffman_decoder.cc +++ b/net/third_party/http2/hpack/huffman/hpack_huffman_decoder.cc
@@ -28,7 +28,7 @@ // TODO(jamessynge): Remove use of binary literals, that is a C++ 14 feature. -namespace net { +namespace http2 { namespace { // HuffmanCode is used to store the codes associated with symbols (a pattern of @@ -536,4 +536,4 @@ return bit_buffer_.DebugString(); } -} // namespace net +} // namespace http2
diff --git a/net/third_party/http2/hpack/huffman/hpack_huffman_decoder.h b/net/third_party/http2/hpack/huffman/hpack_huffman_decoder.h index a7fc4d9..f339a12 100644 --- a/net/third_party/http2/hpack/huffman/hpack_huffman_decoder.h +++ b/net/third_party/http2/hpack/huffman/hpack_huffman_decoder.h
@@ -20,7 +20,7 @@ #include "net/third_party/http2/platform/api/http2_string.h" #include "net/third_party/http2/platform/api/http2_string_piece.h" -namespace net { +namespace http2 { // HuffmanAccumulator is used to store bits during decoding, e.g. next N bits // that have not yet been decoded, but have been extracted from the encoded @@ -142,6 +142,6 @@ return out << v.DebugString(); } -} // namespace net +} // namespace http2 #endif // NET_THIRD_PARTY_HTTP2_HPACK_HUFFMAN_HPACK_HUFFMAN_DECODER_H_
diff --git a/net/third_party/http2/hpack/huffman/hpack_huffman_decoder_test.cc b/net/third_party/http2/hpack/huffman/hpack_huffman_decoder_test.cc index 77bb338b..db980073 100644 --- a/net/third_party/http2/hpack/huffman/hpack_huffman_decoder_test.cc +++ b/net/third_party/http2/hpack/huffman/hpack_huffman_decoder_test.cc
@@ -18,7 +18,7 @@ using ::testing::AssertionResult; -namespace net { +namespace http2 { namespace test { namespace { @@ -261,4 +261,4 @@ } // namespace } // namespace test -} // namespace net +} // namespace http2
diff --git a/net/third_party/http2/hpack/tools/hpack_block_builder.cc b/net/third_party/http2/hpack/tools/hpack_block_builder.cc index 90454090..16e0b0b 100644 --- a/net/third_party/http2/hpack/tools/hpack_block_builder.cc +++ b/net/third_party/http2/hpack/tools/hpack_block_builder.cc
@@ -7,7 +7,7 @@ #include "net/third_party/http2/tools/http2_bug_tracker.h" #include "testing/gtest/include/gtest/gtest.h" -namespace net { +namespace http2 { namespace test { void HpackBlockBuilder::AppendHighBitsAndVarint(uint8_t high_bits, @@ -82,4 +82,4 @@ } } // namespace test -} // namespace net +} // namespace http2
diff --git a/net/third_party/http2/hpack/tools/hpack_block_builder.h b/net/third_party/http2/hpack/tools/hpack_block_builder.h index 48c0703..3cd0b78 100644 --- a/net/third_party/http2/hpack/tools/hpack_block_builder.h +++ b/net/third_party/http2/hpack/tools/hpack_block_builder.h
@@ -22,7 +22,7 @@ #include "net/third_party/http2/platform/api/http2_string_piece.h" #include "testing/gtest/include/gtest/gtest.h" -namespace net { +namespace http2 { namespace test { class HpackBlockBuilder { @@ -89,6 +89,6 @@ }; } // namespace test -} // namespace net +} // namespace http2 #endif // NET_THIRD_PARTY_HTTP2_HPACK_TOOLS_HPACK_BLOCK_BUILDER_H_
diff --git a/net/third_party/http2/hpack/tools/hpack_block_builder_test.cc b/net/third_party/http2/hpack/tools/hpack_block_builder_test.cc index e59ea19..4cd786e 100644 --- a/net/third_party/http2/hpack/tools/hpack_block_builder_test.cc +++ b/net/third_party/http2/hpack/tools/hpack_block_builder_test.cc
@@ -7,7 +7,7 @@ #include "net/third_party/http2/platform/api/http2_string_utils.h" #include "testing/gtest/include/gtest/gtest.h" -namespace net { +namespace http2 { namespace test { namespace { const bool kUncompressed = false; @@ -165,4 +165,4 @@ } // namespace } // namespace test -} // namespace net +} // namespace http2
diff --git a/net/third_party/http2/hpack/tools/hpack_example.cc b/net/third_party/http2/hpack/tools/hpack_example.cc index b97d9f0..db83642 100644 --- a/net/third_party/http2/hpack/tools/hpack_example.cc +++ b/net/third_party/http2/hpack/tools/hpack_example.cc
@@ -10,7 +10,7 @@ #include "net/third_party/http2/platform/api/http2_string_utils.h" #include "net/third_party/http2/tools/http2_bug_tracker.h" -namespace net { +namespace http2 { namespace test { namespace { @@ -55,4 +55,4 @@ } } // namespace test -} // namespace net +} // namespace http2
diff --git a/net/third_party/http2/hpack/tools/hpack_example.h b/net/third_party/http2/hpack/tools/hpack_example.h index c9b36c07..b122afe3b 100644 --- a/net/third_party/http2/hpack/tools/hpack_example.h +++ b/net/third_party/http2/hpack/tools/hpack_example.h
@@ -20,12 +20,12 @@ // // (excluding the leading "//"). -namespace net { +namespace http2 { namespace test { Http2String HpackExampleToStringOrDie(Http2StringPiece example); } // namespace test -} // namespace net +} // namespace http2 #endif // NET_THIRD_PARTY_HTTP2_HPACK_TOOLS_HPACK_EXAMPLE_H_
diff --git a/net/third_party/http2/http2_constants.cc b/net/third_party/http2/http2_constants.cc index 13b700592..0b11c37 100644 --- a/net/third_party/http2/http2_constants.cc +++ b/net/third_party/http2/http2_constants.cc
@@ -11,7 +11,7 @@ #include "net/third_party/http2/platform/api/http2_string_piece.h" #include "net/third_party/http2/platform/api/http2_string_utils.h" -namespace net { +namespace http2 { Http2String Http2FrameTypeToString(Http2FrameType v) { switch (v) { @@ -154,4 +154,4 @@ return Http2SettingsParameterToString(static_cast<uint32_t>(v)); } -} // namespace net +} // namespace http2
diff --git a/net/third_party/http2/http2_constants.h b/net/third_party/http2/http2_constants.h index 59a3d73..da60e95 100644 --- a/net/third_party/http2/http2_constants.h +++ b/net/third_party/http2/http2_constants.h
@@ -15,7 +15,7 @@ #include "net/third_party/http2/platform/api/http2_export.h" #include "net/third_party/http2/platform/api/http2_string.h" -namespace net { +namespace http2 { // TODO(jamessynge): create http2_simple_types for types similar to // SpdyStreamId, but not for structures like Http2FrameHeader. Then will be @@ -257,6 +257,6 @@ static constexpr uint32_t MaximumMaxFrameSize() { return (1 << 24) - 1; } }; -} // namespace net +} // namespace http2 #endif // NET_THIRD_PARTY_HTTP2_HTTP2_CONSTANTS_H_
diff --git a/net/third_party/http2/http2_constants_test.cc b/net/third_party/http2/http2_constants_test.cc index 49ffbbe8..9b59029 100644 --- a/net/third_party/http2/http2_constants_test.cc +++ b/net/third_party/http2/http2_constants_test.cc
@@ -5,7 +5,7 @@ #include "net/third_party/http2/http2_constants.h" #include "testing/gtest/include/gtest/gtest.h" -namespace net { +namespace http2 { namespace test { namespace { @@ -267,4 +267,4 @@ } // namespace } // namespace test -} // namespace net +} // namespace http2
diff --git a/net/third_party/http2/http2_constants_test_util.cc b/net/third_party/http2/http2_constants_test_util.cc index 0576936..340817c 100644 --- a/net/third_party/http2/http2_constants_test_util.cc +++ b/net/third_party/http2/http2_constants_test_util.cc
@@ -4,7 +4,7 @@ #include "net/third_party/http2/http2_constants_test_util.h" -namespace net { +namespace http2 { namespace test { std::vector<Http2ErrorCode> AllHttp2ErrorCodes() { @@ -81,4 +81,4 @@ } } // namespace test -} // namespace net +} // namespace http2
diff --git a/net/third_party/http2/http2_constants_test_util.h b/net/third_party/http2/http2_constants_test_util.h index 4eadba6..7ebe2d6 100644 --- a/net/third_party/http2/http2_constants_test_util.h +++ b/net/third_party/http2/http2_constants_test_util.h
@@ -9,7 +9,7 @@ #include "net/third_party/http2/http2_constants.h" -namespace net { +namespace http2 { namespace test { // Returns a vector of all supported RST_STREAM and GOAWAY error codes. @@ -28,6 +28,6 @@ uint8_t InvalidFlagMaskForFrameType(Http2FrameType type); } // namespace test -} // namespace net +} // namespace http2 #endif // NET_THIRD_PARTY_HTTP2_HTTP2_CONSTANTS_TEST_UTIL_H_
diff --git a/net/third_party/http2/http2_structures.cc b/net/third_party/http2/http2_structures.cc index c4452dc..5465ce2 100644 --- a/net/third_party/http2/http2_structures.cc +++ b/net/third_party/http2/http2_structures.cc
@@ -9,7 +9,7 @@ #include "net/third_party/http2/platform/api/http2_string_utils.h" -namespace net { +namespace http2 { // Http2FrameHeader: @@ -129,4 +129,4 @@ return out << "origin_length=" << v.origin_length; } -} // namespace net +} // namespace http2
diff --git a/net/third_party/http2/http2_structures.h b/net/third_party/http2/http2_structures.h index d8c65b5..df18ac38 100644 --- a/net/third_party/http2/http2_structures.h +++ b/net/third_party/http2/http2_structures.h
@@ -35,7 +35,7 @@ #include "net/third_party/http2/platform/api/http2_export.h" #include "net/third_party/http2/platform/api/http2_string.h" -namespace net { +namespace http2 { struct HTTP2_EXPORT_PRIVATE Http2FrameHeader { Http2FrameHeader() {} @@ -320,6 +320,6 @@ HTTP2_EXPORT_PRIVATE std::ostream& operator<<(std::ostream& out, const Http2AltSvcFields& v); -} // namespace net +} // namespace http2 #endif // NET_THIRD_PARTY_HTTP2_HTTP2_STRUCTURES_H_
diff --git a/net/third_party/http2/http2_structures_test.cc b/net/third_party/http2/http2_structures_test.cc index d7f5884..05430ba 100644 --- a/net/third_party/http2/http2_structures_test.cc +++ b/net/third_party/http2/http2_structures_test.cc
@@ -34,7 +34,7 @@ using ::testing::Values; using ::testing::ValuesIn; -namespace net { +namespace http2 { namespace test { namespace { @@ -486,4 +486,4 @@ } // namespace } // namespace test -} // namespace net +} // namespace http2
diff --git a/net/third_party/http2/http2_structures_test_util.cc b/net/third_party/http2/http2_structures_test_util.cc index 2282dc32..4e17e7e 100644 --- a/net/third_party/http2/http2_structures_test_util.cc +++ b/net/third_party/http2/http2_structures_test_util.cc
@@ -9,7 +9,7 @@ #include "net/third_party/http2/http2_structures.h" #include "net/third_party/http2/tools/http2_random.h" -namespace net { +namespace http2 { namespace test { void Randomize(Http2FrameHeader* p, RandomBase* rng) { @@ -104,4 +104,4 @@ } } // namespace test -} // namespace net +} // namespace http2
diff --git a/net/third_party/http2/http2_structures_test_util.h b/net/third_party/http2/http2_structures_test_util.h index 62b8f9b..4ea8c945 100644 --- a/net/third_party/http2/http2_structures_test_util.h +++ b/net/third_party/http2/http2_structures_test_util.h
@@ -10,7 +10,7 @@ #include "net/third_party/http2/tools/http2_frame_builder.h" #include "testing/gtest/include/gtest/gtest.h" -namespace net { +namespace http2 { namespace test { class RandomBase; @@ -55,6 +55,6 @@ bool FrameCanHaveHpackPayload(const Http2FrameHeader& header); } // namespace test -} // namespace net +} // namespace http2 #endif // NET_THIRD_PARTY_HTTP2_HTTP2_STRUCTURES_TEST_UTIL_H_
diff --git a/net/third_party/http2/platform/api/http2_ptr_util.h b/net/third_party/http2/platform/api/http2_ptr_util.h index cd502168..6b4f0d6 100644 --- a/net/third_party/http2/platform/api/http2_ptr_util.h +++ b/net/third_party/http2/platform/api/http2_ptr_util.h
@@ -10,13 +10,13 @@ #include "net/third_party/http2/platform/impl/http2_ptr_util_impl.h" -namespace net { +namespace http2 { template <typename T, typename... Args> std::unique_ptr<T> Http2MakeUnique(Args&&... args) { return Http2MakeUniqueImpl<T>(std::forward<Args>(args)...); } -} // namespace net +} // namespace http2 #endif // NET_THIRD_PARTY_HTTP2_PLATFORM_API_HTTP2_PTR_UTIL_H_
diff --git a/net/third_party/http2/platform/api/http2_reconstruct_object.h b/net/third_party/http2/platform/api/http2_reconstruct_object.h index 198e52c9..329651b4 100644 --- a/net/third_party/http2/platform/api/http2_reconstruct_object.h +++ b/net/third_party/http2/platform/api/http2_reconstruct_object.h
@@ -9,7 +9,7 @@ #include "net/third_party/http2/platform/impl/http2_reconstruct_object_impl.h" -namespace net { +namespace http2 { namespace test { class RandomBase; @@ -29,6 +29,6 @@ } } // namespace test -} // namespace net +} // namespace http2 #endif // NET_THIRD_PARTY_HTTP2_PLATFORM_API_HTTP2_RECONSTRUCT_OBJECT_H_
diff --git a/net/third_party/http2/platform/api/http2_string.h b/net/third_party/http2/platform/api/http2_string.h index 6cf7f0b..078c2f1 100644 --- a/net/third_party/http2/platform/api/http2_string.h +++ b/net/third_party/http2/platform/api/http2_string.h
@@ -7,10 +7,10 @@ #include "net/third_party/http2/platform/impl/http2_string_impl.h" -namespace net { +namespace http2 { using Http2String = Http2StringImpl; -} // namespace net +} // namespace http2 #endif // NET_THIRD_PARTY_HTTP2_PLATFORM_API_HTTP2_STRING_H_
diff --git a/net/third_party/http2/platform/api/http2_string_piece.h b/net/third_party/http2/platform/api/http2_string_piece.h index 43bb172..20d90ed 100644 --- a/net/third_party/http2/platform/api/http2_string_piece.h +++ b/net/third_party/http2/platform/api/http2_string_piece.h
@@ -7,10 +7,10 @@ #include "net/third_party/http2/platform/impl/http2_string_piece_impl.h" -namespace net { +namespace http2 { using Http2StringPiece = Http2StringPieceImpl; -} // namespace net +} // namespace http2 #endif // NET_THIRD_PARTY_HTTP2_PLATFORM_API_HTTP2_STRING_PIECE_H_
diff --git a/net/third_party/http2/platform/api/http2_string_utils.h b/net/third_party/http2/platform/api/http2_string_utils.h index 0c576b6..af904ed 100644 --- a/net/third_party/http2/platform/api/http2_string_utils.h +++ b/net/third_party/http2/platform/api/http2_string_utils.h
@@ -11,7 +11,7 @@ #include "net/third_party/http2/platform/api/http2_string_piece.h" #include "net/third_party/http2/platform/impl/http2_string_utils_impl.h" -namespace net { +namespace http2 { template <typename... Args> inline Http2String Http2StrCat(const Args&... args) { @@ -40,6 +40,6 @@ return Http2HexDumpImpl(data); } -} // namespace net +} // namespace http2 #endif // NET_THIRD_PARTY_HTTP2_PLATFORM_API_HTTP2_STRING_UTILS_H_
diff --git a/net/third_party/http2/platform/api/http2_string_utils_test.cc b/net/third_party/http2/platform/api/http2_string_utils_test.cc index 1d6197e..ca51ed6 100644 --- a/net/third_party/http2/platform/api/http2_string_utils_test.cc +++ b/net/third_party/http2/platform/api/http2_string_utils_test.cc
@@ -9,7 +9,7 @@ #include "net/third_party/http2/platform/api/http2_string_piece.h" #include "testing/gtest/include/gtest/gtest.h" -namespace net { +namespace http2 { namespace test { namespace { @@ -175,4 +175,4 @@ } // namespace } // namespace test -} // namespace net +} // namespace http2
diff --git a/net/third_party/http2/platform/impl/http2_ptr_util_impl.h b/net/third_party/http2/platform/impl/http2_ptr_util_impl.h index f564a81..c1fe2bd 100644 --- a/net/third_party/http2/platform/impl/http2_ptr_util_impl.h +++ b/net/third_party/http2/platform/impl/http2_ptr_util_impl.h
@@ -8,13 +8,13 @@ #include <memory> #include <utility> -namespace net { +namespace http2 { template <typename T, typename... Args> std::unique_ptr<T> Http2MakeUniqueImpl(Args&&... args) { return std::make_unique<T>(std::forward<Args>(args)...); } -} // namespace net +} // namespace http2 #endif // NET_THIRD_PARTY_HTTP2_PLATFORM_IMPL_HTTP2_PTR_UTIL_IMPL_H_
diff --git a/net/third_party/http2/platform/impl/http2_reconstruct_object_impl.h b/net/third_party/http2/platform/impl/http2_reconstruct_object_impl.h index c769b474..4bac727 100644 --- a/net/third_party/http2/platform/impl/http2_reconstruct_object_impl.h +++ b/net/third_party/http2/platform/impl/http2_reconstruct_object_impl.h
@@ -7,7 +7,7 @@ #include <utility> -namespace net { +namespace http2 { namespace test { class RandomBase; @@ -29,6 +29,6 @@ } } // namespace test -} // namespace net +} // namespace http2 #endif // NET_THIRD_PARTY_HTTP2_PLATFORM_IMPL_HTTP2_RECONSTRUCT_OBJECT_IMPL_H_
diff --git a/net/third_party/http2/platform/impl/http2_string_impl.h b/net/third_party/http2/platform/impl/http2_string_impl.h index 67761c7..91a23c6 100644 --- a/net/third_party/http2/platform/impl/http2_string_impl.h +++ b/net/third_party/http2/platform/impl/http2_string_impl.h
@@ -7,10 +7,10 @@ #include <string> -namespace net { +namespace http2 { using Http2StringImpl = std::string; -} // namespace net +} // namespace http2 #endif // NET_THIRD_PARTY_HTTP2_PLATFORM_IMPL_HTTP2_STRING_IMPL_H_
diff --git a/net/third_party/http2/platform/impl/http2_string_piece_impl.h b/net/third_party/http2/platform/impl/http2_string_piece_impl.h index c6b8eae30..338fafd 100644 --- a/net/third_party/http2/platform/impl/http2_string_piece_impl.h +++ b/net/third_party/http2/platform/impl/http2_string_piece_impl.h
@@ -7,10 +7,10 @@ #include "base/strings/string_piece.h" -namespace net { +namespace http2 { using Http2StringPieceImpl = base::StringPiece; -} // namespace net +} // namespace http2 #endif // NET_THIRD_PARTY_HTTP2_PLATFORM_IMPL_HTTP2_STRING_PIECE_IMPL_H_
diff --git a/net/third_party/http2/platform/impl/http2_string_utils_impl.h b/net/third_party/http2/platform/impl/http2_string_utils_impl.h index 48f02ed..342bbfef 100644 --- a/net/third_party/http2/platform/impl/http2_string_utils_impl.h +++ b/net/third_party/http2/platform/impl/http2_string_utils_impl.h
@@ -16,7 +16,7 @@ #include "net/third_party/http2/platform/api/http2_string.h" #include "net/third_party/http2/platform/api/http2_string_piece.h" -namespace net { +namespace http2 { template <typename... Args> inline Http2String Http2StrCatImpl(const Args&... args) { @@ -41,13 +41,13 @@ } inline Http2String Http2HexDecodeImpl(Http2StringPiece data) { - return HexDecode(data); + return net::HexDecode(data); } inline Http2String Http2HexDumpImpl(Http2StringPiece data) { - return HexDump(data); + return net::HexDump(data); } -} // namespace net +} // namespace http2 #endif // NET_THIRD_PARTY_HTTP2_PLATFORM_IMPL_HTTP2_STRING_UTILS_IMPL_H_
diff --git a/net/third_party/http2/test_tools/frame_parts.cc b/net/third_party/http2/test_tools/frame_parts.cc index 2d9d5ab..fc3fe35a 100644 --- a/net/third_party/http2/test_tools/frame_parts.cc +++ b/net/third_party/http2/test_tools/frame_parts.cc
@@ -16,8 +16,9 @@ using ::testing::AssertionResult; using ::testing::AssertionSuccess; using ::testing::ContainerEq; +using net::EscapeQueryParamValue; -namespace net { +namespace http2 { namespace test { namespace { @@ -524,4 +525,4 @@ } } // namespace test -} // namespace net +} // namespace http2
diff --git a/net/third_party/http2/test_tools/frame_parts.h b/net/third_party/http2/test_tools/frame_parts.h index 1df17f0..762c68e3b 100644 --- a/net/third_party/http2/test_tools/frame_parts.h +++ b/net/third_party/http2/test_tools/frame_parts.h
@@ -23,7 +23,7 @@ #include "net/third_party/http2/platform/api/http2_string_piece.h" #include "testing/gtest/include/gtest/gtest.h" -namespace net { +namespace http2 { namespace test { class FrameParts : public Http2FrameDecoderListener { @@ -243,6 +243,6 @@ std::ostream& operator<<(std::ostream& out, const FrameParts& v); } // namespace test -} // namespace net +} // namespace http2 #endif // NET_THIRD_PARTY_HTTP2_TEST_TOOLS_FRAME_PARTS_H_
diff --git a/net/third_party/http2/test_tools/frame_parts_collector.cc b/net/third_party/http2/test_tools/frame_parts_collector.cc index 4512031..69b6d8ad 100644 --- a/net/third_party/http2/test_tools/frame_parts_collector.cc +++ b/net/third_party/http2/test_tools/frame_parts_collector.cc
@@ -11,7 +11,7 @@ #include "net/third_party/http2/platform/api/http2_ptr_util.h" #include "testing/gtest/include/gtest/gtest.h" -namespace net { +namespace http2 { namespace test { FramePartsCollector::FramePartsCollector() = default; @@ -110,4 +110,4 @@ } } // namespace test -} // namespace net +} // namespace http2
diff --git a/net/third_party/http2/test_tools/frame_parts_collector.h b/net/third_party/http2/test_tools/frame_parts_collector.h index ad56503..209ccf1d 100644 --- a/net/third_party/http2/test_tools/frame_parts_collector.h +++ b/net/third_party/http2/test_tools/frame_parts_collector.h
@@ -18,7 +18,7 @@ #include "net/third_party/http2/http2_structures.h" #include "net/third_party/http2/test_tools/frame_parts.h" -namespace net { +namespace http2 { namespace test { class FramePartsCollector : public FailingHttp2FrameDecoderListener { @@ -106,6 +106,6 @@ }; } // namespace test -} // namespace net +} // namespace http2 #endif // NET_THIRD_PARTY_HTTP2_TEST_TOOLS_FRAME_PARTS_COLLECTOR_H_
diff --git a/net/third_party/http2/test_tools/frame_parts_collector_listener.cc b/net/third_party/http2/test_tools/frame_parts_collector_listener.cc index 77e1b12..4b1880d 100644 --- a/net/third_party/http2/test_tools/frame_parts_collector_listener.cc +++ b/net/third_party/http2/test_tools/frame_parts_collector_listener.cc
@@ -7,7 +7,7 @@ #include "base/logging.h" #include "testing/gtest/include/gtest/gtest.h" -namespace net { +namespace http2 { namespace test { bool FramePartsCollectorListener::OnFrameHeader( @@ -227,4 +227,4 @@ } } // namespace test -} // namespace net +} // namespace http2
diff --git a/net/third_party/http2/test_tools/frame_parts_collector_listener.h b/net/third_party/http2/test_tools/frame_parts_collector_listener.h index 5d09e005c..7e905c9b 100644 --- a/net/third_party/http2/test_tools/frame_parts_collector_listener.h +++ b/net/third_party/http2/test_tools/frame_parts_collector_listener.h
@@ -19,7 +19,7 @@ #include "net/third_party/http2/http2_structures.h" #include "net/third_party/http2/test_tools/frame_parts_collector.h" -namespace net { +namespace http2 { namespace test { class FramePartsCollectorListener : public FramePartsCollector { @@ -78,6 +78,6 @@ }; } // namespace test -} // namespace net +} // namespace http2 #endif // NET_THIRD_PARTY_HTTP2_TEST_TOOLS_FRAME_PARTS_COLLECTOR_LISTENER_H_
diff --git a/net/third_party/http2/tools/failure.cc b/net/third_party/http2/tools/failure.cc index 72948fd..914747265 100644 --- a/net/third_party/http2/tools/failure.cc +++ b/net/third_party/http2/tools/failure.cc
@@ -4,7 +4,7 @@ #include "net/third_party/http2/tools/failure.h" -namespace net { +namespace http2 { namespace test { // This is a copy of the same named method in ::testing::internal. @@ -26,4 +26,4 @@ } } // namespace test -} // namespace net +} // namespace http2
diff --git a/net/third_party/http2/tools/failure.h b/net/third_party/http2/tools/failure.h index ac33c34..0cd1e21 100644 --- a/net/third_party/http2/tools/failure.h +++ b/net/third_party/http2/tools/failure.h
@@ -20,7 +20,7 @@ #include "testing/gmock/include/gmock/gmock.h" #include "testing/gtest/include/gtest/gtest.h" -namespace net { +namespace http2 { namespace test { template <typename T> @@ -60,7 +60,7 @@ const char* expected_predicate_value); } // namespace test -} // namespace net +} // namespace http2 // Macro for adding verification location to output stream or AssertionResult. // Starts with a new-line because of the way that gUnit displays failures for @@ -81,7 +81,7 @@ else \ return ::testing::AssertionFailure() \ << VERIFY_FAILED_LOCATION_ \ - << ::net::test::GetBoolAssertionFailureMessage( \ + << ::http2::test::GetBoolAssertionFailureMessage( \ __assertion_result, text, #actual, #expected) // clang-format on @@ -108,15 +108,15 @@ // VERIFY_THAT(foo, Eq(bar)); // else // FAIL(); -#define VERIFY_THAT(value, matcher) \ - if (const auto& _verify_that_helper = \ - ::net::test::VerifyThatHelper<decltype(value)>(value, matcher)) \ - ; \ - else \ - return ::testing::AssertionFailure() \ - << "Failed to verify that '" #value "' (" \ - << _verify_that_helper.printed_value() << ") " \ - << _verify_that_helper.matcher_description() \ +#define VERIFY_THAT(value, matcher) \ + if (const auto& _verify_that_helper = \ + ::http2::test::VerifyThatHelper<decltype(value)>(value, matcher)) \ + ; \ + else \ + return ::testing::AssertionFailure() \ + << "Failed to verify that '" #value "' (" \ + << _verify_that_helper.printed_value() << ") " \ + << _verify_that_helper.matcher_description() \ << " (on " __FILE__ ":" << __LINE__ << "). " // Useful variants of VERIFY_THAT, similar to the corresponding EXPECT_X or
diff --git a/net/third_party/http2/tools/http2_frame_builder.cc b/net/third_party/http2/tools/http2_frame_builder.cc index ce11e7c..ce3d996 100644 --- a/net/third_party/http2/tools/http2_frame_builder.cc +++ b/net/third_party/http2/tools/http2_frame_builder.cc
@@ -14,7 +14,7 @@ #include "net/third_party/http2/platform/api/http2_string_utils.h" #include "testing/gtest/include/gtest/gtest.h" -namespace net { +namespace http2 { namespace test { Http2FrameBuilder::Http2FrameBuilder(Http2FrameType type, @@ -178,4 +178,4 @@ } } // namespace test -} // namespace net +} // namespace http2
diff --git a/net/third_party/http2/tools/http2_frame_builder.h b/net/third_party/http2/tools/http2_frame_builder.h index c7fad557..57bd82af 100644 --- a/net/third_party/http2/tools/http2_frame_builder.h +++ b/net/third_party/http2/tools/http2_frame_builder.h
@@ -20,7 +20,7 @@ #include "net/third_party/http2/platform/api/http2_string.h" #include "net/third_party/http2/platform/api/http2_string_piece.h" -namespace net { +namespace http2 { namespace test { class Http2FrameBuilder { @@ -94,6 +94,6 @@ }; } // namespace test -} // namespace net +} // namespace http2 #endif // NET_THIRD_PARTY_HTTP2_TOOLS_HTTP2_FRAME_BUILDER_H_
diff --git a/net/third_party/http2/tools/http2_random.cc b/net/third_party/http2/tools/http2_random.cc index 447587b..ba62000 100644 --- a/net/third_party/http2/tools/http2_random.cc +++ b/net/third_party/http2/tools/http2_random.cc
@@ -8,7 +8,7 @@ #include "base/rand_util.h" -namespace net { +namespace http2 { namespace test { bool Http2Random::OneIn(int n) { @@ -55,4 +55,4 @@ } } // namespace test -} // namespace net +} // namespace http2
diff --git a/net/third_party/http2/tools/http2_random.h b/net/third_party/http2/tools/http2_random.h index 4faf2ef..324b542e 100644 --- a/net/third_party/http2/tools/http2_random.h +++ b/net/third_party/http2/tools/http2_random.h
@@ -11,7 +11,7 @@ #include "net/third_party/http2/platform/api/http2_string.h" -namespace net { +namespace http2 { namespace test { class RandomBase { @@ -53,6 +53,6 @@ }; } // namespace test -} // namespace net +} // namespace http2 #endif // NET_THIRD_PARTY_HTTP2_TOOLS_HTTP2_RANDOM_H_
diff --git a/net/third_party/http2/tools/random_decoder_test.cc b/net/third_party/http2/tools/random_decoder_test.cc index 0cebd145..30467c9 100644 --- a/net/third_party/http2/tools/random_decoder_test.cc +++ b/net/third_party/http2/tools/random_decoder_test.cc
@@ -25,7 +25,7 @@ using ::testing::AssertionResult; using ::testing::AssertionSuccess; -namespace net { +namespace http2 { namespace test { RandomDecoderTest::RandomDecoderTest() = default; @@ -169,4 +169,4 @@ } } // namespace test -} // namespace net +} // namespace http2
diff --git a/net/third_party/http2/tools/random_decoder_test.h b/net/third_party/http2/tools/random_decoder_test.h index 3ed6966..aec90bec 100644 --- a/net/third_party/http2/tools/random_decoder_test.h +++ b/net/third_party/http2/tools/random_decoder_test.h
@@ -25,7 +25,7 @@ #include "net/third_party/http2/tools/http2_random.h" #include "testing/gtest/include/gtest/gtest.h" -namespace net { +namespace http2 { namespace test { // Some helpers. @@ -251,6 +251,6 @@ }; } // namespace test -} // namespace net +} // namespace http2 #endif // NET_THIRD_PARTY_HTTP2_TOOLS_RANDOM_DECODER_TEST_H_
diff --git a/net/third_party/http2/tools/random_util.cc b/net/third_party/http2/tools/random_util.cc index 322f5c3..e5a8381 100644 --- a/net/third_party/http2/tools/random_util.cc +++ b/net/third_party/http2/tools/random_util.cc
@@ -9,7 +9,7 @@ #include "base/rand_util.h" #include "net/third_party/http2/tools/http2_random.h" -namespace net { +namespace http2 { namespace test { namespace { @@ -90,4 +90,4 @@ } } // namespace test -} // namespace net +} // namespace http2
diff --git a/net/third_party/http2/tools/random_util.h b/net/third_party/http2/tools/random_util.h index c635e81..4a38c68 100644 --- a/net/third_party/http2/tools/random_util.h +++ b/net/third_party/http2/tools/random_util.h
@@ -10,7 +10,7 @@ #include "net/third_party/http2/platform/api/http2_string.h" #include "net/third_party/http2/platform/api/http2_string_piece.h" -namespace net { +namespace http2 { namespace test { class RandomBase; @@ -37,6 +37,6 @@ size_t GenerateRandomSizeSkewedLow(size_t max, RandomBase* rng); } // namespace test -} // namespace net +} // namespace http2 #endif // NET_THIRD_PARTY_HTTP2_TOOLS_RANDOM_UTIL_H_
diff --git a/net/third_party/spdy/core/hpack/hpack_decoder_adapter.cc b/net/third_party/spdy/core/hpack/hpack_decoder_adapter.cc index 3aa3867..d320f8e 100644 --- a/net/third_party/spdy/core/hpack/hpack_decoder_adapter.cc +++ b/net/third_party/spdy/core/hpack/hpack_decoder_adapter.cc
@@ -4,13 +4,15 @@ #include "net/third_party/spdy/core/hpack/hpack_decoder_adapter.h" -#include <utility> - #include "base/logging.h" #include "net/third_party/http2/decoder/decode_buffer.h" #include "net/third_party/http2/decoder/decode_status.h" #include "net/third_party/spdy/platform/api/spdy_estimate_memory_usage.h" +using ::http2::DecodeBuffer; +using ::http2::HpackEntryType; +using ::http2::HpackString; + namespace net { namespace { const size_t kMaxDecodeBufferSizeBytes = 32 * 1024; // 32 KB @@ -61,7 +63,7 @@ return false; } listener_adapter_.AddToTotalHpackBytes(headers_data_length); - DecodeBuffer db(headers_data, headers_data_length); + http2::DecodeBuffer db(headers_data, headers_data_length); bool ok = hpack_decoder_.DecodeFragment(&db); DCHECK(!ok || db.Empty()) << "Remaining=" << db.Remaining(); return ok; @@ -165,7 +167,7 @@ } int64_t HpackDecoderAdapter::ListenerAdapter::OnEntryInserted( - const HpackStringPair& sp, + const http2::HpackStringPair& sp, size_t insert_count) { DVLOG(2) << "HpackDecoderAdapter::ListenerAdapter::OnEntryInserted: " << sp << ", insert_count=" << insert_count; @@ -181,9 +183,10 @@ return time_added; } -void HpackDecoderAdapter::ListenerAdapter::OnUseEntry(const HpackStringPair& sp, - size_t insert_count, - int64_t time_added) { +void HpackDecoderAdapter::ListenerAdapter::OnUseEntry( + const http2::HpackStringPair& sp, + size_t insert_count, + int64_t time_added) { DVLOG(2) << "HpackDecoderAdapter::ListenerAdapter::OnUseEntry: " << sp << ", insert_count=" << insert_count << ", time_added=" << time_added;
diff --git a/net/third_party/spdy/core/hpack/hpack_decoder_adapter.h b/net/third_party/spdy/core/hpack/hpack_decoder_adapter.h index b38e45e..61a7ced 100644 --- a/net/third_party/spdy/core/hpack/hpack_decoder_adapter.h +++ b/net/third_party/spdy/core/hpack/hpack_decoder_adapter.h
@@ -5,7 +5,7 @@ #ifndef NET_THIRD_PARTY_SPDY_CORE_HPACK_HPACK_DECODER_ADAPTER_H_ #define NET_THIRD_PARTY_SPDY_CORE_HPACK_HPACK_DECODER_ADAPTER_H_ -// HpackDecoderAdapter uses HpackDecoder to decode HPACK blocks into +// HpackDecoderAdapter uses http2::HpackDecoder to decode HPACK blocks into // HTTP/2 header lists as outlined in http://tools.ietf.org/html/rfc7541. #include <stddef.h> @@ -81,8 +81,8 @@ private: class SPDY_EXPORT_PRIVATE ListenerAdapter - : public HpackDecoderListener, - public HpackDecoderTablesDebugListener { + : public http2::HpackDecoderListener, + public http2::HpackDecoderTablesDebugListener { public: ListenerAdapter(); ~ListenerAdapter() override; @@ -99,16 +99,16 @@ // Override the HpackDecoderListener methods: void OnHeaderListStart() override; - void OnHeader(HpackEntryType entry_type, - const HpackString& name, - const HpackString& value) override; + void OnHeader(http2::HpackEntryType entry_type, + const http2::HpackString& name, + const http2::HpackString& value) override; void OnHeaderListEnd() override; void OnHeaderErrorDetected(SpdyStringPiece error_message) override; // Override the HpackDecoderTablesDebugListener methods: - int64_t OnEntryInserted(const HpackStringPair& entry, + int64_t OnEntryInserted(const http2::HpackStringPair& entry, size_t insert_count) override; - void OnUseEntry(const HpackStringPair& entry, + void OnUseEntry(const http2::HpackStringPair& entry, size_t insert_count, int64_t insert_time) override; @@ -140,7 +140,7 @@ ListenerAdapter listener_adapter_; // The actual decoder. - HpackDecoder hpack_decoder_; + http2::HpackDecoder hpack_decoder_; // How much encoded data this decoder is willing to buffer. size_t max_decode_buffer_size_bytes_;
diff --git a/net/third_party/spdy/core/hpack/hpack_decoder_adapter_test.cc b/net/third_party/spdy/core/hpack/hpack_decoder_adapter_test.cc index ac427df..194836c 100644 --- a/net/third_party/spdy/core/hpack/hpack_decoder_adapter_test.cc +++ b/net/third_party/spdy/core/hpack/hpack_decoder_adapter_test.cc
@@ -27,10 +27,15 @@ #include "testing/gmock/include/gmock/gmock.h" #include "testing/gtest/include/gtest/gtest.h" +using ::http2::HpackEntryType; +using ::http2::HpackString; +using ::http2::HpackStringPair; +using ::http2::test::HpackBlockBuilder; +using ::http2::test::HpackDecoderPeer; using ::testing::ElementsAre; using ::testing::Pair; -namespace net { +namespace http2 { namespace test { class HpackDecoderStatePeer { @@ -50,6 +55,12 @@ } }; +} // namespace test +} // namespace http2 + +namespace net { +namespace test { + class HpackDecoderAdapterPeer { public: explicit HpackDecoderAdapterPeer(HpackDecoderAdapter* decoder) @@ -60,7 +71,7 @@ HpackString(name), HpackString(value)); } - HpackDecoderTables* GetDecoderTables() { + http2::HpackDecoderTables* GetDecoderTables() { return HpackDecoderPeer::GetDecoderTables(&decoder_->hpack_decoder_); } @@ -238,7 +249,7 @@ return result; } - Http2Random random_; + http2::test::Http2Random random_; HpackDecoderAdapter decoder_; test::HpackDecoderAdapterPeer decoder_peer_; TestHeadersHandler handler_;
diff --git a/net/third_party/spdy/core/hpack/hpack_huffman_table_test.cc b/net/third_party/spdy/core/hpack/hpack_huffman_table_test.cc index 09286db0..d0e1317 100644 --- a/net/third_party/spdy/core/hpack/hpack_huffman_table_test.cc +++ b/net/third_party/spdy/core/hpack/hpack_huffman_table_test.cc
@@ -206,9 +206,9 @@ EXPECT_TRUE(table_.IsInitialized()); } - // Use net::HpackHuffmanDecoder for roundtrip tests. + // Use http2::HpackHuffmanDecoder for roundtrip tests. void DecodeString(const SpdyString& encoded, SpdyString* out) { - HpackHuffmanDecoder decoder; + http2::HpackHuffmanDecoder decoder; out->clear(); EXPECT_TRUE(decoder.Decode(encoded, out)); }
diff --git a/net/third_party/spdy/core/http2_frame_decoder_adapter.cc b/net/third_party/spdy/core/http2_frame_decoder_adapter.cc index 15342fc..1bacc732 100644 --- a/net/third_party/spdy/core/http2_frame_decoder_adapter.cc +++ b/net/third_party/spdy/core/http2_frame_decoder_adapter.cc
@@ -38,7 +38,23 @@ #include "net/third_party/spdy/platform/api/spdy_ptr_util.h" #include "net/third_party/spdy/platform/api/spdy_string_utils.h" -namespace net { +using ::net::ExtensionVisitorInterface; +using ::net::HpackDecoderAdapter; +using ::net::HpackHeaderTable; +using ::net::ParseErrorCode; +using ::net::ParseFrameType; +using ::net::SpdyAltSvcWireFormat; +using ::net::SpdyErrorCode; +using ::net::SpdyEstimateMemoryUsage; +using ::net::SpdyFrameType; +using ::net::SpdyFramerDebugVisitorInterface; +using ::net::SpdyFramerVisitorInterface; +using ::net::SpdyHeadersHandlerInterface; +using ::net::SpdyKnownSettingsId; +using ::net::SpdyMakeUnique; +using ::net::SpdySettingsId; + +namespace http2 { namespace { using SpdyFramerError = Http2DecoderAdapter::SpdyFramerError; @@ -999,6 +1015,10 @@ } } +} // namespace http2 + +namespace net { + bool SpdyFramerVisitorInterface::OnGoAwayFrameData(const char* goaway_data, size_t len) { return true;
diff --git a/net/third_party/spdy/core/http2_frame_decoder_adapter.h b/net/third_party/spdy/core/http2_frame_decoder_adapter.h index ce54d5f..9607379 100644 --- a/net/third_party/spdy/core/http2_frame_decoder_adapter.h +++ b/net/third_party/spdy/core/http2_frame_decoder_adapter.h
@@ -24,10 +24,15 @@ class SpdyFramerVisitorInterface; class ExtensionVisitorInterface; +} // namespace net + // TODO(dahollings): Perform various renames/moves suggested in cl/164660364. + +namespace http2 { + // Adapts SpdyFramer interface to use Http2FrameDecoder. class SPDY_EXPORT_PRIVATE Http2DecoderAdapter - : public Http2FrameDecoderListener { + : public http2::Http2FrameDecoderListener { public: // HTTP2 states. enum SpdyState { @@ -83,24 +88,24 @@ // else the framer will likely crash. It is acceptable for the visitor // to do nothing. If this is called multiple times, only the last visitor // will be used. - void set_visitor(SpdyFramerVisitorInterface* visitor); - SpdyFramerVisitorInterface* visitor() const { return visitor_; } + void set_visitor(net::SpdyFramerVisitorInterface* visitor); + net::SpdyFramerVisitorInterface* visitor() const { return visitor_; } // Set extension callbacks to be called from the framer or decoder. Optional. // If called multiple times, only the last visitor will be used. - void set_extension_visitor(ExtensionVisitorInterface* visitor); + void set_extension_visitor(net::ExtensionVisitorInterface* visitor); // Set debug callbacks to be called from the framer. The debug visitor is // completely optional and need not be set in order for normal operation. // If this is called multiple times, only the last visitor will be used. - void set_debug_visitor(SpdyFramerDebugVisitorInterface* debug_visitor); - SpdyFramerDebugVisitorInterface* debug_visitor() const { + void set_debug_visitor(net::SpdyFramerDebugVisitorInterface* debug_visitor); + net::SpdyFramerDebugVisitorInterface* debug_visitor() const { return debug_visitor_; } // Set debug callbacks to be called from the HPACK decoder. void SetDecoderHeaderTableDebugVisitor( - std::unique_ptr<HpackHeaderTable::DebugVisitorInterface> visitor); + std::unique_ptr<net::HpackHeaderTable::DebugVisitorInterface> visitor); // Sets whether or not ProcessInput returns after finishing a frame, or // continues processing additional frames. Normally ProcessInput processes @@ -135,7 +140,7 @@ // Returns the estimate of dynamically allocated memory in bytes. size_t EstimateMemoryUsage() const; - HpackDecoderAdapter* GetHpackDecoder(); + net::HpackDecoderAdapter* GetHpackDecoder(); bool HasError() const; @@ -250,15 +255,15 @@ // the callbacks. Http2FrameDecoderNoOpListener no_op_listener_; - SpdyFramerVisitorInterface* visitor_ = nullptr; - SpdyFramerDebugVisitorInterface* debug_visitor_ = nullptr; + net::SpdyFramerVisitorInterface* visitor_ = nullptr; + net::SpdyFramerDebugVisitorInterface* debug_visitor_ = nullptr; // If non-null, unknown frames and settings are passed to the extension. - ExtensionVisitorInterface* extension_ = nullptr; + net::ExtensionVisitorInterface* extension_ = nullptr; // The HPACK decoder to be used for this adapter. User is responsible for // clearing if the adapter is to be used for another connection. - std::unique_ptr<HpackDecoderAdapter> hpack_decoder_ = nullptr; + std::unique_ptr<net::HpackDecoderAdapter> hpack_decoder_ = nullptr; // The HTTP/2 frame decoder. Accessed via a unique_ptr to allow replacement // (e.g. in tests) when Reset() is called. @@ -278,7 +283,7 @@ // The limit on the size of received HTTP/2 payloads as specified in the // SETTINGS_MAX_FRAME_SIZE advertised to peer. - size_t recv_frame_size_limit_ = kHttp2DefaultFramePayloadLimit; + size_t recv_frame_size_limit_ = net::kHttp2DefaultFramePayloadLimit; // Has OnFrameHeader been called? bool decoded_frame_header_ = false; @@ -316,6 +321,10 @@ bool process_single_input_frame_ = false; }; +} // namespace http2 + +namespace net { + // Http2DecoderAdapter will use the given visitor implementing this // interface to deliver event callbacks as frames are decoded. // @@ -336,7 +345,7 @@ virtual ~SpdyFramerVisitorInterface() {} // Called if an error is detected in the SpdyFrame protocol. - virtual void OnError(Http2DecoderAdapter::SpdyFramerError error) = 0; + virtual void OnError(http2::Http2DecoderAdapter::SpdyFramerError error) = 0; // Called when the common header for a frame is received. Validating the // common header occurs in later processing.
diff --git a/net/third_party/spdy/core/mock_spdy_framer_visitor.h b/net/third_party/spdy/core/mock_spdy_framer_visitor.h index 4e343b1..a4874ff 100644 --- a/net/third_party/spdy/core/mock_spdy_framer_visitor.h +++ b/net/third_party/spdy/core/mock_spdy_framer_visitor.h
@@ -26,7 +26,8 @@ MockSpdyFramerVisitor(); ~MockSpdyFramerVisitor() override; - MOCK_METHOD1(OnError, void(Http2DecoderAdapter::SpdyFramerError error)); + MOCK_METHOD1(OnError, + void(http2::Http2DecoderAdapter::SpdyFramerError error)); MOCK_METHOD3(OnDataFrameHeader, void(SpdyStreamId stream_id, size_t length, bool fin)); MOCK_METHOD3(OnStreamFrameData,
diff --git a/net/third_party/spdy/core/spdy_deframer_visitor.cc b/net/third_party/spdy/core/spdy_deframer_visitor.cc index 375e57f..1418d99 100644 --- a/net/third_party/spdy/core/spdy_deframer_visitor.cc +++ b/net/third_party/spdy/core/spdy_deframer_visitor.cc
@@ -150,7 +150,7 @@ void OnDataFrameHeader(SpdyStreamId stream_id, size_t length, bool fin) override; - void OnError(Http2DecoderAdapter::SpdyFramerError error) override; + void OnError(http2::Http2DecoderAdapter::SpdyFramerError error) override; void OnGoAway(SpdyStreamId last_accepted_stream_id, SpdyErrorCode error_code) override; bool OnGoAwayFrameData(const char* goaway_data, size_t len) override; @@ -464,9 +464,10 @@ } // The SpdyFramer will not process any more data at this point. -void SpdyTestDeframerImpl::OnError(Http2DecoderAdapter::SpdyFramerError error) { +void SpdyTestDeframerImpl::OnError( + http2::Http2DecoderAdapter::SpdyFramerError error) { DVLOG(1) << "SpdyFramer detected an error in the stream: " - << Http2DecoderAdapter::SpdyFramerErrorToString(error) + << http2::Http2DecoderAdapter::SpdyFramerErrorToString(error) << " frame_type_: " << Http2FrameTypeToString(frame_type_); listener_->OnError(error, this); } @@ -864,7 +865,7 @@ } // The SpdyFramer will not process any more data at this point. - void OnError(Http2DecoderAdapter::SpdyFramerError error, + void OnError(http2::Http2DecoderAdapter::SpdyFramerError error, SpdyTestDeframer* deframer) override { DVLOG(1) << "LoggingSpdyDeframerDelegate::OnError"; wrapped_->OnError(error, deframer); @@ -1029,7 +1030,7 @@ // The SpdyFramer will not process any more data at this point. void DeframerCallbackCollector::OnError( - Http2DecoderAdapter::SpdyFramerError error, + http2::Http2DecoderAdapter::SpdyFramerError error, SpdyTestDeframer* deframer) { CollectedFrame cf; cf.error_reported = true;
diff --git a/net/third_party/spdy/core/spdy_deframer_visitor.h b/net/third_party/spdy/core/spdy_deframer_visitor.h index dade927..0d43fc4 100644 --- a/net/third_party/spdy/core/spdy_deframer_visitor.h +++ b/net/third_party/spdy/core/spdy_deframer_visitor.h
@@ -150,7 +150,7 @@ virtual void OnWindowUpdate(std::unique_ptr<SpdyWindowUpdateIR> frame) {} // The SpdyFramer will not process any more data at this point. - virtual void OnError(Http2DecoderAdapter::SpdyFramerError error, + virtual void OnError(http2::Http2DecoderAdapter::SpdyFramerError error, SpdyTestDeframer* deframer) {} }; @@ -239,7 +239,7 @@ std::unique_ptr<SettingVector> settings) override; void OnSettingsAck(std::unique_ptr<SpdySettingsIR> frame_ir) override; void OnWindowUpdate(std::unique_ptr<SpdyWindowUpdateIR> frame_ir) override; - void OnError(Http2DecoderAdapter::SpdyFramerError error, + void OnError(http2::Http2DecoderAdapter::SpdyFramerError error, SpdyTestDeframer* deframer) override; private:
diff --git a/net/third_party/spdy/core/spdy_deframer_visitor_test.cc b/net/third_party/spdy/core/spdy_deframer_visitor_test.cc index 9b3f9453..43d5d3a 100644 --- a/net/third_party/spdy/core/spdy_deframer_visitor_test.cc +++ b/net/third_party/spdy/core/spdy_deframer_visitor_test.cc
@@ -40,7 +40,8 @@ bool DeframeInput(const char* input, size_t size) { size_t input_remaining = size; while (input_remaining > 0 && - decoder_.spdy_framer_error() == Http2DecoderAdapter::SPDY_NO_ERROR) { + decoder_.spdy_framer_error() == + http2::Http2DecoderAdapter::SPDY_NO_ERROR) { // To make the tests more interesting, we feed random (and small) chunks // into the framer. This simulates getting strange-sized reads from // the socket. @@ -50,16 +51,18 @@ size_t bytes_processed = decoder_.ProcessInput(input, bytes_read); input_remaining -= bytes_processed; input += bytes_processed; - if (decoder_.state() == Http2DecoderAdapter::SPDY_READY_FOR_FRAME) { + if (decoder_.state() == + http2::Http2DecoderAdapter::SPDY_READY_FOR_FRAME) { deframer_->AtFrameEnd(); } } return (input_remaining == 0 && - decoder_.spdy_framer_error() == Http2DecoderAdapter::SPDY_NO_ERROR); + decoder_.spdy_framer_error() == + http2::Http2DecoderAdapter::SPDY_NO_ERROR); } SpdyFramer encoder_; - Http2DecoderAdapter decoder_; + http2::Http2DecoderAdapter decoder_; std::vector<CollectedFrame> collected_frames_; std::unique_ptr<SpdyTestDeframer> deframer_; };
diff --git a/net/third_party/spdy/core/spdy_framer_test.cc b/net/third_party/spdy/core/spdy_framer_test.cc index ccb63fd..39c4d61 100644 --- a/net/third_party/spdy/core/spdy_framer_test.cc +++ b/net/third_party/spdy/core/spdy_framer_test.cc
@@ -31,7 +31,8 @@ #include "testing/gtest/include/gtest/gtest.h" #include "testing/platform_test.h" -using testing::_; +using ::http2::Http2DecoderAdapter; +using ::testing::_; namespace net {
diff --git a/net/third_party/spdy/core/spdy_no_op_visitor.h b/net/third_party/spdy/core/spdy_no_op_visitor.h index cf1d50c..46fc9aa 100644 --- a/net/third_party/spdy/core/spdy_no_op_visitor.h +++ b/net/third_party/spdy/core/spdy_no_op_visitor.h
@@ -26,7 +26,7 @@ ~SpdyNoOpVisitor() override; // SpdyFramerVisitorInterface methods: - void OnError(Http2DecoderAdapter::SpdyFramerError error) override {} + void OnError(http2::Http2DecoderAdapter::SpdyFramerError error) override {} SpdyHeadersHandlerInterface* OnHeaderFrameStart( SpdyStreamId stream_id) override; void OnHeaderFrameEnd(SpdyStreamId stream_id) override {}
diff --git a/pdf/pdfium/fuzzers/BUILD.gn b/pdf/pdfium/fuzzers/BUILD.gn index 1c325d1b..65efc3d 100644 --- a/pdf/pdfium/fuzzers/BUILD.gn +++ b/pdf/pdfium/fuzzers/BUILD.gn
@@ -35,7 +35,6 @@ ":pdf_css_fuzzer", ":pdf_fm2js_fuzzer", ":pdf_formcalc_fuzzer", - ":pdf_lzw_fuzzer", ":pdf_xml_fuzzer", ":pdfium_xfa_fuzzer", ] @@ -43,7 +42,10 @@ deps += [ ":pdf_codec_bmp_fuzzer" ] } if (pdf_enable_xfa_gif) { - deps += [ ":pdf_codec_gif_fuzzer" ] + deps += [ + ":pdf_codec_gif_fuzzer", + ":pdf_lzw_fuzzer", + ] } if (pdf_enable_xfa_png) { deps += [ ":pdf_codec_png_fuzzer" ] @@ -235,11 +237,13 @@ dict = "dicts/pdf_formcalc.dict" } - fuzzer_test("pdf_lzw_fuzzer") { - sources = [] - deps = [ - "//third_party/pdfium/testing/libfuzzer:pdf_lzw_fuzzer", - ] + if (pdf_enable_xfa_gif) { + fuzzer_test("pdf_lzw_fuzzer") { + sources = [] + deps = [ + "//third_party/pdfium/testing/libfuzzer:pdf_lzw_fuzzer", + ] + } } fuzzer_test("pdf_xml_fuzzer") {
diff --git a/services/audio/BUILD.gn b/services/audio/BUILD.gn index b7651d3..7c45e38 100644 --- a/services/audio/BUILD.gn +++ b/services/audio/BUILD.gn
@@ -53,6 +53,8 @@ "service.h", "service_factory.cc", "service_factory.h", + "snooper_node.cc", + "snooper_node.h", "stream_factory.cc", "stream_factory.h", "sync_reader.cc", @@ -82,6 +84,7 @@ "local_muter_unittest.cc", "output_controller_unittest.cc", "output_stream_unittest.cc", + "snooper_node_unittest.cc", "stream_factory_unittest.cc", "sync_reader_unittest.cc", "test/audio_system_to_service_adapter_test.cc",
diff --git a/services/audio/snooper_node.cc b/services/audio/snooper_node.cc new file mode 100644 index 0000000..0f5e962 --- /dev/null +++ b/services/audio/snooper_node.cc
@@ -0,0 +1,255 @@ +// 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 "services/audio/snooper_node.h" + +#include <algorithm> +#include <cmath> + +#include "base/bind.h" +#include "base/numerics/checked_math.h" +#include "media/base/audio_bus.h" +#include "media/base/audio_timestamp_helper.h" + +using Helper = media::AudioTimestampHelper; + +namespace audio { + +namespace { + +// The delay buffer size is chosen to be a very conservative maximum, just to +// make sure there is an upper bound in-place so that the buffer won't grow +// indefinitely. In most normal cases, reads will cause the delay buffer to +// automatically prune its recording down to well under this maximum (e.g., +// around 100 milliseconds of audio). +constexpr base::TimeDelta kDelayBufferSize = + base::TimeDelta::FromMilliseconds(1000); + +// A frequency at which people cannot discern tones that differ by 1 Hz. This is +// based on research that shows people can discern tones only when they are more +// than 1 Hz away from 500 Hz. Thus, assume people definitely can't discern +// tones 1 Hz away from 1000 Hz. +constexpr int kStepBasisHz = 1000; + +// The number of frames the resampler should request at a time. Three kernel's +// worth is an arbitrary choice, but performs well since the lock guarding +// access to the delay buffer is only held a reasonably short time during the +// data extraction. +constexpr int kResamplerRequestSize = 3 * media::SincResampler::kKernelSize; + +} // namespace + +// static +constexpr SnooperNode::FrameTicks SnooperNode::kNullPosition; + +// static +constexpr SnooperNode::FrameTicks SnooperNode::kWriteStartPosition; + +SnooperNode::SnooperNode(const media::AudioParameters& input_params, + const media::AudioParameters& output_params) + : input_params_(input_params), + output_params_(output_params), + input_bus_duration_( + Helper::FramesToTime(input_params_.frames_per_buffer(), + input_params_.sample_rate())), + output_bus_duration_( + Helper::FramesToTime(output_params_.frames_per_buffer(), + output_params_.sample_rate())), + perfect_io_ratio_(static_cast<double>(input_params_.sample_rate()) / + output_params_.sample_rate()), + buffer_( + Helper::TimeToFrames(kDelayBufferSize, input_params_.sample_rate())), + write_position_(kNullPosition), + read_position_(kNullPosition), + correction_fps_(0), + resampler_( + // For efficiency, a |channel_mix_strategy_| is chosen so that the + // resampler is always processing the fewest number of channels. + std::min(input_params_.channels(), output_params_.channels()), + perfect_io_ratio_, + kResamplerRequestSize, + base::BindRepeating(&SnooperNode::ReadFromDelayBuffer, + base::Unretained(this))), + channel_mix_strategy_( + (input_params_.channel_layout() == output_params_.channel_layout()) + ? kNone + : ((output_params_.channels() < input_params_.channels()) + ? kBefore + : kAfter)), + channel_mixer_(input_params_.channel_layout(), + output_params_.channel_layout()) { + // Prime the resampler with silence to keep the calculations in Render() + // simple. + resampler_.PrimeWithSilence(); + + // If channel mixing is to be performed after resampling, allocate a buffer to + // hold the resampler's output. + if (channel_mix_strategy_ == kAfter) { + mix_bus_ = media::AudioBus::Create(input_params_.channels(), + output_params_.frames_per_buffer()); + } +} + +SnooperNode::~SnooperNode() = default; + +void SnooperNode::OnData(const media::AudioBus& input_bus, + base::TimeTicks reference_time, + double volume) { + DCHECK_EQ(input_bus.channels(), input_params_.channels()); + DCHECK_EQ(input_bus.frames(), input_params_.frames_per_buffer()); + + base::AutoLock scoped_lock(lock_); + + // If this is the first OnData() call, just set the starting read position. + // Otherwise, check whether a gap (i.e., missing piece) in the recording flow + // has occurred, and skip the write position forward if necessary. + if (write_position_ == kNullPosition) { + write_position_ = kWriteStartPosition; + } else { + const base::TimeDelta delta = reference_time - write_reference_time_; + if (delta >= input_bus_duration_) { + write_position_ += + Helper::TimeToFrames(delta, input_params_.sample_rate()); + } + } + + buffer_.Write(write_position_, input_bus, volume); + + write_position_ += input_bus.frames(); + write_reference_time_ = reference_time + input_bus_duration_; +} + +void SnooperNode::Render(base::TimeTicks reference_time, + media::AudioBus* output_bus) { + DCHECK_EQ(output_bus->channels(), output_params_.channels()); + DCHECK_EQ(output_bus->frames(), output_params_.frames_per_buffer()); + + // Use the difference in reference times between OnData() and Render() to + // estimate the position of the audio about to come out of the resampler. + lock_.Acquire(); + const FrameTicks estimated_output_position = + (write_position_ == kNullPosition) + ? kNullPosition + : (write_position_ + + Helper::TimeToFrames(reference_time - write_reference_time_, + input_params_.sample_rate())); + lock_.Release(); + + // If recording has not started, just output silence. + if (estimated_output_position == kNullPosition) { + output_bus->Zero(); + return; + } + + // If this is the first Render() call after recording started, just initialize + // the starting read position. For all successive calls, adjust the resampler + // to account for drift, and also handle any significant time gaps between + // Render() calls. + if (read_position_ == kNullPosition) { + // Walk backwards from the estimated output position to initialize the read + // position. + read_position_ = + estimated_output_position + std::lround(resampler_.BufferedFrames()); + DCHECK_EQ(correction_fps_, 0); + } else { + const base::TimeDelta delta = reference_time - render_reference_time_; + if (delta < output_bus_duration_) { // Normal case: No gap. + // Compute the drift, which is the number of frames the resampler is + // behind in reading from the delay buffer. This calculation also accounts + // for the frames buffered within the resampler. + const int64_t actual_output_position = + read_position_ - std::lround(resampler_.BufferedFrames()); + const int drift = base::checked_cast<int>(estimated_output_position - + actual_output_position); + + // The goal is to have zero drift, and the target is to achieve that goal + // in approximately one second. + const int target_correction_fps = drift; // Drift divided by 1 second. + + // The minimum amount to step-up or step-down the correction rate. Using + // this prevents excessive "churn" within the resampler, where otherwise + // it would be recomputing its convolution kernel too often. + const int fps_step = input_params_.sample_rate() / kStepBasisHz; + + // Adjust the correction rate (and resampling ratio) based on how + // different the target correction FPS is from the current correction + // FPS. If more than two steps away, make an aggressive adjustment. If + // only more than one step away, nudge the current rate by just one + // step. Otherwise, leave the current rate unchanged. + const int diff = target_correction_fps - correction_fps_; + if (std::abs(diff) > 2 * fps_step) { + UpdateCorrectionRate(target_correction_fps); + } else if (diff > fps_step) { + UpdateCorrectionRate(correction_fps_ + fps_step); + } else if (diff < -fps_step) { + UpdateCorrectionRate(correction_fps_ - fps_step); + } else { + // No correction necessary. + } + } else /* if (delta >= threshold) */ { // Gap detected. + // Rather than flush and re-prime the resampler, just skip-ahead its next + // read-from position. + read_position_ += + Helper::TimeToFrames(delta, input_params_.sample_rate()); + + // This special event casts doubt on the validity of the current + // correction rates. The system is likely to behave differently going + // forward. Thus, set a zero correction rate. + UpdateCorrectionRate(0); + } + } + + // Perform resampling and also channel mixing, if required. The resampler will + // call ReadFromDelayBuffer(), as needed, to supply itself with more input + // data; and this will move the |read_position_| forward. + if (channel_mix_strategy_ == kAfter) { + resampler_.Resample(mix_bus_->frames(), mix_bus_.get()); + channel_mixer_.Transform(mix_bus_.get(), output_bus); + } else { + resampler_.Resample(output_bus->frames(), output_bus); + } + + render_reference_time_ = reference_time + output_bus_duration_; +} + +void SnooperNode::UpdateCorrectionRate(int correction_fps) { + correction_fps_ = correction_fps; + const double ratio_adjustment = + static_cast<double>(correction_fps_) / input_params_.sample_rate(); + DCHECK_GT(ratio_adjustment, -perfect_io_ratio_); + resampler_.SetRatio(perfect_io_ratio_ + ratio_adjustment); +} + +void SnooperNode::ReadFromDelayBuffer(int ignored, + media::AudioBus* resampler_bus) { + DCHECK_NE(read_position_, kNullPosition); + const int frames_to_read = resampler_bus->frames(); + + if (channel_mix_strategy_ == kBefore) { + DCHECK_EQ(resampler_bus->channels(), output_params_.channels()); + + // Reallocate the |mix_bus_| if needed. + if (!mix_bus_ || mix_bus_->frames() < frames_to_read) { + mix_bus_ = nullptr; // Free memory before allocating more. + mix_bus_ = + media::AudioBus::Create(input_params_.channels(), frames_to_read); + } + + // Do the read and also channel remix before resampling. + lock_.Acquire(); + buffer_.Read(read_position_, frames_to_read, mix_bus_.get()); + lock_.Release(); + channel_mixer_.TransformPartial(mix_bus_.get(), frames_to_read, + resampler_bus); + } else { + DCHECK_EQ(resampler_bus->channels(), input_params_.channels()); + lock_.Acquire(); + buffer_.Read(read_position_, frames_to_read, resampler_bus); + lock_.Release(); + } + + read_position_ += frames_to_read; +} + +} // namespace audio
diff --git a/services/audio/snooper_node.h b/services/audio/snooper_node.h new file mode 100644 index 0000000..496f5fc --- /dev/null +++ b/services/audio/snooper_node.h
@@ -0,0 +1,166 @@ +// 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 SERVICES_AUDIO_SNOOPER_NODE_H_ +#define SERVICES_AUDIO_SNOOPER_NODE_H_ + +#include <limits> +#include <memory> + +#include "base/macros.h" +#include "base/synchronization/lock.h" +#include "base/time/time.h" +#include "media/base/audio_parameters.h" +#include "media/base/channel_mixer.h" +#include "media/base/multi_channel_resampler.h" +#include "services/audio/delay_buffer.h" +#include "services/audio/group_member.h" + +namespace media { +class AudioBus; +} // namespace media + +namespace audio { + +// Thread-safe implementation of Snooper that records the audio from a +// GroupMember on one thread, and re-renders it to the desired output format on +// another thread. Since the data flow rates are known to be driven by different +// clocks (audio hardware clock versus system clock), the base::TimeTicks +// reference clock is used to detect drift and automatically correct for it to +// maintain proper synchronization. +// +// Throughout this class, there are sample counters (in terms of the input +// audio's sample rate) that are tracked/computed. They refer to the media +// timestamp of the audio flowing through specific parts of the processing +// pipeline: inbound from OnData() calls → through the delay buffer → through +// the resampler → and outbound via Render() calls: +// +// write position: The position of audio about to be written into the delay +// buffer. This is managed by OnData(). +// read position: The position of audio about to be read from the delay +// buffer and pushed into the resampler. This is managed by +// ReadFromDelayBuffer(). +// output position: The position of the audio about to come out of the +// resampler. This is computed within Render(). Note that +// this is a "virtual" position since it is in terms of the +// input audio's sample count, but refers to audio about to +// be generated in the output format (with a possibly +// different sample rate). +// +// Note that the media timestamps represented by the "positions," as well as the +// surrounding math operations, might seem backwards; but they are not. This is +// because the inbound audio is from a source that pre-renders audio for playout +// in the near future, while the outbound audio is audio that would have been +// played-out in the recent past. +class SnooperNode : public GroupMember::Snooper { + public: + // Use sample counts as a precise measure of audio signal position and time + // duration. + using FrameTicks = int64_t; + + // Contruct a SnooperNode that buffers input of one format and renders output + // in [possibly] another format. + SnooperNode(const media::AudioParameters& input_params, + const media::AudioParameters& output_params); + + ~SnooperNode() final; + + // GroupMember::Snooper implementation. Inserts more data into the delay + // buffer. + void OnData(const media::AudioBus& input_bus, + base::TimeTicks reference_time, + double volume) final; + + // Renders more audio that was recorded from the GroupMember until + // |output_bus| is filled, resampling and remixing the channels if necessary. + // |reference_time| is used for detecting skip-ahead (i.e., a significant + // forward jump in the reference time) and also to maintain synchronization + // with the input. + void Render(base::TimeTicks reference_time, media::AudioBus* output_bus); + + private: + // Helper to store the new |correction_fps|, recompute the resampling I/O + // ratio, and reconfigure the resampler with the new ratio. + void UpdateCorrectionRate(int correction_fps); + + // Called by the MultiChannelResampler to acquire more data from the delay + // buffer. This is invoked in the same call stack (and thread) as Render(), + // zero or more times as data is needed by the resampler. + void ReadFromDelayBuffer(int ignored, media::AudioBus* resampler_bus); + + // Input and output audio parameters. + const media::AudioParameters input_params_; + const media::AudioParameters output_params_; + + // Input and output AudioBus time durations, pre-computed from the input and + // output AudioParameters. + const base::TimeDelta input_bus_duration_; + const base::TimeDelta output_bus_duration_; + + // The ratio between the input sampling rate and the output sampling rate. It + // is "perfect" because it assumes no clock skew. Corrections are applied to + // this to determine the actual resampler I/O ratio. + const double perfect_io_ratio_; + + // Protects concurrent access to |buffer_| and the |write_position_| and + // |write_reference_time_|. All other members are either read-only, or are not + // accessed by multiple threads. + base::Lock lock_; + + // Allows input data to be recorded and then read-back from any position + // later (by the resampler). + DelayBuffer buffer_; // Guarded by |lock_|. + + // The next frame position at which to write into the delay buffer, and the + // TimeTicks representing its corresponding system clock timestamp. + FrameTicks write_position_; // Guarded by |lock_|. + base::TimeTicks write_reference_time_; // Guarded by |lock_|. + + // The next frame position from which to read from the delay buffer. This is + // the position of the frames about to be pushed into the resampler, not the + // position of frames about to be Render()'ed. + FrameTicks read_position_; + + // The expected |reference_time| to be provided in the next call to Render(). + // This is used to detect skip-ahead in the output, and compensate when + // necessary. + base::TimeTicks render_reference_time_; + + // The additional number of frames currently being consumed by the resampler + // each second to correct for drift. + int correction_fps_; + + // Resamples input audio that is read from the delay buffer. Even if the input + // and output have the same sampling rate, this is used to subtly stretch the + // audio signal to correct for drift. + media::MultiChannelResampler resampler_; + + // Specifies whether channel mixing should occur before or after resampling, + // or is not needed. The strategy is chosen such that the minimal number of + // channels are resampled, as resampling is the more-expensive operation. + enum { kBefore, kAfter, kNone } const channel_mix_strategy_; + + // Only used when the input channel layout differs from the output. + media::ChannelMixer channel_mixer_; + + // Only allocated when using the channel mixer. When using the kAfter + // strategy, it is allocated just once, in the constructor, since its frame + // length is constant. When using the kBefore strategy, it is re-allocated + // whenever a larger one is needed and is reused thereafter. + std::unique_ptr<media::AudioBus> mix_bus_; + + // An impossible value re-purposed to represent the "null" or "not set yet" + // condition for |read_position_| and |write_position_|. + static constexpr FrameTicks kNullPosition = + std::numeric_limits<FrameTicks>::min(); + + // The frame position where recording into the delay buffer always starts. + static constexpr FrameTicks kWriteStartPosition = 0; + + DISALLOW_COPY_AND_ASSIGN(SnooperNode); +}; + +} // namespace audio + +#endif // SERVICES_AUDIO_SNOOPER_NODE_H_
diff --git a/services/audio/snooper_node_unittest.cc b/services/audio/snooper_node_unittest.cc new file mode 100644 index 0000000..21b3a815 --- /dev/null +++ b/services/audio/snooper_node_unittest.cc
@@ -0,0 +1,408 @@ +// 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 "services/audio/snooper_node.h" + +#include <algorithm> +#include <memory> +#include <vector> + +#include "base/memory/scoped_refptr.h" +#include "base/optional.h" +#include "base/test/test_mock_time_task_runner.h" +#include "media/base/audio_bus.h" +#include "media/base/audio_parameters.h" +#include "media/base/channel_layout.h" +#include "services/audio/test/fake_consumer.h" +#include "services/audio/test/fake_group_member.h" +#include "testing/gtest/include/gtest/gtest.h" + +namespace audio { +namespace { + +// Used to test whether the output AudioBuses have had all their values set to +// something finite. +constexpr float kInvalidAudioSample = std::numeric_limits<float>::infinity(); + +// The tones the source should generate into the left and right channels. +constexpr double kLeftChannelFrequency = 500.0; +constexpr double kRightChannelFrequency = 1200.0; +constexpr double kSourceVolume = 0.5; + +// The duration of the audio that flows through the SnooperNode for each test. +constexpr base::TimeDelta kTestDuration = base::TimeDelta::FromSeconds(10); + +// The amount of time in the future where the inbound audio is being recorded. +// This simulates an audio output stream that has rendered audio that is +// scheduled to be played out in the near future. +constexpr base::TimeDelta kInputAdvanceTime = + base::TimeDelta::FromMilliseconds(2); + +// The amount of time in the past from which outbound audio is being rendered. +// This simulates the loopback stream's "capture from the recent past" mode-of- +// operation. +constexpr base::TimeDelta kOutputDelayTime = + base::TimeDelta::FromMilliseconds(20); + +// Test parameters. +struct InputAndOutputParams { + media::AudioParameters input; + media::AudioParameters output; +}; + +// Helper so that gtest can produce useful logging of the test parameters. +std::ostream& operator<<(std::ostream& out, + const InputAndOutputParams& test_params) { + return out << "{input=" << test_params.input.AsHumanReadableString() + << ", output=" << test_params.output.AsHumanReadableString() + << "}"; +} + +class SnooperNodeTest : public testing::TestWithParam<InputAndOutputParams> { + public: + // Positions is a vector containing positions (in terms of frames elasped + // since the first) where an AudioBus input or output task should not be + // scheduled. This simulates missing input or skipped consumption. + using Positions = std::vector<int>; + + SnooperNodeTest() = default; + ~SnooperNodeTest() override = default; + + const media::AudioParameters& input_params() const { + return GetParam().input; + } + const media::AudioParameters& output_params() const { + return GetParam().output; + } + + FakeGroupMember* group_member() { return &*group_member_; } + SnooperNode* node() { return &*node_; } + FakeConsumer* consumer() { return &*consumer_; } + + void SetUp() override { + // Initialize a test clock and task runner. The starting TimeTicks value is + // "huge" to ensure time calculations are being tested for overflow cases. + task_runner_ = base::MakeRefCounted<base::TestMockTimeTaskRunner>( + base::Time(), base::TimeTicks() + + base::TimeDelta::FromMicroseconds(INT64_C(1) << 62)); + } + + void CreateNewPipeline() { + group_member_.emplace(base::UnguessableToken(), input_params()); + group_member_->SetChannelTone(0, kLeftChannelFrequency); + if (input_params().channels() > 1) { + // Set the right channel to kRightChannelFrequency unless the test + // parameters call for stereo→mono channel down-mixing. In that case, just + // use kLeftChannelFrequency again, and the test will confirm that the + // amplitude is 2X because there were two source channels mixed into one. + group_member_->SetChannelTone(1, output_params().channels() == 1 + ? kLeftChannelFrequency + : kRightChannelFrequency); + } + group_member_->SetVolume(kSourceVolume); + + node_.emplace(input_params(), output_params()); + group_member_->StartSnooping(node()); + + consumer_.emplace(output_params().channels(), + output_params().sample_rate()); + } + + void ScheduleInputTasks(double skew, const Positions& drop_positions) { + CHECK(std::is_sorted(drop_positions.begin(), drop_positions.end())); + + const base::TimeTicks start_time = + task_runner_->NowTicks() + kInputAdvanceTime; + const base::TimeTicks end_time = start_time + kTestDuration; + const double time_step = skew / input_params().sample_rate(); + + auto drop_it = drop_positions.begin(); + for (int position = 0;; position += input_params().frames_per_buffer()) { + // If a drop point has been reached, do not schedule an input task. + if (drop_it != drop_positions.end() && *drop_it == position) { + ++drop_it; + continue; + } + + const base::TimeTicks next_time = + start_time + base::TimeDelta::FromSecondsD(position * time_step); + if (next_time >= end_time) { + break; + } + + // FakeGroupMember pushes audio into the SnooperNode. + task_runner_->PostDelayedTask( + FROM_HERE, + base::BindOnce(&FakeGroupMember::RenderMoreAudio, + base::Unretained(group_member()), next_time), + next_time - start_time); + } + } + + void ScheduleOutputTasks(double skew, const Positions& skip_positions) { + CHECK(std::is_sorted(skip_positions.begin(), skip_positions.end())); + + const base::TimeTicks start_time = + task_runner_->NowTicks() - kOutputDelayTime; + const base::TimeTicks end_time = start_time + kTestDuration; + const double time_step = skew / output_params().sample_rate(); + + auto skip_it = skip_positions.begin(); + for (int position = 0;; position += output_params().frames_per_buffer()) { + // If a skip point has been reached, do not schedule an output task. + if (skip_it != skip_positions.end() && *skip_it == position) { + ++skip_it; + continue; + } + + const base::TimeTicks next_time = + start_time + base::TimeDelta::FromSecondsD(position * time_step); + if (next_time >= end_time) { + break; + } + + task_runner_->PostDelayedTask( + FROM_HERE, + base::BindOnce( + [](SnooperNodeTest* test, base::TimeTicks output_time) { + // Have the SnooperNode render more output data. Before that, + // assign invalid sample values to the AudioBus. Then, after the + // Render() call, confirm that every sample was overwritten in + // the output AudioBus. + const auto bus = media::AudioBus::Create(test->output_params()); + for (int ch = 0; ch < bus->channels(); ++ch) { + std::fill_n(bus->channel(ch), bus->frames(), + kInvalidAudioSample); + } + test->node_->Render(output_time, bus.get()); + for (int ch = 0; ch < bus->channels(); ++ch) { + EXPECT_FALSE(std::any_of( + bus->channel(ch), bus->channel(ch) + bus->frames(), + [](float x) { return x == kInvalidAudioSample; })) + << " at output_time=" << output_time << ", ch=" << ch; + } + + // Pass the output to the consumer to store for later analysis. + test->consumer_->Consume(*bus); + }, + this, next_time), + next_time - start_time); + } + } + + void RunAllPendingTasks() { task_runner_->FastForwardUntilNoTasksRemain(); } + + private: + scoped_refptr<base::TestMockTimeTaskRunner> task_runner_; + base::Optional<FakeGroupMember> group_member_; + base::Optional<SnooperNode> node_; + base::Optional<FakeConsumer> consumer_; +}; + +// Performance of this test on debug builds is abysmal. So, only run it on +// optimized builds. +#ifdef NDEBUG +#define MAYBE_ContinuousAudioFlowAdaptsToSkew ContinuousAudioFlowAdaptsToSkew +#else +#define MAYBE_ContinuousAudioFlowAdaptsToSkew \ + DISABLED_ContinuousAudioFlowAdaptsToSkew +#endif +TEST_P(SnooperNodeTest, MAYBE_ContinuousAudioFlowAdaptsToSkew) { + // Note: A skew of 0.999 or 1.001 is very extreme. This is like saying the + // clocks drift 1 ms for every second that goes by. If the implementation can + // handle that, it's very likely to do a perfect job in-the-wild. + for (double input_skew = 0.999; input_skew <= 1.001; input_skew += 0.0005) { + for (double output_skew = 0.999; output_skew <= 1.001; + output_skew += 0.0005) { + SCOPED_TRACE(testing::Message() << "input_skew=" << input_skew + << ", output_skew=" << output_skew); + + // Set up the components, schedule all audio generation and consumption + // tasks, and then run them. + CreateNewPipeline(); + ScheduleInputTasks(input_skew, Positions()); + ScheduleOutputTasks(output_skew, Positions()); + RunAllPendingTasks(); + + // All rendering for points-in-time before the audio from the source was + // first recorded should be silence. + const double expected_end_of_silence_position = + ((input_skew * kInputAdvanceTime.InSecondsF()) + + (output_skew * kOutputDelayTime.InSecondsF())) * + output_params().sample_rate(); + const double frames_in_one_millisecond = + output_params().sample_rate() / 1000.0; + EXPECT_NEAR(expected_end_of_silence_position, + consumer()->FindEndOfSilence(0, 0), + frames_in_one_millisecond); + if (output_params().channels() > 1) { + EXPECT_NEAR(expected_end_of_silence_position, + consumer()->FindEndOfSilence(1, 0), + frames_in_one_millisecond); + } + + // Analyze the recording in several places for the expected tones. + constexpr int kNumToneChecks = 16; + for (int i = 1; i <= kNumToneChecks; ++i) { + const int end_frame = + consumer()->GetRecordedFrameCount() * i / kNumToneChecks; + SCOPED_TRACE(testing::Message() << "end_frame=" << end_frame); + EXPECT_NEAR( + kSourceVolume, + consumer()->ComputeAmplitudeAt(0, kLeftChannelFrequency, end_frame), + 0.01); + if (output_params().channels() > 1) { + const double freq = input_params().channels() == 1 + ? kLeftChannelFrequency + : kRightChannelFrequency; + EXPECT_NEAR(kSourceVolume, + consumer()->ComputeAmplitudeAt(1, freq, end_frame), 0.01); + } + } + + if (HasFailure()) { + return; + } + } + } +} + +TEST_P(SnooperNodeTest, HandlesMissingInput) { + // Compute drops to occur once per second for 1/4 second duration. Each drop + // position must be aligned to input_params().frames_per_buffer() for the + // heuristics in ScheduleInputTasks() to process these drop positions + // correctly. + Positions drop_positions; + const int input_frames_in_one_second = input_params().sample_rate(); + const int input_frames_in_a_quarter_second = input_frames_in_one_second / 4; + int unaligned_drop_position = input_frames_in_one_second; + for (int gap = 0; gap < 5; ++gap) { + const int aligned_drop_position = + (unaligned_drop_position / input_params().frames_per_buffer()) * + input_params().frames_per_buffer(); + const int end_position = + aligned_drop_position + input_frames_in_a_quarter_second; + for (int i = 0;; ++i) { + const int next_drop_position = + aligned_drop_position + i * input_params().frames_per_buffer(); + if (next_drop_position >= end_position) { + break; + } + drop_positions.push_back(next_drop_position); + } + unaligned_drop_position += input_frames_in_one_second; + } + + // Set up the components, schedule all audio generation and consumption tasks, + // and then run them. + CreateNewPipeline(); + ScheduleInputTasks(1.0, drop_positions); + ScheduleOutputTasks(1.0, Positions()); + RunAllPendingTasks(); + + // Check that there is silence in the drop positions, and that tones are + // present around the silent sections. The ranges are adjusted to be 20 ms + // away from the exact begin/end positions to account for a reasonable amount + // of variance in due to the input buffer intervals. + const int output_frames_in_one_second = output_params().sample_rate(); + const int output_frames_in_a_quarter_second = output_frames_in_one_second / 4; + const int output_frames_in_20_milliseconds = + output_frames_in_one_second * 20 / 1000; + int output_silence_position = + ((kInputAdvanceTime + kOutputDelayTime).InSecondsF() + 1.0) * + output_params().sample_rate(); + for (int gap = 0; gap < 5; ++gap) { + SCOPED_TRACE(testing::Message() << "gap=" << gap); + + // Just before the drop, there should be a tone. + const int position_a_little_before_silence_begins = + output_silence_position - output_frames_in_20_milliseconds; + EXPECT_NEAR( + kSourceVolume, + consumer()->ComputeAmplitudeAt(0, kLeftChannelFrequency, + position_a_little_before_silence_begins), + 0.01); + + // There should be silence during the drop. + const int position_a_little_after_silence_begins = + output_silence_position + output_frames_in_20_milliseconds; + const int position_a_little_before_silence_ends = + position_a_little_after_silence_begins + + output_frames_in_a_quarter_second - + 2 * output_frames_in_20_milliseconds; + EXPECT_TRUE( + consumer()->IsSilentInRange(0, position_a_little_after_silence_begins, + position_a_little_before_silence_ends)); + + // Finally, the tone should be back after the drop. + const int position_a_little_after_silence_ends = + position_a_little_before_silence_ends + + 2 * output_frames_in_20_milliseconds; + EXPECT_NEAR( + kSourceVolume, + consumer()->ComputeAmplitudeAt(0, kLeftChannelFrequency, + position_a_little_after_silence_ends), + 0.01); + output_silence_position += output_frames_in_one_second; + } +} + +// TODO: TEST_P(SnooperNodeTest, HandlesSkippingOutput) {} + +InputAndOutputParams MakeParams(media::ChannelLayout input_channel_layout, + int input_sample_rate, + int input_frames_per_buffer, + media::ChannelLayout output_channel_layout, + int output_sample_rate, + int output_frames_per_buffer) { + return InputAndOutputParams{ + media::AudioParameters(media::AudioParameters::AUDIO_PCM_LOW_LATENCY, + input_channel_layout, input_sample_rate, + input_frames_per_buffer), + media::AudioParameters(media::AudioParameters::AUDIO_PCM_LOW_LATENCY, + output_channel_layout, output_sample_rate, + output_frames_per_buffer)}; +} + +INSTANTIATE_TEST_CASE_P(, + SnooperNodeTest, + testing::Values(MakeParams(media::CHANNEL_LAYOUT_STEREO, + 48000, + 480, + media::CHANNEL_LAYOUT_STEREO, + 48000, + 480), + MakeParams(media::CHANNEL_LAYOUT_STEREO, + 48000, + 64, + media::CHANNEL_LAYOUT_STEREO, + 48000, + 480), + MakeParams(media::CHANNEL_LAYOUT_STEREO, + 44100, + 64, + media::CHANNEL_LAYOUT_STEREO, + 48000, + 480), + MakeParams(media::CHANNEL_LAYOUT_STEREO, + 48000, + 512, + media::CHANNEL_LAYOUT_STEREO, + 44100, + 441), + MakeParams(media::CHANNEL_LAYOUT_MONO, + 8000, + 64, + media::CHANNEL_LAYOUT_STEREO, + 48000, + 480), + MakeParams(media::CHANNEL_LAYOUT_STEREO, + 48000, + 480, + media::CHANNEL_LAYOUT_MONO, + 8000, + 80))); + +} // namespace +} // namespace audio
diff --git a/services/ui/public/interfaces/display_manager.mojom b/services/ui/public/interfaces/display_manager.mojom index b40e8358..7e7b25e9 100644 --- a/services/ui/public/interfaces/display_manager.mojom +++ b/services/ui/public/interfaces/display_manager.mojom
@@ -18,6 +18,8 @@ int64 internal_display_id); }; +// TODO(jamescook): Rename to ScreenProvider. interface DisplayManager { + // Adding an observer triggers a notification with the initial values. AddObserver(DisplayManagerObserver observer); };
diff --git a/services/ui/ws/event_processor_unittest.cc b/services/ui/ws/event_processor_unittest.cc index bb9440e..5e3dc45 100644 --- a/services/ui/ws/event_processor_unittest.cc +++ b/services/ui/ws/event_processor_unittest.cc
@@ -477,9 +477,8 @@ VizHostProxy* viz_host_proxy() { return ws_test_helper_.window_server()->GetVizHostProxy(); } - viz::AggregatedHitTestRegion* aggregated_hit_test_region() { - return static_cast<viz::AggregatedHitTestRegion*>(active_buffer_.get()); - } + + void SendHitTestData(); void DispatchEvent(EventProcessor* dispatcher, const ui::Event& event, @@ -507,6 +506,8 @@ // testing::TestWithParam<bool>: void SetUp() override; + std::vector<viz::AggregatedHitTestRegion> active_hit_test_data_; + private: // TestEventProcessorDelegate::Delegate: void ReleaseCapture() override { @@ -520,11 +521,15 @@ std::unique_ptr<ServerWindow> root_window_; std::unique_ptr<TestEventProcessorDelegate> test_event_dispatcher_delegate_; std::unique_ptr<EventProcessor> event_dispatcher_; - mojo::ScopedSharedBufferMapping active_buffer_; DISALLOW_COPY_AND_ASSIGN(EventProcessorVizTargeterTest); }; +void EventProcessorVizTargeterTest::SendHitTestData() { + test_event_dispatcher_delegate_->hit_test_query() + ->OnAggregatedHitTestRegionListUpdated(active_hit_test_data_); +} + void EventProcessorVizTargeterTest::SetUp() { feature_list_.InitAndEnableFeature(features::kEnableVizHitTestDrawQuad); if (is_event_processing_async()) { @@ -547,18 +552,6 @@ std::make_unique<EventProcessor>(test_event_dispatcher_delegate_.get(), test_event_dispatcher_delegate_.get()); test_event_dispatcher_delegate_->set_root(root_window_.get()); - - uint32_t handle_size = 100; - size_t num_bytes = handle_size * sizeof(viz::AggregatedHitTestRegion); - mojo::ScopedSharedBufferHandle active_handle = - mojo::SharedBufferHandle::Create(num_bytes); - mojo::ScopedSharedBufferHandle idle_handle = - mojo::SharedBufferHandle::Create(num_bytes); - active_buffer_ = active_handle->Map(num_bytes); - test_event_dispatcher_delegate_->hit_test_query() - ->OnAggregatedHitTestRegionListUpdated( - std::move(active_handle), handle_size, std::move(idle_handle), - handle_size); } TEST_P(EventProcessorTest, ProcessEvent) { @@ -2437,16 +2430,15 @@ child->SetBounds(gfx::Rect(10, 10, 20, 20)); test_event_dispatcher_delegate()->AddWindow(root_window()); test_event_dispatcher_delegate()->AddWindow(child.get()); - viz::AggregatedHitTestRegion* aggregated_hit_test_region_list = - aggregated_hit_test_region(); - aggregated_hit_test_region_list[0] = viz::AggregatedHitTestRegion( + active_hit_test_data_.push_back(viz::AggregatedHitTestRegion( root_window()->frame_sink_id(), viz::mojom::kHitTestMine | viz::mojom::kHitTestMouse, - root_window()->bounds(), root_window()->transform(), 1); // root_window - aggregated_hit_test_region_list[1] = viz::AggregatedHitTestRegion( + root_window()->bounds(), root_window()->transform(), 1)); // root_window + active_hit_test_data_.push_back(viz::AggregatedHitTestRegion( child->frame_sink_id(), viz::mojom::kHitTestMine | viz::mojom::kHitTestMouse, child->bounds(), - child->transform(), 0); // child + child->transform(), 0)); // child + SendHitTestData(); // Send event that is over child. const ui::PointerEvent ui_event(ui::MouseEvent(
diff --git a/services/ui/ws2/BUILD.gn b/services/ui/ws2/BUILD.gn index aa8267e..3225c1f 100644 --- a/services/ui/ws2/BUILD.gn +++ b/services/ui/ws2/BUILD.gn
@@ -10,6 +10,7 @@ import("//services/service_manager/public/tools/test/service_test.gni") component("lib") { + friend = [ ":tests" ] public = [ "gpu_support.h", "ids.h", @@ -28,6 +29,8 @@ "client_root.h", "client_window.cc", "client_window.h", + "display_manager_mus.cc", + "display_manager_mus.h", "window_host_frame_sink_client.cc", "window_host_frame_sink_client.h", "window_service.cc", @@ -103,6 +106,7 @@ testonly = true sources = [ + "display_manager_mus_unittest.cc", "window_service_client_unittest.cc", "window_tree_client_unittest.cc", ] @@ -116,6 +120,7 @@ "//mojo/public/cpp/bindings", "//services/service_manager/public/cpp:service_test_support", "//services/service_manager/public/mojom", + "//services/ui/common:task_runner_test_base", "//services/ui/public/cpp", "//services/ui/public/interfaces", "//testing/gtest",
diff --git a/services/ui/ws2/display_manager_mus.cc b/services/ui/ws2/display_manager_mus.cc new file mode 100644 index 0000000..0471c47 --- /dev/null +++ b/services/ui/ws2/display_manager_mus.cc
@@ -0,0 +1,81 @@ +// 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 "services/ui/ws2/display_manager_mus.h" + +#include "ui/display/screen.h" + +using display::Display; +using display::Screen; + +namespace ui { +namespace ws2 { +namespace { + +int64_t GetPrimaryDisplayId() { + return Screen::GetScreen()->GetPrimaryDisplay().id(); +} + +int64_t GetInternalDisplayId() { + return Display::HasInternalDisplay() ? Display::InternalDisplayId() + : display::kInvalidDisplayId; +} + +} // namespace + +DisplayManagerMus::DisplayManagerMus() { + Screen::GetScreen()->AddObserver(this); +} + +DisplayManagerMus::~DisplayManagerMus() { + Screen::GetScreen()->RemoveObserver(this); +} + +void DisplayManagerMus::AddBinding(mojom::DisplayManagerRequest request) { + bindings_.AddBinding(this, std::move(request)); +} + +void DisplayManagerMus::AddObserver(mojom::DisplayManagerObserverPtr observer) { + mojom::DisplayManagerObserver* observer_impl = observer.get(); + observers_.AddPtr(std::move(observer)); + NotifyObserver(observer_impl); +} + +void DisplayManagerMus::OnDidProcessDisplayChanges() { + // Display changes happen in batches, so notify observers after the batch is + // complete, rather than on every add/remove/metrics change. + NotifyAllObservers(); +} + +void DisplayManagerMus::NotifyAllObservers() { + observers_.ForAllPtrs([this](mojom::DisplayManagerObserver* observer) { + NotifyObserver(observer); + }); +} + +void DisplayManagerMus::NotifyObserver( + mojom::DisplayManagerObserver* observer) { + observer->OnDisplaysChanged(GetAllDisplays(), GetPrimaryDisplayId(), + GetInternalDisplayId()); +} + +std::vector<mojom::WsDisplayPtr> DisplayManagerMus::GetAllDisplays() { + std::vector<Display> displays = Screen::GetScreen()->GetAllDisplays(); + + std::vector<mojom::WsDisplayPtr> ws_displays; + ws_displays.reserve(displays.size()); + + for (const Display& display : displays) { + mojom::WsDisplayPtr ws_display = mojom::WsDisplay::New(); + ws_display->display = display; + // TODO(jamescook): Add a delegate to get frame decoration values from ash. + ws_display->frame_decoration_values = mojom::FrameDecorationValues::New(); + ws_displays.push_back(std::move(ws_display)); + } + + return ws_displays; +} + +} // namespace ws2 +} // namespace ui
diff --git a/services/ui/ws2/display_manager_mus.h b/services/ui/ws2/display_manager_mus.h new file mode 100644 index 0000000..35b44d0e --- /dev/null +++ b/services/ui/ws2/display_manager_mus.h
@@ -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. + +#ifndef SERVICES_UI_WS2_DISPLAY_MANAGER_MUS_H_ +#define SERVICES_UI_WS2_DISPLAY_MANAGER_MUS_H_ + +#include "base/component_export.h" +#include "base/macros.h" +#include "mojo/public/cpp/bindings/binding_set.h" +#include "mojo/public/cpp/bindings/interface_ptr_set.h" +#include "services/ui/public/interfaces/display_manager.mojom.h" +#include "ui/display/display_observer.h" + +namespace ui { +namespace ws2 { + +// Provides information about displays to window service clients. +// display::Screen must outlive this object. Exported for test. +// TODO(jamescook): Rename to DisplayManagerWs or whatever we end up calling the +// window server library. It is named Mus to match ScreenMus. +class COMPONENT_EXPORT(WINDOW_SERVICE) DisplayManagerMus + : public mojom::DisplayManager, + public display::DisplayObserver { + public: + DisplayManagerMus(); + ~DisplayManagerMus() override; + + void AddBinding(mojom::DisplayManagerRequest request); + + // mojom::DisplayManager: + void AddObserver(mojom::DisplayManagerObserverPtr observer) override; + + // display::DisplayObserver: + void OnDidProcessDisplayChanges() override; + + private: + std::vector<mojom::WsDisplayPtr> GetAllDisplays(); + + void NotifyAllObservers(); + + void NotifyObserver(mojom::DisplayManagerObserver* observer); + + mojo::BindingSet<mojom::DisplayManager> bindings_; + + mojo::InterfacePtrSet<mojom::DisplayManagerObserver> observers_; + + DISALLOW_COPY_AND_ASSIGN(DisplayManagerMus); +}; + +} // namespace ws2 +} // namespace ui + +#endif // SERVICES_UI_WS2_DISPLAY_MANAGER_MUS_H_
diff --git a/services/ui/ws2/display_manager_mus_unittest.cc b/services/ui/ws2/display_manager_mus_unittest.cc new file mode 100644 index 0000000..82e455c --- /dev/null +++ b/services/ui/ws2/display_manager_mus_unittest.cc
@@ -0,0 +1,143 @@ +// 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 "services/ui/ws2/display_manager_mus.h" + +#include <stdint.h> + +#include "base/strings/string_number_conversions.h" +#include "services/ui/common/task_runner_test_base.h" +#include "services/ui/public/interfaces/display_manager.mojom.h" +#include "testing/gtest/include/gtest/gtest.h" +#include "ui/display/display.h" +#include "ui/display/screen_base.h" + +using display::Display; +using display::DisplayList; +using display::DisplayObserver; + +namespace ui { +namespace ws2 { +namespace { + +std::string DisplayIdsToString( + const std::vector<mojom::WsDisplayPtr>& wm_displays) { + std::string display_ids; + for (const auto& wm_display : wm_displays) { + if (!display_ids.empty()) + display_ids += " "; + display_ids += base::NumberToString(wm_display->display.id()); + } + return display_ids; +} + +// A testing screen that generates the OnDidProcessDisplayChanges() notification +// similar to production code. +class TestScreen : public display::ScreenBase { + public: + TestScreen() { display::Screen::SetScreenInstance(this); } + + ~TestScreen() override { display::Screen::SetScreenInstance(nullptr); } + + void AddDisplay(const Display& display, DisplayList::Type type) { + display_list().AddDisplay(display, type); + for (DisplayObserver& observer : *display_list().observers()) + observer.OnDidProcessDisplayChanges(); + } + + void UpdateDisplay(const Display& display, DisplayList::Type type) { + display_list().UpdateDisplay(display, type); + for (DisplayObserver& observer : *display_list().observers()) + observer.OnDidProcessDisplayChanges(); + } + + void RemoveDisplay(int64_t display_id) { + display_list().RemoveDisplay(display_id); + for (DisplayObserver& observer : *display_list().observers()) + observer.OnDidProcessDisplayChanges(); + } + + private: + DISALLOW_COPY_AND_ASSIGN(TestScreen); +}; + +class TestDisplayManagerObserver : public mojom::DisplayManagerObserver { + public: + TestDisplayManagerObserver() = default; + ~TestDisplayManagerObserver() override = default; + + mojom::DisplayManagerObserverPtr GetPtr() { + mojom::DisplayManagerObserverPtr ptr; + binding_.Bind(mojo::MakeRequest(&ptr)); + return ptr; + } + + // mojom::DisplayManagerObserver: + void OnDisplaysChanged(std::vector<mojom::WsDisplayPtr> displays, + int64_t primary_display_id, + int64_t internal_display_id) override { + display_ids_ = DisplayIdsToString(displays); + primary_display_id_ = primary_display_id; + internal_display_id_ = internal_display_id; + } + + mojo::Binding<mojom::DisplayManagerObserver> binding_{this}; + std::string display_ids_; + int64_t primary_display_id_ = 0; + int64_t internal_display_id_ = 0; + + private: + DISALLOW_COPY_AND_ASSIGN(TestDisplayManagerObserver); +}; + +// Mojo needs a task runner. +using DisplayManagerMusTest = TaskRunnerTestBase; + +TEST_F(DisplayManagerMusTest, AddRemoveDisplay) { + TestScreen screen; + screen.AddDisplay(Display(111, gfx::Rect(0, 0, 640, 480)), + DisplayList::Type::PRIMARY); + Display::SetInternalDisplayId(111); + + DisplayManagerMus manager; + TestDisplayManagerObserver observer; + + // Adding an observer triggers an update. + manager.AddObserver(observer.GetPtr()); + // Wait for mojo message to observer. + RunUntilIdle(); + EXPECT_EQ("111", observer.display_ids_); + EXPECT_EQ(111, observer.primary_display_id_); + EXPECT_EQ(111, observer.internal_display_id_); + observer.display_ids_.clear(); + + // Adding a display triggers an update. + screen.AddDisplay(Display(222, gfx::Rect(640, 0, 640, 480)), + DisplayList::Type::NOT_PRIMARY); + // Wait for mojo message to observer. + RunUntilIdle(); + EXPECT_EQ("111 222", observer.display_ids_); + EXPECT_EQ(111, observer.primary_display_id_); + observer.display_ids_.clear(); + + // Updating which display is primary triggers an update. + screen.UpdateDisplay(Display(222, gfx::Rect(640, 0, 800, 600)), + DisplayList::Type::PRIMARY); + // Wait for mojo message to observer. + RunUntilIdle(); + EXPECT_EQ("111 222", observer.display_ids_); + EXPECT_EQ(222, observer.primary_display_id_); + observer.display_ids_.clear(); + + // Removing a display triggers an update. + screen.RemoveDisplay(111); + // Wait for mojo message to observer. + RunUntilIdle(); + EXPECT_EQ("222", observer.display_ids_); + EXPECT_EQ(222, observer.primary_display_id_); +} + +} // namespace +} // namespace ws2 +} // namespace ui
diff --git a/services/ui/ws2/window_service.cc b/services/ui/ws2/window_service.cc index e40f3fb..412ca0e 100644 --- a/services/ui/ws2/window_service.cc +++ b/services/ui/ws2/window_service.cc
@@ -7,6 +7,7 @@ #include "base/bind.h" #include "base/single_thread_task_runner.h" #include "services/ui/ws2/client_window.h" +#include "services/ui/ws2/display_manager_mus.h" #include "services/ui/ws2/gpu_support.h" #include "services/ui/ws2/window_service_client.h" #include "services/ui/ws2/window_service_delegate.h" @@ -18,7 +19,9 @@ WindowService::WindowService(WindowServiceDelegate* delegate, std::unique_ptr<GpuSupport> gpu_support) - : delegate_(delegate), gpu_support_(std::move(gpu_support)) { + : delegate_(delegate), + gpu_support_(std::move(gpu_support)), + display_manager_mus_(std::make_unique<DisplayManagerMus>()) { // MouseLocationManager is necessary for providing the shared memory with the // location of the mouse to clients. aura::Env::GetInstance()->CreateMouseLocationManager(); @@ -87,8 +90,7 @@ void WindowService::BindDisplayManagerRequest( mojom::DisplayManagerRequest request) { - // TODO: https://crbug.com/839592. - NOTIMPLEMENTED(); + display_manager_mus_->AddBinding(std::move(request)); } void WindowService::BindImeDriverRequest(mojom::IMEDriverRequest request) {
diff --git a/services/ui/ws2/window_service.h b/services/ui/ws2/window_service.h index e05326bf..060c990 100644 --- a/services/ui/ws2/window_service.h +++ b/services/ui/ws2/window_service.h
@@ -31,6 +31,7 @@ namespace ws2 { class ClientWindow; +class DisplayManagerMus; class GpuSupport; class WindowServiceClient; class WindowServiceDelegate; @@ -79,6 +80,8 @@ // GpuSupport may be null in tests. std::unique_ptr<GpuSupport> gpu_support_; + std::unique_ptr<DisplayManagerMus> display_manager_mus_; + service_manager::BinderRegistry registry_; std::unique_ptr<WindowTreeFactory> window_tree_factory_;
diff --git a/services/ui/ws2/window_service_client_unittest.cc b/services/ui/ws2/window_service_client_unittest.cc index 984c152..e6885c2 100644 --- a/services/ui/ws2/window_service_client_unittest.cc +++ b/services/ui/ws2/window_service_client_unittest.cc
@@ -54,6 +54,7 @@ } ~WindowServiceTestHelper() { + service_.reset(); aura_test_helper_.TearDown(); ui::TerminateContextFactoryForTests(); }
diff --git a/services/video_capture/test/device_factory_provider_unittest.cc b/services/video_capture/test/device_factory_provider_unittest.cc index 7f2e8ff..3dd3cf57 100644 --- a/services/video_capture/test/device_factory_provider_unittest.cc +++ b/services/video_capture/test/device_factory_provider_unittest.cc
@@ -85,7 +85,7 @@ wait_loop.Run(); } -// Tests that VideoCaptureDeviceFactory::CreateDeviceProxy() returns an error +// Tests that VideoCaptureDeviceFactory::CreateDevice() returns an error // code when trying to create a device for an invalid descriptor. TEST_F(VideoCaptureServiceDeviceFactoryProviderTest, ErrorCodeOnCreateDeviceForInvalidDescriptor) { @@ -105,7 +105,7 @@ wait_loop.Run(); } -// Test that CreateDevice will succeed when trying to create a device +// Test that CreateDevice() will succeed when trying to create a device // for an added virtual device. TEST_F(VideoCaptureServiceDeviceFactoryProviderTest, CreateDeviceSuccessForVirtualDevice) {
diff --git a/services/video_capture/test/fake_device_descriptor_unittest.cc b/services/video_capture/test/fake_device_descriptor_unittest.cc index 2d65995..c65cbea 100644 --- a/services/video_capture/test/fake_device_descriptor_unittest.cc +++ b/services/video_capture/test/fake_device_descriptor_unittest.cc
@@ -21,6 +21,27 @@ // TODO(rockot/chfremer): Consider just renaming the type. using FakeVideoCaptureDeviceDescriptorTest = FakeDeviceDescriptorTest; +// Tests that when a client calls CreateDevice() but releases the message pipe +// passed in as |device_request| before the corresponding callback arrives, +// nothing bad happens and the callback still does arrive at some point after. +TEST_F(FakeVideoCaptureDeviceDescriptorTest, + ClientReleasesDeviceHandleBeforeCreateCallbackHasArrived) { + mojom::DevicePtr device_proxy; + MockCreateDeviceProxyCallback create_device_proxy_callback; + factory_->CreateDevice( + fake_device_info_.descriptor.device_id, mojo::MakeRequest(&device_proxy), + base::BindOnce(&MockCreateDeviceProxyCallback::Run, + base::Unretained(&create_device_proxy_callback))); + + base::RunLoop wait_loop; + EXPECT_CALL(create_device_proxy_callback, + Run(mojom::DeviceAccessResultCode::SUCCESS)) + .WillOnce(InvokeWithoutArgs([&wait_loop]() { wait_loop.Quit(); })); + + device_proxy.reset(); + wait_loop.Run(); +} + // Tests that when requesting a second proxy for a device without closing the // first one, the service revokes access to the first one by closing the // connection.
diff --git a/services/viz/privileged/interfaces/compositing/frame_sink_manager.mojom b/services/viz/privileged/interfaces/compositing/frame_sink_manager.mojom index 711adde53..577b25dc 100644 --- a/services/viz/privileged/interfaces/compositing/frame_sink_manager.mojom +++ b/services/viz/privileged/interfaces/compositing/frame_sink_manager.mojom
@@ -16,6 +16,7 @@ import "services/viz/public/interfaces/compositing/local_surface_id.mojom"; import "services/viz/public/interfaces/compositing/surface_id.mojom"; import "services/viz/public/interfaces/compositing/surface_info.mojom"; +import "services/viz/public/interfaces/hit_test/aggregated_hit_test_region.mojom"; import "ui/gfx/geometry/mojo/geometry.mojom"; import "services/viz/public/interfaces/compositing/video_detector_observer.mojom"; @@ -147,17 +148,9 @@ // SurfaceId activates for the first time. OnFirstSurfaceActivation(SurfaceInfo surface_info); - // Sends |active_handle| and |idle_handle| along with their sizes to the - // client when they are allocated or resized. - OnAggregatedHitTestRegionListUpdated(FrameSinkId frame_sink_id, - handle<shared_buffer> active_handle, - uint32 active_handle_size, - handle<shared_buffer> idle_handle, - uint32 idle_handle_size); - - // Tells the client to update the currently active handle. - SwitchActiveAggregatedHitTestRegionList(FrameSinkId frame_sink_id, - uint8 active_handle_index); + // Sends new |hit_test_data| to the client. + OnAggregatedHitTestRegionListUpdated( + FrameSinkId frame_sink_id, array<AggregatedHitTestRegion> hit_test_data); // Sends |frame_sink_id| and |frame_token| to the client when a surface // of the provided |frame_sink_id| activates.
diff --git a/testing/buildbot/chromium.fyi.json b/testing/buildbot/chromium.fyi.json index 462be33..66337b5 100644 --- a/testing/buildbot/chromium.fyi.json +++ b/testing/buildbot/chromium.fyi.json
@@ -8080,7 +8080,8 @@ "dimension_sets": [ { "kvm": "1", - "os": "Ubuntu-14.04" + "os": "Ubuntu-14.04", + "pool": "Chrome-CrOS-VM" } ] }, @@ -8092,7 +8093,8 @@ "dimension_sets": [ { "kvm": "1", - "os": "Ubuntu-14.04" + "os": "Ubuntu-14.04", + "pool": "Chrome-CrOS-VM" } ] }, @@ -8104,7 +8106,8 @@ "dimension_sets": [ { "kvm": "1", - "os": "Ubuntu-14.04" + "os": "Ubuntu-14.04", + "pool": "Chrome-CrOS-VM" } ], "shards": 2 @@ -8117,7 +8120,8 @@ "dimension_sets": [ { "kvm": "1", - "os": "Ubuntu-14.04" + "os": "Ubuntu-14.04", + "pool": "Chrome-CrOS-VM" } ] }, @@ -8129,7 +8133,8 @@ "dimension_sets": [ { "kvm": "1", - "os": "Ubuntu-14.04" + "os": "Ubuntu-14.04", + "pool": "Chrome-CrOS-VM" } ] }, @@ -8141,7 +8146,8 @@ "dimension_sets": [ { "kvm": "1", - "os": "Ubuntu-14.04" + "os": "Ubuntu-14.04", + "pool": "Chrome-CrOS-VM" } ] }, @@ -8153,7 +8159,8 @@ "dimension_sets": [ { "kvm": "1", - "os": "Ubuntu-14.04" + "os": "Ubuntu-14.04", + "pool": "Chrome-CrOS-VM" } ] }, @@ -8176,7 +8183,8 @@ "dimension_sets": [ { "kvm": "1", - "os": "Ubuntu-14.04" + "os": "Ubuntu-14.04", + "pool": "Chrome-CrOS-VM" } ], "hard_timeout": 960,
diff --git a/testing/buildbot/filters/mojo.fyi.network_content_browsertests.filter b/testing/buildbot/filters/mojo.fyi.network_content_browsertests.filter index 672ef54..4aa8e6e 100644 --- a/testing/buildbot/filters/mojo.fyi.network_content_browsertests.filter +++ b/testing/buildbot/filters/mojo.fyi.network_content_browsertests.filter
@@ -40,7 +40,6 @@ -NavigationHandleImplBrowserTest.RedirectToRendererDebugUrl -AsyncResourceHandlerBrowserTest/AsyncResourceHandlerBrowserTest.UploadProgress* --NavigationHandleImplBrowserTest.ErrorCodeOnRedirect -WebContentsImplBrowserTest.DownloadImage_Deny_FileImage # services/network/url_loader.cc should handle failure in
diff --git a/testing/buildbot/waterfalls.pyl b/testing/buildbot/waterfalls.pyl index 988e4dc..125a0434 100644 --- a/testing/buildbot/waterfalls.pyl +++ b/testing/buildbot/waterfalls.pyl
@@ -1414,6 +1414,7 @@ { 'kvm': '1', 'os': 'Ubuntu-14.04', + 'pool': 'Chrome-CrOS-VM', }, ], },
diff --git a/testing/variations/fieldtrial_testing_config.json b/testing/variations/fieldtrial_testing_config.json index 2c0849f..18efee6 100644 --- a/testing/variations/fieldtrial_testing_config.json +++ b/testing/variations/fieldtrial_testing_config.json
@@ -1160,6 +1160,21 @@ ] } ], + "EmojiContextMenu": [ + { + "platforms": [ + "mac" + ], + "experiments": [ + { + "name": "Enabled", + "enable_features": [ + "EnableEmojiContextMenu" + ] + } + ] + } + ], "EnableAppContainer": [ { "platforms": [
diff --git a/third_party/WebKit/LayoutTests/FlagExpectations/enable-blink-features=LayoutNG b/third_party/WebKit/LayoutTests/FlagExpectations/enable-blink-features=LayoutNG index 44c2771..e4996bd 100644 --- a/third_party/WebKit/LayoutTests/FlagExpectations/enable-blink-features=LayoutNG +++ b/third_party/WebKit/LayoutTests/FlagExpectations/enable-blink-features=LayoutNG
@@ -157,6 +157,7 @@ crbug.com/591099 css3/filters/effect-brightness.html [ Failure ] crbug.com/714962 css3/filters/effect-reference-zoom-hw.html [ Failure ] crbug.com/591099 css3/filters/multiple-references-id-mutate-crash-2.html [ Crash ] +crbug.com/591099 css3/flexbox/bug646288.html [ Failure ] crbug.com/591099 css3/flexbox/bug669714.html [ Failure ] crbug.com/591099 css3/flexbox/flex-flow-border.html [ Failure ] crbug.com/591099 css3/flexbox/flex-flow-margins-auto-size.html [ Failure ] @@ -1538,9 +1539,6 @@ crbug.com/591099 fast/text/selection/selection-with-inline-padding.html [ Failure ] crbug.com/714962 fast/text/selection/shaping-selection-rect.html [ Failure ] crbug.com/591099 fast/text/text-combine-first-line-crash.html [ Crash ] -crbug.com/714962 fast/text/transform-text-first-line-capitalize.html [ Failure ] -crbug.com/714962 fast/text/transform-text-first-line-lowercase.html [ Failure ] -crbug.com/714962 fast/text/transform-text-first-line.html [ Failure ] crbug.com/714962 fast/text/unicode-fallback-font.html [ Failure ] crbug.com/591099 fast/text/whitespace/018.html [ Failure ] crbug.com/591099 fast/text/whitespace/inline-whitespace-wrapping-3.html [ Failure ] @@ -1958,8 +1956,6 @@ crbug.com/591099 payments/payment-request-in-iframe.html [ Failure ] crbug.com/824918 printing/absolute-position-headers-and-footers.html [ Failure ] crbug.com/824918 printing/single-line-must-not-be-split-into-two-pages.html [ Timeout ] -crbug.com/591099 printing/webgl-repeated-printing-preservedrawingbuffer.html [ Failure ] -crbug.com/591099 printing/webgl-repeated-printing.html [ Failure ] crbug.com/591099 scrollbars/auto-scrollbar-fit-content.html [ Failure ] crbug.com/591099 scrollbars/scrollbar-miss-mousemove-disabled.html [ Failure ] crbug.com/591099 shapedetection/detection-HTMLVideoElement.html [ Pass ] @@ -1986,8 +1982,6 @@ crbug.com/591099 svg/custom/use-event-retargeting.html [ Failure ] crbug.com/591099 svg/dom/svgangle-units.html [ Pass Timeout ] crbug.com/591099 svg/filters/feTurbulence-bad-seeds.html [ Failure ] -crbug.com/591099 svg/hixie/error/dumpAsText/004.xml [ Failure ] -crbug.com/591099 svg/hixie/error/dumpAsText/005.xml [ Failure ] crbug.com/591099 svg/in-html/sizing/svg-inline.html [ Timeout ] crbug.com/591099 svg/parser/whitespace-length-invalid-1.html [ Pass Timeout ] crbug.com/591099 svg/parser/whitespace-length-invalid-2.html [ Pass Timeout ]
diff --git a/third_party/WebKit/LayoutTests/TestExpectations b/third_party/WebKit/LayoutTests/TestExpectations index 179f5d7..f429f07 100644 --- a/third_party/WebKit/LayoutTests/TestExpectations +++ b/third_party/WebKit/LayoutTests/TestExpectations
@@ -2788,6 +2788,7 @@ crbug.com/832071 virtual/navigation-mojo-response/external/wpt/service-workers/service-worker/worker-client-id.https.html [ Failure ] # ====== New tests from wpt-importer added here ====== +crbug.com/626703 external/wpt/console/console-countReset-logging-manual.html [ Skip ] crbug.com/626703 [ Mac10.12 ] external/wpt/accelerometer/Accelerometer.https.html [ Timeout ] crbug.com/626703 [ Retina ] external/wpt/pointerevents/pointerevent_touch-action-button-test_touch-manual.html [ Skip ] crbug.com/626703 [ Retina ] external/wpt/pointerevents/pointerevent_touch-action-table-test_touch-manual.html [ Skip ]
diff --git a/third_party/WebKit/LayoutTests/external/WPT_BASE_MANIFEST.json b/third_party/WebKit/LayoutTests/external/WPT_BASE_MANIFEST.json index 8ff44fb..f917993 100644 --- a/third_party/WebKit/LayoutTests/external/WPT_BASE_MANIFEST.json +++ b/third_party/WebKit/LayoutTests/external/WPT_BASE_MANIFEST.json
@@ -169,6 +169,12 @@ {} ] ], + "console/console-countReset-logging-manual.html": [ + [ + "/console/console-countReset-logging-manual.html", + {} + ] + ], "console/console-format-specifier-symbol-manual.html": [ [ "/console/console-format-specifier-symbol-manual.html", @@ -7131,6 +7137,18 @@ {} ] ], + "css/CSS2/floats-clear/adjoining-float-new-fc.html": [ + [ + "/css/CSS2/floats-clear/adjoining-float-new-fc.html", + [ + [ + "/css/CSS2/reference/ref-filled-green-100px-square.xht", + "==" + ] + ], + {} + ] + ], "css/CSS2/floats-clear/clear-001.xht": [ [ "/css/CSS2/floats-clear/clear-001.xht", @@ -7191,6 +7209,18 @@ {} ] ], + "css/CSS2/floats-clear/clear-after-top-margin.html": [ + [ + "/css/CSS2/floats-clear/clear-after-top-margin.html", + [ + [ + "/css/reference/ref-filled-green-100px-square-only.html", + "==" + ] + ], + {} + ] + ], "css/CSS2/floats-clear/clear-applies-to-000.xht": [ [ "/css/CSS2/floats-clear/clear-applies-to-000.xht", @@ -9339,6 +9369,78 @@ {} ] ], + "css/CSS2/floats-clear/nested-clearance-new-formatting-context.html": [ + [ + "/css/CSS2/floats-clear/nested-clearance-new-formatting-context.html", + [ + [ + "/css/reference/ref-filled-green-200px-square.html", + "==" + ] + ], + {} + ] + ], + "css/CSS2/floats-clear/no-clearance-adjoining-opposite-float.html": [ + [ + "/css/CSS2/floats-clear/no-clearance-adjoining-opposite-float.html", + [ + [ + "/css/reference/nothing.html", + "==" + ] + ], + {} + ] + ], + "css/CSS2/floats-clear/no-clearance-due-to-large-margin-after-left-right.html": [ + [ + "/css/CSS2/floats-clear/no-clearance-due-to-large-margin-after-left-right.html", + [ + [ + "/css/reference/ref-filled-green-100px-square.xht", + "==" + ] + ], + {} + ] + ], + "css/CSS2/floats-clear/no-clearance-due-to-large-margin.html": [ + [ + "/css/CSS2/floats-clear/no-clearance-due-to-large-margin.html", + [ + [ + "/css/reference/ref-filled-green-100px-square.xht", + "==" + ] + ], + {} + ] + ], + "css/CSS2/floats-clear/second-float-inside-empty-cleared-block-after-margin.html": [ + [ + "/css/CSS2/floats-clear/second-float-inside-empty-cleared-block-after-margin.html", + [ + [ + "/css/reference/ref-filled-green-100px-square-only.html", + "==" + ] + ], + {} + ] + ], + "css/CSS2/floats-clear/second-float-inside-empty-cleared-block.html": [ + [ + "/css/CSS2/floats-clear/second-float-inside-empty-cleared-block.html", + [ + [ + "/css/reference/ref-filled-green-100px-square-only.html", + "==" + ] + ], + {} + ] + ], "css/CSS2/floats/floated-table-wider-than-specified.html": [ [ "/css/CSS2/floats/floated-table-wider-than-specified.html", @@ -101228,6 +101330,16 @@ {} ] ], + "console/console-counting-label-conversion.any-expected.txt": [ + [ + {} + ] + ], + "console/console-counting-label-conversion.any.worker-expected.txt": [ + [ + {} + ] + ], "console/console-tests-historical.any-expected.txt": [ [ {} @@ -139438,7 +139550,12 @@ {} ] ], - "fetch/api/cors/cors-filtering.js": [ + "fetch/api/cors/cors-filtering.sub.any-expected.txt": [ + [ + {} + ] + ], + "fetch/api/cors/cors-filtering.sub.any.worker-expected.txt": [ [ {} ] @@ -166243,6 +166360,16 @@ {} ] ], + "webusb/resources/usb.dedicatedworker.sharedworker.js": [ + [ + {} + ] + ], + "webusb/resources/usb.serviceworker.js": [ + [ + {} + ] + ], "webusb/usb-allowed-by-feature-policy.https.sub.html.headers": [ [ {} @@ -166253,6 +166380,11 @@ {} ] ], + "webusb/worker/usb.serviceworker.https-expected.txt": [ + [ + {} + ] + ], "webvr/OWNERS": [ [ {} @@ -179408,13 +179540,13 @@ {} ] ], - "console/console-count-label-conversion.any.js": [ + "console/console-counting-label-conversion.any.js": [ [ - "/console/console-count-label-conversion.any.html", + "/console/console-counting-label-conversion.any.html", {} ], [ - "/console/console-count-label-conversion.any.worker.html", + "/console/console-counting-label-conversion.any.worker.html", {} ] ], @@ -197476,15 +197608,13 @@ {} ] ], - "fetch/api/cors/cors-filtering-worker.html": [ + "fetch/api/cors/cors-filtering.sub.any.js": [ [ - "/fetch/api/cors/cors-filtering-worker.html", + "/fetch/api/cors/cors-filtering.sub.any.html", {} - ] - ], - "fetch/api/cors/cors-filtering.html": [ + ], [ - "/fetch/api/cors/cors-filtering.html", + "/fetch/api/cors/cors-filtering.sub.any.worker.html", {} ] ], @@ -241680,6 +241810,24 @@ {} ] ], + "webusb/worker/usb.dedicatedworker.https.html": [ + [ + "/webusb/worker/usb.dedicatedworker.https.html", + {} + ] + ], + "webusb/worker/usb.serviceworker.https.html": [ + [ + "/webusb/worker/usb.serviceworker.https.html", + {} + ] + ], + "webusb/worker/usb.sharedworker.https.html": [ + [ + "/webusb/worker/usb.sharedworker.https.html", + {} + ] + ], "webvr/idlharness.https.html": [ [ "/webvr/idlharness.https.html", @@ -259615,14 +259763,26 @@ "a68e6402110e1152708a014a591f7aec26a16b8d", "support" ], - "console/console-count-label-conversion.any.js": [ - "913cb6bf539803de5e4fc7f06f4af197579919c3", - "testharness" - ], "console/console-count-logging-manual.html": [ "1ffcacf40728c1cd9f0eadbd68dad59e7c2c35d3", "manual" ], + "console/console-countReset-logging-manual.html": [ + "587de5bb8dcb002025244e8058b52d4ba0b1bdd3", + "manual" + ], + "console/console-counting-label-conversion.any-expected.txt": [ + "9d16af5f5859a6a1f8ce1f3aa22d60ff3cb3c932", + "support" + ], + "console/console-counting-label-conversion.any.js": [ + "a48d28ca0a1d6c5c50dc5d29521563a44beb6590", + "testharness" + ], + "console/console-counting-label-conversion.any.worker-expected.txt": [ + "9d16af5f5859a6a1f8ce1f3aa22d60ff3cb3c932", + "support" + ], "console/console-format-specifier-symbol-manual.html": [ "d3301d5fa86c5acad2dd4daec1d42ee7a7ef8732", "manual" @@ -264171,6 +264331,10 @@ "a1b16dd5548c5b358564fa723ee30dd0b872aa46", "reftest" ], + "css/CSS2/floats-clear/adjoining-float-new-fc.html": [ + "c9b1c2a88838d119a7a472f99e44e3e245eb16ee", + "reftest" + ], "css/CSS2/floats-clear/clear-001-ref.xht": [ "6c2495de89220792494f6e57450135d2b9be050b", "support" @@ -264203,6 +264367,10 @@ "4bb55db3c05ae1f52b6320491577cc40f99a59a0", "reftest" ], + "css/CSS2/floats-clear/clear-after-top-margin.html": [ + "6787ba8e0510d9867d9585e6b2cde68b7f40b447", + "reftest" + ], "css/CSS2/floats-clear/clear-applies-to-000-ref.xht": [ "5691b2e615b308024ea804cf5fcc7aba5de29313", "support" @@ -265487,6 +265655,30 @@ "b4347b446723cc1bfd3476c457858a780064e001", "reftest" ], + "css/CSS2/floats-clear/nested-clearance-new-formatting-context.html": [ + "4e6792f21e342e655c066de8091c904994ec0e5d", + "reftest" + ], + "css/CSS2/floats-clear/no-clearance-adjoining-opposite-float.html": [ + "a38b48546f1f170839e6d7e17d75771b693c3427", + "reftest" + ], + "css/CSS2/floats-clear/no-clearance-due-to-large-margin-after-left-right.html": [ + "4047422ac3c5e044a0ab8a7b07f357f889fcad20", + "reftest" + ], + "css/CSS2/floats-clear/no-clearance-due-to-large-margin.html": [ + "bb349bd932fc54db66320e284f0e9270050f56c2", + "reftest" + ], + "css/CSS2/floats-clear/second-float-inside-empty-cleared-block-after-margin.html": [ + "39a8c1d7aa1a424912840a819b785a0ae41ec311", + "reftest" + ], + "css/CSS2/floats-clear/second-float-inside-empty-cleared-block.html": [ + "cd06d798d180baa9d6c3d33b39975e43ff0be1d4", + "reftest" + ], "css/CSS2/floats-clear/support/1x1-green.png": [ "51e7b6974a09eda6cb31337717c5eaeb9c44b443", "support" @@ -335839,16 +336031,16 @@ "afa8ce27fa1f693a5bd97a5bf112a99513502f45", "support" ], - "fetch/api/cors/cors-filtering-worker.html": [ - "636a08cb1943b3f1cb6a06944bdc7675d18233f0", + "fetch/api/cors/cors-filtering.sub.any-expected.txt": [ + "afa8ce27fa1f693a5bd97a5bf112a99513502f45", + "support" + ], + "fetch/api/cors/cors-filtering.sub.any.js": [ + "a97ffb8496022e3806ca3b1c9cbb299eae49ddcb", "testharness" ], - "fetch/api/cors/cors-filtering.html": [ - "758f06e2f78808f3437f62c51b9fc730461c2fc1", - "testharness" - ], - "fetch/api/cors/cors-filtering.js": [ - "44029d3879fb0efdd6e2bfea6b5ce78b63b8e14e", + "fetch/api/cors/cors-filtering.sub.any.worker-expected.txt": [ + "afa8ce27fa1f693a5bd97a5bf112a99513502f45", "support" ], "fetch/api/cors/cors-multiple-origins-expected.txt": [ @@ -388475,6 +388667,14 @@ "c11bbbd5997aead080a98980bc86ae2ab757c5a9", "support" ], + "webusb/resources/usb.dedicatedworker.sharedworker.js": [ + "f51c43cbe1ad70e6f3c7b88bcce2cf6edf02b8ad", + "support" + ], + "webusb/resources/usb.serviceworker.js": [ + "04f3078ecce997964c055ef52dfbbc16bc367d78", + "support" + ], "webusb/usb-allowed-by-feature-policy-attribute-redirect-on-load.https.sub.html": [ "fda5a143afa30b86a318b3ab74baed513a5275bb", "testharness" @@ -388543,6 +388743,22 @@ "f08a98a927d57cda8b780a8304a0fa6cf727cc81", "testharness" ], + "webusb/worker/usb.dedicatedworker.https.html": [ + "556e26de5f184609e0e49f02795f96aef524a7c2", + "testharness" + ], + "webusb/worker/usb.serviceworker.https-expected.txt": [ + "a7c9ee20cbdabc82e6e428026f5afe38d77d2979", + "support" + ], + "webusb/worker/usb.serviceworker.https.html": [ + "e225db3ae598448f9d02273f5df90d5078c4fbf2", + "testharness" + ], + "webusb/worker/usb.sharedworker.https.html": [ + "54351ba4a607da19d5f190884b84c9cbea2e41b7", + "testharness" + ], "webvr/OWNERS": [ "32a501c9277b2b748a57afa66a65f3613aa5f56f", "support"
diff --git a/third_party/WebKit/LayoutTests/external/wpt/console/console-count-label-conversion.any.js b/third_party/WebKit/LayoutTests/external/wpt/console/console-count-label-conversion.any.js deleted file mode 100644 index ee37436..0000000 --- a/third_party/WebKit/LayoutTests/external/wpt/console/console-count-label-conversion.any.js +++ /dev/null
@@ -1,24 +0,0 @@ -"use strict"; -// https://console.spec.whatwg.org/#count - -test(() => { - let countLabelToStringCalled = false; - - console.count({ - toString() { - countLabelToStringCalled = true; - } - }); - - assert_true(countLabelToStringCalled, "toString() must be called on count()'s label when label is an object"); -}, "console.count()'s label gets converted to string via label.toString() when label is an object"); - -test(() => { - assert_throws({name: "Error"}, () => { - console.count({ - toString() { - throw new Error("conversion error"); - } - }); - }, "count() must re-throw any exceptions thrown by label.toString() conversion"); -}, "console.count() throws exceptions generated by erroneous label.toString() conversion");
diff --git a/third_party/WebKit/LayoutTests/external/wpt/console/console-countReset-logging-manual.html b/third_party/WebKit/LayoutTests/external/wpt/console/console-countReset-logging-manual.html new file mode 100644 index 0000000..e2ed2dd --- /dev/null +++ b/third_party/WebKit/LayoutTests/external/wpt/console/console-countReset-logging-manual.html
@@ -0,0 +1,47 @@ +<!DOCTYPE html> +<html> +<head> +<title>Console Count Reset - Logging Manual Test</title> +<meta name="author" title="Dominic Farolino" href="mailto:domfarolino@gmail.com"> +<meta name="assert" content="Console countReset method"> +<link rel="help" href="https://console.spec.whatwg.org/#countReset"> +</head> +<body> +<p>Open the console inside the developer tools. It should contain lines whose contents are:</p> +<p><code>default: 1</code></p> +<p><code>default: 1</code></p> +<p><code>default: 1</code></p> +<p><code>default: 1</code></p> +<p><code>default: 1</code></p> +<p><code>default: 1</code></p> +<p><code>default: 1</code></p> +<p><code>default: 1</code></p> +<p><code>a label: 1</code></p> +<p><code>a label: 1</code></p> +<p style="color:grey;">[some warning message indicating that a count for label "b" does not exist]</p> + +<script> +console.count(); +console.countReset(); +console.count(); + +console.count(undefined); +console.countReset(undefined); +console.count(undefined); + +console.count("default"); +console.countReset("default"); +console.count("default"); + +console.count({toString() {return "default"}}); +console.countReset({toString() {return "default"}}); +console.count({toString() {return "default"}}); + +console.count("a label"); +console.countReset(); +console.count("a label"); + +console.countReset("b"); // should produce a warning +</script> +</body> +</html>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/console/console-counting-label-conversion.any-expected.txt b/third_party/WebKit/LayoutTests/external/wpt/console/console-counting-label-conversion.any-expected.txt new file mode 100644 index 0000000..aad7f6f5 --- /dev/null +++ b/third_party/WebKit/LayoutTests/external/wpt/console/console-counting-label-conversion.any-expected.txt
@@ -0,0 +1,19 @@ +This is a testharness.js-based test. +FAIL console.count()'s label gets converted to string via label.toString() when label is an object assert_true: toString() must be called on count()'s label when label is an object expected true got false +FAIL console.count() throws exceptions generated by erroneous label.toString() conversion assert_throws: count() must re-throw any exceptions thrown by label.toString() conversion function "() => { + console.count({ + toString() { + throw new Error("conversion error"); + } + }); + }" did not throw +FAIL console.countReset()'s label gets converted to string via label.toString() when label is an object console.countReset is not a function +FAIL console.countReset() throws exceptions generated by erroneous label.toString() conversion assert_throws: countReset() must re-throw any exceptions thrown by label.toString() conversion function "() => { + console.countReset({ + toString() { + throw new Error("conversion error"); + } + }); + }" threw object "TypeError: console.countReset is not a function" ("TypeError") expected object "[object Object]" ("Error") +Harness: the test ran to completion. +
diff --git a/third_party/WebKit/LayoutTests/external/wpt/console/console-counting-label-conversion.any.js b/third_party/WebKit/LayoutTests/external/wpt/console/console-counting-label-conversion.any.js new file mode 100644 index 0000000..bbc77f0 --- /dev/null +++ b/third_party/WebKit/LayoutTests/external/wpt/console/console-counting-label-conversion.any.js
@@ -0,0 +1,55 @@ +"use strict"; +// https://console.spec.whatwg.org/#count +// https://console.spec.whatwg.org/#countreset + +// TODO(domfarolino): make this a link to +// https://console.spec.whatwg/org/#counting pending +// the resolution of https://github.com/whatwg/console/issues/135 + +// TODO(domfarolino): DRY up the label conversion tests for count/countReset/time/timeEnd +// by probably making a helper function that passes in the console method to perform the +// conversion with so we're not duplicating everything + +test(() => { + let countLabelToStringCalled = false; + + console.count({ + toString() { + countLabelToStringCalled = true; + } + }); + + assert_true(countLabelToStringCalled, "toString() must be called on count()'s label when label is an object"); +}, "console.count()'s label gets converted to string via label.toString() when label is an object"); + +test(() => { + assert_throws({name: "Error"}, () => { + console.count({ + toString() { + throw new Error("conversion error"); + } + }); + }, "count() must re-throw any exceptions thrown by label.toString() conversion"); +}, "console.count() throws exceptions generated by erroneous label.toString() conversion"); + +test(() => { + let countLabelToStringCalled = false; + + console.countReset({ + toString() { + countLabelToStringCalled = true; + } + }); + + assert_true(countLabelToStringCalled, "toString() must be called on countReset()'s label when label is an object"); +}, "console.countReset()'s label gets converted to string via label.toString() when label is an object"); + +test(() => { + assert_throws({name: "Error"}, () => { + console.countReset({ + toString() { + throw new Error("conversion error"); + } + }); + }, "countReset() must re-throw any exceptions thrown by label.toString() conversion"); +}, "console.countReset() throws exceptions generated by erroneous label.toString() conversion");
diff --git a/third_party/WebKit/LayoutTests/external/wpt/console/console-counting-label-conversion.any.worker-expected.txt b/third_party/WebKit/LayoutTests/external/wpt/console/console-counting-label-conversion.any.worker-expected.txt new file mode 100644 index 0000000..aad7f6f5 --- /dev/null +++ b/third_party/WebKit/LayoutTests/external/wpt/console/console-counting-label-conversion.any.worker-expected.txt
@@ -0,0 +1,19 @@ +This is a testharness.js-based test. +FAIL console.count()'s label gets converted to string via label.toString() when label is an object assert_true: toString() must be called on count()'s label when label is an object expected true got false +FAIL console.count() throws exceptions generated by erroneous label.toString() conversion assert_throws: count() must re-throw any exceptions thrown by label.toString() conversion function "() => { + console.count({ + toString() { + throw new Error("conversion error"); + } + }); + }" did not throw +FAIL console.countReset()'s label gets converted to string via label.toString() when label is an object console.countReset is not a function +FAIL console.countReset() throws exceptions generated by erroneous label.toString() conversion assert_throws: countReset() must re-throw any exceptions thrown by label.toString() conversion function "() => { + console.countReset({ + toString() { + throw new Error("conversion error"); + } + }); + }" threw object "TypeError: console.countReset is not a function" ("TypeError") expected object "[object Object]" ("Error") +Harness: the test ran to completion. +
diff --git a/third_party/WebKit/LayoutTests/external/wpt/fetch/api/cors/cors-filtering-worker.html b/third_party/WebKit/LayoutTests/external/wpt/fetch/api/cors/cors-filtering-worker.html deleted file mode 100644 index f15566fc..0000000 --- a/third_party/WebKit/LayoutTests/external/wpt/fetch/api/cors/cors-filtering-worker.html +++ /dev/null
@@ -1,18 +0,0 @@ -<!doctype html> -<html> - <head> - <meta charset="utf-8"> - <title>Fetch in worker: filtered headers in CORS response</title> - <meta name="help" href="https://fetch.spec.whatwg.org/#main-fetch"> - <meta name="help" href="https://fetch.spec.whatwg.org/#http-cors-protocol"> - <meta name="help" href="https://fetch.spec.whatwg.org/#concept-filtered-response-cors"> - <meta name="author" title="Canon Research France" href="https://www.crf.canon.fr"> - <script src="/resources/testharness.js"></script> - <script src="/resources/testharnessreport.js"></script> - </head> - <body> - <script> - fetch_tests_from_worker(new Worker("cors-filtering.js?pipe=sub")); - </script> - </body> -</html> \ No newline at end of file
diff --git a/third_party/WebKit/LayoutTests/external/wpt/fetch/api/cors/cors-filtering.html b/third_party/WebKit/LayoutTests/external/wpt/fetch/api/cors/cors-filtering.html deleted file mode 100644 index b7500ad1..0000000 --- a/third_party/WebKit/LayoutTests/external/wpt/fetch/api/cors/cors-filtering.html +++ /dev/null
@@ -1,17 +0,0 @@ -<!doctype html> -<html> - <head> - <meta charset="utf-8"> - <title>Fetch: filtered headers in CORS response</title> - <meta name="help" href="https://fetch.spec.whatwg.org/#main-fetch"> - <meta name="help" href="https://fetch.spec.whatwg.org/#http-cors-protocol"> - <meta name="help" href="https://fetch.spec.whatwg.org/#concept-filtered-response-cors"> - <meta name="author" title="Canon Research France" href="https://www.crf.canon.fr"> - <script src="/resources/testharness.js"></script> - <script src="/resources/testharnessreport.js"></script> - </head> - <body> - <script src="../resources/utils.js"></script> - <script src="cors-filtering.js?pipe=sub"></script> - </body> -</html> \ No newline at end of file
diff --git a/third_party/WebKit/LayoutTests/external/wpt/fetch/api/cors/cors-filtering.sub.any-expected.txt b/third_party/WebKit/LayoutTests/external/wpt/fetch/api/cors/cors-filtering.sub.any-expected.txt new file mode 100644 index 0000000..a15f49a --- /dev/null +++ b/third_party/WebKit/LayoutTests/external/wpt/fetch/api/cors/cors-filtering.sub.any-expected.txt
@@ -0,0 +1,22 @@ +This is a testharness.js-based test. +PASS CORS filter on Cache-Control header +PASS CORS filter on Content-Language header +PASS CORS filter on Content-Type header +PASS CORS filter on Expires header +PASS CORS filter on Last-Modified header +PASS CORS filter on Pragma header +FAIL CORS filter on Content-Length header assert_equals: Content-Length header should be included in response with value: 3 expected (string) "3" but got (object) null +PASS CORS filter on Age header +PASS CORS filter on Server header +PASS CORS filter on Warning header +PASS CORS filter on Set-Cookie header +PASS CORS filter on Set-Cookie2 header +PASS CORS filter on Age header, header is exposed +PASS CORS filter on Server header, header is exposed +PASS CORS filter on Warning header, header is exposed +PASS CORS filter on Set-Cookie header, header is forbidden +PASS CORS filter on Set-Cookie2 header, header is forbidden +PASS CORS filter on Set-Cookie header, header is forbidden(credentials = include) +PASS CORS filter on Set-Cookie2 header, header is forbidden(credentials = include) +Harness: the test ran to completion. +
diff --git a/third_party/WebKit/LayoutTests/external/wpt/fetch/api/cors/cors-filtering.js b/third_party/WebKit/LayoutTests/external/wpt/fetch/api/cors/cors-filtering.sub.any.js similarity index 95% rename from third_party/WebKit/LayoutTests/external/wpt/fetch/api/cors/cors-filtering.js rename to third_party/WebKit/LayoutTests/external/wpt/fetch/api/cors/cors-filtering.sub.any.js index e755a16..a26eacc 100644 --- a/third_party/WebKit/LayoutTests/external/wpt/fetch/api/cors/cors-filtering.js +++ b/third_party/WebKit/LayoutTests/external/wpt/fetch/api/cors/cors-filtering.sub.any.js
@@ -1,7 +1,4 @@ -if (this.document === undefined) { - importScripts("/resources/testharness.js"); - importScripts("../resources/utils.js"); -} +// META: script=../resources/utils.js function corsFilter(corsUrl, headerName, headerValue, isFiltered) { var url = corsUrl + "?pipe=header(" + headerName + "," + encodeURIComponent(headerValue) +")|header(Access-Control-Allow-Origin,*)";
diff --git a/third_party/WebKit/LayoutTests/external/wpt/fetch/api/cors/cors-filtering.sub.any.worker-expected.txt b/third_party/WebKit/LayoutTests/external/wpt/fetch/api/cors/cors-filtering.sub.any.worker-expected.txt new file mode 100644 index 0000000..a15f49a --- /dev/null +++ b/third_party/WebKit/LayoutTests/external/wpt/fetch/api/cors/cors-filtering.sub.any.worker-expected.txt
@@ -0,0 +1,22 @@ +This is a testharness.js-based test. +PASS CORS filter on Cache-Control header +PASS CORS filter on Content-Language header +PASS CORS filter on Content-Type header +PASS CORS filter on Expires header +PASS CORS filter on Last-Modified header +PASS CORS filter on Pragma header +FAIL CORS filter on Content-Length header assert_equals: Content-Length header should be included in response with value: 3 expected (string) "3" but got (object) null +PASS CORS filter on Age header +PASS CORS filter on Server header +PASS CORS filter on Warning header +PASS CORS filter on Set-Cookie header +PASS CORS filter on Set-Cookie2 header +PASS CORS filter on Age header, header is exposed +PASS CORS filter on Server header, header is exposed +PASS CORS filter on Warning header, header is exposed +PASS CORS filter on Set-Cookie header, header is forbidden +PASS CORS filter on Set-Cookie2 header, header is forbidden +PASS CORS filter on Set-Cookie header, header is forbidden(credentials = include) +PASS CORS filter on Set-Cookie2 header, header is forbidden(credentials = include) +Harness: the test ran to completion. +
diff --git a/third_party/WebKit/LayoutTests/flag-specific/enable-blink-features=LayoutNG/compositing/draws-content/canvas-background-layer-expected.txt b/third_party/WebKit/LayoutTests/flag-specific/enable-blink-features=LayoutNG/compositing/draws-content/canvas-background-layer-expected.txt deleted file mode 100644 index f246ec48c..0000000 --- a/third_party/WebKit/LayoutTests/flag-specific/enable-blink-features=LayoutNG/compositing/draws-content/canvas-background-layer-expected.txt +++ /dev/null
@@ -1,69 +0,0 @@ -{ - "layers": [ - { - "name": "LayoutView #document", - "bounds": [800, 600], - "contentsOpaque": true, - "drawsContent": true - }, - { - "name": "LayoutHTMLCanvas CANVAS id='canvas-simple'", - "position": [13, 8], - "bounds": [50, 50], - "contentsOpaque": true, - "drawsContent": true, - "backgroundColor": "#008000" - }, - { - "name": "LayoutHTMLCanvas CANVAS id='canvas-transparent-background'", - "position": [13, 73], - "bounds": [50, 50], - "drawsContent": true, - "backgroundColor": "#00FF0080" - }, - { - "name": "LayoutHTMLCanvas CANVAS id='canvas-padding'", - "position": [13, 138], - "bounds": [60, 60], - "drawsContent": true, - "backgroundColor": "#008000" - }, - { - "name": "LayoutHTMLCanvas CANVAS id='canvas-border'", - "position": [13, 203], - "bounds": [60, 60], - "drawsContent": true, - "backgroundColor": "#008000" - }, - { - "name": "LayoutHTMLCanvas CANVAS id='canvas-image'", - "position": [13, 268], - "bounds": [50, 50], - "drawsContent": true, - "backgroundColor": "#008000" - }, - { - "name": "LayoutHTMLCanvas CANVAS id='canvas-opaque'", - "position": [13, 333], - "bounds": [50, 50], - "contentsOpaque": true, - "drawsContent": true, - "backgroundColor": "#008000" - }, - { - "name": "LayoutHTMLCanvas CANVAS id='canvas-opaque-border'", - "position": [13, 398], - "bounds": [60, 60], - "drawsContent": true, - "backgroundColor": "#008000" - }, - { - "name": "LayoutHTMLCanvas CANVAS id='canvas-opaque-box-shadow'", - "position": [13, 463], - "bounds": [60, 60], - "drawsContent": true, - "backgroundColor": "#008000" - } - ] -} -
diff --git a/third_party/WebKit/LayoutTests/flag-specific/enable-blink-features=LayoutNG/compositing/draws-content/webgl-background-layer-expected.txt b/third_party/WebKit/LayoutTests/flag-specific/enable-blink-features=LayoutNG/compositing/draws-content/webgl-background-layer-expected.txt deleted file mode 100644 index d5d8f06..0000000 --- a/third_party/WebKit/LayoutTests/flag-specific/enable-blink-features=LayoutNG/compositing/draws-content/webgl-background-layer-expected.txt +++ /dev/null
@@ -1,47 +0,0 @@ -{ - "layers": [ - { - "name": "LayoutView #document", - "bounds": [800, 600], - "contentsOpaque": true, - "drawsContent": true - }, - { - "name": "LayoutHTMLCanvas CANVAS id='canvas-simple'", - "position": [13, 8], - "bounds": [50, 50], - "contentsOpaque": true, - "drawsContent": true, - "backgroundColor": "#008000" - }, - { - "name": "LayoutHTMLCanvas CANVAS id='canvas-padding'", - "position": [13, 73], - "bounds": [60, 60], - "drawsContent": true, - "backgroundColor": "#008000" - }, - { - "name": "LayoutHTMLCanvas CANVAS id='canvas-border'", - "position": [13, 138], - "bounds": [60, 60], - "drawsContent": true, - "backgroundColor": "#008000" - }, - { - "name": "LayoutHTMLCanvas CANVAS id='canvas-image'", - "position": [13, 203], - "bounds": [50, 50], - "drawsContent": true, - "backgroundColor": "#008000" - }, - { - "name": "LayoutHTMLCanvas CANVAS id='canvas-transparent-background'", - "position": [13, 268], - "bounds": [50, 50], - "drawsContent": true, - "backgroundColor": "#00FF0080" - } - ] -} -
diff --git a/third_party/WebKit/LayoutTests/flag-specific/enable-blink-features=LayoutNG/compositing/overflow/scroll-ancestor-update-expected.txt b/third_party/WebKit/LayoutTests/flag-specific/enable-blink-features=LayoutNG/compositing/overflow/scroll-ancestor-update-expected.txt deleted file mode 100644 index 11330726..0000000 --- a/third_party/WebKit/LayoutTests/flag-specific/enable-blink-features=LayoutNG/compositing/overflow/scroll-ancestor-update-expected.txt +++ /dev/null
@@ -1,28 +0,0 @@ -layer at (0,0) size 800x600 - LayoutView at (0,0) size 800x600 -layer at (0,0) size 800x105 - LayoutNGBlockFlow {HTML} at (0,0) size 800x105 - LayoutNGBlockFlow {BODY} at (0,0) size 800x105 - LayoutNGBlockFlow (anonymous) at (0,0) size 800x105 - LayoutText {#text} at (0,0) size 0x0 -layer at (0,0) size 100x100 - LayoutVideo {VIDEO} at (0,0) size 100x100 -layer at (50,50) size 100x100 - LayoutNGBlockFlow (positioned) {DIV} at (50,50) size 100x100 [bgcolor=#FF0000] -layer at (50,50) size 200x200 - LayoutNGBlockFlow (positioned) {DIV} at (50,50) size 200x200 - LayoutNGBlockFlow {P} at (0,218) size 200x60 - LayoutText {#text} at (0,0) size 191x59 - text run at (0,0) width 191: "The green box should obscure" - text run at (0,20) width 180: "the red box, and move when" - text run at (0,40) width 140: "you drag the scrollbar." -layer at (50,50) size 202x202 clip at (51,51) size 185x200 scrollY 50.00 scrollHeight 550 - LayoutNGBlockFlow {DIV} at (0,0) size 202x202 [border: (1px solid #000000)] - LayoutNGBlockFlow {DIV} at (1,51) size 185x500 -layer at (51,51) size 100x100 - LayoutNGBlockFlow (relative positioned) {DIV} at (0,0) size 100x100 [bgcolor=#008000] -layer at (0,0) size 100x100 - LayoutFlexibleBox (relative positioned) {DIV} at (0,0) size 100x100 - LayoutNGBlockFlow {DIV} at (0,68) size 100x32 -layer at (0,0) size 100x58 - LayoutFlexibleBox (relative positioned) {DIV} at (0,0) size 100x58
diff --git a/third_party/WebKit/LayoutTests/flag-specific/enable-blink-features=LayoutNG/compositing/self-painting-layers-expected.txt b/third_party/WebKit/LayoutTests/flag-specific/enable-blink-features=LayoutNG/compositing/self-painting-layers-expected.txt deleted file mode 100644 index 66d3c7d..0000000 --- a/third_party/WebKit/LayoutTests/flag-specific/enable-blink-features=LayoutNG/compositing/self-painting-layers-expected.txt +++ /dev/null
@@ -1,28 +0,0 @@ -layer at (0,0) size 800x600 - LayoutView at (0,0) size 800x600 -layer at (0,0) size 800x431 - LayoutNGBlockFlow {HTML} at (0,0) size 800x431 - LayoutNGBlockFlow {BODY} at (8,16) size 784x405 - LayoutNGBlockFlow {P} at (0,0) size 784x20 - LayoutText {#text} at (0,0) size 324x19 - text run at (0,0) width 324: "You should not see double text when the div scrolls" - LayoutNGBlockFlow {DIV} at (10,36) size 302x207 [border: (1px solid #000000)] - LayoutText {#text} at (0,0) size 0x0 -layer at (19,53) size 300x200 - LayoutVideo {VIDEO} at (1,1) size 300x200 -layer at (18,269) size 302x152 clip at (19,270) size 285x150 scrollY 24.00 scrollHeight 500 - LayoutNGBlockFlow {DIV} at (10,253) size 302x152 [border: (1px solid #000000)] - LayoutNGBlockFlow {DIV} at (1,1) size 285x500 - LayoutText {#text} at (0,6) size 107x36 - text run at (0,6) width 107: "Scrolled" - LayoutBR {BR} at (107,6) size 0x0 - LayoutText {#text} at (0,54) size 48x36 - text run at (0,54) width 48: "text" - LayoutBR {BR} at (48,54) size 0x0 - LayoutText {#text} at (0,102) size 63x36 - text run at (0,102) width 63: "here." -layer at (19,53) size 300x200 - LayoutFlexibleBox (relative positioned) {DIV} at (0,0) size 300x200 - LayoutNGBlockFlow {DIV} at (0,168) size 300x32 -layer at (19,53) size 300x158 - LayoutFlexibleBox (relative positioned) {DIV} at (0,0) size 300x158
diff --git a/third_party/WebKit/LayoutTests/flag-specific/enable-blink-features=LayoutNG/css3/filters/effect-brightness-clamping-expected.txt b/third_party/WebKit/LayoutTests/flag-specific/enable-blink-features=LayoutNG/css3/filters/effect-brightness-clamping-expected.txt deleted file mode 100644 index 1c4fda9..0000000 --- a/third_party/WebKit/LayoutTests/flag-specific/enable-blink-features=LayoutNG/css3/filters/effect-brightness-clamping-expected.txt +++ /dev/null
@@ -1,50 +0,0 @@ -layer at (0,0) size 800x600 - LayoutView at (0,0) size 800x600 -layer at (0,0) size 800x600 - LayoutNGBlockFlow {HTML} at (0,0) size 800x600 - LayoutNGBlockFlow {BODY} at (8,8) size 784x584 - LayoutText {#text} at (160,75) size 4x19 - text run at (160,75) width 4: " " - LayoutText {#text} at (324,75) size 4x19 - text run at (324,75) width 4: " " - LayoutText {#text} at (488,75) size 4x19 - text run at (488,75) width 4: " " - LayoutText {#text} at (0,0) size 0x0 - LayoutText {#text} at (160,170) size 4x19 - text run at (160,170) width 4: " " - LayoutText {#text} at (324,170) size 4x19 - text run at (324,170) width 4: " " - LayoutText {#text} at (488,170) size 4x19 - text run at (488,170) width 4: " " - LayoutText {#text} at (0,0) size 0x0 - LayoutText {#text} at (160,265) size 4x19 - text run at (160,265) width 4: " " - LayoutText {#text} at (324,265) size 4x19 - text run at (324,265) width 4: " " - LayoutText {#text} at (488,265) size 4x19 - text run at (488,265) width 4: " " - LayoutText {#text} at (0,0) size 0x0 -layer at (8,8) size 160x90 - LayoutImage {IMG} at (0,0) size 160x90 -layer at (172,8) size 160x90 - LayoutImage {IMG} at (164,0) size 160x90 -layer at (336,8) size 160x90 - LayoutImage {IMG} at (328,0) size 160x90 -layer at (500,8) size 160x90 - LayoutImage {IMG} at (492,0) size 160x90 -layer at (8,103) size 160x90 - LayoutImage {IMG} at (0,95) size 160x90 -layer at (172,103) size 160x90 - LayoutImage {IMG} at (164,95) size 160x90 -layer at (336,103) size 160x90 - LayoutImage {IMG} at (328,95) size 160x90 -layer at (500,103) size 160x90 - LayoutImage {IMG} at (492,95) size 160x90 -layer at (8,198) size 160x90 - LayoutImage {IMG} at (0,190) size 160x90 -layer at (172,198) size 160x90 - LayoutImage {IMG} at (164,190) size 160x90 -layer at (336,198) size 160x90 - LayoutImage {IMG} at (328,190) size 160x90 -layer at (500,198) size 160x90 - LayoutImage {IMG} at (492,190) size 160x90
diff --git a/third_party/WebKit/LayoutTests/flag-specific/enable-blink-features=LayoutNG/css3/filters/effect-brightness-expected.txt b/third_party/WebKit/LayoutTests/flag-specific/enable-blink-features=LayoutNG/css3/filters/effect-brightness-expected.txt deleted file mode 100644 index 6de5b4d..0000000 --- a/third_party/WebKit/LayoutTests/flag-specific/enable-blink-features=LayoutNG/css3/filters/effect-brightness-expected.txt +++ /dev/null
@@ -1,31 +0,0 @@ -layer at (0,0) size 800x600 - LayoutView at (0,0) size 800x600 -layer at (0,0) size 800x600 - LayoutNGBlockFlow {HTML} at (0,0) size 800x600 - LayoutNGBlockFlow {BODY} at (8,8) size 784x584 - LayoutText {#text} at (160,75) size 4x19 - text run at (160,75) width 4: " " - LayoutText {#text} at (324,75) size 4x19 - text run at (324,75) width 4: " " - LayoutText {#text} at (488,75) size 4x19 - text run at (488,75) width 4: " " - LayoutText {#text} at (0,0) size 0x0 - LayoutText {#text} at (160,170) size 4x19 - text run at (160,170) width 4: " " - LayoutText {#text} at (324,170) size 4x19 - text run at (324,170) width 4: " " - LayoutText {#text} at (0,0) size 0x0 -layer at (8,8) size 160x90 - LayoutImage {IMG} at (0,0) size 160x90 -layer at (172,8) size 160x90 - LayoutImage {IMG} at (164,0) size 160x90 -layer at (336,8) size 160x90 - LayoutImage {IMG} at (328,0) size 160x90 -layer at (500,8) size 160x90 - LayoutImage {IMG} at (492,0) size 160x90 -layer at (8,103) size 160x90 - LayoutImage {IMG} at (0,95) size 160x90 -layer at (172,103) size 160x90 - LayoutImage {IMG} at (164,95) size 160x90 -layer at (336,103) size 160x90 - LayoutImage {IMG} at (328,95) size 160x90
diff --git a/third_party/WebKit/LayoutTests/flag-specific/enable-blink-features=LayoutNG/printing/webgl-repeated-printing-expected.txt b/third_party/WebKit/LayoutTests/flag-specific/enable-blink-features=LayoutNG/printing/webgl-repeated-printing-expected.txt new file mode 100644 index 0000000..fa71a2b --- /dev/null +++ b/third_party/WebKit/LayoutTests/flag-specific/enable-blink-features=LayoutNG/printing/webgl-repeated-printing-expected.txt
@@ -0,0 +1,19 @@ +PASS successfullyParsed is true + +TEST COMPLETE +Snapshot width: 800 height: 600 +Test 0: canvas should be green +PASS pixel[0] is within 1 of 0 +PASS pixel[1] is within 1 of 255 +PASS pixel[2] is within 1 of 0 +Snapshot width: 800 height: 600 +Test 1: canvas should be red +PASS pixel[0] is within 1 of 255 +PASS pixel[1] is within 1 of 0 +PASS pixel[2] is within 1 of 0 +Snapshot width: 800 height: 600 +Test 2: canvas should be blue +PASS pixel[0] is within 1 of 0 +PASS pixel[1] is within 1 of 0 +PASS pixel[2] is within 1 of 255 +
diff --git a/third_party/WebKit/LayoutTests/flag-specific/enable-blink-features=LayoutNG/printing/webgl-repeated-printing-preservedrawingbuffer-expected.txt b/third_party/WebKit/LayoutTests/flag-specific/enable-blink-features=LayoutNG/printing/webgl-repeated-printing-preservedrawingbuffer-expected.txt new file mode 100644 index 0000000..fa71a2b --- /dev/null +++ b/third_party/WebKit/LayoutTests/flag-specific/enable-blink-features=LayoutNG/printing/webgl-repeated-printing-preservedrawingbuffer-expected.txt
@@ -0,0 +1,19 @@ +PASS successfullyParsed is true + +TEST COMPLETE +Snapshot width: 800 height: 600 +Test 0: canvas should be green +PASS pixel[0] is within 1 of 0 +PASS pixel[1] is within 1 of 255 +PASS pixel[2] is within 1 of 0 +Snapshot width: 800 height: 600 +Test 1: canvas should be red +PASS pixel[0] is within 1 of 255 +PASS pixel[1] is within 1 of 0 +PASS pixel[2] is within 1 of 0 +Snapshot width: 800 height: 600 +Test 2: canvas should be blue +PASS pixel[0] is within 1 of 0 +PASS pixel[1] is within 1 of 0 +PASS pixel[2] is within 1 of 255 +
diff --git a/third_party/WebKit/LayoutTests/flag-specific/enable-blink-features=LayoutNG/svg/hixie/error/dumpAsText/004-expected.txt b/third_party/WebKit/LayoutTests/flag-specific/enable-blink-features=LayoutNG/svg/hixie/error/dumpAsText/004-expected.txt new file mode 100644 index 0000000..cf5d886 --- /dev/null +++ b/third_party/WebKit/LayoutTests/flag-specific/enable-blink-features=LayoutNG/svg/hixie/error/dumpAsText/004-expected.txt
@@ -0,0 +1,15 @@ +This XML file does not appear to have any style information associated with it. The document tree is shown below. +<svg width="300" height="200"> +<!-- note: no namespace, but sent as image/svg+xml --> +<desc>There should be no red on this page.</desc> +<rect x="10" y="10" width="280" height="180" fill="red"/> +<!-- + This document is either not SVG, or is SVG but is in error. + Section 5.1.1 of SVG 1.1 says: + # In all cases, for compliance with the "Namespaces in XML" + # Recommendation [XML-NS], an SVG namespace declaration must be + # provided so that all SVG elements are identified as belonging + # to the SVG namespace. + +--> +</svg>
diff --git a/third_party/WebKit/LayoutTests/flag-specific/enable-blink-features=LayoutNG/svg/hixie/error/dumpAsText/005-expected.txt b/third_party/WebKit/LayoutTests/flag-specific/enable-blink-features=LayoutNG/svg/hixie/error/dumpAsText/005-expected.txt new file mode 100644 index 0000000..8a91ecfc0 --- /dev/null +++ b/third_party/WebKit/LayoutTests/flag-specific/enable-blink-features=LayoutNG/svg/hixie/error/dumpAsText/005-expected.txt
@@ -0,0 +1,6 @@ +This XML file does not appear to have any style information associated with it. The document tree is shown below. +<svg xmlns="http://www.example.org/" width="300" height="200"> +<!-- wrong namespace, but sent as image/svg+xml --> +<desc>There should be no red on this page.</desc> +<rect x="10" y="10" width="280" height="180" fill="red"/> +</svg>
diff --git a/third_party/WebKit/LayoutTests/http/tests/media/media-load-nonmedia-crossorigin.html b/third_party/WebKit/LayoutTests/http/tests/media/media-load-nonmedia-crossorigin.html new file mode 100644 index 0000000..cd07bf7 --- /dev/null +++ b/third_party/WebKit/LayoutTests/http/tests/media/media-load-nonmedia-crossorigin.html
@@ -0,0 +1,74 @@ +<!DOCTYPE html> +<title>Check that crossorigin media requests don't reveal information about non-media files.</title> +<script src="/w3c/resources/testharness.js"></script> +<script src="/w3c/resources/testharnessreport.js"></script> +<script src="/media-resources/media-file.js"></script> +<video></video> +<script> + +promise_test(async function() { + function get_all_events(url) { + return new Promise(function(resolve, reject) { + let events = []; + let current_state = -1; + let current_buffered_string = ""; + const video = document.querySelector("video"); + function pollTagState(prefix) { + const state = video.networkState; + if (state != current_state) { + current_state = state + events.push(prefix + "NetworkState=" + state); + } + const buffered = video.buffered; + let buffered_string = ""; + for (let i = 0; i < buffered.length; i++) { + buffered_string += "(" + buffered.start(i) + "-" + buffered.end(i) + ")"; + } + if (buffered_string != current_buffered_string) { + current_buffered_string = buffered_string; + events.push(prefix + "Buffered=" + buffered_string); + } + } + + for (var prop in video) { + if (prop.slice(0,2) == "on") { + video[prop] = function(e) { + events.push(e.type); + pollTagState("+") + } + } + } + pollTagState(""); + const interval = setInterval(function() { pollTagState("") }, 1); + video.onerror = function(e) { + events.push("Error("+video.error.message+")"); + pollTagState("+") + // Wait for network state to stabilize. + setTimeout(function() { + clearInterval(interval); + resolve(events); + }, 100); + }; + video.src = url; + video.play().catch(e=>0); + }); + } + + const nonexistant_remote = "http://localhost:8000/media/nonexistant.cgi"; + const existant_remote = "http://localhost:8000/media/video-throttled-load.cgi?name=resources/test.txt&throttle=200&type=text/plain"; + // First do a warmup run. Switching between sources adds some events, so + // the first run will be slightly different. + await get_all_events(nonexistant_remote); + + // Get events for a nonexistant remote resource. + const nonexisting_events = await get_all_events(nonexistant_remote); + + // Get events for a existant remote resource. + const existing_events = await get_all_events(existant_remote); + + console.log(existing_events.join(",")); + console.log(nonexisting_events.join(",")); + assert_equals(existing_events.join(","), nonexisting_events.join(",")); +}); + +</script>
diff --git a/third_party/WebKit/LayoutTests/platform/linux/svg/batik/text/textEffect3-expected.png b/third_party/WebKit/LayoutTests/platform/linux/svg/batik/text/textEffect3-expected.png index b8d86d7..5afe505 100644 --- a/third_party/WebKit/LayoutTests/platform/linux/svg/batik/text/textEffect3-expected.png +++ b/third_party/WebKit/LayoutTests/platform/linux/svg/batik/text/textEffect3-expected.png Binary files differ
diff --git a/third_party/WebKit/LayoutTests/platform/mac-mac10.12/svg/batik/text/textEffect3-expected.png b/third_party/WebKit/LayoutTests/platform/mac-mac10.12/svg/batik/text/textEffect3-expected.png index 40e58c5..c288c8d 100644 --- a/third_party/WebKit/LayoutTests/platform/mac-mac10.12/svg/batik/text/textEffect3-expected.png +++ b/third_party/WebKit/LayoutTests/platform/mac-mac10.12/svg/batik/text/textEffect3-expected.png Binary files differ
diff --git a/third_party/WebKit/LayoutTests/platform/mac/svg/batik/text/textEffect3-expected.png b/third_party/WebKit/LayoutTests/platform/mac/svg/batik/text/textEffect3-expected.png index 3f342644..d6e5954 100644 --- a/third_party/WebKit/LayoutTests/platform/mac/svg/batik/text/textEffect3-expected.png +++ b/third_party/WebKit/LayoutTests/platform/mac/svg/batik/text/textEffect3-expected.png Binary files differ
diff --git a/third_party/WebKit/LayoutTests/platform/win/svg/batik/text/textEffect3-expected.png b/third_party/WebKit/LayoutTests/platform/win/svg/batik/text/textEffect3-expected.png index 2b67e4ae..4f52b6e 100644 --- a/third_party/WebKit/LayoutTests/platform/win/svg/batik/text/textEffect3-expected.png +++ b/third_party/WebKit/LayoutTests/platform/win/svg/batik/text/textEffect3-expected.png Binary files differ
diff --git a/third_party/WebKit/LayoutTests/svg/text/textpath-pattern-expected.svg b/third_party/WebKit/LayoutTests/svg/text/textpath-pattern-expected.svg new file mode 100644 index 0000000..e88d28a --- /dev/null +++ b/third_party/WebKit/LayoutTests/svg/text/textpath-pattern-expected.svg
@@ -0,0 +1,14 @@ +<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="800" height="600"> + <defs> + <path id="path" d="M100,300 A300,300 0 1,1 700,300"/> + <clipPath id="clip"> + <rect width="100%" height="50%"/> + </clipPath> + </defs> + + <text x="0" dy="50" fill="green" clip-path="url(#clip)" style="font: bold 67px 'Ahem';"> + <textPath xlink:href="#path" method="align"> + OOOOOOOOOOOOOOOOOOO + </textPath> + </text> +</svg>
diff --git a/third_party/WebKit/LayoutTests/svg/text/textpath-pattern.svg b/third_party/WebKit/LayoutTests/svg/text/textpath-pattern.svg new file mode 100644 index 0000000..2f3868b --- /dev/null +++ b/third_party/WebKit/LayoutTests/svg/text/textpath-pattern.svg
@@ -0,0 +1,18 @@ +<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="800" height="600"> + <defs> + <pattern id="pattern" width="100%" height="100%" patternUnits="userSpaceOnUse"> + <rect x="0%" y="0%" width="100%" height="50%" fill="green"/> + <rect x="0%" y="50%" width="100%" height="50%" fill="red"/> + </pattern> + <path id="path" d="M100,300 A300,300 0 1,1 700,300"/> + <clipPath id="clip"> + <rect width="100%" height="50%"/> + </clipPath> + </defs> + + <text x="0" dy="50" fill="url(#pattern)" clip-path="url(#clip)" style="font: bold 67px 'Ahem';"> + <textPath xlink:href="#path" method="align"> + OOOOOOOOOOOOOOOOOOO + </textPath> + </text> +</svg>
diff --git a/third_party/WebKit/LayoutTests/virtual/threaded/fast/animationworklet/animation-worklet-scroll-timeline-dispose.html b/third_party/WebKit/LayoutTests/virtual/threaded/fast/animationworklet/animation-worklet-scroll-timeline-dispose.html new file mode 100644 index 0000000..adabe40 --- /dev/null +++ b/third_party/WebKit/LayoutTests/virtual/threaded/fast/animationworklet/animation-worklet-scroll-timeline-dispose.html
@@ -0,0 +1,56 @@ +<!DOCTYPE html> +<title>Regression test to ensure detaching a ScrollTimeline shouldn't crash</title> +<script src="../../../../resources/testharness.js"></script> +<script src="../../../../resources/testharnessreport.js"></script> + +<script src="resources/animation-worklet-tests.js"></script> + +<style> +#scroller { + overflow: auto; + height: 100px; + width: 100px; +} + +#contents { + height: 1000px; + width: 100%; +} +</style> + +<div id="box"></div> +<div id="scroller"> + <div id="contents"></div> +</div> + +<script> +// This is a regression test for the crash seen when http://crrev.com/ddd9f0ee +// landed. The root of the crash was assuming a WeakMember from a static object +// would still be alive during a USING_PRE_FINALIZER method, which is not true. +async_test(t => { + const box = document.getElementById('box'); + const effect = new KeyframeEffect(box, null); + + let scroller = document.getElementById('scroller'); + let timeline = new ScrollTimeline({ + scrollSource: scroller, + timeRange: 1000, + orientation: 'block' + }); + // Creating the animation will cause the scroller to be registered as being + // used in an attached ScrollTimeline. + let animation = new WorkletAnimation('test_animator', effect, timeline, {}); + + // Now free up everything at once. + scroller.remove(); + animation.cancel(); + scroller = undefined; + timeline = undefined; + animation = undefined; + + requestAnimationFrame(t.step_func_done(() => { + // Force GC - this shouldn't crash. + gc(); + })); +}, 'Disposing of an attached ScrollTimeline should not crash'); +</script>
diff --git a/third_party/WebKit/LayoutTests/virtual/threaded/fast/animationworklet/animation-worklet-scroll-timeline.html b/third_party/WebKit/LayoutTests/virtual/threaded/fast/animationworklet/animation-worklet-scroll-timeline.html index c96ed4e..2a63b1b 100644 --- a/third_party/WebKit/LayoutTests/virtual/threaded/fast/animationworklet/animation-worklet-scroll-timeline.html +++ b/third_party/WebKit/LayoutTests/virtual/threaded/fast/animationworklet/animation-worklet-scroll-timeline.html
@@ -16,7 +16,6 @@ overflow: auto; height: 100px; width: 100px; - will-change: transform; /* force compositing */ } #contents {
diff --git a/third_party/blink/public/public_features.gni b/third_party/blink/public/public_features.gni index 31312dd8..2e9fc40 100644 --- a/third_party/blink/public/public_features.gni +++ b/third_party/blink/public/public_features.gni
@@ -12,7 +12,7 @@ debug_devtools = false } -# Unhandled Tap enable means Contextual Search aka Touch to Search. +# Unhandled Tap enable means Contextual Search aka Tap to Search. enable_unhandled_tap = is_android use_default_render_theme = use_aura
diff --git a/third_party/blink/renderer/bindings/core/v8/script_source_code.h b/third_party/blink/renderer/bindings/core/v8/script_source_code.h index 05e531c..a48e301 100644 --- a/third_party/blink/renderer/bindings/core/v8/script_source_code.h +++ b/third_party/blink/renderer/bindings/core/v8/script_source_code.h
@@ -65,14 +65,9 @@ ~ScriptSourceCode(); void Trace(blink::Visitor*); - // The null value represents a missing script, created by the nullary - // constructor, and differs from the empty script. - bool IsNull() const { return source_.IsNull(); } - const String& Source() const { return source_; } SingleCachedMetadataHandler* CacheHandler() const { return cache_handler_; } const KURL& Url() const { return url_; } - int StartLine() const { return start_position_.line_.OneBasedInt(); } const TextPosition& StartPosition() const { return start_position_; } ScriptSourceLocationType SourceLocationType() const { return source_location_type_;
diff --git a/third_party/blink/renderer/bindings/core/v8/v8_script_runner.cc b/third_party/blink/renderer/bindings/core/v8/v8_script_runner.cc index 2e1fc0a3..71f4326 100644 --- a/third_party/blink/renderer/bindings/core/v8/v8_script_runner.cc +++ b/third_party/blink/renderer/bindings/core/v8/v8_script_runner.cc
@@ -102,61 +102,6 @@ return result; } -// Compile a script without any caching or compile options. -v8::MaybeLocal<v8::Script> CompileWithoutOptions( - v8::ScriptCompiler::NoCacheReason no_cache_reason, - v8::Isolate* isolate, - v8::Local<v8::String> code, - v8::ScriptOrigin origin, - InspectorCompileScriptEvent::V8CacheResult*) { - v8::ScriptCompiler::Source source(code, origin); - return v8::ScriptCompiler::Compile(isolate->GetCurrentContext(), &source, - v8::ScriptCompiler::kNoCompileOptions, - no_cache_reason); -} - -// Compile a script eagerly so that we can produce full code cache. -v8::MaybeLocal<v8::Script> CompileEager( - v8::ScriptCompiler::NoCacheReason no_cache_reason, - v8::Isolate* isolate, - v8::Local<v8::String> code, - v8::ScriptOrigin origin, - InspectorCompileScriptEvent::V8CacheResult*) { - v8::ScriptCompiler::Source source(code, origin); - return v8::ScriptCompiler::Compile(isolate->GetCurrentContext(), &source, - v8::ScriptCompiler::kEagerCompile, - no_cache_reason); -} - -// Compile a script, and consume a V8 cache that was generated previously. -static v8::MaybeLocal<v8::Script> CompileAndConsumeCache( - SingleCachedMetadataHandler* cache_handler, - scoped_refptr<CachedMetadata> cached_metadata, - v8::ScriptCompiler::CompileOptions consume_options, - v8::Isolate* isolate, - v8::Local<v8::String> code, - v8::ScriptOrigin origin, - InspectorCompileScriptEvent::V8CacheResult* cache_result) { - DCHECK(consume_options == v8::ScriptCompiler::kConsumeCodeCache); - const char* data = cached_metadata->Data(); - int length = cached_metadata->size(); - v8::ScriptCompiler::CachedData* cached_data = - new v8::ScriptCompiler::CachedData( - reinterpret_cast<const uint8_t*>(data), length, - v8::ScriptCompiler::CachedData::BufferNotOwned); - v8::ScriptCompiler::Source source(code, origin, cached_data); - v8::MaybeLocal<v8::Script> script = v8::ScriptCompiler::Compile( - isolate->GetCurrentContext(), &source, consume_options); - if (cached_data->rejected) - cache_handler->ClearCachedMetadata(CachedMetadataHandler::kSendToPlatform); - if (cache_result) { - cache_result->consume_result = base::make_optional( - InspectorCompileScriptEvent::V8CacheResult::ConsumeResult( - consume_options, length, cached_data->rejected)); - } - return script; -} - enum CacheTagKind { kCacheTagCode = 0, kCacheTagTimeStamp = 1, kCacheTagLast }; static const int kCacheTagKindSize = 1; @@ -193,72 +138,83 @@ return (WTF::CurrentTime() - time_stamp) < cache_within_seconds; } -// Final compile call for a streamed compilation. -v8::MaybeLocal<v8::Script> PostStreamCompile( - v8::ScriptCompiler::CompileOptions compile_options, - SingleCachedMetadataHandler* cache_handler, - ScriptStreamer* streamer, - v8::Isolate* isolate, - v8::Local<v8::String> code, - v8::ScriptOrigin origin, - InspectorCompileScriptEvent::V8CacheResult* cache_result) { - v8::MaybeLocal<v8::Script> script = v8::ScriptCompiler::Compile( - isolate->GetCurrentContext(), streamer->Source(), code, origin); - return script; +v8::ScriptCompiler::CachedData* CreateCachedData( + SingleCachedMetadataHandler* cache_handler) { + DCHECK(cache_handler); + uint32_t code_cache_tag = V8ScriptRunner::TagForCodeCache(cache_handler); + scoped_refptr<CachedMetadata> cached_metadata = + cache_handler->GetCachedMetadata(code_cache_tag); + DCHECK(cached_metadata); + const char* data = cached_metadata->Data(); + int length = cached_metadata->size(); + return new v8::ScriptCompiler::CachedData( + reinterpret_cast<const uint8_t*>(data), length, + v8::ScriptCompiler::CachedData::BufferNotOwned); } -typedef base::OnceCallback<v8::MaybeLocal<v8::Script>( - v8::Isolate*, - v8::Local<v8::String>, - v8::ScriptOrigin, - InspectorCompileScriptEvent::V8CacheResult*)> - CompileFn; - -// Select a compile function from any of the above depending on compile_options. -static CompileFn SelectCompileFunction( +v8::MaybeLocal<v8::Script> CompileScriptInternal( + v8::Isolate* isolate, + const ScriptSourceCode& source_code, + v8::ScriptOrigin origin, v8::ScriptCompiler::CompileOptions compile_options, - SingleCachedMetadataHandler* cache_handler, - v8::ScriptCompiler::NoCacheReason no_cache_reason) { + v8::ScriptCompiler::NoCacheReason no_cache_reason, + InspectorCompileScriptEvent::V8CacheResult* cache_result) { + v8::Local<v8::String> code = V8String(isolate, source_code.Source()); + + if (ScriptStreamer* streamer = source_code.Streamer()) { + // Final compile call for a streamed compilation. + // Streaming compilation may involve use of code cache. + // TODO(leszeks): Add compile timer to streaming compilation. + DCHECK(streamer->IsFinished()); + DCHECK(!streamer->StreamingSuppressed()); + return v8::ScriptCompiler::Compile(isolate->GetCurrentContext(), + streamer->Source(), code, origin); + } + switch (compile_options) { case v8::ScriptCompiler::kNoCompileOptions: - return WTF::Bind(CompileWithoutOptions, no_cache_reason); - case v8::ScriptCompiler::kEagerCompile: - return WTF::Bind(CompileEager, no_cache_reason); + case v8::ScriptCompiler::kEagerCompile: { + v8::ScriptCompiler::Source source(code, origin); + return v8::ScriptCompiler::Compile(isolate->GetCurrentContext(), &source, + compile_options, no_cache_reason); + } + case v8::ScriptCompiler::kConsumeCodeCache: { - uint32_t code_cache_tag = V8ScriptRunner::TagForCodeCache(cache_handler); - scoped_refptr<CachedMetadata> code_cache = - cache_handler->GetCachedMetadata(code_cache_tag); - DCHECK(code_cache); - return WTF::Bind(CompileAndConsumeCache, WrapPersistent(cache_handler), - std::move(code_cache), - v8::ScriptCompiler::kConsumeCodeCache); + // Compile a script, and consume a V8 cache that was generated previously. + SingleCachedMetadataHandler* cache_handler = source_code.CacheHandler(); + v8::ScriptCompiler::CachedData* cached_data = + CreateCachedData(cache_handler); + v8::ScriptCompiler::Source source(code, origin, cached_data); + v8::MaybeLocal<v8::Script> script = + v8::ScriptCompiler::Compile(isolate->GetCurrentContext(), &source, + v8::ScriptCompiler::kConsumeCodeCache); + + if (cached_data->rejected) { + cache_handler->ClearCachedMetadata( + CachedMetadataHandler::kSendToPlatform); + } + if (cache_result) { + cache_result->consume_result = base::make_optional( + InspectorCompileScriptEvent::V8CacheResult::ConsumeResult( + v8::ScriptCompiler::kConsumeCodeCache, cached_data->length, + cached_data->rejected)); + } + return script; } case v8::ScriptCompiler::kProduceCodeCache: case v8::ScriptCompiler::kProduceFullCodeCache: case v8::ScriptCompiler::kProduceParserCache: case v8::ScriptCompiler::kConsumeParserCache: NOTREACHED(); + break; } // All switch branches should return and we should never get here. // But some compilers aren't sure, hence this default. NOTREACHED(); - return WTF::Bind(CompileWithoutOptions, v8::ScriptCompiler::kNoCacheNoReason); + return v8::MaybeLocal<v8::Script>(); } -// Select a compile function for a streaming compile. -CompileFn SelectCompileFunction( - v8::ScriptCompiler::CompileOptions compile_options, - SingleCachedMetadataHandler* cache_handler, - ScriptStreamer* streamer) { - DCHECK(streamer->IsFinished()); - DCHECK(!streamer->StreamingSuppressed()); - - // Streaming compilation may involve use of code cache. - // TODO(leszeks): Add compile timer to streaming compilation. - return WTF::Bind(PostStreamCompile, compile_options, - WrapPersistent(cache_handler), WrapPersistent(streamer)); -} } // namespace std::tuple<v8::ScriptCompiler::CompileOptions, @@ -368,11 +324,8 @@ return v8::Local<v8::Script>(); } - v8::Local<v8::String> code = V8String(isolate, source.Source()); const String& file_name = source.Url(); const TextPosition& script_start_position = source.StartPosition(); - ScriptStreamer* streamer = source.Streamer(); - SingleCachedMetadataHandler* cache_handler = source.CacheHandler(); constexpr const char* kTraceEventCategoryGroup = "v8,devtools.timeline"; TRACE_EVENT_BEGIN1(kTraceEventCategoryGroup, "v8.compile", "fileName", @@ -394,21 +347,18 @@ v8::False(isolate), // is_module referrer_info.ToV8HostDefinedOptions(isolate)); - CompileFn compile_fn = - streamer ? SelectCompileFunction(compile_options, cache_handler, streamer) - : SelectCompileFunction(compile_options, cache_handler, - no_cache_reason); - - if (!*TRACE_EVENT_API_GET_CATEGORY_GROUP_ENABLED(kTraceEventCategoryGroup)) - return std::move(compile_fn).Run(isolate, code, origin, nullptr); + if (!*TRACE_EVENT_API_GET_CATEGORY_GROUP_ENABLED(kTraceEventCategoryGroup)) { + return CompileScriptInternal(isolate, source, origin, compile_options, + no_cache_reason, nullptr); + } InspectorCompileScriptEvent::V8CacheResult cache_result; - v8::MaybeLocal<v8::Script> script = - std::move(compile_fn).Run(isolate, code, origin, &cache_result); + v8::MaybeLocal<v8::Script> script = CompileScriptInternal( + isolate, source, origin, compile_options, no_cache_reason, &cache_result); TRACE_EVENT_END1( kTraceEventCategoryGroup, "v8.compile", "data", InspectorCompileScriptEvent::Data(file_name, script_start_position, - cache_result, streamer)); + cache_result, source.Streamer())); return script; }
diff --git a/third_party/blink/renderer/core/BUILD.gn b/third_party/blink/renderer/core/BUILD.gn index cd1aff4..d5dc388 100644 --- a/third_party/blink/renderer/core/BUILD.gn +++ b/third_party/blink/renderer/core/BUILD.gn
@@ -1633,6 +1633,7 @@ "animation/keyframe_effect_model_test.cc", "animation/keyframe_effect_test.cc", "animation/property_handle_test.cc", + "animation/scroll_timeline_test.cc", "animation/timing_calculations_test.cc", "animation/timing_input_test.cc", "clipboard/data_object_test.cc",
diff --git a/third_party/blink/renderer/core/animation/scroll_timeline.cc b/third_party/blink/renderer/core/animation/scroll_timeline.cc index 020e66b..bb4712b1 100644 --- a/third_party/blink/renderer/core/animation/scroll_timeline.cc +++ b/third_party/blink/renderer/core/animation/scroll_timeline.cc
@@ -6,11 +6,18 @@ #include "third_party/blink/renderer/core/dom/exception_code.h" #include "third_party/blink/renderer/core/layout/layout_box.h" +#include "third_party/blink/renderer/core/layout/layout_view.h" #include "third_party/blink/renderer/core/paint/paint_layer_scrollable_area.h" namespace blink { namespace { +using ActiveScrollTimelineSet = PersistentHeapHashCountedSet<WeakMember<Node>>; +ActiveScrollTimelineSet& GetActiveScrollTimelineSet() { + DEFINE_STATIC_LOCAL(ActiveScrollTimelineSet, set, ()); + return set; +} + bool StringToScrollDirection(String scroll_direction, ScrollTimeline::ScrollDirection& result) { // TODO(smcgruer): Support 'auto' value. @@ -46,17 +53,17 @@ return nullptr; } - return new ScrollTimeline(document, scroll_source, orientation, + return new ScrollTimeline(scroll_source, orientation, options.timeRange().GetAsDouble()); } -ScrollTimeline::ScrollTimeline(const Document& document, - Element* scroll_source, +ScrollTimeline::ScrollTimeline(Element* scroll_source, ScrollDirection orientation, double time_range) : scroll_source_(scroll_source), orientation_(orientation), time_range_(time_range) { + DCHECK(scroll_source_); } double ScrollTimeline::currentTime(bool& is_null) { @@ -140,9 +147,31 @@ result.SetDouble(time_range_); } +void ScrollTimeline::AttachAnimation() { + GetActiveScrollTimelineSet().insert(scroll_source_); + scroll_source_->GetDocument() + .GetLayoutView() + ->Compositor() + ->SetNeedsCompositingUpdate(kCompositingUpdateRebuildTree); +} + +void ScrollTimeline::DetachAnimation() { + GetActiveScrollTimelineSet().erase(scroll_source_); + scroll_source_->GetDocument() + .GetLayoutView() + ->Compositor() + ->SetNeedsCompositingUpdate(kCompositingUpdateRebuildTree); +} + void ScrollTimeline::Trace(blink::Visitor* visitor) { visitor->Trace(scroll_source_); AnimationTimeline::Trace(visitor); } +bool ScrollTimeline::HasActiveScrollTimeline(Node* node) { + ActiveScrollTimelineSet& set = GetActiveScrollTimelineSet(); + auto it = set.find(node); + return it != set.end() && it->value > 0; +} + } // namespace blink
diff --git a/third_party/blink/renderer/core/animation/scroll_timeline.h b/third_party/blink/renderer/core/animation/scroll_timeline.h index 06ea148..f33ef32 100644 --- a/third_party/blink/renderer/core/animation/scroll_timeline.h +++ b/third_party/blink/renderer/core/animation/scroll_timeline.h
@@ -46,10 +46,22 @@ ScrollDirection GetOrientation() const { return orientation_; } + // Must be called when this ScrollTimeline is attached/unattached from an + // animation. + void AttachAnimation(); + void DetachAnimation(); + void Trace(blink::Visitor*) override; + // For the AnimationWorklet origin trial, we need to automatically composite + // elements that are targets of ScrollTimelines (http://crbug.com/776533). We + // expose a static lookup method to enable this. + // + // TODO(crbug.com/839341): Remove once WorkletAnimations can run on main. + static bool HasActiveScrollTimeline(Node* node); + private: - ScrollTimeline(const Document&, Element*, ScrollDirection, double); + ScrollTimeline(Element*, ScrollDirection, double); Member<Element> scroll_source_; ScrollDirection orientation_;
diff --git a/third_party/blink/renderer/core/animation/scroll_timeline_test.cc b/third_party/blink/renderer/core/animation/scroll_timeline_test.cc new file mode 100644 index 0000000..195c6d5 --- /dev/null +++ b/third_party/blink/renderer/core/animation/scroll_timeline_test.cc
@@ -0,0 +1,61 @@ +// 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 "third_party/blink/renderer/core/animation/scroll_timeline.h" + +#include "testing/gtest/include/gtest/gtest.h" +#include "third_party/blink/renderer/bindings/core/v8/exception_state.h" +#include "third_party/blink/renderer/core/paint/paint_layer.h" +#include "third_party/blink/renderer/core/testing/core_unit_test_helper.h" +#include "third_party/blink/renderer/core/testing/dummy_page_holder.h" + +namespace blink { + +using ScrollTimelineTest = RenderingTest; + +TEST_F(ScrollTimelineTest, + AttachingAndDetachingAnimationCausesCompositingUpdate) { + EnableCompositing(); + + SetBodyInnerHTML(R"HTML( + <style>#scroller { overflow: scroll; width: 100px; height: 100px; }</style> + <div id='scroller'></div> + )HTML"); + + LayoutBoxModelObject* scroller = + ToLayoutBoxModelObject(GetLayoutObjectByElementId("scroller")); + ASSERT_TRUE(scroller); + + // Invariant: the scroller is not composited by default. + EXPECT_EQ(DocumentLifecycle::kPaintClean, + GetDocument().Lifecycle().GetState()); + EXPECT_EQ(kNotComposited, scroller->Layer()->GetCompositingState()); + + // Create the ScrollTimeline. This shouldn't cause the scrollSource to need + // compositing, as it isn't attached to any animation yet. + ScrollTimelineOptions options; + DoubleOrScrollTimelineAutoKeyword time_range = + DoubleOrScrollTimelineAutoKeyword::FromDouble(100); + options.setTimeRange(time_range); + options.setScrollSource(GetElementById("scroller")); + ScrollTimeline* scroll_timeline = + ScrollTimeline::Create(GetDocument(), options, ASSERT_NO_EXCEPTION); + EXPECT_EQ(DocumentLifecycle::kPaintClean, + GetDocument().Lifecycle().GetState()); + EXPECT_EQ(kNotComposited, scroller->Layer()->GetCompositingState()); + + // Now attach an animation. This should require a compositing update. + scroll_timeline->AttachAnimation(); + + UpdateAllLifecyclePhases(); + EXPECT_NE(scroller->Layer()->GetCompositingState(), kNotComposited); + + // Now detach an animation. This should again require a compositing update. + scroll_timeline->DetachAnimation(); + + UpdateAllLifecyclePhases(); + EXPECT_EQ(scroller->Layer()->GetCompositingState(), kNotComposited); +} + +} // namespace blink
diff --git a/third_party/blink/renderer/core/css/svg.css b/third_party/blink/renderer/core/css/svg.css index 1bac1d4..091b6fe 100644 --- a/third_party/blink/renderer/core/css/svg.css +++ b/third_party/blink/renderer/core/css/svg.css
@@ -62,6 +62,10 @@ white-space: nowrap } +a:-webkit-any-link { + cursor: pointer; +} + tspan, textPath { white-space: inherit }
diff --git a/third_party/blink/renderer/core/editing/text_offset_mapping.cc b/third_party/blink/renderer/core/editing/text_offset_mapping.cc index 6d101686..edddf122 100644 --- a/third_party/blink/renderer/core/editing/text_offset_mapping.cc +++ b/third_party/blink/renderer/core/editing/text_offset_mapping.cc
@@ -4,78 +4,151 @@ #include "third_party/blink/renderer/core/editing/text_offset_mapping.h" +#include <ostream> #include "third_party/blink/renderer/core/dom/node.h" #include "third_party/blink/renderer/core/editing/editing_utilities.h" #include "third_party/blink/renderer/core/editing/iterators/character_iterator.h" #include "third_party/blink/renderer/core/editing/iterators/text_iterator.h" #include "third_party/blink/renderer/core/editing/position.h" -#include "third_party/blink/renderer/core/layout/layout_block.h" +#include "third_party/blink/renderer/core/layout/layout_block_flow.h" namespace blink { namespace { +// TODO(editing-dev): We may not need to do full-subtree traversal, but we're +// not sure, e.g. ::first-line. See |enum PseudoId| for list of pseudo elements +// used in Blink. +bool HasNonPsuedoNode(const LayoutObject& parent) { + if (parent.NonPseudoNode()) + return true; + for (const LayoutObject* runner = &parent; runner; + runner = runner->NextInPreOrder(&parent)) { + if (runner->NonPseudoNode()) + return true; + } + // Following HTML reach here: + // [1] <div style="columns: 5 31px">...</div>; http://crbug.com/832055 + // [2] <select></select>; http://crbug.com/834623 + return false; +} + +bool CanBeInlineContentsContainer(const LayoutObject& layout_object) { + if (!layout_object.IsLayoutBlockFlow()) + return false; + const LayoutBlockFlow& block_flow = ToLayoutBlockFlow(layout_object); + if (!block_flow.ChildrenInline() || block_flow.IsAtomicInlineLevel()) + return false; + if (block_flow.NonPseudoNode()) { + // It is OK as long as |block_flow| is associated to non-pseudo |Node| even + // if it is empty block or containing only anonymous objects. + // See LinkSelectionClickEventsTest.SingleAndDoubleClickWillBeHandled + return true; + } + // Since we can't create |EphemeralRange|, we exclude a |LayoutBlockFlow| if + // its entire subtree is anonymous, e.g. |LayoutMultiColumnSet|, + // and with anonymous layout objects. + return HasNonPsuedoNode(block_flow); +} + +// Returns outer most nested inline formatting context. +const LayoutBlockFlow& RootInlineContentsContainerOf( + const LayoutBlockFlow& block_flow) { + DCHECK(block_flow.ChildrenInline()) << block_flow; + const LayoutBlockFlow* root_block_flow = &block_flow; + for (const LayoutBlock* runner = block_flow.ContainingBlock(); runner; + runner = runner->ContainingBlock()) { + if (!runner->IsLayoutBlockFlow() || !runner->ChildrenInline()) + break; + root_block_flow = ToLayoutBlockFlow(runner); + } + DCHECK(!root_block_flow->IsAtomicInlineLevel()) + << block_flow << ' ' << root_block_flow; + return *root_block_flow; +} + +// TODO(editing-dev): We should have |ComputeInlineContents()| computing first +// and last layout objects representing a run of inline layout objects in +// |LayoutBlockFlow| instead of using |ComputeInlineContentsAsBlockFlow()|. +// +// For example "<p>a<b>CD<p>EF</p>G</b>h</p>", where b has display:inline-block. +// We should have three ranges: +// 1. aCD +// 2. EF +// 3. Gh +// See RangeWithNestedInlineBlock* tests. + // Note: Since "inline-block" and "float" are not considered as text segment // boundary, we should not consider them as block for scanning. // Example in selection text: -// <div>|ab<b style="display:inline-box">CD</b>ef</div> +// <div>|ab<b style="display:inline-block">CD</b>ef</div> // selection.modify('extent', 'forward', 'word') -// <div>^ab<b style="display:inline-box">CD</b>ef|</div> -// See also test cases for "inline-block" and "float" in "TextIterator.cpp". -bool IsBlockForTextOffsetMapping(const LayoutObject& object) { - return object.IsLayoutBlock() && !object.IsAtomicInlineLevel() && - !object.IsFloatingOrOutOfFlowPositioned(); +// <div>^ab<b style="display:inline-block">CD</b>ef|</div> +// See also test cases for "inline-block" and "float" in |TextIterator| +// +// This is a helper function to compute inline layout object run from +// |LayoutBlockFlow|. +const LayoutBlockFlow* ComputeInlineContentsAsBlockFlow( + const LayoutObject& layout_object) { + const LayoutBlock* const block = layout_object.IsLayoutBlock() + ? &ToLayoutBlock(layout_object) + : layout_object.ContainingBlock(); + DCHECK(block) << layout_object; + if (!block->IsLayoutBlockFlow()) + return nullptr; + const LayoutBlockFlow& block_flow = ToLayoutBlockFlow(*block); + if (!block_flow.ChildrenInline()) + return nullptr; + if (block_flow.IsAtomicInlineLevel() || + block_flow.IsFloatingOrOutOfFlowPositioned()) { + const LayoutBlockFlow& root_block_flow = + RootInlineContentsContainerOf(block_flow); + DCHECK(CanBeInlineContentsContainer(root_block_flow)) + << layout_object << " block_flow=" << block_flow + << " root_block_flow=" << root_block_flow; + return &root_block_flow; + } + if (!CanBeInlineContentsContainer(block_flow)) + return nullptr; + return &block_flow; } -PositionInFlatTree ComputeEndPosition(const LayoutBlock& block) { - for (LayoutObject* runner = block.LastLeafChild(); runner; - runner = runner->PreviousInPreOrder(&block)) { - Node* node = runner->NonPseudoNode(); - if (!node) - continue; - if (node->IsTextNode()) - return PositionInFlatTree(node, ToText(node)->length()); - return PositionInFlatTree::AfterNode(*node); +TextOffsetMapping::InlineContents CreateInlineContentsFromBlockFlow( + const LayoutBlockFlow& block_flow) { + const LayoutObject* first = nullptr; + for (const LayoutObject* runner = block_flow.FirstChild(); runner; + runner = runner->NextInPreOrder(&block_flow)) { + if (runner->NonPseudoNode()) { + first = runner; + break; + } } - if (Node* block_node = block.NonPseudoNode()) { - // Empty DIV reaches here. - return PositionInFlatTree::LastPositionInNode(*block_node); + if (!first) { + DCHECK(block_flow.NonPseudoNode()) << block_flow; + return TextOffsetMapping::InlineContents(block_flow); } - // TODO(editing-dev): Once we have the test case reaches here, we should - // change caller to handle this. - NOTREACHED() << block.DebugName(); - return PositionInFlatTree(); + const LayoutObject* last = nullptr; + for (const LayoutObject* runner = block_flow.LastLeafChild(); runner; + runner = runner->PreviousInPreOrder(&block_flow)) { + if (runner->NonPseudoNode()) { + last = runner; + break; + } + } + DCHECK(last); + return TextOffsetMapping::InlineContents(block_flow, *first, *last); } -PositionInFlatTree ComputeStartPosition(const LayoutBlock& block) { - for (LayoutObject* runner = block.FirstChild(); runner; - runner = runner->NextInPreOrder(&block)) { - Node* node = runner->NonPseudoNode(); - if (!node) - continue; - if (node->IsTextNode()) - return PositionInFlatTree(node, 0); - return PositionInFlatTree::BeforeNode(*node); - } - if (Node* block_node = block.NonPseudoNode()) { - // Empty DIV reaches here. - return PositionInFlatTree::FirstPositionInNode(*block_node); - } - // TODO(editing-dev): Once we have the test case reaches here, we should - // change caller to handle this. - NOTREACHED() << block.DebugName(); - return PositionInFlatTree(); -} - -// Returns range of block containing |position|. -// Note: Container node of |position| should be associated to |LayoutObject|. -EphemeralRangeInFlatTree ComputeBlockRange(const LayoutBlock& block) { - DCHECK(!block.IsAtomicInlineLevel()); - const PositionInFlatTree& start = ComputeStartPosition(block); - DCHECK(start.IsNotNull()) << block.DebugName(); - const PositionInFlatTree& end = ComputeEndPosition(block); - DCHECK(end.IsNotNull()) << block.DebugName(); - return EphemeralRangeInFlatTree(start, end); +TextOffsetMapping::InlineContents ComputeInlineContentsFromNode( + const Node& node) { + const LayoutObject* const layout_object = node.GetLayoutObject(); + if (!layout_object) + return TextOffsetMapping::InlineContents(); + const LayoutBlockFlow* const block_flow = + ComputeInlineContentsAsBlockFlow(*layout_object); + if (!block_flow) + return TextOffsetMapping::InlineContents(); + return CreateInlineContentsFromBlockFlow(*block_flow); } String Ensure16Bit(const String& text) { @@ -86,14 +159,14 @@ } // namespace -TextOffsetMapping::TextOffsetMapping(const LayoutBlock& block, - const TextIteratorBehavior behavior) +TextOffsetMapping::TextOffsetMapping(const InlineContents& inline_contents, + const TextIteratorBehavior& behavior) : behavior_(behavior), - range_(ComputeBlockRange(block)), + range_(inline_contents.GetRange()), text16_(Ensure16Bit(PlainText(range_, behavior_))) {} -TextOffsetMapping::TextOffsetMapping(const LayoutBlock& block) - : TextOffsetMapping(block, +TextOffsetMapping::TextOffsetMapping(const InlineContents& inline_contents) + : TextOffsetMapping(inline_contents, TextIteratorBehavior::Builder() .SetEmitsCharactersBetweenAllVisiblePositions(true) .SetEmitsSmallXForTextSecurity(true) @@ -101,6 +174,10 @@ int TextOffsetMapping::ComputeTextOffset( const PositionInFlatTree& position) const { + if (position <= range_.StartPosition()) + return 0; + if (position >= range_.EndPosition()) + return text16_.length(); return TextIteratorInFlatTree::RangeLength(range_.StartPosition(), position, behavior_); } @@ -144,36 +221,173 @@ } // static -const LayoutBlock& TextOffsetMapping::ComputeContainigBlock( +TextOffsetMapping::BackwardRange TextOffsetMapping::BackwardRangeOf( const PositionInFlatTree& position) { - const Node& container = *position.ComputeContainerNode(); - for (LayoutObject* runner = container.GetLayoutObject(); runner; - runner = runner->ContainingBlock()) { - if (IsBlockForTextOffsetMapping(*runner)) - return ToLayoutBlock(*runner); - } - NOTREACHED() << position; - return *ToLayoutBlock(container.GetLayoutObject()); + return BackwardRange(FindBackwardInlineContents(position)); } // static -LayoutBlock* TextOffsetMapping::NextBlockFor(const LayoutBlock& block) { - for (LayoutObject* runner = block.NextInPreOrderAfterChildren(); runner; - runner = runner->NextInPreOrder()) { - if (IsBlockForTextOffsetMapping(*runner)) - return ToLayoutBlock(runner); - } - return nullptr; +TextOffsetMapping::ForwardRange TextOffsetMapping::ForwardRangeOf( + const PositionInFlatTree& position) { + return ForwardRange(FindForwardInlineContents(position)); } // static -LayoutBlock* TextOffsetMapping::PreviousBlockFor(const LayoutBlock& block) { - for (LayoutObject* runner = block.PreviousInPreOrder(); runner; - runner = runner->PreviousInPreOrder()) { - if (IsBlockForTextOffsetMapping(*runner) && !block.IsDescendantOf(runner)) - return ToLayoutBlock(runner); +TextOffsetMapping::InlineContents TextOffsetMapping::FindBackwardInlineContents( + const PositionInFlatTree& position) { + for (const Node* node = position.NodeAsRangeLastNode(); node; + node = FlatTreeTraversal::Previous(*node)) { + const InlineContents inline_contents = ComputeInlineContentsFromNode(*node); + if (inline_contents.IsNotNull()) + return inline_contents; } - return nullptr; + return InlineContents(); +} + +// static +// Note: "doubleclick-whitespace-img-crash.html" call |NextWordPosition()) +// with AfterNode(IMG) for <body><img></body> +TextOffsetMapping::InlineContents TextOffsetMapping::FindForwardInlineContents( + const PositionInFlatTree& position) { + for (const Node* node = position.NodeAsRangeFirstNode(); node; + node = FlatTreeTraversal::Next(*node)) { + const InlineContents inline_contents = ComputeInlineContentsFromNode(*node); + if (inline_contents.IsNotNull()) + return inline_contents; + } + return InlineContents(); +} + +// ---- + +TextOffsetMapping::InlineContents::InlineContents( + const LayoutBlockFlow& block_flow) + : block_flow_(&block_flow) { + DCHECK(block_flow_->NonPseudoNode()); + DCHECK(CanBeInlineContentsContainer(*block_flow_)) << block_flow_; +} + +// |first| and |last| should not be anonymous object. +// Note: "extend_selection_10_ltr_backward_word.html" has a block starts with +// collapsible whitespace with anonymous object. +TextOffsetMapping::InlineContents::InlineContents( + const LayoutBlockFlow& block_flow, + const LayoutObject& first, + const LayoutObject& last) + : block_flow_(&block_flow), first_(&first), last_(&last) { + DCHECK(first_->NonPseudoNode()) << first_; + DCHECK(last_->NonPseudoNode()) << last_; + DCHECK(CanBeInlineContentsContainer(*block_flow_)) << block_flow_; + DCHECK(first_->IsDescendantOf(block_flow_)); + DCHECK(last_->IsDescendantOf(block_flow_)); +} + +bool TextOffsetMapping::InlineContents::operator==( + const InlineContents& other) const { + return block_flow_ == other.block_flow_; +} + +const LayoutBlockFlow* TextOffsetMapping::InlineContents::GetEmptyBlock() + const { + DCHECK(block_flow_ && !first_ && !last_); + return block_flow_; +} + +const LayoutObject& TextOffsetMapping::InlineContents::FirstLayoutObject() + const { + DCHECK(first_); + return *first_; +} + +const LayoutObject& TextOffsetMapping::InlineContents::LastLayoutObject() + const { + DCHECK(last_); + return *last_; +} + +EphemeralRangeInFlatTree TextOffsetMapping::InlineContents::GetRange() const { + DCHECK(block_flow_); + if (!first_) { + const Node& node = *block_flow_->NonPseudoNode(); + return EphemeralRangeInFlatTree( + PositionInFlatTree::FirstPositionInNode(node), + PositionInFlatTree::LastPositionInNode(node)); + } + const Node& first_node = *first_->NonPseudoNode(); + const Node& last_node = *last_->NonPseudoNode(); + return EphemeralRangeInFlatTree( + first_node.IsTextNode() ? PositionInFlatTree(first_node, 0) + : PositionInFlatTree::BeforeNode(first_node), + last_node.IsTextNode() + ? PositionInFlatTree(last_node, ToText(last_node).length()) + : PositionInFlatTree::AfterNode(last_node)); +} + +// static +TextOffsetMapping::InlineContents TextOffsetMapping::InlineContents::NextOf( + const InlineContents& inline_contents) { + for (LayoutObject* runner = + inline_contents.block_flow_->NextInPreOrderAfterChildren(); + runner; runner = runner->NextInPreOrder()) { + if (!CanBeInlineContentsContainer(*runner)) + continue; + const LayoutBlockFlow& block_flow = ToLayoutBlockFlow(*runner); + if (block_flow.IsFloatingOrOutOfFlowPositioned()) + continue; + DCHECK(!block_flow.IsAtomicInlineLevel()) << block_flow; + return CreateInlineContentsFromBlockFlow(block_flow); + } + return InlineContents(); +} + +// static +TextOffsetMapping::InlineContents TextOffsetMapping::InlineContents::PreviousOf( + const InlineContents& inline_contents) { + for (LayoutObject* runner = inline_contents.block_flow_->PreviousInPreOrder(); + runner; runner = runner->PreviousInPreOrder()) { + const LayoutBlockFlow* const block_flow = + ComputeInlineContentsAsBlockFlow(*runner); + if (!block_flow || block_flow->IsFloatingOrOutOfFlowPositioned()) + continue; + DCHECK(!block_flow->IsDescendantOf(inline_contents.block_flow_)) + << block_flow; + DCHECK(!block_flow->IsAtomicInlineLevel()) << block_flow; + return CreateInlineContentsFromBlockFlow(*block_flow); + } + return InlineContents(); +} + +std::ostream& operator<<( + std::ostream& ostream, + const TextOffsetMapping::InlineContents& inline_contents) { + return ostream << '[' << inline_contents.FirstLayoutObject() << ", " + << inline_contents.LastLayoutObject() << ']'; +} + +// ---- + +TextOffsetMapping::InlineContents TextOffsetMapping::BackwardRange::Iterator:: +operator*() const { + DCHECK(current_.IsNotNull()); + return current_; +} + +void TextOffsetMapping::BackwardRange::Iterator::operator++() { + DCHECK(current_.IsNotNull()); + current_ = TextOffsetMapping::InlineContents::PreviousOf(current_); +} + +// ---- + +TextOffsetMapping::InlineContents TextOffsetMapping::ForwardRange::Iterator:: +operator*() const { + DCHECK(current_.IsNotNull()); + return current_; +} + +void TextOffsetMapping::ForwardRange::Iterator::operator++() { + DCHECK(current_.IsNotNull()); + current_ = TextOffsetMapping::InlineContents::NextOf(current_); } } // namespace blink
diff --git a/third_party/blink/renderer/core/editing/text_offset_mapping.h b/third_party/blink/renderer/core/editing/text_offset_mapping.h index 1863595f..68547d3a 100644 --- a/third_party/blink/renderer/core/editing/text_offset_mapping.h +++ b/third_party/blink/renderer/core/editing/text_offset_mapping.h
@@ -5,6 +5,8 @@ #ifndef THIRD_PARTY_BLINK_RENDERER_CORE_EDITING_TEXT_OFFSET_MAPPING_H_ #define THIRD_PARTY_BLINK_RENDERER_CORE_EDITING_TEXT_OFFSET_MAPPING_H_ +#include <iosfwd> +#include <iterator> #include "base/macros.h" #include "third_party/blink/renderer/core/core_export.h" #include "third_party/blink/renderer/core/editing/ephemeral_range.h" @@ -16,24 +18,140 @@ namespace blink { -class LayoutBlock; +class LayoutBlockFlow; -// Mapping between position and text offset in |LayoutBlock| == CSS Block -// with using characters from |TextIterator|. +// Mapping between position and text offset in "inline contents" with using +// characters from |TextIterator|. // -// This class is similar to |NGOffsetMapping| which uses |text_offset_| in -// |NGInlineNodeData| except for +// The "inline contents" is a similar to "inline formatting context" defined +// in CSS 2.1 specification or |LayoutBlockFlow| for inline contents, except +// for: +// - Including characters from "display:inline-block". +// - Exclude "float" or "positioned" appeared in middle of inline contents // - Treats characters with CSS property "-webkit-text-security" as "x" // instead of a bullet (U+2022), which breaks words. -// - Contains characters in float and inline-blocks. |NGOffsetMapping| treats -// them as one object replacement character (U+FFFC). See |CollectInlines| -// in |NGInlineNode|. class CORE_EXPORT TextOffsetMapping final { STACK_ALLOCATED(); public: - // Constructor |TextOffsetMapping| for specified |LayoutBlock|. - explicit TextOffsetMapping(const LayoutBlock&); + // |InlineContents| represents "inline contents" in a range of layout tree. + class CORE_EXPORT InlineContents final { + STACK_ALLOCATED(); + + public: + // |first| and |last|(inclusive) represent inline layout object run, they + // should be descendants of |block_flow|. + InlineContents(const LayoutBlockFlow& block_flow, + const LayoutObject& first, + const LayoutObject& last); + // |block_flow| must be non-anonymous empty block or block containing only + // anonymous object. + InlineContents(const LayoutBlockFlow& block_flow); + InlineContents() = default; + + bool operator==(const InlineContents& other) const; + bool operator!=(const InlineContents& other) const { + return !operator==(other); + } + + const LayoutBlockFlow* GetEmptyBlock() const; + const LayoutObject& FirstLayoutObject() const; + const LayoutObject& LastLayoutObject() const; + EphemeralRangeInFlatTree GetRange() const; + + bool IsNotNull() const { return !IsNull(); } + bool IsNull() const { return !block_flow_; } + + // Returns |InlineContents| from |block_flow_| toward last of layout tree. + static InlineContents NextOf(const InlineContents&); + + // Returns |InlineContents| from |block_flow_| toward first of layout tree. + static InlineContents PreviousOf(const InlineContents&); + + private: + friend class TextOffsetMapping; + + const LayoutBlockFlow* block_flow_ = nullptr; + const LayoutObject* first_ = nullptr; + const LayoutObject* last_ = nullptr; + }; + + // |BackwardRange| class is used with range-for to traverse inline contents + // toward start of document. + class CORE_EXPORT BackwardRange final { + STACK_ALLOCATED(); + + public: + class CORE_EXPORT Iterator + : public std::iterator<std::input_iterator_tag, InlineContents> { + STACK_ALLOCATED(); + + public: + explicit Iterator(const InlineContents& current) : current_(current) {} + Iterator() = default; + + InlineContents operator*() const; + void operator++(); + + bool operator==(const Iterator& other) const { + return current_ == other.current_; + } + bool operator!=(const Iterator& other) const { + return !operator==(other); + } + + private: + InlineContents current_; + }; + + explicit BackwardRange(const InlineContents& start) : start_(start) {} + + Iterator begin() const { return Iterator(start_); } + Iterator end() const { return Iterator(); } + + private: + const InlineContents start_; + }; + + // |ForwardRange| class is used with range-for to traverse inline contents + // toward end of document. + class CORE_EXPORT ForwardRange final { + STACK_ALLOCATED(); + + public: + class CORE_EXPORT Iterator + : public std::iterator<std::forward_iterator_tag, InlineContents> { + STACK_ALLOCATED(); + + public: + explicit Iterator(const InlineContents& current) : current_(current) {} + Iterator() = default; + + InlineContents operator*() const; + void operator++(); + + bool operator==(const Iterator& other) const { + return current_ == other.current_; + } + bool operator!=(const Iterator& other) const { + return !operator==(other); + } + + private: + InlineContents current_; + }; + + explicit ForwardRange(const InlineContents& start) : start_(start) {} + + Iterator begin() const { return Iterator(start_); } + Iterator end() const { return Iterator(); } + + private: + const InlineContents start_; + }; + + // Constructor |TextOffsetMapping| for the |inline_contents|. + explicit TextOffsetMapping(const InlineContents& inline_contents); ~TextOffsetMapping() = default; @@ -61,13 +179,27 @@ // This function is used for computing trailing whitespace after word. unsigned FindNonWhitespaceCharacterFrom(unsigned offset) const; - // Helper functions to constructor |TextOffsetMapping|. - static const LayoutBlock& ComputeContainigBlock(const PositionInFlatTree&); - static LayoutBlock* NextBlockFor(const LayoutBlock&); - static LayoutBlock* PreviousBlockFor(const LayoutBlock&); + // Helper functions to construct |TextOffsetMapping|. + + // Returns a |BackwardRange| for backward iteration of |InlineContents| + // from |InlineContens| containing |position|. + static BackwardRange BackwardRangeOf(const PositionInFlatTree& position); + + // Returns a |ForwardRange| for forward iteration of |InlineContents| + // from |InlineContens| containing |position|. + static ForwardRange ForwardRangeOf(const PositionInFlatTree& position); + + // Returns |LayoutBlockFlow| satisfying |IsInlineContents()| from |position| + // (inclusive) toward start of document, or null if no such |LayoutBlockFlow|. + static InlineContents FindBackwardInlineContents( + const PositionInFlatTree& position); + + // Returns |LayoutBlockFlow| satisfying |IsInlineContents()| from |position| + // (inclusive) toward end of document, or null if no such |LayoutBlockFlow|. + static InlineContents FindForwardInlineContents(const PositionInFlatTree&); private: - TextOffsetMapping(const LayoutBlock&, const TextIteratorBehavior); + TextOffsetMapping(const InlineContents&, const TextIteratorBehavior&); const TextIteratorBehavior behavior_; const EphemeralRangeInFlatTree range_; @@ -76,6 +208,9 @@ DISALLOW_COPY_AND_ASSIGN(TextOffsetMapping); }; +CORE_EXPORT std::ostream& operator<<(std::ostream&, + const TextOffsetMapping::InlineContents&); + } // namespace blink #endif // THIRD_PARTY_BLINK_RENDERER_CORE_EDITING_TEXT_OFFSET_MAPPING_H_
diff --git a/third_party/blink/renderer/core/editing/text_offset_mapping_test.cc b/third_party/blink/renderer/core/editing/text_offset_mapping_test.cc index 20826c8..7976375 100644 --- a/third_party/blink/renderer/core/editing/text_offset_mapping_test.cc +++ b/third_party/blink/renderer/core/editing/text_offset_mapping_test.cc
@@ -9,6 +9,7 @@ #include "third_party/blink/renderer/core/editing/position.h" #include "third_party/blink/renderer/core/editing/selection_template.h" #include "third_party/blink/renderer/core/editing/testing/editing_test_base.h" +#include "third_party/blink/renderer/core/layout/layout_block_flow.h" #include "third_party/blink/renderer/platform/testing/runtime_enabled_features_test_helpers.h" #include "third_party/blink/renderer/platform/wtf/text/string_builder.h" #include "third_party/blink/renderer/platform/wtf/text/wtf_string.h" @@ -27,8 +28,7 @@ std::string ComputeTextOffset(const std::string& selection_text) { const PositionInFlatTree position = ToPositionInFlatTree(SetSelectionTextToBody(selection_text).Base()); - TextOffsetMapping mapping( - TextOffsetMapping::ComputeContainigBlock(position)); + TextOffsetMapping mapping(GetInlineContents(position)); const String text = mapping.GetText(); const int offset = mapping.ComputeTextOffset(position); StringBuilder builder; @@ -42,8 +42,7 @@ std::string GetRange(const std::string& selection_text) { const PositionInFlatTree position = ToPositionInFlatTree(SetSelectionTextToBody(selection_text).Base()); - TextOffsetMapping mapping( - TextOffsetMapping::ComputeContainigBlock(position)); + TextOffsetMapping mapping(GetInlineContents(position)); return GetSelectionTextInFlatTreeFromBody( SelectionInFlatTree::Builder() .SetBaseAndExtent(mapping.GetRange()) @@ -52,7 +51,7 @@ std::string GetPositionBefore(const std::string& html_text, int offset) { SetBodyContent(html_text); - TextOffsetMapping mapping(TextOffsetMapping::ComputeContainigBlock( + TextOffsetMapping mapping(GetInlineContents( PositionInFlatTree(*GetDocument().body()->firstChild(), 0))); return GetSelectionTextInFlatTreeFromBody( SelectionInFlatTree::Builder() @@ -62,13 +61,22 @@ std::string GetPositionAfter(const std::string& html_text, int offset) { SetBodyContent(html_text); - TextOffsetMapping mapping(TextOffsetMapping::ComputeContainigBlock( + TextOffsetMapping mapping(GetInlineContents( PositionInFlatTree(*GetDocument().body()->firstChild(), 0))); return GetSelectionTextInFlatTreeFromBody( SelectionInFlatTree::Builder() .Collapse(mapping.GetPositionAfter(offset)) .Build()); } + + private: + static TextOffsetMapping::InlineContents GetInlineContents( + const PositionInFlatTree& position) { + const TextOffsetMapping::InlineContents inline_contents = + TextOffsetMapping::FindForwardInlineContents(position); + DCHECK(inline_contents.IsNotNull()) << position; + return inline_contents; + } }; INSTANTIATE_TEST_CASE_P(All, @@ -207,9 +215,123 @@ << "After TABLE"; } +// |InlineContents| can represent an empty block. +// See LinkSelectionClickEventsTest.SingleAndDoubleClickWillBeHandled TEST_P(ParameterizedTextOffsetMappingTest, RangeOfEmptyBlock) { - EXPECT_EQ("<div><p>abc</p><p>|</p><p>ghi</p></div>", - GetRange("<div><p>abc</p><p>|</p><p>ghi</p></div>")); + const PositionInFlatTree position = ToPositionInFlatTree( + SetSelectionTextToBody( + "<div><p>abc</p><p id='target'>|</p><p>ghi</p></div>") + .Base()); + const LayoutObject* const target_layout_object = + GetDocument().getElementById("target")->GetLayoutObject(); + const TextOffsetMapping::InlineContents inline_contents = + TextOffsetMapping::FindForwardInlineContents(position); + ASSERT_TRUE(inline_contents.IsNotNull()); + EXPECT_EQ(target_layout_object, inline_contents.GetEmptyBlock()); + EXPECT_EQ(inline_contents, + TextOffsetMapping::FindBackwardInlineContents(position)); +} + +// http://crbug.com/832497 +TEST_P(ParameterizedTextOffsetMappingTest, RangeWithCollapsedWhitespace) { + // Whitespaces after <div> is collapsed. + EXPECT_EQ(" <div> ^<a></a>|</div>", GetRange("| <div> <a></a></div>")); +} + +// http://crbug.com//832055 +TEST_P(ParameterizedTextOffsetMappingTest, RangeWithMulticol) { + InsertStyleElement("div { columns: 3 100px; }"); + EXPECT_EQ("<div>^<b>foo|</b></div>", GetRange("<div><b>foo|</b></div>")); +} + +// http://crbug.com/832101 +TEST_P(ParameterizedTextOffsetMappingTest, RangeWithNestedFloat) { + InsertStyleElement("b, i { float: right; }"); + // Note: Legacy: BODY is inline, NG: BODY is block. + EXPECT_EQ(LayoutNGEnabled() ? "<b>^abc <i>def</i> ghi|</b>xyz" + : "^<b>abc <i>def</i> ghi</b>xyz|", + GetRange("<b>abc <i>d|ef</i> ghi</b>xyz")); +} + +TEST_P(ParameterizedTextOffsetMappingTest, RangeWithNestedInlineBlock) { + InsertStyleElement("b, i { display: inline-block; }"); + EXPECT_EQ("^<b>a <i>b</i> d</b>e|", GetRange("|<b>a <i>b</i> d</b>e")); + EXPECT_EQ("^<b>a <i>b</i> d</b>e|", GetRange("<b>|a <i>b</i> d</b>e")); + EXPECT_EQ("^<b>a <i>b</i> d</b>e|", GetRange("<b>a| <i>b</i> d</b>e")); + EXPECT_EQ("^<b>a <i>b</i> d</b>e|", GetRange("<b>a |<i>b</i> d</b>e")); + EXPECT_EQ("^<b>a <i>b</i> d</b>e|", GetRange("<b>a <i>|b</i> d</b>e")); + EXPECT_EQ("^<b>a <i>b</i> d</b>e|", GetRange("<b>a <i>b|</i> d</b>e")); + EXPECT_EQ("^<b>a <i>b</i> d</b>e|", GetRange("<b>a <i>b</i>| d</b>e")); + EXPECT_EQ("^<b>a <i>b</i> d</b>e|", GetRange("<b>a <i>b</i> |d</b>e")); + EXPECT_EQ("^<b>a <i>b</i> d</b>e|", GetRange("<b>a <i>b</i> d|</b>e")); + EXPECT_EQ("^<b>a <i>b</i> d</b>e|", GetRange("<b>a <i>b</i> d</b>|e")); + EXPECT_EQ("^<b>a <i>b</i> d</b>e|", GetRange("<b>a <i>b</i> d</b>e|")); +} + +TEST_P(ParameterizedTextOffsetMappingTest, RangeWithInlineBlockBlock) { + InsertStyleElement("b { display:inline-block; }"); + // TODO(editing-dev): We should have "^a<b>b|<p>" + EXPECT_EQ("^a<b>b<p>c</p>d</b>e|", GetRange("|a<b>b<p>c</p>d</b>e")); + EXPECT_EQ("^a<b>b<p>c</p>d</b>e|", GetRange("a|<b>b<p>c</p>d</b>e")); + EXPECT_EQ("a<b>^b|<p>c</p>d</b>e", GetRange("a<b>|b<p>c</p>d</b>e")); + EXPECT_EQ("a<b>^b|<p>c</p>d</b>e", GetRange("a<b>b|<p>c</p>d</b>e")); + EXPECT_EQ("a<b>b<p>^c|</p>d</b>e", GetRange("a<b>b<p>|c</p>d</b>e")); + EXPECT_EQ("a<b>b<p>^c|</p>d</b>e", GetRange("a<b>b<p>c|</p>d</b>e")); + EXPECT_EQ("a<b>b<p>c</p>^d|</b>e", GetRange("a<b>b<p>c</p>|d</b>e")); + EXPECT_EQ("^a<b>b<p>c</p>d</b>e|", GetRange("a<b>b<p>c</p>d</b>|e")); + EXPECT_EQ("^a<b>b<p>c</p>d</b>e|", GetRange("a<b>b<p>c</p>d</b>e|")); +} + +TEST_P(ParameterizedTextOffsetMappingTest, RangeWithInlineBlockBlocks) { + InsertStyleElement("b { display:inline-block; }"); + // TODO(editing-dev): We should have "^a|" + EXPECT_EQ("^a<b><p>b</p><p>c</p></b>d|", + GetRange("|a<b><p>b</p><p>c</p></b>d")); + EXPECT_EQ("^a<b><p>b</p><p>c</p></b>d|", + GetRange("a|<b><p>b</p><p>c</p></b>d")); + EXPECT_EQ("a<b><p>^b|</p><p>c</p></b>d", + GetRange("a<b>|<p>b</p><p>c</p></b>d")); + EXPECT_EQ("a<b><p>^b|</p><p>c</p></b>d", + GetRange("a<b><p>|b</p><p>c</p></b>d")); + EXPECT_EQ("a<b><p>^b|</p><p>c</p></b>d", + GetRange("a<b><p>b|</p><p>c</p></b>d")); + EXPECT_EQ("a<b><p>b</p><p>^c|</p></b>d", + GetRange("a<b><p>b</p>|<p>c</p></b>d")); + EXPECT_EQ("a<b><p>b</p><p>^c|</p></b>d", + GetRange("a<b><p>b</p><p>|c</p></b>d")); + EXPECT_EQ("a<b><p>b</p><p>^c|</p></b>d", + GetRange("a<b><p>b</p><p>c|</p></b>d")); + EXPECT_EQ("^a<b><p>b</p><p>c</p></b>d|", + GetRange("a<b><p>b</p><p>c</p>|</b>d")); + EXPECT_EQ("^a<b><p>b</p><p>c</p></b>d|", + GetRange("a<b><p>b</p><p>c</p></b>|d")); + EXPECT_EQ("^a<b><p>b</p><p>c</p></b>d|", + GetRange("a<b><p>b</p><p>c</p></b>d|")); +} + +// http://crbug.com/832101 +TEST_P(ParameterizedTextOffsetMappingTest, RangeWithNestedPosition) { + InsertStyleElement("b, i { position: fixed; }"); + EXPECT_EQ("<b>abc <i>^def|</i> ghi</b>xyz", + GetRange("<b>abc <i>d|ef</i> ghi</b>xyz")); +} + +// http://crbug.com//834623 +TEST_P(ParameterizedTextOffsetMappingTest, RangeWithSelect) { + EXPECT_EQ( + "^<select>" + "<slot name=\"user-agent-custom-assign-slot\"></slot>" + "</select>foo|", + GetRange("<select>|</select>foo")); +} + +// http://crbug.com//832350 +TEST_P(ParameterizedTextOffsetMappingTest, RangeWithShadowDOM) { + EXPECT_EQ("<div><slot>^abc|</slot></div>", + GetRange("<div>" + "<template data-mode='open'><slot></slot></template>" + "|abc" + "</div>")); } TEST_P(ParameterizedTextOffsetMappingTest, GetPositionBefore) {
diff --git a/third_party/blink/renderer/core/editing/visible_units_word.cc b/third_party/blink/renderer/core/editing/visible_units_word.cc index 8f45ecb0..ca38b6d 100644 --- a/third_party/blink/renderer/core/editing/visible_units_word.cc +++ b/third_party/blink/renderer/core/editing/visible_units_word.cc
@@ -34,7 +34,7 @@ #include "third_party/blink/renderer/core/editing/ephemeral_range.h" #include "third_party/blink/renderer/core/editing/text_offset_mapping.h" #include "third_party/blink/renderer/core/editing/visible_position.h" -#include "third_party/blink/renderer/core/layout/layout_block.h" +#include "third_party/blink/renderer/core/layout/layout_block_flow.h" #include "third_party/blink/renderer/platform/instrumentation/tracing/trace_event.h" #include "third_party/blink/renderer/platform/text/text_boundaries.h" @@ -82,23 +82,20 @@ PositionInFlatTree NextWordPositionInternal( const PositionInFlatTree& position) { DCHECK(position.IsNotNull()); - PositionInFlatTree block_end_position; - for (const LayoutBlock* block = - &TextOffsetMapping::ComputeContainigBlock(position); - block; block = TextOffsetMapping::NextBlockFor(*block)) { - const TextOffsetMapping mapping(*block); + PositionInFlatTree last_position = position; + for (const auto& inline_contents : + TextOffsetMapping::ForwardRangeOf(position)) { + const TextOffsetMapping mapping(inline_contents); const String text = mapping.GetText(); const int offset = - block_end_position.IsNull() ? mapping.ComputeTextOffset(position) : 0; + last_position == position ? mapping.ComputeTextOffset(position) : 0; const int word_end = FindNextWordForward(text.Characters16(), text.length(), offset); if (offset < word_end) return mapping.GetPositionAfter(word_end); - block_end_position = mapping.GetRange().EndPosition(); + last_position = mapping.GetRange().EndPosition(); } - // TODO(yosin): Once we have a case, we should remove following |DCHECK()|. - DCHECK(block_end_position.IsNotNull()) << block_end_position; - return block_end_position; + return last_position; } unsigned PreviousWordPositionBoundary(
diff --git a/third_party/blink/renderer/core/frame/local_frame_view.cc b/third_party/blink/renderer/core/frame/local_frame_view.cc index 025d199c..66b7e9b 100644 --- a/third_party/blink/renderer/core/frame/local_frame_view.cc +++ b/third_party/blink/renderer/core/frame/local_frame_view.cc
@@ -2767,7 +2767,7 @@ else contents_size = ContentsSize(); - IntSize visible_content_size = VisibleContentSize(); + IntSize visible_content_size = VisibleContentRect().Size(); if (contents_size.Height() <= visible_content_size.Height() && contents_size.Width() <= visible_content_size.Width()) return kNotScrollableNoOverflow; @@ -4459,7 +4459,7 @@ // If no scrollbars are present, the content may still be scrollable. if (!scrollbar) { - IntSize scroll_size = ContentsSize() - VisibleContentSize(); + IntSize scroll_size = ContentsSize() - VisibleContentRect().Size(); scroll_size.ClampNegativeToZero(); return orientation == kHorizontalScrollbar ? scroll_size.Width() : scroll_size.Height(); @@ -4585,7 +4585,7 @@ if (HasOverlayScrollbars()) return; - IntSize full_visible_size = VisibleContentSize(kIncludeScrollbars); + IntSize full_visible_size = VisibleContentRect(kIncludeScrollbars).Size(); bool attempt_to_remove_scrollbars = (option == kFirstPass && doc_size.Width() <= full_visible_size.Width() &&
diff --git a/third_party/blink/renderer/core/frame/pausable_script_executor.cc b/third_party/blink/renderer/core/frame/pausable_script_executor.cc index eab3626..dfddfa9 100644 --- a/third_party/blink/renderer/core/frame/pausable_script_executor.cc +++ b/third_party/blink/renderer/core/frame/pausable_script_executor.cc
@@ -162,8 +162,15 @@ void PausableScriptExecutor::ContextDestroyed( ExecutionContext* destroyed_context) { PausableTimer::ContextDestroyed(destroyed_context); - if (callback_) + + if (callback_) { + // Though the context is (about to be) destroyed, the callback is invoked + // with a vector of v8::Local<>s, which implies that creating v8::Locals + // is permitted. Ensure a valid scope is present for the callback. + // See https://crbug.com/840719. + ScriptState::Scope script_scope(script_state_.get()); callback_->Completed(Vector<v8::Local<v8::Value>>()); + } Dispose(); }
diff --git a/third_party/blink/renderer/core/html/canvas/html_canvas_element.cc b/third_party/blink/renderer/core/html/canvas/html_canvas_element.cc index 5da11c8..8b0f657 100644 --- a/third_party/blink/renderer/core/html/canvas/html_canvas_element.cc +++ b/third_party/blink/renderer/core/html/canvas/html_canvas_element.cc
@@ -320,8 +320,7 @@ frame_dispatcher_ = std::make_unique<OffscreenCanvasFrameDispatcher>( nullptr, surface_layer_bridge_->GetFrameSinkId().client_id(), surface_layer_bridge_->GetFrameSinkId().sink_id(), - OffscreenCanvasFrameDispatcher::kInvalidPlaceholderCanvasId, - size_.Width(), size_.Height()); + OffscreenCanvasFrameDispatcher::kInvalidPlaceholderCanvasId, size_); } SetNeedsCompositingUpdate(); @@ -764,7 +763,7 @@ context_->DidSetSurfaceSize(); } if (frame_dispatcher_) - frame_dispatcher_->Reshape(size_.Width(), size_.Height()); + frame_dispatcher_->Reshape(size_); } const AtomicString HTMLCanvasElement::ImageSourceURL() const {
diff --git a/third_party/blink/renderer/core/html/media/html_media_element.cc b/third_party/blink/renderer/core/html/media/html_media_element.cc index d8ee5ccf..10de9c2 100644 --- a/third_party/blink/renderer/core/html/media/html_media_element.cc +++ b/third_party/blink/renderer/core/html/media/html_media_element.cc
@@ -1532,14 +1532,17 @@ GetLayoutObject()->UpdateFromElement(); } -void HTMLMediaElement::NoneSupported(const String& message) { - BLINK_MEDIA_LOG << "NoneSupported(" << (void*)this << ", message='" << message - << "')"; +void HTMLMediaElement::NoneSupported(const String& input_message) { + BLINK_MEDIA_LOG << "NoneSupported(" << (void*)this << ", message='" + << input_message << "')"; StopPeriodicTimers(); load_state_ = kWaitingForSource; current_source_node_ = nullptr; + String empty_string; + const String& message = MediaShouldBeOpaque() ? empty_string : input_message; + // 4.8.12.5 // The dedicated media source failure steps are the following steps: @@ -1615,11 +1618,17 @@ } void HTMLMediaElement::MediaLoadingFailed(WebMediaPlayer::NetworkState error, - const String& message) { + const String& input_message) { BLINK_MEDIA_LOG << "MediaLoadingFailed(" << (void*)this << ", " - << static_cast<int>(error) << ", message='" << message + << static_cast<int>(error) << ", message='" << input_message << "')"; + bool should_be_opaque = MediaShouldBeOpaque(); + if (should_be_opaque) + error = WebMediaPlayer::kNetworkStateNetworkError; + String empty_string; + const String& message = should_be_opaque ? empty_string : input_message; + StopPeriodicTimers(); // If we failed while trying to load a <source> element, the movie was never @@ -1722,12 +1731,14 @@ void HTMLMediaElement::ChangeNetworkStateFromLoadingToIdle() { progress_event_timer_.Stop(); - // Schedule one last progress event so we guarantee that at least one is fired - // for files that load very quickly. - if (GetWebMediaPlayer() && GetWebMediaPlayer()->DidLoadingProgress()) - ScheduleEvent(EventTypeNames::progress); - ScheduleEvent(EventTypeNames::suspend); - SetNetworkState(kNetworkIdle); + if (!MediaShouldBeOpaque()) { + // Schedule one last progress event so we guarantee that at least one is + // fired for files that load very quickly. + if (GetWebMediaPlayer() && GetWebMediaPlayer()->DidLoadingProgress()) + ScheduleEvent(EventTypeNames::progress); + ScheduleEvent(EventTypeNames::suspend); + SetNetworkState(kNetworkIdle); + } } void HTMLMediaElement::ReadyStateChanged() { @@ -1895,6 +1906,13 @@ if (network_state_ != kNetworkLoading) return; + // If this is an cross-origin request, and we haven't discovered whether + // the media is actually playable yet, don't fire any progress events as + // those may let the page know information about the resource that it's + // not supposed to know. + if (MediaShouldBeOpaque()) + return; + double time = WTF::CurrentTime(); double timedelta = time - previous_progress_time_; @@ -4239,6 +4257,11 @@ return autoplay_policy_->WasAutoplayInitiated(); } +bool HTMLMediaElement::MediaShouldBeOpaque() const { + return !IsMediaDataCORSSameOrigin(GetDocument().GetSecurityOrigin()) && + ready_state_ < kHaveMetadata && !FastGetAttribute(srcAttr).IsEmpty(); +} + void HTMLMediaElement::CheckViewportIntersectionTimerFired(TimerBase*) { bool should_report_root_bounds = true; IntersectionGeometry geometry(nullptr, *this, Vector<Length>(),
diff --git a/third_party/blink/renderer/core/html/media/html_media_element.h b/third_party/blink/renderer/core/html/media/html_media_element.h index f87d77f..ac00345 100644 --- a/third_party/blink/renderer/core/html/media/html_media_element.h +++ b/third_party/blink/renderer/core/html/media/html_media_element.h
@@ -263,8 +263,8 @@ using HTMLElement::GetExecutionContext; bool HasSingleSecurityOrigin() const { - return GetWebMediaPlayer() && - GetWebMediaPlayer()->HasSingleSecurityOrigin(); + return GetWebMediaPlayer() ? GetWebMediaPlayer()->HasSingleSecurityOrigin() + : true; } bool IsFullscreen() const; @@ -347,6 +347,11 @@ InsertionNotificationRequest InsertedInto(ContainerNode*) override; void RemovedFrom(ContainerNode*) override; + // Return true if media is cross origin from the current document + // and has not passed a cors check, meaning that we should return + // as little information as possible about it. + bool MediaShouldBeOpaque() const; + void DidMoveToNewDocument(Document& old_document) override; virtual KURL PosterImageURL() const { return KURL(); }
diff --git a/third_party/blink/renderer/core/layout/layout_block_flow.cc b/third_party/blink/renderer/core/layout/layout_block_flow.cc index 5ec22ee..33c41d9 100644 --- a/third_party/blink/renderer/core/layout/layout_block_flow.cc +++ b/third_party/blink/renderer/core/layout/layout_block_flow.cc
@@ -2514,6 +2514,10 @@ return nullptr; } +const NGConstraintSpace* LayoutBlockFlow::CachedConstraintSpace() const { + return nullptr; +} + scoped_refptr<NGLayoutResult> LayoutBlockFlow::CachedLayoutResultForTesting() { return nullptr; }
diff --git a/third_party/blink/renderer/core/layout/layout_block_flow.h b/third_party/blink/renderer/core/layout/layout_block_flow.h index cd93a327..6b0832a 100644 --- a/third_party/blink/renderer/core/layout/layout_block_flow.h +++ b/third_party/blink/renderer/core/layout/layout_block_flow.h
@@ -458,6 +458,7 @@ virtual scoped_refptr<NGLayoutResult> CachedLayoutResult( const NGConstraintSpace&, NGBreakToken*) const; + virtual const NGConstraintSpace* CachedConstraintSpace() const; virtual scoped_refptr<NGLayoutResult> CachedLayoutResultForTesting(); virtual void SetCachedLayoutResult(const NGConstraintSpace&, NGBreakToken*,
diff --git a/third_party/blink/renderer/core/layout/layout_flexible_box.cc b/third_party/blink/renderer/core/layout/layout_flexible_box.cc index 5afeba3e..81d3b79 100644 --- a/third_party/blink/renderer/core/layout/layout_flexible_box.cc +++ b/third_party/blink/renderer/core/layout/layout_flexible_box.cc
@@ -36,6 +36,8 @@ #include "third_party/blink/renderer/core/layout/layout_state.h" #include "third_party/blink/renderer/core/layout/layout_view.h" #include "third_party/blink/renderer/core/layout/min_max_size.h" +#include "third_party/blink/renderer/core/layout/ng/layout_ng_mixin.h" +#include "third_party/blink/renderer/core/layout/ng/ng_constraint_space.h" #include "third_party/blink/renderer/core/layout/text_autosizer.h" #include "third_party/blink/renderer/core/paint/block_painter.h" #include "third_party/blink/renderer/core/paint/paint_layer.h" @@ -825,6 +827,30 @@ intrinsic_size_along_main_axis_.erase(&child); } +bool LayoutFlexibleBox::ShouldForceLayoutForNGChild( + const LayoutBlockFlow& child) const { + // If the last layout was done with a different override size, + // or different definite-ness, we need to force-relayout so + // that percentage sizes are resolved correctly. + const NGConstraintSpace* old_space = child.CachedConstraintSpace(); + if (!old_space) + return true; + if (old_space->IsFixedSizeInline() != child.HasOverrideLogicalWidth()) + return true; + if (old_space->IsFixedSizeBlock() != child.HasOverrideLogicalHeight()) + return true; + if (old_space->FixedSizeBlockIsDefinite() != + UseOverrideLogicalHeightForPerentageResolution(child)) + return true; + if (child.HasOverrideLogicalWidth() && + old_space->AvailableSize().inline_size != child.OverrideLogicalWidth()) + return true; + if (child.HasOverrideLogicalHeight() && + old_space->AvailableSize().block_size != child.OverrideLogicalHeight()) + return true; + return false; +} + DISABLE_CFI_PERF LayoutUnit LayoutFlexibleBox::ComputeInnerFlexBaseSizeForChild( LayoutBox& child, @@ -1464,12 +1490,10 @@ } // We may have already forced relayout for orthogonal flowing children in // computeInnerFlexBaseSizeForChild. - // TODO(crbug.com/839661): LayoutNG does not correctly set - // HasPercentHeightDescendants(), so we need to bypass this optimization - // for now. bool force_child_relayout = relayout_children && !relaid_out_children_.Contains(child); - if (RuntimeEnabledFeatures::LayoutNGEnabled() || + if ((child->IsLayoutNGMixin() && + ShouldForceLayoutForNGChild(ToLayoutBlockFlow(*child))) || (child->IsLayoutBlock() && ToLayoutBlock(*child).HasPercentHeightDescendants())) { // Have to force another relayout even though the child is sized
diff --git a/third_party/blink/renderer/core/layout/layout_flexible_box.h b/third_party/blink/renderer/core/layout/layout_flexible_box.h index 33b1aa9..def9538 100644 --- a/third_party/blink/renderer/core/layout/layout_flexible_box.h +++ b/third_party/blink/renderer/core/layout/layout_flexible_box.h
@@ -158,6 +158,7 @@ EOverflow MainAxisOverflowForChild(const LayoutBox& child) const; EOverflow CrossAxisOverflowForChild(const LayoutBox& child) const; void CacheChildMainSize(const LayoutBox& child); + bool ShouldForceLayoutForNGChild(const LayoutBlockFlow& child) const; void LayoutFlexItems(bool relayout_children, SubtreeLayoutScope&); LayoutUnit AutoMarginOffsetInMainAxis(const Vector<FlexItem>&,
diff --git a/third_party/blink/renderer/core/layout/ng/inline/ng_inline_node.cc b/third_party/blink/renderer/core/layout/ng/inline/ng_inline_node.cc index 51831f7..fe87e49f 100644 --- a/third_party/blink/renderer/core/layout/ng/inline/ng_inline_node.cc +++ b/third_party/blink/renderer/core/layout/ng/inline/ng_inline_node.cc
@@ -169,6 +169,29 @@ return item.Type() == NGInlineItem::kText && !item.TextShapeResult(); } +// Determine if reshape is needed for ::first-line style. +bool FirstLineNeedsReshape(const ComputedStyle& first_line_style, + const ComputedStyle& base_style) { + const Font& base_font = base_style.GetFont(); + const Font& first_line_font = first_line_style.GetFont(); + return &base_font != &first_line_font && base_font != first_line_font; +} + +// Make a string to the specified length, either by truncating if longer, or +// appending space characters if shorter. +void TruncateOrPadText(String* text, unsigned length) { + if (text->length() > length) { + *text = text->Substring(0, length); + } else if (text->length() < length) { + StringBuilder builder; + builder.ReserveCapacity(length); + builder.Append(*text); + while (builder.length() < length) + builder.Append(kSpaceCharacter); + *text = builder.ToString(); + } +} + } // namespace NGInlineNode::NGInlineNode(LayoutBlockFlow* block) @@ -494,10 +517,25 @@ return; auto first_line_items = std::make_unique<NGInlineItemsData>(); - // TODO(kojii): Support 'text-transform' to change the text_content. - // When the text changes, offsets in items are also changed. This might need - // to change this function a bit drastically. first_line_items->text_content = data->text_content; + bool needs_reshape = false; + if (first_line_style->TextTransform() != block_style->TextTransform()) { + // TODO(kojii): This logic assumes that text-transform is applied only to + // ::first-line, and does not work when the base style has text-transform + // and ::first-line has different text-transform. + first_line_style->ApplyTextTransform(&first_line_items->text_content); + if (first_line_items->text_content != data->text_content) { + // TODO(kojii): When text-transform changes the length, we need to adjust + // offset in NGInlineItem, or re-collect inlines. Other classes such as + // line breaker need to support the scenario too. For now, we force the + // string to be the same length to prevent them from crashing. This may + // result in a missing or a duplicate character if the length changes. + TruncateOrPadText(&first_line_items->text_content, + data->text_content.length()); + needs_reshape = true; + } + } + first_line_items->items.AppendVector(data->items); for (auto& item : first_line_items->items) { if (item.style_) { @@ -508,9 +546,7 @@ } // Re-shape if the font is different. - const Font& font = block_style->GetFont(); - const Font& first_line_font = first_line_style->GetFont(); - if (&font != &first_line_font && font != first_line_font) + if (needs_reshape || FirstLineNeedsReshape(*first_line_style, *block_style)) ShapeText(first_line_items.get()); data->first_line_items_ = std::move(first_line_items);
diff --git a/third_party/blink/renderer/core/layout/ng/layout_ng_mixin.cc b/third_party/blink/renderer/core/layout/ng/layout_ng_mixin.cc index 919a01fc..a409242 100644 --- a/third_party/blink/renderer/core/layout/ng/layout_ng_mixin.cc +++ b/third_party/blink/renderer/core/layout/ng/layout_ng_mixin.cc
@@ -168,6 +168,11 @@ } template <typename Base> +const NGConstraintSpace* LayoutNGMixin<Base>::CachedConstraintSpace() const { + return cached_constraint_space_.get(); +} + +template <typename Base> void LayoutNGMixin<Base>::SetCachedLayoutResult( const NGConstraintSpace& constraint_space, NGBreakToken* break_token,
diff --git a/third_party/blink/renderer/core/layout/ng/layout_ng_mixin.h b/third_party/blink/renderer/core/layout/ng/layout_ng_mixin.h index 131c228..79ff61c 100644 --- a/third_party/blink/renderer/core/layout/ng/layout_ng_mixin.h +++ b/third_party/blink/renderer/core/layout/ng/layout_ng_mixin.h
@@ -58,6 +58,7 @@ scoped_refptr<NGLayoutResult> CachedLayoutResult( const NGConstraintSpace&, NGBreakToken*) const override; + const NGConstraintSpace* CachedConstraintSpace() const override; void SetCachedLayoutResult(const NGConstraintSpace&, NGBreakToken*,
diff --git a/third_party/blink/renderer/core/offscreencanvas/offscreen_canvas.cc b/third_party/blink/renderer/core/offscreencanvas/offscreen_canvas.cc index fd7a467..80231927 100644 --- a/third_party/blink/renderer/core/offscreencanvas/offscreen_canvas.cc +++ b/third_party/blink/renderer/core/offscreencanvas/offscreen_canvas.cc
@@ -76,7 +76,7 @@ } size_ = size; if (frame_dispatcher_) { - frame_dispatcher_->Reshape(size_.Width(), size_.Height()); + frame_dispatcher_->Reshape(size_); } current_frame_damage_rect_ = SkIRect::MakeWH(size_.Width(), size_.Height()); } @@ -222,8 +222,7 @@ // (either main or worker) to the browser process and remains unchanged // throughout the lifetime of this OffscreenCanvas. frame_dispatcher_ = std::make_unique<OffscreenCanvasFrameDispatcher>( - this, client_id_, sink_id_, placeholder_canvas_id_, size_.Width(), - size_.Height()); + this, client_id_, sink_id_, placeholder_canvas_id_, size_); } return frame_dispatcher_.get(); }
diff --git a/third_party/blink/renderer/core/paint/compositing/composited_layer_mapping.cc b/third_party/blink/renderer/core/paint/compositing/composited_layer_mapping.cc index 7bd3cd32..724d23f 100644 --- a/third_party/blink/renderer/core/paint/compositing/composited_layer_mapping.cc +++ b/third_party/blink/renderer/core/paint/compositing/composited_layer_mapping.cc
@@ -1777,7 +1777,7 @@ FloatSize background_size = relative_compositing_bounds_size; if (BackgroundLayerPaintsFixedRootBackground()) { LocalFrameView* frame_view = ToLayoutView(GetLayoutObject()).GetFrameView(); - background_size = FloatSize(frame_view->VisibleContentSize()); + background_size = FloatSize(frame_view->VisibleContentRect().Size()); } background_layer_->SetPosition(FloatPoint()); if (background_size != background_layer_->Size()) { @@ -3380,7 +3380,7 @@ // MapToVisualRectInAncestorSpace is exclusive of the scroll and clip on the // ancestor, so we map to nullptr instead of |root_view| to include these. anchor_layout_object->MapToVisualRectInAncestorSpace( - nullptr, graphics_layer_bounds_in_root_view_space); + nullptr, graphics_layer_bounds_in_root_view_space, kUseGeometryMapper); // MapToVisualRectInAncestorSpace will not clip if the anchor is the root // view, because the rect is assumed to already be in the clipped space of
diff --git a/third_party/blink/renderer/core/paint/compositing/compositing_reason_finder.cc b/third_party/blink/renderer/core/paint/compositing/compositing_reason_finder.cc index bc01240..b4b2944 100644 --- a/third_party/blink/renderer/core/paint/compositing/compositing_reason_finder.cc +++ b/third_party/blink/renderer/core/paint/compositing/compositing_reason_finder.cc
@@ -4,6 +4,7 @@ #include "third_party/blink/renderer/core/paint/compositing/compositing_reason_finder.h" +#include "third_party/blink/renderer/core/animation/scroll_timeline.h" #include "third_party/blink/renderer/core/css_property_names.h" #include "third_party/blink/renderer/core/dom/document.h" #include "third_party/blink/renderer/core/frame/local_frame_view.h" @@ -177,6 +178,14 @@ if (RequiresCompositingForScrollDependentPosition(layer, ignore_lcd_text)) direct_reasons |= CompositingReason::kScrollDependentPosition; + // TODO(crbug.com/839341): Remove once we support main-thread AnimationWorklet + // and don't need to promote the scroll-source. + if (layer->GetScrollableArea() && layer->GetLayoutObject().GetNode() && + ScrollTimeline::HasActiveScrollTimeline( + layer->GetLayoutObject().GetNode())) { + direct_reasons |= CompositingReason::kScrollTimelineTarget; + } + direct_reasons |= layout_object.AdditionalCompositingReasons(); DCHECK(
diff --git a/third_party/blink/renderer/core/paint/frame_painter.cc b/third_party/blink/renderer/core/paint/frame_painter.cc index 45c2de470..6bf0c566 100644 --- a/third_party/blink/renderer/core/paint/frame_painter.cc +++ b/third_party/blink/renderer/core/paint/frame_painter.cc
@@ -40,8 +40,8 @@ IntRect document_dirty_rect; IntPoint frame_view_location(GetFrameView().Location()); - IntRect visible_area_without_scrollbars(frame_view_location, - GetFrameView().VisibleContentSize()); + IntRect visible_area_without_scrollbars( + frame_view_location, GetFrameView().VisibleContentRect().Size()); IntPoint content_offset = -frame_view_location + GetFrameView().ScrollOffsetInt(); if (RuntimeEnabledFeatures::SlimmingPaintV2Enabled() && @@ -95,7 +95,7 @@ IntRect scroll_view_dirty_rect = rect.rect_; IntRect visible_area_with_scrollbars( frame_view_location, - GetFrameView().VisibleContentSize(kIncludeScrollbars)); + GetFrameView().VisibleContentRect(kIncludeScrollbars).Size()); scroll_view_dirty_rect.Intersect(visible_area_with_scrollbars); scroll_view_dirty_rect.MoveBy(-frame_view_location);
diff --git a/third_party/blink/renderer/core/paint/svg_inline_text_box_painter.cc b/third_party/blink/renderer/core/paint/svg_inline_text_box_painter.cc index 0b7b201..0eddd8e 100644 --- a/third_party/blink/renderer/core/paint/svg_inline_text_box_painter.cc +++ b/third_party/blink/renderer/core/paint/svg_inline_text_box_painter.cc
@@ -5,6 +5,7 @@ #include "third_party/blink/renderer/core/paint/svg_inline_text_box_painter.h" #include <memory> +#include "base/optional.h" #include "third_party/blink/renderer/core/editing/editor.h" #include "third_party/blink/renderer/core/editing/markers/document_marker_controller.h" #include "third_party/blink/renderer/core/editing/markers/text_match_marker.h" @@ -150,9 +151,13 @@ for (const SVGTextFragment& fragment : svg_inline_text_box_.TextFragments()) { GraphicsContextStateSaver state_saver(paint_info.context, false); + base::Optional<AffineTransform> shader_transform; if (fragment.IsTransformed()) { state_saver.Save(); - paint_info.context.ConcatCTM(fragment.BuildFragmentTransform()); + const auto fragment_transform = fragment.BuildFragmentTransform(); + paint_info.context.ConcatCTM(fragment_transform); + DCHECK(fragment_transform.IsInvertible()); + shader_transform = fragment_transform.Inverse(); } // Spec: All text decorations except line-through should be drawn before the @@ -170,14 +175,18 @@ for (int i = 0; i < 3; i++) { switch (svg_style.PaintOrderType(i)) { case PT_FILL: - if (has_fill) + if (has_fill) { PaintText(paint_info, style, *selection_style, fragment, - kApplyToFillMode, should_paint_selection); + kApplyToFillMode, should_paint_selection, + base::OptionalOrNullptr(shader_transform)); + } break; case PT_STROKE: - if (has_visible_stroke) + if (has_visible_stroke) { PaintText(paint_info, style, *selection_style, fragment, - kApplyToStrokeMode, should_paint_selection); + kApplyToStrokeMode, should_paint_selection, + base::OptionalOrNullptr(shader_transform)); + } break; case PT_MARKERS: // Markers don't apply to text @@ -384,24 +393,28 @@ const PaintInfo& paint_info, const ComputedStyle& style, LayoutSVGResourceMode resource_mode, - PaintFlags& flags) { + PaintFlags& flags, + const AffineTransform* shader_transform) { LayoutSVGInlineText& text_layout_object = InlineText(); float scaling_factor = text_layout_object.ScalingFactor(); DCHECK(scaling_factor); - AffineTransform paint_server_transform; - const AffineTransform* additional_paint_server_transform = nullptr; + base::Optional<AffineTransform> paint_server_transform; - if (scaling_factor != 1) { + if (scaling_factor != 1 || shader_transform) { + paint_server_transform.emplace(); + // Adjust the paint-server coordinate space. - paint_server_transform.Scale(scaling_factor); - additional_paint_server_transform = &paint_server_transform; + paint_server_transform->Scale(scaling_factor); + + if (shader_transform) + paint_server_transform->Multiply(*shader_transform); } if (!SVGPaintContext::PaintForLayoutObject( paint_info, style, ParentInlineLayoutObject(), resource_mode, flags, - additional_paint_server_transform)) + base::OptionalOrNullptr(paint_server_transform))) return false; flags.setAntiAlias(true); @@ -470,12 +483,14 @@ context.GetPaintController().SetTextPainted(); } -void SVGInlineTextBoxPainter::PaintText(const PaintInfo& paint_info, - const ComputedStyle& style, - const ComputedStyle& selection_style, - const SVGTextFragment& fragment, - LayoutSVGResourceMode resource_mode, - bool should_paint_selection) { +void SVGInlineTextBoxPainter::PaintText( + const PaintInfo& paint_info, + const ComputedStyle& style, + const ComputedStyle& selection_style, + const SVGTextFragment& fragment, + LayoutSVGResourceMode resource_mode, + bool should_paint_selection, + const AffineTransform* shader_transform) { int start_position = 0; int end_position = 0; if (should_paint_selection) { @@ -490,7 +505,8 @@ TextRun text_run = svg_inline_text_box_.ConstructTextRun(style, fragment); if (!should_paint_selection || start_position >= end_position) { PaintFlags flags; - if (SetupTextPaint(paint_info, style, resource_mode, flags)) + if (SetupTextPaint(paint_info, style, resource_mode, flags, + shader_transform)) PaintText(paint_info, text_run, fragment, 0, fragment.length, flags); return; } @@ -500,7 +516,8 @@ bool paint_selected_text_only = paint_info.phase == PaintPhase::kSelection; if (start_position > 0 && !paint_selected_text_only) { PaintFlags flags; - if (SetupTextPaint(paint_info, style, resource_mode, flags)) + if (SetupTextPaint(paint_info, style, resource_mode, flags, + shader_transform)) PaintText(paint_info, text_run, fragment, 0, start_position, flags); } @@ -511,7 +528,8 @@ style, selection_style); PaintFlags flags; - if (SetupTextPaint(paint_info, selection_style, resource_mode, flags)) { + if (SetupTextPaint(paint_info, selection_style, resource_mode, flags, + shader_transform)) { PaintText(paint_info, text_run, fragment, start_position, end_position, flags); } @@ -522,7 +540,8 @@ if (end_position < static_cast<int>(fragment.length) && !paint_selected_text_only) { PaintFlags flags; - if (SetupTextPaint(paint_info, style, resource_mode, flags)) { + if (SetupTextPaint(paint_info, style, resource_mode, flags, + shader_transform)) { PaintText(paint_info, text_run, fragment, end_position, fragment.length, flags); } @@ -594,7 +613,8 @@ PaintFlags stroke_flags; bool should_paint_stroke = false; - if (SetupTextPaint(paint_info, style, kApplyToStrokeMode, stroke_flags)) { + if (SetupTextPaint(paint_info, style, kApplyToStrokeMode, stroke_flags, + nullptr)) { should_paint_stroke = true; stroke_flags.setLooper(nullptr); stroke_flags.setColor(text_color.Rgb());
diff --git a/third_party/blink/renderer/core/paint/svg_inline_text_box_painter.h b/third_party/blink/renderer/core/paint/svg_inline_text_box_painter.h index b289c76..bca6b00 100644 --- a/third_party/blink/renderer/core/paint/svg_inline_text_box_painter.h +++ b/third_party/blink/renderer/core/paint/svg_inline_text_box_painter.h
@@ -11,6 +11,7 @@ namespace blink { +class AffineTransform; class DocumentMarker; class Font; struct PaintInfo; @@ -62,7 +63,8 @@ bool SetupTextPaint(const PaintInfo&, const ComputedStyle&, LayoutSVGResourceMode, - PaintFlags&); + PaintFlags&, + const AffineTransform*); void PaintText(const PaintInfo&, TextRun&, const SVGTextFragment&, @@ -74,7 +76,8 @@ const ComputedStyle& selection_style, const SVGTextFragment&, LayoutSVGResourceMode, - bool should_paint_selection); + bool should_paint_selection, + const AffineTransform*); Vector<SVGTextFragmentWithRange> CollectTextMatches( const DocumentMarker&) const; Vector<SVGTextFragmentWithRange> CollectFragmentsInRange(
diff --git a/third_party/blink/renderer/devtools/front_end/sdk/NetworkRequest.js b/third_party/blink/renderer/devtools/front_end/sdk/NetworkRequest.js index 0f07391c..4c1a68f6 100644 --- a/third_party/blink/renderer/devtools/front_end/sdk/NetworkRequest.js +++ b/third_party/blink/renderer/devtools/front_end/sdk/NetworkRequest.js
@@ -972,8 +972,14 @@ * @param {boolean} isRegex * @return {!Promise<!Array<!Common.ContentProvider.SearchMatch>>} */ - searchInContent(query, caseSensitive, isRegex) { - return SDK.NetworkManager.searchInRequest(this, query, caseSensitive, isRegex); + async searchInContent(query, caseSensitive, isRegex) { + if (!this._contentDataProvider) + return SDK.NetworkManager.searchInRequest(this, query, caseSensitive, isRegex); + + const content = await this.requestContent(); + if (!content) + return []; + return Common.ContentProvider.performSearchInContent(content, query, caseSensitive, isRegex); } /**
diff --git a/third_party/blink/renderer/modules/animationworklet/worklet_animation.cc b/third_party/blink/renderer/modules/animationworklet/worklet_animation.cc index 28e2bee..3a81289 100644 --- a/third_party/blink/renderer/modules/animationworklet/worklet_animation.cc +++ b/third_party/blink/renderer/modules/animationworklet/worklet_animation.cc
@@ -231,6 +231,9 @@ AnimationEffect* target_effect = effects_.at(0); target_effect->Attach(this); + + if (timeline_.IsScrollTimeline()) + timeline.GetAsScrollTimeline()->AttachAnimation(); } String WorkletAnimation::playState() { @@ -431,6 +434,8 @@ void WorkletAnimation::Dispose() { DCHECK(IsMainThread()); + if (timeline_.IsScrollTimeline()) + timeline_.GetAsScrollTimeline()->DetachAnimation(); DestroyCompositorAnimation(); }
diff --git a/third_party/blink/renderer/modules/media_controls/BUILD.gn b/third_party/blink/renderer/modules/media_controls/BUILD.gn index 0410fbd..af9a8b5ff 100644 --- a/third_party/blink/renderer/modules/media_controls/BUILD.gn +++ b/third_party/blink/renderer/modules/media_controls/BUILD.gn
@@ -83,6 +83,7 @@ ] deps = [ + ":media_controls_resources", "//services/service_manager/public/cpp", "//third_party/blink/public:media_controls_resources_header", ]
diff --git a/third_party/blink/renderer/modules/media_controls/media_controls_resource_loader.cc b/third_party/blink/renderer/modules/media_controls/media_controls_resource_loader.cc index 6ea52688..7eef1d4 100644 --- a/third_party/blink/renderer/modules/media_controls/media_controls_resource_loader.cc +++ b/third_party/blink/renderer/modules/media_controls/media_controls_resource_loader.cc
@@ -30,16 +30,6 @@ MediaControlsResourceLoader::~MediaControlsResourceLoader() = default; -// Official Android builds that have enable_resource_whitelist_generation -// turned on will fail to compile due to an unknown-pragmas warning. In -// Chromium this is expected, but in Blink the compiler treats warnings as -// errors and so will fail to compile. -#if defined(OS_WIN) -#pragma warning(disable : 4068) -#else -#pragma GCC diagnostic push -#pragma GCC diagnostic warning "-Wunknown-pragmas" -#endif String MediaControlsResourceLoader::GetMediaControlsCSS() const { return ResourceBundleHelper::UncompressResourceAsString( RuntimeEnabledFeatures::ModernMediaControlsEnabled() @@ -102,13 +92,6 @@ IDR_UASTYLE_MEDIA_INTERSTITIALS_CSS); }; -// Re-enable the warnings. -#if defined(OS_WIN) -#pragma warning(default : 4068) -#else -#pragma GCC diagnostic pop -#endif - String MediaControlsResourceLoader::GetUAStyleSheet() { if (ShouldLoadAndroidCSS()) { return GetMediaControlsCSS() + GetMediaControlsAndroidCSS() +
diff --git a/third_party/blink/renderer/platform/graphics/compositing_reasons.h b/third_party/blink/renderer/platform/graphics/compositing_reasons.h index d5f9b73..4e8166c7 100644 --- a/third_party/blink/renderer/platform/graphics/compositing_reasons.h +++ b/third_party/blink/renderer/platform/graphics/compositing_reasons.h
@@ -35,6 +35,7 @@ V(WillChangeCompositingHint) \ V(BackdropFilter) \ V(RootScroller) \ + V(ScrollTimelineTarget) \ \ /* Overlap reasons that require knowing what's behind you in paint-order \ before knowing the answer. */ \
diff --git a/third_party/blink/renderer/platform/graphics/offscreen_canvas_frame_dispatcher.cc b/third_party/blink/renderer/platform/graphics/offscreen_canvas_frame_dispatcher.cc index da7ea63..11324c1 100644 --- a/third_party/blink/renderer/platform/graphics/offscreen_canvas_frame_dispatcher.cc +++ b/third_party/blink/renderer/platform/graphics/offscreen_canvas_frame_dispatcher.cc
@@ -32,11 +32,9 @@ uint32_t client_id, uint32_t sink_id, int canvas_id, - int width, - int height) + const IntSize& size) : frame_sink_id_(viz::FrameSinkId(client_id, sink_id)), - width_(width), - height_(height), + size_(size), change_size_for_next_commit_(false), needs_begin_frame_(false), binding_(this), @@ -62,8 +60,8 @@ mojo::MakeRequest(&sink_)); } offscreen_canvas_resource_provider_ = - std::make_unique<OffscreenCanvasResourceProvider>(width, height, - sink_.get()); + std::make_unique<OffscreenCanvasResourceProvider>( + size_.Width(), size_.Height(), sink_.get()); } OffscreenCanvasFrameDispatcher::~OffscreenCanvasFrameDispatcher() = default; @@ -158,7 +156,7 @@ } frame.metadata.begin_frame_ack = current_begin_frame_ack_; - const gfx::Rect bounds(width_, height_); + const gfx::Rect bounds(size_.Width(), size_.Height()); const int kRenderPassId = 1; bool is_clipped = false; // TODO(crbug.com/705019): optimize for contexts that have {alpha: false} @@ -228,7 +226,7 @@ viz::TextureDrawQuad* quad = pass->CreateAndAppendDrawQuad<viz::TextureDrawQuad>(); - gfx::Size rect_size(width_, height_); + gfx::Size rect_size(size_.Width(), size_.Height()); // TODO(crbug.com/705019): optimize for contexts that have {alpha: false} const bool kNeedsBlending = true; @@ -432,16 +430,15 @@ } bool OffscreenCanvasFrameDispatcher::VerifyImageSize(const IntSize image_size) { - if (image_size.Width() == width_ && image_size.Height() == height_) + if (image_size == size_) return true; return false; } -void OffscreenCanvasFrameDispatcher::Reshape(int width, int height) { - if (width_ != width || height_ != height) { - width_ = width; - height_ = height; - offscreen_canvas_resource_provider_->Reshape(width, height); +void OffscreenCanvasFrameDispatcher::Reshape(const IntSize& size) { + if (size_ != size) { + size_ = size; + offscreen_canvas_resource_provider_->Reshape(size_.Width(), size_.Height()); change_size_for_next_commit_ = true; } }
diff --git a/third_party/blink/renderer/platform/graphics/offscreen_canvas_frame_dispatcher.h b/third_party/blink/renderer/platform/graphics/offscreen_canvas_frame_dispatcher.h index e244336..3ad0540 100644 --- a/third_party/blink/renderer/platform/graphics/offscreen_canvas_frame_dispatcher.h +++ b/third_party/blink/renderer/platform/graphics/offscreen_canvas_frame_dispatcher.h
@@ -37,8 +37,7 @@ uint32_t client_id, uint32_t sink_id, int placeholder_canvas_id, - int width, - int height); + const IntSize&); // OffscreenCanvasFrameDispatcher implementation. ~OffscreenCanvasFrameDispatcher() override; @@ -50,7 +49,7 @@ double commit_start_time, const SkIRect& damage_rect); void ReclaimResource(unsigned resource_id); - void Reshape(int width, int height); + void Reshape(const IntSize&); // viz::mojom::blink::CompositorFrameSinkClient implementation. void DidReceiveCompositorFrameAck( @@ -81,8 +80,7 @@ viz::ParentLocalSurfaceIdAllocator parent_local_surface_id_allocator_; const viz::FrameSinkId frame_sink_id_; - int width_; - int height_; + IntSize size_; bool change_size_for_next_commit_; bool suspend_animation_ = false; bool needs_begin_frame_ = false;
diff --git a/third_party/blink/renderer/platform/graphics/offscreen_canvas_frame_dispatcher_test.cc b/third_party/blink/renderer/platform/graphics/offscreen_canvas_frame_dispatcher_test.cc index 3b95b02..5950bf8 100644 --- a/third_party/blink/renderer/platform/graphics/offscreen_canvas_frame_dispatcher_test.cc +++ b/third_party/blink/renderer/platform/graphics/offscreen_canvas_frame_dispatcher_test.cc
@@ -19,7 +19,7 @@ : public OffscreenCanvasFrameDispatcher { public: MockOffscreenCanvasFrameDispatcher() - : OffscreenCanvasFrameDispatcher(nullptr, 0, 0, 0, 10, 10) {} + : OffscreenCanvasFrameDispatcher(nullptr, 0, 0, 0, {10, 10}) {} MOCK_METHOD2(PostImageToPlaceholder, void(scoped_refptr<StaticBitmapImage>, unsigned resource_id));
diff --git a/third_party/blink/tools/blinkpy/common/checkout/git.py b/third_party/blink/tools/blinkpy/common/checkout/git.py index 3d11d87..3b2bb7a 100644 --- a/third_party/blink/tools/blinkpy/common/checkout/git.py +++ b/third_party/blink/tools/blinkpy/common/checkout/git.py
@@ -256,7 +256,7 @@ '--no-color', '--no-ext-diff', '--full-index', - '--no-renames', + '-M', '--src-prefix=a/', '--dst-prefix=b/', ]
diff --git a/third_party/blink/tools/blinkpy/common/checkout/git_unittest.py b/third_party/blink/tools/blinkpy/common/checkout/git_unittest.py index 98a9c8a0..4112d3b0 100644 --- a/third_party/blink/tools/blinkpy/common/checkout/git_unittest.py +++ b/third_party/blink/tools/blinkpy/common/checkout/git_unittest.py
@@ -164,6 +164,9 @@ git.move('foo_file', 'bar_file') git.commit_locally_with_message('message') + patch = git.create_patch(changed_files=git.changed_files()) + self.assertTrue('rename from' in patch) + def test_commit_position_from_git_log(self): # This tests a protected method. pylint: disable=protected-access git_log = """
diff --git a/third_party/closure_compiler/externs/developer_private.js b/third_party/closure_compiler/externs/developer_private.js index ea674b4..3de78042 100644 --- a/third_party/closure_compiler/externs/developer_private.js +++ b/third_party/closure_compiler/externs/developer_private.js
@@ -476,6 +476,8 @@ ERRORS_REMOVED: 'ERRORS_REMOVED', PREFS_CHANGED: 'PREFS_CHANGED', WARNINGS_CHANGED: 'WARNINGS_CHANGED', + COMMAND_ADDED: 'COMMAND_ADDED', + COMMAND_REMOVED: 'COMMAND_REMOVED', }; /**
diff --git a/tools/check_grd_for_unused_strings.py b/tools/check_grd_for_unused_strings.py index d997db6..2defb2f 100755 --- a/tools/check_grd_for_unused_strings.py +++ b/tools/check_grd_for_unused_strings.py
@@ -137,7 +137,6 @@ ui_chromeos_dir = os.path.join(ui_dir, 'chromeos') grd_files = [ os.path.join(ash_base_dir, 'ash_strings.grd'), - os.path.join(ash_base_dir, 'resources', 'ash_resources.grd'), os.path.join(ash_components_dir, 'ash_components_strings.grd'), os.path.join(ash_components_dir, 'resources', 'ash_components_resources.grd'),
diff --git a/tools/chrome_proxy/webdriver/lite_page.py b/tools/chrome_proxy/webdriver/lite_page.py index 4acad38..398cefc 100644 --- a/tools/chrome_proxy/webdriver/lite_page.py +++ b/tools/chrome_proxy/webdriver/lite_page.py
@@ -488,5 +488,34 @@ response.response_headers) continue + # Checks that the server provides a working interactive CASPR. + @ChromeVersionEqualOrAfterM(65) + def testInteractiveCASPR(self): + with TestDriver() as test_driver: + test_driver.AddChromeArg('--enable-spdy-proxy-auth') + test_driver.AddChromeArg('--enable-features=' + 'Previews,DataReductionProxyDecidesTransform') + # Need to force 2G speed to get a preview. + test_driver.AddChromeArg('--force-effective-connection-type=2G') + # Set exp=ihdp_integration to force iCASPR response. + test_driver.AddChromeArg( + '--data-reduction-proxy-experiment=ihdp_integration') + + test_driver.LoadURL('http://check.googlezip.net/previews/ihdp.html') + + # The original page does not have any script resources (scripts are + # inlined in the HTML). The snapshotted page should contain exactly one + # script: the snapshot. + num_scripts = 0 + for response in test_driver.GetHTTPResponses(): + if response.request_type == 'Script': + num_scripts += 1 + + self.assertEqual(1, num_scripts) + + # Make sure the snapshot is restored correctly. + window_x = test_driver.ExecuteJavascriptStatement('window.x') + self.assertEqual(10, window_x) + if __name__ == '__main__': IntegrationTest.RunAllTests()
diff --git a/tools/gn/ninja_action_target_writer_unittest.cc b/tools/gn/ninja_action_target_writer_unittest.cc index 1b2ddc8..445a31a 100644 --- a/tools/gn/ninja_action_target_writer_unittest.cc +++ b/tools/gn/ninja_action_target_writer_unittest.cc
@@ -409,3 +409,77 @@ "build obj/foo/bar.stamp: stamp input1.out\n"; EXPECT_EQ(expected_linux, out.str()); } + +TEST(NinjaActionTargetWriter, NoTransitiveHardDeps) { + Err err; + TestWithScope setup; + + setup.build_settings()->set_python_path( + base::FilePath(FILE_PATH_LITERAL("/usr/bin/python"))); + + Target dep(setup.settings(), Label(SourceDir("//foo/"), "dep")); + dep.set_output_type(Target::ACTION); + dep.visibility().SetPublic(); + dep.SetToolchain(setup.toolchain()); + ASSERT_TRUE(dep.OnResolved(&err)); + + Target foo(setup.settings(), Label(SourceDir("//foo/"), "foo")); + foo.set_output_type(Target::ACTION); + foo.visibility().SetPublic(); + foo.sources().push_back(SourceFile("//foo/input1.txt")); + foo.action_values().set_script(SourceFile("//foo/script.py")); + foo.private_deps().push_back(LabelTargetPair(&dep)); + foo.SetToolchain(setup.toolchain()); + foo.action_values().outputs() = + SubstitutionList::MakeForTest("//out/Debug/foo.out"); + ASSERT_TRUE(foo.OnResolved(&err)); + + { + std::ostringstream out; + NinjaActionTargetWriter writer(&foo, out); + writer.Run(); + + const char expected_linux[] = + "rule __foo_foo___rule\n" + // These come from the args. + " command = /usr/bin/python ../../foo/script.py\n" + " description = ACTION //foo:foo()\n" + " restat = 1\n" + "\n" + "build foo.out: __foo_foo___rule | ../../foo/script.py" + " ../../foo/input1.txt obj/foo/dep.stamp\n" + "\n" + "build obj/foo/foo.stamp: stamp foo.out\n"; + EXPECT_EQ(expected_linux, out.str()); + } + + Target bar(setup.settings(), Label(SourceDir("//bar/"), "bar")); + bar.set_output_type(Target::ACTION); + bar.sources().push_back(SourceFile("//bar/input1.txt")); + bar.action_values().set_script(SourceFile("//bar/script.py")); + bar.private_deps().push_back(LabelTargetPair(&foo)); + bar.SetToolchain(setup.toolchain()); + bar.action_values().outputs() = + SubstitutionList::MakeForTest("//out/Debug/bar.out"); + ASSERT_TRUE(bar.OnResolved(&err)) << err.message(); + + { + std::ostringstream out; + NinjaActionTargetWriter writer(&bar, out); + writer.Run(); + + const char expected_linux[] = + "rule __bar_bar___rule\n" + // These come from the args. + " command = /usr/bin/python ../../bar/script.py\n" + " description = ACTION //bar:bar()\n" + " restat = 1\n" + "\n" + // Do not have obj/foo/dep.stamp as dependency. + "build bar.out: __bar_bar___rule | ../../bar/script.py" + " ../../bar/input1.txt obj/foo/foo.stamp\n" + "\n" + "build obj/bar/bar.stamp: stamp bar.out\n"; + EXPECT_EQ(expected_linux, out.str()); + } +}
diff --git a/tools/gn/ninja_target_writer_unittest.cc b/tools/gn/ninja_target_writer_unittest.cc index 68a59c81..2bcbc8986 100644 --- a/tools/gn/ninja_target_writer_unittest.cc +++ b/tools/gn/ninja_target_writer_unittest.cc
@@ -5,6 +5,7 @@ #include <sstream> #include "testing/gtest/include/gtest/gtest.h" +#include "tools/gn/ninja_action_target_writer.h" #include "tools/gn/ninja_target_writer.h" #include "tools/gn/target.h" #include "tools/gn/test_with_scope.h" @@ -94,6 +95,23 @@ EXPECT_EQ("obj/foo/base.stamp", dep[0].value()); } + { + std::ostringstream stream; + NinjaActionTargetWriter writer(&action, stream); + writer.Run(); + EXPECT_EQ( + "rule __foo_action___rule\n" + " command = ../../foo/script.py\n" + " description = ACTION //foo:action()\n" + " restat = 1\n" + "\n" + "build: __foo_action___rule | ../../foo/script.py" + " ../../foo/action_source.txt ./target\n" + "\n" + "build obj/foo/action.stamp: stamp\n", + stream.str()); + } + // Input deps for action which should depend on the base since its a hard dep // that is a (indirect) dependency, as well as the the action source. { @@ -104,9 +122,10 @@ ASSERT_EQ(1u, dep.size()); EXPECT_EQ("obj/foo/action.inputdeps.stamp", dep[0].value()); - EXPECT_EQ("build obj/foo/action.inputdeps.stamp: stamp ../../foo/script.py " - "../../foo/action_source.txt obj/foo/base.stamp\n", - stream.str()); + EXPECT_EQ( + "build obj/foo/action.inputdeps.stamp: stamp ../../foo/script.py " + "../../foo/action_source.txt\n", + stream.str()); } }
diff --git a/tools/gn/target.cc b/tools/gn/target.cc index 15df27f5..e6013e43 100644 --- a/tools/gn/target.cc +++ b/tools/gn/target.cc
@@ -372,7 +372,13 @@ PullRecursiveBundleData(); PullDependentTargetLibs(); - PullRecursiveHardDeps(); + + if (!hard_dep()) { + // If this target is not hard_dep type, we need to pull hard dependency from + // dependent target, because it may not transitive for compiling tasks. + PullRecursiveHardDeps(); + } + if (!ResolvePrecompiledHeaders(err)) return false;
diff --git a/tools/gritsettings/resource_ids b/tools/gritsettings/resource_ids index 7e838ac9..fc16a42e 100644 --- a/tools/gritsettings/resource_ids +++ b/tools/gritsettings/resource_ids
@@ -293,9 +293,6 @@ "ash/public/cpp/resources/ash_public_unscaled_resources.grd": { "includes": [24260], }, - "ash/resources/ash_resources.grd": { - "structures": [24280], - }, "ash/shell/ash_shell_resources.grd": { "includes": [24290], },
diff --git a/tools/metrics/actions/actions.xml b/tools/metrics/actions/actions.xml index 7ffc1651..9d10cb5ad 100644 --- a/tools/metrics/actions/actions.xml +++ b/tools/metrics/actions/actions.xml
@@ -1503,9 +1503,8 @@ </action> <action name="Android.DownloadManager.CheckForExternallyRemovedItems"> - <owner>dfalcantara@chromium.org</owner> + <owner>dtrainor@chromium.org</owner> <owner>twellington@chromium.org</owner> - <owner>ianwen@chromium.org</owner> <description> A request was issued to check the file system for download items that were externally deleted e.g. through a third-party download manager. @@ -1513,9 +1512,8 @@ </action> <action name="Android.DownloadManager.Delete"> - <owner>dfalcantara@chromium.org</owner> + <owner>dtrainor@chromium.org</owner> <owner>twellington@chromium.org</owner> - <owner>ianwen@chromium.org</owner> <description> User deleted one or more download items. This is recorded when the snackbar allowing the user to "undo" deletion is dismissed and the @@ -1524,9 +1522,8 @@ </action> <action name="Android.DownloadManager.Item.ExternallyDeleted"> - <owner>dfalcantara@chromium.org</owner> + <owner>dtrainor@chromium.org</owner> <owner>twellington@chromium.org</owner> - <owner>ianwen@chromium.org</owner> <description> A download tracked by the Chrome download service was externally deleted e.g. through a third-party download manager. @@ -1538,7 +1535,14 @@ <description>User opened a download from download home.</description> </action> +<action name="Android.DownloadManager.Open"> + <owner>dtrainor@chromium.org</owner> + <owner>twellington@chromium.org</owner> + <description>User opened the downloads manager UI.</description> +</action> + <action name="Android.DownloadManager.OpenDrawer"> + <obsolete>Drawer removed during 2017 redesign.</obsolete> <owner>dfalcantara@chromium.org</owner> <owner>twellington@chromium.org</owner> <owner>ianwen@chromium.org</owner> @@ -1548,6 +1552,7 @@ </action> <action name="Android.DownloadManager.RemoveItem"> + <owner>dtrainor@chromium.org</owner> <owner>huayinz@chromium.org</owner> <owner>twellington@chromium.org</owner> <description> @@ -1557,13 +1562,13 @@ </action> <action name="Android.DownloadManager.Search"> - <owner>dfalcantara@chromium.org</owner> + <owner>dtrainor@chromium.org</owner> <owner>twellington@chromium.org</owner> <description>User initiated a search of their downloads.</description> </action> <action name="Android.DownloadManager.SelectionEstablished"> - <owner>dfalcantara@chromium.org</owner> + <owner>dtrainor@chromium.org</owner> <owner>twellington@chromium.org</owner> <owner>ianwen@chromium.org</owner> <description> @@ -1581,9 +1586,8 @@ </action> <action name="Android.DownloadManager.UndoDelete"> - <owner>dfalcantara@chromium.org</owner> + <owner>dtrainor@chromium.org</owner> <owner>twellington@chromium.org</owner> - <owner>ianwen@chromium.org</owner> <description> User chose to "undo" the deletion of one or more download items. </description>
diff --git a/tools/metrics/histograms/enums.xml b/tools/metrics/histograms/enums.xml index 2a60033..c97d158 100644 --- a/tools/metrics/histograms/enums.xml +++ b/tools/metrics/histograms/enums.xml
@@ -26405,6 +26405,7 @@ <int value="-1964261747" label="WebVrVsyncAlign:disabled"/> <int value="-1963427770" label="EmojiHandwritingVoiceInput:disabled"/> <int value="-1963402827" label="enable-topchrome-md"/> + <int value="-1962749353" label="SimplifiedNTP:enabled"/> <int value="-1962588488" label="SpeculativePreconnect:disabled"/> <int value="-1961931929" label="ContextualSuggestionsBottomSheet:enabled"/> <int value="-1961648833" label="show_summary"/> @@ -27977,6 +27978,7 @@ <int value="1589341623" label="disable-easy-unlock"/> <int value="1591653786" label="SpeculativePreconnect:enabled"/> <int value="1593720927" label="GamepadVibration:disabled"/> + <int value="1593917165" label="SimplifiedNTP:disabled"/> <int value="1594247626" label="ContentSuggestionsSettings:enabled"/> <int value="1594664550" label="NTPModernLayout:enabled"/> <int value="1600926040" label="TranslateCompactUI:enabled"/>
diff --git a/tools/metrics/histograms/histograms.xml b/tools/metrics/histograms/histograms.xml index d3289dc..5548cc7 100644 --- a/tools/metrics/histograms/histograms.xml +++ b/tools/metrics/histograms/histograms.xml
@@ -49519,6 +49519,10 @@ </histogram> <histogram name="Net.QuicSession.HeadersHOLBlockedTime" units="Milliseconds"> + <obsolete> + The experiments with head of line blocking have been completed, and the code + tracking head of line blocking was removed. + </obsolete> <owner>ckrasic@chromium.org</owner> <summary> The elapsed time that headers are head of line blocked on others, presumably @@ -55949,6 +55953,9 @@ </histogram> <histogram name="NewTabPage.Layout" enum="NTPLayout"> + <obsolete> + Deprecated 2018-04 with full launch of NTP condensed layout. + </obsolete> <owner>peconn@chromium.org</owner> <summary> Android: A histogram detailing how the NewTabPageLayout is laid out on the @@ -96429,6 +96436,22 @@ </details> </histogram> +<histogram name="Tabs.TabOffsetOfSwitch"> + <owner>rlanday@chromium.org</owner> + <summary> + How many tabs a user moved forward or backward in the Android tab switcher. + </summary> + <details> + Logged by the Android tab switcher when a user switches tabs (other than by + opening a new tab). If the user switches to an earlier tab in the stack, we + log a positive offset value indicating how many tabs back they moved. If the + user switches to a later tab, we log a negative offset value. If the user + stays on the same tab, we log 0. If the user switches to a tab in a + different stack (i.e. they switch from normal to incognito or vice-versa), + we don't log a value. + </details> +</histogram> + <histogram name="Tabs.TabsStatsDailyEventInterval" enum="DailyEventIntervalType"> <owner>sebmarchand@chromium.org</owner>
diff --git a/tools/metrics/ukm/ukm.xml b/tools/metrics/ukm/ukm.xml index 7bcc5cc7..8a47c6f 100644 --- a/tools/metrics/ukm/ukm.xml +++ b/tools/metrics/ukm/ukm.xml
@@ -2776,6 +2776,12 @@ power. </summary> </metric> + <metric name="PreviousBrightness"> + <summary> + The brightness of the screen prior to the time at which the current event + was logged. + </summary> + </metric> <metric name="Reason"> <summary> The reason that the event is logged. Values are enumerated in @@ -2792,6 +2798,11 @@ The ID of this event in the current session. </summary> </metric> + <metric name="TimeSinceLastEventSec"> + <summary> + Time in seconds since last time an event was logged. + </summary> + </metric> </event> <event name="Security.SiteEngagement">
diff --git a/tools/resources/find_unused_resources.py b/tools/resources/find_unused_resources.py index d6e52c86..eab5ba3 100755 --- a/tools/resources/find_unused_resources.py +++ b/tools/resources/find_unused_resources.py
@@ -12,7 +12,7 @@ Example: cd /work/chrome/src - tools/resources/find_unused_resouces.py ash/resources/ash_resources.grd + tools/resources/find_unused_resouces.py chrome/browser/browser_resources.grd """ __author__ = 'jamescook@chromium.org (James Cook)'
diff --git a/ui/base/win/direct_manipulation.cc b/ui/base/win/direct_manipulation.cc index 5da6460c..52daec7 100644 --- a/ui/base/win/direct_manipulation.cc +++ b/ui/base/win/direct_manipulation.cc
@@ -170,7 +170,7 @@ static GetPointerTypeFn get_pointer_type = reinterpret_cast<GetPointerTypeFn>( GetProcAddress(GetModuleHandleA("user32.dll"), "GetPointerType")); if (get_pointer_type && get_pointer_type(pointer_id, &pointer_type) && - pointer_type == PT_TOUCHPAD) { + pointer_type == PT_TOUCHPAD && event_target) { viewport_->SetContact(pointer_id); // Request begin frame for fake viewport. need_poll_events_ = true; @@ -284,6 +284,10 @@ IDirectManipulationViewport* viewport, DIRECTMANIPULATION_STATUS current, DIRECTMANIPULATION_STATUS previous) { + // MSDN never mention |viewport| are nullable and we never saw it is null when + // testing. + DCHECK(viewport); + // The state of our viewport has changed! We'l be in one of three states: // - ENABLED: initial state // - READY: the previous gesture has been completed @@ -291,6 +295,11 @@ // - INERTIA: finger leave touchpad content still updating by inertia HRESULT hr = S_OK; + // Windows should not call this when event_target_ is null since we do not + // pass the DM_POINTERHITTEST to DirectManipulation. + if (!event_target_) + return hr; + if (current == previous) return hr; @@ -359,8 +368,20 @@ HRESULT DirectManipulationHandler::OnContentUpdated( IDirectManipulationViewport* viewport, IDirectManipulationContent* content) { + // MSDN never mention these params are nullable and we never saw they are null + // when testing. + DCHECK(viewport); + DCHECK(content); + + HRESULT hr = S_OK; + + // Windows should not call this when event_target_ is null since we do not + // pass the DM_POINTERHITTEST to DirectManipulation. + if (!event_target_) + return hr; + float xform[6]; - HRESULT hr = content->GetContentTransform(xform, ARRAYSIZE(xform)); + hr = content->GetContentTransform(xform, ARRAYSIZE(xform)); if (!SUCCEEDED(hr)) return hr; @@ -428,7 +449,6 @@ void DirectManipulationHandler::SetWindowEventTarget( WindowEventTarget* event_target) { - DCHECK(event_target); event_target_ = event_target; }
diff --git a/ui/file_manager/file_manager/foreground/css/file_types.css b/ui/file_manager/file_manager/foreground/css/file_types.css index fe568fe..efddfa0 100644 --- a/ui/file_manager/file_manager/foreground/css/file_types.css +++ b/ui/file_manager/file_manager/foreground/css/file_types.css
@@ -42,6 +42,12 @@ url(../images/filetype/2x/filetype_folder_shared.png) 2x); } +.team-drive-root[file-type-icon='folder'] { + background-image: -webkit-image-set( + url(../images/filetype/filetype_team_drive.png) 1x, + url(../images/filetype/2x/filetype_team_drive.png) 2x); +} + tree .tree-item[selected] > .tree-row > [file-type-icon='folder'] { background-image: -webkit-image-set( url(../images/filetype/filetype_folder_active.png) 1x, @@ -54,6 +60,13 @@ url(../images/filetype/2x/filetype_folder_shared_active.png) 2x); } +tree .tree-item[selected] > .tree-row > +.team-drive-root[file-type-icon='folder'] { + background-image: -webkit-image-set( + url(../images/filetype/filetype_team_drive_active.png) 1x, + url(../images/filetype/2x/filetype_team_drive_active.png) 2x); +} + /* TODO(fukino): Check if 'form' is in use, and remove this if possible. */ [file-type-icon='form'] { background-image: -webkit-image-set(
diff --git a/ui/file_manager/file_manager/foreground/images/filetype/2x/filetype_team_drive.png b/ui/file_manager/file_manager/foreground/images/filetype/2x/filetype_team_drive.png new file mode 100644 index 0000000..a51620d --- /dev/null +++ b/ui/file_manager/file_manager/foreground/images/filetype/2x/filetype_team_drive.png Binary files differ
diff --git a/ui/file_manager/file_manager/foreground/images/filetype/2x/filetype_team_drive_active.png b/ui/file_manager/file_manager/foreground/images/filetype/2x/filetype_team_drive_active.png new file mode 100644 index 0000000..e14cb7a --- /dev/null +++ b/ui/file_manager/file_manager/foreground/images/filetype/2x/filetype_team_drive_active.png Binary files differ
diff --git a/ui/file_manager/file_manager/foreground/images/filetype/filetype_team_drive.png b/ui/file_manager/file_manager/foreground/images/filetype/filetype_team_drive.png new file mode 100644 index 0000000..e42804fd --- /dev/null +++ b/ui/file_manager/file_manager/foreground/images/filetype/filetype_team_drive.png Binary files differ
diff --git a/ui/file_manager/file_manager/foreground/images/filetype/filetype_team_drive_active.png b/ui/file_manager/file_manager/foreground/images/filetype/filetype_team_drive_active.png new file mode 100644 index 0000000..f292ade --- /dev/null +++ b/ui/file_manager/file_manager/foreground/images/filetype/filetype_team_drive_active.png Binary files differ
diff --git a/ui/file_manager/file_manager/foreground/js/ui/file_table.js b/ui/file_manager/file_manager/foreground/js/ui/file_table.js index dbfdffb..36ec6dd 100644 --- a/ui/file_manager/file_manager/foreground/js/ui/file_table.js +++ b/ui/file_manager/file_manager/foreground/js/ui/file_table.js
@@ -953,7 +953,8 @@ filelist.updateListItemExternalProps( listItem, this.metadataModel_.getCache( - [entry], ['availableOffline', 'customIconUrl', 'shared'])[0]); + [entry], ['availableOffline', 'customIconUrl', 'shared'])[0], + util.isTeamDriveRoot(entry)); }); } else if (type === 'import-history') { forEachCell('.table-row-cell > .status', function(item, entry, unused) {
diff --git a/ui/file_manager/file_manager/foreground/js/ui/file_table_list.js b/ui/file_manager/file_manager/foreground/js/ui/file_table_list.js index 3576bea..9634f7e 100644 --- a/ui/file_manager/file_manager/foreground/js/ui/file_table_list.js +++ b/ui/file_manager/file_manager/foreground/js/ui/file_table_list.js
@@ -134,7 +134,8 @@ // not on an external backend, externalProps is not available. var externalProps = metadataModel.getCache( [entry], ['hosted', 'availableOffline', 'customIconUrl', 'shared'])[0]; - filelist.updateListItemExternalProps(li, externalProps); + filelist.updateListItemExternalProps( + li, externalProps, util.isTeamDriveRoot(entry)); // Overriding the default role 'list' to 'listbox' for better // accessibility on ChromeOS. @@ -199,8 +200,10 @@ * Updates grid item or table row for the externalProps. * @param {cr.ui.ListItem} li List item. * @param {Object} externalProps Metadata. + * @param {boolean} isTeamDriveRoot Whether the item is a team drive root entry. */ -filelist.updateListItemExternalProps = function(li, externalProps) { +filelist.updateListItemExternalProps = function( + li, externalProps, isTeamDriveRoot) { if (li.classList.contains('file')) { if (externalProps.availableOffline) li.classList.remove('dim-offline'); @@ -220,8 +223,10 @@ else iconDiv.style.backgroundImage = ''; // Back to the default image. - if (li.classList.contains('directory')) + if (li.classList.contains('directory')) { iconDiv.classList.toggle('shared', !!externalProps.shared); + iconDiv.classList.toggle('team-drive-root', !!isTeamDriveRoot); + } }; /**
diff --git a/ui/gl/gl_surface_egl.cc b/ui/gl/gl_surface_egl.cc index 31467183..31913ff 100644 --- a/ui/gl/gl_surface_egl.cc +++ b/ui/gl/gl_surface_egl.cc
@@ -1101,6 +1101,18 @@ } else if (use_egl_timestamps_) { UpdateSwapEvents(newFrameId, newFrameIdIsValid); } + +#if defined(USE_X11) + // We need to restore the background pixel that we set to WhitePixel on + // views::DesktopWindowTreeHostX11::InitX11Window back to None for the + // XWindow associated to this surface after the first SwapBuffers has + // happened, to avoid showing a weird white background while resizing. + if (g_native_display && !has_swapped_buffers_) { + XSetWindowBackgroundPixmap(g_native_display, window_, 0); + has_swapped_buffers_ = true; + } +#endif + return scoped_swap_buffers.result(); }
diff --git a/ui/gl/gl_surface_egl.h b/ui/gl/gl_surface_egl.h index e25aa37..f76de8b 100644 --- a/ui/gl/gl_surface_egl.h +++ b/ui/gl/gl_surface_egl.h
@@ -172,6 +172,10 @@ bool supports_swap_buffer_with_damage_ = false; bool flips_vertically_ = false; +#if defined(USE_X11) + bool has_swapped_buffers_ = false; +#endif + std::unique_ptr<gfx::VSyncProvider> vsync_provider_external_; std::unique_ptr<gfx::VSyncProvider> vsync_provider_internal_;
diff --git a/ui/gl/gl_surface_glx.cc b/ui/gl/gl_surface_glx.cc index 4b0e730..7ca2ee64 100644 --- a/ui/gl/gl_surface_glx.cc +++ b/ui/gl/gl_surface_glx.cc
@@ -571,7 +571,8 @@ window_(0), glx_window_(0), config_(nullptr), - visual_id_(CopyFromParent) {} + visual_id_(CopyFromParent), + has_swapped_buffers_(false) {} bool NativeViewGLSurfaceGLX::Initialize(GLSurfaceFormat format) { XWindowAttributes attributes; @@ -678,7 +679,19 @@ GetSize().width(), "height", GetSize().height()); GLSurfacePresentationHelper::ScopedSwapBuffers scoped_swap_buffers( presentation_helper_.get(), callback); - glXSwapBuffers(gfx::GetXDisplay(), GetDrawableHandle()); + + XDisplay* display = gfx::GetXDisplay(); + glXSwapBuffers(display, GetDrawableHandle()); + + // We need to restore the background pixel that we set to WhitePixel on + // views::DesktopWindowTreeHostX11::InitX11Window back to None for the + // XWindow associated to this surface after the first SwapBuffers has + // happened, to avoid showing a weird white background while resizing. + if (!has_swapped_buffers_) { + XSetWindowBackgroundPixmap(display, parent_window_, 0); + has_swapped_buffers_ = true; + } + return scoped_swap_buffers.result(); }
diff --git a/ui/gl/gl_surface_glx.h b/ui/gl/gl_surface_glx.h index 3c03af1e..cfcb2f3 100644 --- a/ui/gl/gl_surface_glx.h +++ b/ui/gl/gl_surface_glx.h
@@ -129,6 +129,8 @@ gfx::Size size_; VisualID visual_id_; + bool has_swapped_buffers_; + std::unique_ptr<gfx::VSyncProvider> vsync_provider_; std::unique_ptr<GLSurfacePresentationHelper> presentation_helper_;
diff --git a/ui/message_center/views/message_popup_collection.cc b/ui/message_center/views/message_popup_collection.cc index 8a1f6290..e28f456 100644 --- a/ui/message_center/views/message_popup_collection.cc +++ b/ui/message_center/views/message_popup_collection.cc
@@ -350,8 +350,7 @@ RemoveToast(*iter, /*mark_as_shown=*/true); - if (by_user) - RepositionWidgets(); + DoUpdate(); } void MessagePopupCollection::OnNotificationUpdated(
diff --git a/ui/views/widget/desktop_aura/desktop_window_tree_host_x11.cc b/ui/views/widget/desktop_aura/desktop_window_tree_host_x11.cc index 3393e97..cafa344a 100644 --- a/ui/views/widget/desktop_aura/desktop_window_tree_host_x11.cc +++ b/ui/views/widget/desktop_aura/desktop_window_tree_host_x11.cc
@@ -1367,12 +1367,40 @@ void DesktopWindowTreeHostX11::InitX11Window( const Widget::InitParams& params) { - unsigned long attribute_mask = CWBackPixmap | CWBitGravity; + unsigned long attribute_mask = CWBackPixel | CWBitGravity; XSetWindowAttributes swa; memset(&swa, 0, sizeof(swa)); swa.background_pixmap = x11::None; swa.bit_gravity = NorthWestGravity; + // Set the background color on startup to make the initial flickering + // happening between the XWindow is mapped and the first expose event + // is completely handled less annoying. If possible, we use the content + // window's background color, otherwise we fallback to white. + int background_color; + + const views::LinuxUI* linux_ui = views::LinuxUI::instance(); + if (linux_ui && content_window()) { + ui::NativeTheme::ColorId target_color; + switch (params.type) { + case Widget::InitParams::TYPE_BUBBLE: + target_color = ui::NativeTheme::kColorId_BubbleBackground; + break; + case Widget::InitParams::TYPE_TOOLTIP: + target_color = ui::NativeTheme::kColorId_TooltipBackground; + break; + default: + target_color = ui::NativeTheme::kColorId_WindowBackground; + break; + } + + ui::NativeTheme* theme = linux_ui->GetNativeTheme(content_window()); + background_color = theme->GetSystemColor(target_color); + } else { + background_color = WhitePixel(xdisplay_, DefaultScreen(xdisplay_)); + } + swa.background_pixel = background_color; + ::Atom window_type; switch (params.type) { case Widget::InitParams::TYPE_MENU: